14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196442881097566593344612847564823378678316527120190914564856692346034861045432664821339360726024914127372458700660631558817488152092096282925409171536436789259036001133053054882046652138414695194151160943305727036575959195309218611738193261179310511854807446237996274956735188575272489122793818301194912983367336244065664308602139494639522473719070217986094370277053921717629317675238467481846766940513200056812714526356082778577134275778960917363717872146844090122495343014654958537105079227968925892354201995611212902196086403441815981362977477130996051870721134999999837297804995105973173281609631859502445945534690830264252230825334468503526193118817101000313783875288658753320838142061717766914730359825349042875546873115956286388235378759375195778185778053217122680661300192787661119590921642019893809525720106548586327886593615338182796823030195203530185296899577362259941389124972177528347913151557485724245415069595082953311686172785588907509838175463746493931925506040092770167113900984882401285836160356370766010471018194295559619894676783744944825537977472684710404753464620804668425906949129331367702898915210475216205696602405803815019351125338243003558764024749647326391419927260426992279678235478163600934172164121992458631503028618297455570674983850549458858692699569092721079750930295532116534498720275596023648066549911988183479775356636980742654252786255181841757467289097777279380008164706001614524919217321721477235014144197356854816136115735255213347574184946843852332390739414333454776241686251898356948556209921922218427255025425688767179049460165346680498862723279178608578438382796797668145410095388378636095068006422512520511739298489608412848862694560424196528502221066118630674427862203919494504712371378696095636437191728746776465757396241389086583264599581339047802759009946576407895126946839835259570982582262052248940772671947826848260147699090264013639443745530506820349625245174939965143142980919065925093722169646151570985838741059788595977297549893016175392846813826868386894277415599185592524595395943104997252468084598727364469584865383673622262609912460805124388439045124413654976278079771569143599770012961608944169486855584840635342207222582848864815845602850601684273945226746767889525213852254995466672782398645659611635488623057745649803559363456817432411251507606947945109659609402522887971089314566913686722874894056010150330861792868092087476091782493858900971490967598526136554978189312978482168299894872265880485756401427047755513237964145152374623436454285844479526586782105114135473573952311342716610213596953623144295248493718711014576540359027993440374200731057853906219838744780847848968332144571386875194350643021845319104848100537061468067491927819119793995206141966342875444064374512371819217999839101591956181467514269123974894090718649423196156794520809514655022523160388193014209376213785595663893778708303906979207734672218256259966150142150306803844773454920260541466592520149744285073251866600213243408819071048633173464965145390579626856100550810665879699816357473638405257145910289706414011097120628043903975951567715770042033786993600723055876317635942187312514712053292819182618612586732157919841484882916447060957527069572209175671167229109816909152801735067127485832228718352093539657251210835791513698820914442100675103346711031412671113699086585163983150197016515116851714376576183515565088490998985998238734552833163550764791853589322618548963213293308985706420467525907091548141654985946163718027098199430992448895757128289059232332609729971208443357326548938239119325974636673058360414281388303203824903758985243744170291327656180937734440307074692112019130203303801976211011004492932151608424448596376698389522868478312355265821314495768572624334418930396864262434107732269780280731891544110104468232527162010526522721116603966655730925471105578537634668206531098965269186205647693125705863566201855810072936065987648611791045334885034611365768675324944166803962657978771855608455296541266540853061434443185867697514566140680070023787765913440171274947042056223053899456131407112700040785473326993908145466464588079727082668306343285878569830523580893306575740679545716377525420211495576158140025012622859413021647155097925923099079654737612551765675135751782966645477917450112996148903046399471329621073404375189573596145890193897131117904297828564750320319869151402870808599048010941214722131794764777262241425485454033215718530614228813758504306332175182979866223717215916077166925474873898665494945011465406284336639379003976926567214638530673609657120918076383271664162748888007869256029022847210403172118608204190004229661711963779213375751149595015660496318629472654736425230817703675159067350235072835405670403867435136222247715891504953098444893330963408780769325993978054193414473774418426312986080998886874132604721569516239658645730216315981931951673538129741677294786724229246543668009806769282382806899640048243540370141631496589794092432378969070697794223625082216889573837986230015937764716512289357860158816175578297352334460428151262720373431465319777741603199066554187639792933441952154134189948544473456738316249934191318148092777710386387734317720754565453220777092120190516609628049092636019759882816133231666365286193266863360627356763035447762803504507772355471058595487027908143562401451718062464362679456127531813407833033625423278394497538243720583531147711992606381334677687969597030983391307710987040859133746414428227726346594704745878477872019277152807317679077071572134447306057007334924369311383504931631284042512192565179806941135280131470130478164378851852909285452011658393419656213491434159562586586557055269049652098580338507224264829397285847831630577775606888764462482468579260395352773480304802900587607582510474709164396136267604492562742042083208566119062545433721315359584506877246029016187667952406163425225771954291629919306455377991403734043287526288896399587947572917464263574552540790914513571113694109119393251910760208252026187985318877058429725916778131496990090192116971737278476847268608490033770242429165130050051683233643503895170298939223345172201381280696501178440874519601212285993716231301711444846409038906449544400619869075485160263275052983491874078668088183385102283345085048608250393021332197155184306354550076682829493041377655279397517546139539846833936383047461199665385815384205685338621867252334028308711232827892125077126294632295639898989358211674562701021835646220134967151881909730381198004973407239610368540664319395097901906996395524530054505806855019567302292191393391856803449039820595510022635353619204199474553859381023439554495977837790237421617271117236434354394782218185286240851400666044332588856986705431547069657474585503323233421073015459405165537906866273337995851156257843229882737231989875714159578111963583300594087306812160287649628674460477464915995054973742562690104903778198683593814657412680492564879855614537234786733039046883834363465537949864192705638729317487233208376011230299113679386270894387993620162951541337142489283072201269014754668476535761647737946752004907571555278196536213239264061601363581559074220202031872776052772190055614842555187925303435139844253223415762336106425063904975008656271095359194658975141310348227693062474353632569160781547818115284366795706110861533150445212747392454494542368288606134084148637767009612071512491404302725386076482363414334623518975766452164137679690314950191085759844239198629164219399490723623464684411739403265918404437805133389452574239950829659122850855582157250310712570126683024029295252201187267675622041542051618416348475651699981161410100299607838690929160302884002691041407928862150784245167090870006992821206604183718065355672525325675328612910424877618258297651579598470356222629348600341587229805349896502262917487882027342092222453398562647669149055628425039127577102840279980663658254889264880254566101729670266407655904290994568150652653053718294127033693137851786090407086671149655834343476933857817113864558736781230145876871266034891390956200993936103102916161528813843790990423174733639480457593149314052976347574811935670911013775172100803155902485309066920376719220332290943346768514221447737939375170344366199104033751117354719185504644902636551281622882446257591633303910722538374218214088350865739177150968288747826569959957449066175834413752239709683408005355984917541738188399944697486762655165827658483588453142775687900290951702835297163445621296404352311760066510124120065975585127617858382920419748442360800719304576189323492292796501987518721272675079812554709589045563579212210333466974992356302549478024901141952123828153091140790738602515227429958180724716259166854513331239480494707911915326734302824418604142636395480004480026704962482017928964766975831832713142517029692348896276684403232609275249603579964692565049368183609003238092934595889706953653494060340216654437558900456328822505452556405644824651518754711962184439658253375438856909411303150952617937800297412076651479394259029896959469955657612186561967337862362561252163208628692221032748892186543648022967807057656151446320469279068212073883778142335628236089632080682224680122482611771858963814091839036736722208883215137556003727983940041529700287830766709444745601345564172543709069793961225714298946715435784687886144458123145935719849225284716050492212424701412147805734551050080190869960330276347870810817545011930714122339086639383395294257869050764310063835198343893415961318543475464955697810382930971646514384070070736041123735998434522516105070270562352660127648483084076118301305279320542746286540360367453286510570658748822569815793678976697422057505968344086973502014102067235850200724522563265134105592401902742162484391403599895353945909440704691209140938700126456001623742880210927645793106579229552498872758461012648369998922569596881592056001016552563756785667227966198857827948488558343975187445455129656344348039664205579829368043522027709842942325330225763418070394769941597915945300697521482933665556615678736400536665641654732170439035213295435291694145990416087532018683793702348886894791510716378529023452924407736594956305100742108714261349745956151384987137570471017879573104229690666702144986374645952808243694457897723300487647652413390759204340196340391147320233807150952220106825634274716460243354400515212669324934196739770415956837535551667302739007497297363549645332888698440611964961627734495182736955882207573551766515898551909866653935494810688732068599075407923424023009259007017319603622547564789406475483466477604114632339056513433068449539790709030234604614709616968868850140834704054607429586991382966824681857103188790652870366508324319744047718556789348230894310682870272280973624809399627060747264553992539944280811373694338872940630792615959954626246297070625948455690347119729964090894180595343932512362355081349490043642785271383159125689892951964272875739469142725343669415323610045373048819855170659412173524625895487301676002988659257866285612496655235338294287854253404830833070165372285635591525347844598183134112900199920598135220511733658564078264849427644113763938669248031183644536985891754426473998822846218449008777697763127957226726555625962825427653183001340709223343657791601280931794017185985999338492354956400570995585611349802524990669842330173503580440811685526531170995708994273287092584878944364600504108922669178352587078595129834417295351953788553457374260859029081765155780390594640873506123226112009373108048548526357228257682034160504846627750450031262008007998049254853469414697751649327095049346393824322271885159740547021482897111777923761225788734771881968254629812686858170507402725502633290449762778944236216741191862694396506715157795867564823993917604260176338704549901761436412046921823707648878341968968611815581587360629386038101712158552726683008238340465647588040513808016336388742163714064354955618689641122821407533026551004241048967835285882902436709048871181909094945331442182876618103100735477054981596807720094746961343609286148494178501718077930681085469000944589952794243981392135055864221964834915126390128038320010977386806628779239718014613432445726400973742570073592100315415089367930081699805365202760072774967458400283624053460372634165542590276018348403068113818551059797056640075094260878857357960373245141467867036880988060971642584975951380693094494015154222219432913021739125383559150310033303251117491569691745027149433151558854039221640972291011290355218157628232831823425483261119128009282525619020526301639114772473314857391077758744253876117465786711694147764214411112635835538713610110232679877564102468240322648346417663698066378576813492045302240819727856471983963087815432211669122464159117767322532643356861461865452226812688726844596844241610785401676814208088502800541436131462308210259417375623899420757136275167457318918945628352570441335437585753426986994725470316566139919996826282472706413362221789239031760854289437339356188916512504244040089527198378738648058472689546243882343751788520143956005710481194988423906061369573423155907967034614914344788636041031823507365027785908975782727313050488939890099239135033732508559826558670892426124294736701939077271307068691709264625484232407485503660801360466895118400936686095463250021458529309500009071510582362672932645373821049387249966993394246855164832611341461106802674466373343753407642940266829738652209357016263846485285149036293201991996882851718395366913452224447080459239660281715655156566611135982311225062890585491450971575539002439315351909021071194573002438801766150352708626025378817975194780610137150044899172100222013350131060163915415895780371177927752259787428919179155224171895853616805947412341933984202187456492564434623925319531351033114763949119950728584306583619353693296992898379149419394060857248639688369032655643642166442576079147108699843157337496488352927693282207629472823815374099615455987982598910937171262182830258481123890119682214294576675807186538065064870261338928229949725745303328389638184394477077940228435988341003583854238973542439564755568409522484455413923941000162076936368467764130178196593799715574685419463348937484391297423914336593604100352343777065888677811394986164787471407932638587386247328896456435987746676384794665040741118256583788784548581489629612739984134427260860618724554523606431537101127468097787044640947582803487697589483282412392929605829486191966709189580898332012103184303401284951162035342801441276172858302435598300320420245120728725355811958401491809692533950757784000674655260314461670508276827722235341911026341631571474061238504258459884199076112872580591139356896014316682831763235673254170734208173322304629879928049085140947903688786878949305469557030726190095020764334933591060245450864536289354568629585313153371838682656178622736371697577418302398600659148161640494496501173213138957470620884748023653710311508984279927544268532779743113951435741722197597993596852522857452637962896126915723579866205734083757668738842664059909935050008133754324546359675048442352848747014435454195762584735642161981340734685411176688311865448937769795665172796623267148103386439137518659467300244345005449953997423723287124948347060440634716063258306498297955101095418362350303094530973358344628394763047756450150085075789495489313939448992161255255977014368589435858775263796255970816776438001254365023714127834679261019955852247172201777237004178084194239487254068015560359983905489857235467456423905858502167190313952629445543913166313453089390620467843877850542393905247313620129476918749751910114723152893267725339181466073000890277689631148109022097245207591672970078505807171863810549679731001678708506942070922329080703832634534520380278609905569001341371823683709919495164896007550493412678764367463849020639640197666855923356546391383631857456981471962108410809618846054560390384553437291414465134749407848844237721751543342603066988317683310011331086904219390310801437843341513709243530136776310849135161564226984750743032971674696406665315270353254671126675224605511995818319637637076179919192035795820075956053023462677579439363074630569010801149427141009391369138107258137813578940055995001835425118417213605572752210352680373572652792241737360575112788721819084490061780138897107708229310027976659358387589093956881485602632243937265624727760378908144588378550197028437793624078250527048758164703245812908783952324532378960298416692254896497156069811921865849267704039564812781021799132174163058105545988013004845629976511212415363745150056350701278159267142413421033015661653560247338078430286552572227530499988370153487930080626018096238151613669033411113865385109193673938352293458883225508870645075394739520439680790670868064450969865488016828743437861264538158342807530618454859037982179945996811544197425363443996029025100158882721647450068207041937615845471231834600726293395505482395571372568402322682130124767945226448209102356477527230820810635188991526928891084555711266039650343978962782500161101532351605196559042118449499077899920073294769058685778787209829013529566139788848605097860859570177312981553149516814671769597609942100361835591387778176984587581044662839988060061622984861693533738657877359833616133841338536842119789389001852956919678045544828584837011709672125353387586215823101331038776682721157269495181795897546939926421979155233857662316762754757035469941489290413018638611943919628388705436777432242768091323654494853667680000010652624854730558615989991401707698385483188750142938908995068545307651168033373222651756622075269517914422528081651716677667279303548515420402381746089232839170327542575086765511785939500279338959205766827896776445318404041855401043513483895312013263783692835808271937831265496174599705674507183320650345566440344904536275600112501843356073612227659492783937064784264567633881880756561216896050416113903906396016202215368494109260538768871483798955999911209916464644119185682770045742434340216722764455893301277815868695250694993646101756850601671453543158148010545886056455013320375864548584032402987170934809105562116715468484778039447569798042631809917564228098739987669732376957370158080682290459921236616890259627304306793165311494017647376938735140933618332161428021497633991898354848756252987524238730775595559554651963944018218409984124898262367377146722606163364329640633572810707887581640438148501884114318859882769449011932129682715888413386943468285900666408063140777577257056307294004929403024204984165654797367054855804458657202276378404668233798528271057843197535417950113472736257740802134768260450228515797957976474670228409995616015691089038458245026792659420555039587922981852648007068376504183656209455543461351341525700659748819163413595567196496540321872716026485930490397874895890661272507948282769389535217536218507962977851461884327192232238101587444505286652380225328438913752738458923844225354726530981715784478342158223270206902872323300538621634798850946954720047952311201504329322662827276321779088400878614802214753765781058197022263097174950721272484794781695729614236585957820908307332335603484653187302930266596450137183754288975579714499246540386817992138934692447419850973346267933210726868707680626399193619650440995421676278409146698569257150743157407938053239252394775574415918458215625181921552337096074833292349210345146264374498055961033079941453477845746999921285999993996122816152193148887693880222810830019860165494165426169685867883726095877456761825072759929508931805218729246108676399589161458550583972742098090978172932393010676638682404011130402470073508578287246271349463685318154696904669686939254725194139929146524238577625500474852954768147954670070503479995888676950161249722820403039954632788306959762493615101024365553522306906129493885990157346610237122354789112925476961760050479749280607212680392269110277722610254414922157650450812067717357120271802429681062037765788371669091094180744878140490755178203856539099104775941413215432844062503018027571696508209642734841469572639788425600845312140659358090412711359200419759851362547961606322887361813673732445060792441176399759746193835845749159880976674470930065463424234606342374746660804317012600520559284936959414340814685298150539471789004518357551541252235905906872648786357525419112888773717663748602766063496035367947026923229718683277173932361920077745221262475186983349515101986426988784717193966497690708252174233656627259284406204302141137199227852699846988477023238238400556555178890876613601304770984386116870523105531491625172837327286760072481729876375698163354150746088386636406934704372066886512756882661497307886570156850169186474885416791545965072342877306998537139043002665307839877638503238182155355973235306860430106757608389086270498418885951380910304235957824951439885901131858358406674723702971497850841458530857813391562707603563907639473114554958322669457024941398316343323789759556808568362972538679132750555425244919435891284050452269538121791319145135009938463117740179715122837854601160359554028644059024964669307077690554810288502080858008781157738171917417760173307385547580060560143377432990127286772530431825197579167929699650414607066457125888346979796429316229655201687973000356463045793088403274807718115553309098870255052076804630346086581653948769519600440848206596737947316808641564565053004988161649057883115434548505266006982309315777650037807046612647060214575057932709620478256152471459189652236083966456241051955105223572397395128818164059785914279148165426328920042816091369377737222999833270820829699557377273756676155271139225880552018988762011416800546873655806334716037342917039079863965229613128017826797172898229360702880690877686605932527463784053976918480820410219447197138692560841624511239806201131845412447820501107987607171556831540788654390412108730324020106853419472304766667217498698685470767812051247367924791931508564447753798537997322344561227858432968466475133365736923872014647236794278700425032555899268843495928761240075587569464137056251400117971331662071537154360068764773186755871487839890810742953094106059694431584775397009439883949144323536685392099468796450665339857388878661476294434140104988899316005120767810358861166020296119363968213496075011164983278563531614516845769568710900299976984126326650234771672865737857908574664607722834154031144152941880478254387617707904300015669867767957609099669360755949651527363498118964130433116627747123388174060373174397054067031096767657486953587896700319258662594105105335843846560233917967492678447637084749783336555790073841914731988627135259546251816043422537299628632674968240580602964211463864368642247248872834341704415734824818333016405669596688667695634914163284264149745333499994800026699875888159350735781519588990053951208535103572613736403436753471410483601754648830040784641674521673719048310967671134434948192626811107399482506073949507350316901973185211955263563258433909982249862406703107683184466072912487475403161796994113973877658998685541703188477886759290260700432126661791922352093822787888098863359911608192353555704646349113208591897961327913197564909760001399623444553501434642686046449586247690943470482932941404111465409239883444351591332010773944111840741076849810663472410482393582740194493566516108846312567852977697346843030614624180358529331597345830384554103370109167677637427621021370135485445092630719011473184857492331816720721372793556795284439254815609137281284063330393735624200160456645574145881660521666087387480472433912129558777639069690370788285277538940524607584962315743691711317613478388271941686066257210368513215664780014767523103935786068961112599602818393095487090590738613519145918195102973278755710497290114871718971800469616977700179139196137914171627070189584692143436967629274591099400600849835684252019155937037010110497473394938778859894174330317853487076032219829705797511914405109942358830345463534923498268836240433272674155403016195056806541809394099820206099941402168909007082133072308966211977553066591881411915778362729274615618571037217247100952142369648308641025928874579993223749551912219519034244523075351338068568073544649951272031744871954039761073080602699062580760202927314552520780799141842906388443734996814582733720726639176702011830046481900024130835088465841521489912761065137415394356572113903285749187690944137020905170314877734616528798482353382972601361109845148418238081205409961252745808810994869722161285248974255555160763716750548961730168096138038119143611439921063800508321409876045993093248510251682944672606661381517457125597549535802399831469822036133808284993567055755247129027453977621404931820146580080215665360677655087838043041343105918046068008345911366408348874080057412725867047922583191274157390809143831384564241509408491339180968402511639919368532255573389669537490266209232613188558915808324555719484538756287861288590041060060737465014026278240273469625282171749415823317492396835301361786536737606421667781377399510065895288774276626368418306801908046098498094697636673356622829151323527888061577682781595886691802389403330764419124034120223163685778603572769415417788264352381319050280870185750470463129333537572853866058889045831114507739429352019943219711716422350056440429798920815943071670198574692738486538334361457946341759225738985880016980147574205429958012429581054565108310462972829375841611625325625165724980784920998979906200359365099347215829651741357984910471116607915874369865412223483418877229294463351786538567319625598520260729476740726167671455736498121056777168934849176607717052771876011999081441130586455779105256843048114402619384023224709392498029335507318458903553971330884461741079591625117148648744686112476054286734367090466784686702740918810142497111496578177242793470702166882956108777944050484375284433751088282647719785400065097040330218625561473321177711744133502816088403517814525419643203095760186946490886815452856213469883554445602495566684366029221951248309106053772019802183101032704178386654471812603971906884623708575180800353270471856594994761242481109992886791589690495639476246084240659309486215076903149870206735338483495508363660178487710608098042692471324100094640143736032656451845667924566695510015022983307984960799498824970617236744936122622296179081431141466094123415935930958540791390872083227335495720807571651718765994498569379562387555161757543809178052802946420044721539628074636021132942559160025707356281263873310600589106524570802447493754318414940148211999627645310680066311838237616396631809314446712986155275982014514102756006892975024630401735148919457636078935285550531733141645705049964438909363084387448478396168405184527328840323452024705685164657164771393237755172947951261323982296023945485797545865174587877133181387529598094121742273003522965080891777050682592488223221549380483714547816472139768209633205083056479204820859204754998573203888763916019952409189389455767687497308569559580106595265030362661597506622250840674288982659075106375635699682115109496697445805472886936310203678232501823237084597901115484720876182124778132663304120762165873129708112307581598212486398072124078688781145016558251361789030708608701989758898074566439551574153631931919810705753366337380382721527988493503974800158905194208797113080512339332219034662499171691509485414018710603546037946433790058909577211808044657439628061867178610171567409676620802957665770512912099079443046328929473061595104309022214393718495606340561893425130572682914657832933405246350289291754708725648426003496296116541382300773133272983050016025672401418515204189070115428857992081219844931569990591820118197335001261877280368124819958770702075324063612593134385955425477819611429351635612234966615226147353996740515849986035529533292457523888101362023476246690558164389678630976273655047243486430712184943734853006063876445662721866617012381277156213797461498613287441177145524447089971445228856629424402301847912054784985745216346964489738920624019435183100882834802492490854030778638751659113028739587870981007727182718745290139728366148421428717055317965430765045343246005363614726181809699769334862640774351999286863238350887566835950972655748154319401955768504372480010204137498318722596773871549583997184449072791419658459300839426370208756353982169620553248032122674989114026785285996734052420310917978999057188219493913207534317079800237365909853755202389116434671855829068537118979526262344924833924963424497146568465912489185566295893299090352392333336474352037077010108438800329075983421701855422838616172104176030116459187805393674474720599850235828918336929223373239994804371084196594731626548257480994825099918330069765693671596893644933488647442135008407006608835972350395323401795825570360169369909886711321097988970705172807558551912699306730992507040702455685077867906947661262980822516331363995211709845280926303759224267425755998928927837047444521893632034894155210445972618838003006776179313813991620580627016510244588692476492468919246121253102757313908404700071435613623169923716948481325542009145304103713545329662063921054798243921251725401323149027405858920632175894943454890684639931375709103463327141531622328055229729795380188016285907357295541627886764982741861642187898857410716490691918511628152854867941736389066538857642291583425006736124538491606741373401735727799563410433268835695078149313780073623541800706191802673285511919426760912210359874692411728374931261633950012395992405084543756985079570462226646190001035004901830341535458428337643781119885563187777925372011667185395418359844383052037628194407615941068207169703022851522505731260930468984234331527321313612165828080752126315477306044237747535059522871744026663891488171730864361113890694202790881431194487994171540421034121908470940802540239329429454938786402305129271190975135360009219711054120966831115163287054230284700731206580326264171161659576132723515666625366727189985341998952368848309993027574199164638414270779887088742292770538912271724863220288984251252872178260305009945108247835729056919885554678860794628053712270424665431921452817607414824038278358297193010178883456741678113989547504483393146896307633966572267270433932167454218245570625247972199786685427989779923395790575818906225254735822052364248507834071101449804787266919901864388229323053823185597328697809222535295910173414073348847610055640182423921926950620831838145469839236646136398910121021770959767049083050818547041946643713122996923588953849301363565761861060622287055994233716310212784574464639897381885667462608794820186474876727272220626764653380998019668836809941590757768526398651462533363124505364026105696055131838131742611844201890888531963569869627950367384243130113317533053298020166888174813429886815855778103432317530647849832106297184251843855344276201282345707169885305183261796411785796088881503296022907056144762209150947390359466469162353968092013945781758910889319921122600739281491694816152738427362642980982340632002440244958944561291670495082358124873917996486411334803247577752197089327722623494860150466526814398770516153170266969297049283162855042128981467061953319702695072143782304768752802873541261663917082459251700107141808548006369232594620190022780874098597719218051585321473926532515590354102092846659252999143537918253145452905984158176370589279069098969111643811878094353715213322614436253144901274547726957393934815469163116249288735747188240715039950094467319543161938554852076657388251396391635767231510055560372633948672082078086537349424401157996675073607111593513319591971209489647175530245313647709420946356969822266737752099451684506436238242118535348879893956731878066061078854400055082765703055874485418057788917192078814233511386629296671796434687600770479995378833878703487180218424373421122739402557176908196030920182401884270570460926225641783752652633583242406612533115294234579655695025068100183109004112453790153329661569705223792103257069370510908307894799990049993953221536227484766036136776979785673865846709366795885837887956259464648913766521995882869338018360119323685785585581955560421562508836502033220245137621582046181067051953306530606065010548871672453779428313388716313955969058320834168984760656071183471362181232462272588419902861420872849568796393254642853430753011052857138296437099903569488852851904029560473461311382638788975517885604249987483163828040468486189381895905420398898726506976202019955484126500053944282039301274816381585303964399254702016727593285743666616441109625663373054092195196751483287348089574777752783442210910731113518280460363471981856555729571447476825528578633493428584231187494400032296906977583159038580393535213588600796003420975473922967333106493956018122378128545843176055617338611267347807458506760630482294096530411183066710818930311088717281675195796753471885372293096161432040063813224658411111577583585811350185690478153689381377184728147519983505047812977185990847076219746058874232569958288925350419379582606162118423687685114183160683158679946016520577405294230536017803133572632670547903384012573059123396018801378254219270947673371919872873852480574212489211834708766296672072723256505651293331260595057777275424712416483128329820723617505746738701282095755443059683955556868611883971355220844528526400812520276655576774959696266126045652456840861392382657685833846984997787267065551918544686984694784957346226062942196245570853712727765230989554501930377321666491825781546772920052126671434632096378918523232150189761260343736840671941930377468809992968775824410478781232662531818459604538535438391144967753128642609252115376732588667226040425234910870269580996475958057946639734190640100363619040420331135793365424263035614570090112448008900208014780566037101541223288914657223931450760716706435568274377439657890679726874384730763464516775621030986040927170909512808630902973850445271828927496892121066700816485833955377359191369501531620189088874842107987068991148046692706509407620465027725286507289053285485614331608126930056937854178610969692025388650345771831766868859236814884752764984688219497397297077371871884004143231276365048145311228509900207424092558592529261030210673681543470152523487863516439762358604191941296976904052648323470099111542426012734380220893310966863678986949779940012601642276092608234930411806438291383473546797253992623387915829984864592717340592256207491053085315371829116816372193951887009577881815868504645076993439409874335144316263303172477474868979182092394808331439708406730840795893581089665647758599055637695252326536144247802308268118310377358870892406130313364773710116282146146616794040905186152603600925219472188909181073358719641421444786548995285823439470500798303885388608310357193060027711945580219119428999227223534587075662469261776631788551443502182870266856106650035310502163182060176092179846849368631612937279518730789726373537171502563787335797718081848784588665043358243770041477104149349274384575871071597315594394264125702709651251081155482479394035976811881172824721582501094960966253933953809221955919181885526780621499231727631632183398969380756168559117529984501320671293924041445938623988093812404521914848316462101473891825101090967738690664041589736104764365000680771056567184862814963711188321924456639458144914861655004956769826903089111856879869294705135248160917432430153836847072928989828460222373014526556798986277679680914697983782687643115988321090437156112997665215396354644208691975673700057387649784376862876817924974694384274652563163230055513041742273416464551278127845777724575203865437542828256714128858345444351325620544642410110379554641905811686230596447695870540721419852121067343324107567675758184569906930460475227701670056845439692340417110898889934163505851578873534308155208117720718803791040469830695786854739376564336319797868036718730796939242363214484503547763156702553900654231179201534649779290662415083288583952905426376876689688050333172278001858850697362324038947004718976193473443084374437599250341788079722358591342458131440498477017323616947197657153531977549971627856631190469126091825912498903676541769799036237552865263757337635269693443544004730671988689019681474287677908669796885225016369498567302175231325292653758964151714795595387842784998664563028788319620998304945198743963690706827626574858104391122326187940599415540632701319898957037611053236062986748037791537675115830432084987209202809297526498125691634250005229088726469252846661046653921714820801305022980526378364269597337070539227891535105688839381132497570713310295044303467159894487868471164383280506925077662745001220035262037094660234146489983902525888301486781621967751945831677187627572005054397944124599007711520515461993050983869825428464072555409274031325716326407929341833421470904125425335232480219322770753555467958716383587501815933871742360615511710131235256334858203651461418700492057043720182617331947157008675785393360786227395581857975872587441025420771054753612940474601000940954449596628814869159038990718659805636171376922272907641977551777201042764969496110562205925024202177042696221549587264539892276976603105249808557594716310758701332088614632664125911486338812202844406941694882615295776253250198703598706743804698219420563812558334364219492322759372212890564209430823525440841108645453694049692714940033197828613181861888111184082578659287574263844500599442295685864604810330153889114994869354360302218109434667640000223625505736312946262960961987605642599639461386923308371962659547392346241345977957485246478379807956931986508159776753505539189911513352522987361127791827485420086895396583594219633315028695611920122988898870060799927954111882690230789131076036176347794894320321027733594169086500719328040171638406449878717537567811853213284082165711075495282949749362146082155832056872321855740651610962748743750980922302116099826330339154694946444910045152809250897450748967603240907689836529406579201983152654106581368237919840906457124689484702093577611931399802468134052003947819498662026240089021501661638135383815150377350229660746279529103840686855690701575166241929872444827194293310048548244545807188976330032325258215812803274679620028147624318286221710543528983482082734516801861317195933247110746622285087106661177034653528395776259977446721857158161264111432717943478859908928084866949141390977167369002777585026866465405659503948678411107901161040085727445629384254941675946054871172359464291058509099502149587931121961359083158826206823321561530868337308381732793281969838750870834838804638847844188400318471269745437093732983624028751979208023218787448828728437273780178270080587824107493575148899789117397461293203510814327032514090304874622629423443275712600866425083331876886507564292716055252895449215376517514921963671810494353178583834538652556566406572513635750643532365089367904317025978781771903148679638408288102094614900797151377170990619549696400708676671023300486726314755105372317571143223174114116806228642063889062101923552235467116621374996932693217370431059872250394565749246169782609702533594750209138366737728944386964000281103440260847128990007468077648440887113413525033678773167977093727786821661178653442317322646378476978751443320953400016506921305464768909850502030150448808342618452087305309731894929164253229336124315143065782640702838984098416029503092418971209716016492656134134334222988279099217860426798124572853458013382609958771781131021673402565627440072968340661984806766158050216918337236803990279316064204368120799003162644491461902194582296909921227885539487835383056468648816555622943156731282743908264506116289428035016613366978240517701552196265227254558507386405852998303791803504328767038092521679075712040612375963276856748450791511473134400018325703449209097124358094479004624943134550289006806487042935340374360326258205357901183956490893543451013429696175452495739606214902887289327925206965353863964432253883275224996059869747598823299162635459733244451637553343774929289905811757863555556269374269109471170021654117182197505198317871371060510637955585889055688528879890847509157646390746936198815078146852621332524738376511929901561091897779220087057933964638274906806987691681974923656242260871541761004306089043779766785196618914041449252704808819714988015420577870065215940092897776013307568479669929554336561398477380603943688958876460549838714789684828053847017308711177611596635050399793438693391197898871091565417091330826076474063057114110988393880954814378284745288383680794188843426662220704387228874139478010177213922819119923654055163958934742639538248296090369002883593277458550608013179884071624465639979482757836501955142215513392819782269842786383916797150912624105487257009240700454884856929504481107380879965474815689139353809434745569721289198271770207666136024895814681191336141212587838955773571949863172108443989014239484966592517313881716026632619310653665350414730708044149391693632623737677770958503132559900957627319573086480424677012123270205337426670531424482081681303063973787366424836725398374876909806021827857862165127385635132901489035098832706172589325753639939790557291751600976154590447716922658063151110280384360173747421524760851520990161585823125715907334217365762671423904782795872815050956330928026684589376496497702329736413190609827406335310897924642421345837409011693919642504591288134034988106354008875968200544083643865166178805576089568967275315380819420773325979172784376256611843198910250074918290864751497940031607038455494653859460274524474668123146879434416109933389089926384118474252570445725174593257389895651857165759614812660203107976282541655905060424791140169579003383565748692528007430256234194982864679144763227740055294609039401775363356554719310001754300475047191448998410400158679461792416100164547165513370740739502604427695385538343975505488710997852054011751697475813449260794336895437832211724506873442319898788441285420647428097356258070669831069799352606933921356858813912148073547284632277849080870024677763036055512323866562951788537196730346347012229395816067925091532174890308408865160611190114984434123501246469280288059961342835118847154497712784733617662850621697787177438243625657117794500644777183702219991066950216567576440449979407650379999548450027106659878136038023141268369057831904607927652972776940436130230517870805465115424693952651271010529270703066730244471259739399505146284047674313637399782591845411764133279064606365841529270190302760173394748669603486949765417524293060407270050590395031485229213925755948450788679779252539317651564161971684435243697944473559642606333910551268260615957262170366985064732812667245219890605498802807828814297963366967441248059821921463395657457221022986775997467381260693670691340815594120161159601902377535255563006062479832612498812881929373434768626892192397778339107331065882568137771723283153290825250927330478507249771394483338925520811756084529665905539409655685417060011798572938139982583192936791003918440992865756059935989100029698644609747147184701015312837626311467742091455740418159088000649432378558393085308283054760767995243573916312218860575496738322431956506554608528812019023636447127037486344217272578795034284863129449163184753475314350413920961087960577309872013524840750576371992536504709085825139368634638633680428917671076021111598288755399401200760139470336617937153963061398636554922137415979051190835882900976566473007338793146789131814651093167615758213514248604422924453041131606527009743300884990346754055186406773426035834096086055337473627609356588531097609942383473822220872924644976845605795625167655740884103217313456277358560523582363895320385340248422733716391239732159954408284216666360232965456947035771848734420342277066538373875061692127680157661810954200977083636043611105924091178895403380214265239489296864398089261146354145715351943428507213534530183158756282757338982688985235577992957276452293915674775666760510878876484534936360682780505646228135988858792599409464460417052044700463151379754317371877560398159626475014109066588661621800382669899619655805872086397211769952194667898570117983324406018115756580742841829106151939176300591943144346051540477105700543390001824531177337189558576036071828605063564799790041397618089553636696031621931132502238517916720551806592635180362512145759262383693482226658955769946604919381124866090997981285718234940066155521961122072030922776462009993152442735894887105766238946938894464950939603304543408421024624010487233287500817491798755438793873814398942380117627008371960530943839400637561164585609431295175977139353960743227924892212670458081833137641658182695621058728924477400359470092686626596514220506300785920024882918608397437323538490839643261470005324235406470420894992102504047267810590836440074663800208701266642094571817029467522785400745085523777208905816839184465928294170182882330149715542352359117748186285929676050482038643431087795628929254056389466219482687110428281638939757117577869154301650586029652174595819888786804081103284327398671986213062055598552660364050462821523061545944744899088390819997387474529698107762014871340001225355222466954093152131153379157980269795557105085074738747507580687653764457825244326380461430428892359348529610582693821034980004052484070844035611678171705128133788057056434506161193304244407982603779511985486945591520519600930412710072778493015550388953603382619293437970818743209499141595933963681106275572952780042548630600545238391510689989135788200194117865356821491185282078521301255185184937115034221595422445119002073935396274002081104655302079328672547405436527175958935007163360763216147258154076420530200453401835723382926619153083540951202263291650544261236191970516138393573266937601569144299449437448568097756963031295887191611292946818849363386473927476012269641588489009657170861605981472044674286642087653347998582220906198021732116142304194777549907387385679411898246609130916917722742072333676350326783405863019301932429963972044451792881228544782119535308989101253429755247276357302262813820918074397486714535907786335301608215599113141442050914472935350222308171936635093468658586563148555758624478186201087118897606529698992693281787055764351433820601410773292610634315253371822433852635202177354407152818981376987551575745469397271504884697936195004777209705617939138289898453274262272886471088832701737232588182446584362495805925603381052156062061557132991560848920643403033952622634514542836786982880742514225674518061841495646861116354049718976821542277224794740335715274368194098920501136534001238467142965518673441537416150425632567134302476551252192180357801692403266995417460875924092070046693403965101781348578356944407604702325407555577647284507518268904182939661133101601311190773986324627782190236506603740416067249624901374332172464540974129955705291424382080760983648234659738866913499197840131080155813439791948528304367390124820824448141280954437738983200598649091595053228579145768849625786658859991798675205545580990045564611787552493701245532171701942828846174027366499784755082942280202329012216301023097721515694464279098021908266898688342630716092079140851976952355534886577434252775311972474308730436195113961190800302558783876442060850447306312992778889427291897271698905759252446796601897074829609491906487646937027507738664323919190422542902353189233772931667360869962280325571853089192844038050710300647768478632431910002239297852553723755662136447400967605394398382357646069924652600890906241059042154539279044115295803453345002562441010063595300395988644661695956263518780606885137234627079973272331346939714562855426154676506324656766202792452085813477176085216913409465203076733918411475041401689241213198268815686645614853802875393311602322925556189410429953356400957864953409351152664540244187759493169305604486864208627572011723195264050230997745676478384889734643172159806267876718380052476968840849891850861490034324034767426862459523958903585821350064509981782446360873177543788596776729195261112138591947254514003011805034378752776644027626189410175768726804281766238606804778852428874302591452470739505465251353394595987896197789110418902929438185672050709646062635417329446495766126519534957018600154126239622864138977967333290705673769621564981845068422636903678495559700260798679962610190393312637685569687670292953711625280055431007864087289392257145124811357786276649024251619902774710903359333093049483805978566288447874414698414990671237647895822632949046798120899848571635710878311918486302545016209298058292083348136384054217200561219893536693713367333924644161252231969434712064173754912163570085736943973059797097197266666422674311177621764030686813103518991122713397240368870009968629225464650063852886203938005047782769128356033725482557939129852515068299691077542576474883253414121328006267170940090982235296579579978030182824284902214707481111240186076134151503875698309186527806588966823625239378452726345304204188025084423631903833183845505223679923577529291069250432614469501098610888999146585518818735825281643025209392852580779697376208456374821144339881627100317031513344023095263519295886806908213558536801610002137408511544849126858412686958991741491338205784928006982551957402018181056412972508360703568510553317878408290000415525118657794539633175385320921497205266078312602819611648580986845875251299974040927976831766399146553861089375879522149717317281315179329044311218158710235187407572221001237687219447472093493123241070650806185623725267325407333248757544829675734500193219021991199607979893733836732425761039389853492787774739805080800155447640610535222023254094435677187945654304067358964910176107759483645408234861302547184764851895758366743997915085128580206078205544629917232020282229148869593997299742974711553718589242384938558585954074381048826246487880533042714630119415898963287926783273224561038521970111304665871005000832851773117764897352309266612345888731028835156264460236719966445547276083101187883891511493409393447500730258558147561908813987523578123313422798665035227253671712307568610450045489703600795698276263923441071465848957802414081584052295369374997106655948944592462866199635563506526234053394391421112718106910522900246574236041300936918892558657846684612156795542566054160050712766417660568742742003295771606434486062012398216982717231978268166282499387149954491373020518436690767235774000539326626227603236597517189259018011042903842741855078948874388327030632832799630072006980122443651163940869222207453202446241211558043545420642151215850568961573564143130688834431852808539759277344336553841883403035178229462537020157821573732655231857635540989540332363823192198921711774494694036782961859208034038675758341115188241774391450773663840718804893582568685420116450313576333555094403192367203486510105610498727264721319865434354504091318595131451812764373104389725070049819870521762724940652146199592321423144397765467083517147493679861865527917158240806510637995001842959387991583501715807598837849622573985121298103263793762183224565942366853767991131401080431397323354490908249104991433258432988210339846981417157560108297065830652113470768036806953229719905999044512090872757762253510409023928887794246304832803191327104954785991801969678353214644411892606315266181674431935508170818754770508026540252941092182648582138575266881555841131985600221351588872103656960875150631875330029421186822218937755460272272912905042922597877106678738400006167721546384412923711935218284998243509208918016855727981564218581911974909857305703326676464607287574305653726027689823732597450844796495456480307715981539558277791393736017174229960273531027687194494449179397851446315973144353518504914139415573293820485421235081739125497498193087143966151329420459193801062314217741991840601803479498876910515579055548069538785400664533759818628464199052204528033062636956264909108276271159038569950512465299960628554438383303276385998007929228466595035512112452840875162290602620118577753137479493620554964010730013488531507354873539056029089335264007132747326219603117734339436733857591245081493357369116645412817881714540230547506671365182582848980995121391939956332413365567770980030819102720409971486874181346670060940510214626902804491596465453301077546954130887141653125448130611924078211886900560277818242350226961893443525476335735364856193632544177566139817039306328721669057222597452091929172621998444096461582694563802395028371216864465617852355651641277128269186886155727162014749340522769465957121983149433816221140069363074304441732847861017777438379770372317952554341072234455125555899986461838767649039724611679590181000350989286412041951635511087632042676129798265294258829511412758412627327907988075597518515768412647422094797218433093529726652100156625145529947451276315509176367302594621329301904028379542463232585503010967069227202270748634190054383026506812141421350571541750575086399076739463351462090828889349383764393992569006040673114220933121959362029829723511632593867722414779116295727807523950562515816031333593823115005186268905306583681299881086632632719806112715488587980934879129137074982305759290918629391950147211975860672700925477180257503377307993971345395326461952699965963856549175904583335857991020127132045839032008538788816336376851820837278851311752277696097879621423721625452145912818317982160441113116714069148271709810154577819392023115638719508050246797257924976057726259133285597263712112019057207714091486450740949267180358151575715140503976109638467555692989703835473141002238025834687673501297754132795320609711545064842121859364909979177668747744818828706323155158650328981642282882327468661065927321979071623846421534898524762167890502609980452664839295423572873439776804957740914495383915755654854590589764951985138010079580107837599457752991967005476022525520344539887125387801719607181640781248478472579124078245443616823452395706895142722697504318736332630111030534233358216093331912188066082683414289104151732472160533558499932245487307788229052523242348615315209769384610425828497149634753418375620030149157032796853018686315724884015266398356895636346574353217834931998255421173084677452970858395076164582296303244243282377374505170285606980678895217681981567107816334052667595394249262807569683261074953233905362230908070814559198373553777487420290390181429373115293346444681512129450975965343062842153194457271186149000176505581770953024688752632501197052094761594167687277844720001927891372518416228577837922844390843011811214963664246590336341945406571835447719124466212593926566203068885200555991212353637182269225317814587925937504414489339816086579008761650246351970458288954817937566810464746141051424988702521399368705093723054477341126413548928068410591077166778212383328102621855877513127211793444482014404257450830639447383637939062830089733062413806145894142276947479316657176231824721683506780764875734204915576282175839729751344789906965895325489403356156131674032764724692125057591162515296545685446334981143176702572956618447754874693784642337372389819206620485118943788682248072793520225017965453437572741639107919729529508129429222053477173041844779156739917384183117103625243957161527146690058147000026330104526435478659032907332054683388720787354447626479252976901709120078741837367350877133769776834963442524199499513883150748775374338494582597655609965559543180409201784971846854973706962120885243770138537576814166327224126344239821529416453780004925072627651507890850712659970367087266927643083772296859851691223050374627443108529343052730788652839773352460174635277032059381791253969156210636376258829375713738407544064689647831007045806134467312715911946084359358259877828352665311510650416232953290477721740835593497237585521380483050900096466760883015406128243087406455944318534137552201663058121110334531207450868243394321590435944303124312274713858420303901060709403152355561727679941600203939750998976293353258555756248089966918298642226775023601932579747267425782111197347094023574572222712125268523842958742735015636600931880454933389897415714905441825597380808715652814301026704602843168192303925352977957658624143927015497408792731310516361191375770089295648233236482982630246079758757677453771601024908046243018565241617566556001608591215345562676021926899828553778725831451440826545834844094784631787773747946535801699607794055687011923286080411309046293508718271259346687127666948738998245985277864995691654640294589350649643358098247659651651420909867552038083092032304873427034682887516040715466538346196112230137594515792526967436425319273900360386082364507626988274976187235754767628899507521148048525279508450339585708381304769378813211236742813194879502280663201700224603319896719706491637411758548518784840120548446725888514015627250198217190669608126277854859648183696214107217142149863619187747545096503089570994709343378569816744658282679119406119560378453978558392407612763441057667510243075598145527861678159496570625597550743065210853015979080733437360794328667578905334836695554868039134337201564988342208933999716414797469386969054800891930671380571715058573071488156499207140867582596028760564597824237702424698053280566327870419267684671162668794634869504645074202193739452592626686135529406247813612062026364981999994984051438682852589563422643287076632993048917234007254717641886853513723326678779217383475414800228033929973579361524127558295692768372312347989894462743304545667900620324205163962825884430854383072014956721064605332385372031432421126074244858450945804940818209276391400085404220235562602185643489941454399504109805918179488826280520664410863190016885681551692294862030107388971810077092905904807490924271410189335428184299959881696609938369616443815288772140852680887574882932587358099056707558170179491619061140019085537448827262009366856044755965574764856740081773817033073803054769736097865438593821872205839023444435088674998665060406458743460053318274362961778625180818931443632512051070946908135864405192295129324500788333987884293393424351263433652043858129128343452973086529097833006712617981303167943855357262969987403595704584522308563900989131794759487521263970783759448611394519602867512105616389760088800927461158608002078033415914517970730368351969777660763737853330120241201120469886092093390853657732223924124490515327809509558664594776344822699860748132973026309750288121035177231244650953496536930900186377640940943498373132513218620802148099226855029484546618147155574447096695301776904342720318927706047177845279391604722815343798035396798614243709566832214914654380145938292773933960327540480095522318166673803571839327570771420467238386246178039762923771312095807893638414479298025880655221292620936239306373134966401866195108115834711733120258058667276399927635790780638188130691563662741254312595899361196476261014055635033995231403231138196562363271989618372548453337020625634642239527669435683767613687119629218187545760816170530315907288287007123136663087227549186613957737305460659974378109876498024140112421427736680827513909593134041558262667895108467761186659576601659981780894149857549762843878561002637965431783136340251358141611519020964991335487331311150227006819301359295959716401971960536250335584799809634887180391116128135959685654788683258564378961731597620024196215528962979048198221994622694871374624447290934564700285376949588595916067892824910544125159963007813683674902093749157328962700286568293444313423473512392982591667395034259958689706972673325827359031212887466604514614878503461428277659916080903986525757172630818334944418201935333850712923457743755793440621787113300631060033240539916936826037461766385657588775802012293663532702671006812618251729146082025418928859352444910701382062115538277935652969145765020486432828655579347072096348073726921411868954673227677513356901901537236690368653891612916888878764075254934942497334271811788927599315967193547589880979245252623636590363200708544407845447973482918020820449266706344204375553250505275228337788870408040335319234076856301093477721256390886404131010738178533383160381352808281190408325644018420537467929926220376987180180611226244909092426419858208617511771137890516091403815750033664241560952163281971223350231674226005679412814062172196418427057843289598028823350598282081966662490358577899403331522748177769528436816300885317696947836905806710648280835980466988410981351586549069333195223943632879239905348109878302745001720654336990661177845543646877236318444647680691428280045510746866453928053994091087549391660957316197150331669683099294663491427987808422572206971488755806374803088629951184731871247772919100702275888934869394562895158029653721504096031077612898312635899648934102470360366450586872875890514068412381242473863854279082827338279733268855049358743031602747490631295723497426112215174171531336186224109138695006888358989623492763173164783400774608866555987333821138299287769114954921841920877716060684728746736818861675072210172611038306717878566948129487850489430630861699487987031605158841082823512741535385133658953329486294944950618685147791058046960390693726626703865129052011378108586161888869479576074135855345851517680519733344334952301203957707396237713160302428872005373209982530089776189731298178819446717311606472314762484575519287327828251271824468078242152164695678192940982389262849437602488522790036202193866964822156280936053731780408637272684266964219299468192149087017075333610947913818040632873875938482695355830773957614479972700034728801827852813895032179863452161110666088393140532269449054555278678944175792024400214507801920998044613825478058580484424164047750315360549065914300781583724301231375115622840158386442708907182848167575271238467824595343344496220100960710513706084618011875431207254913349942476171156333214089346091565615506003173842187015702261031019166038870646614388977363187809407115275281746895764015810470169652475577408916445686777171585005832699434016772021567677240681283665652641229824394651331973591997094032759385026695574702318132032437164205861410336065245369391600506449530601612678226489424373971667176612310489750318857321655549883421218028469125290861014855278152776256237504563757694977343368460156077270355096290493924870884062810679436224187047470083688426710225583024035998416459511224852726336326451140173952480861946358407837535568856223171155209472230654370926067973510005655493812245754837285457117973936157561676416928958052572975223385586113883221711073622658162188424431788574887981090266537934266642169909140565364322493013348679881548866286650523469972355747384248305904236771432787923164224038777643301926001922847783138376325361210253369358126240868666997382759773656822279072158324788886423693463961643633087301398142114303060087306661648036789840913359262934023043249749268878316436026810113095707161419128306865773235326396536773903176613613159655535849993986005651559219367599777179330197446881483711032065036931928945214026509154651843099365534933371834252984336799159394174662239003895276738133306177476295749438687169784537672194935065908757119177208754771071899379608947745126547575018711948707387367858902006173733210756933022163206284320656711920969505857611739616323262177089454262146098584102378132158177276022227381334954104810030732751077999489919779638835307344434575329759142637684054422647842160631227696469671564739990437159033239065607266441164386054048388471619121090087010191307260710441141432419767968285478855247794764818029597360494397004795960402927462992035720997619501403483153809477146010563334469988208221205872815107291829712119178764248803546723169165418522567292344291871281632325969654135485895771332083399112887759172261152733790103413620856145779923987783250835507301998184590259583559892605532996737704917224549353296833000022301815172265757875240588322490858212800897479093261007625787704286560069961762121768454789964407050662417102133274867962374302291553582007801411653480656474882306150033920689837947662550365498228053296628621179306284301704924023019857199789488368971830438051821744191476604297524372516834354112170386313794114220952958857980601529387527537990309388716835720957607152219002793792927863036372687658226812419933848081660216037221547101430073775377926990695871212892880190520316012858618254944133538207848834653116326504076424283908701210151942319616522684220037112304643006734420647477180213530701240988603533991526679238711017062218658835737812109351797756044256346949997872511254408545222748109148743072598696020402759411789425812818821599523596589791811440776533543217575952555361581280011638467203193465072968079907939637149617743121194020212975731251652537680173591015573381537720019524445436200718484756634154074423286210609976132434875488474345396659813387174660930205350702719529839432714253711557666000257844230310734295515339450604862227649666876240793243531929926392537310768921353525723210808898193391686682789482811704726245019484097009757609209837240900747179733407881418251958425980962417476101382526439551352593118850456362641883003385396524359974169313228947198783084276004013680747039040972384739458348961865397905941185993103561684368692194853820557803957738813606795499000851232594425297244866667668346414021899159445653094234406506678519484177667794704720419588220432953803263105374948831221803912796784461001397267538921951191178365876625280836900532490045974109470687729123282143046353372835199536482743258331191444590178096077828835837301118575436599589827245319253105881150263075425714939430244539318701799236081666113054262539958338979429716020703387678150330102801200959972522222808014235710947603519255444349299867678178910455590630159538097618759203589373419789623589311259839025983102671933041892151096891562250696591198283234555030590817307351955037216658702880539921385760370353771051780212801295668419841403628727256232144287543022109094727210734741349755141907370433182766261772759968888260272252471336833534528166927795913288613817663498577289369009657495622871030243625907724122190943008717556926257580657099120166596224360802428700245473620363948412559548817272724736534677836472019183039987176270375157246499222894679323226936191776416146187956139566995677830682903165896994307673335082349907906241002025061340573443006957454746821756904416515406365846804636926212742110753990421887161276177870142588648257752238891845995233762923779155857445494773612955259522265786364621183775984737003479714082069941455807190802135907322692331008317595106590191212947954086036407573587502058902087045796700070552625058114206639074592152733094068236494415908910092202966805233252661989113118420162916310768940847235643668081821686572196882683584027855007828040434537101836510969517823357430305048526537380735310741859177056103973950626403554422751561011072617793706347238049906669221619711942591204450846417463835899382399465173955090008594799901360266742614942900664671150671754221770387745076735637421547829059110126191575558702389570014051178226469899449179083017954758767601680941001358376135785913569244556477644641786671153919513576961048649224900834467154863830544779143300976804868783481846727337584368927243104474068076852786255851650920882638132336231487333367147645204508766276149503899495048095604609896043291233583488599902945264002849942808786240398118148847673012167541611066299955536681931232874257020637383520200868636913117334697317412191536332467453256308713473027921749562270146873258678917345583799643513588009593508775563562488104938529990076751355135277924124292774885658885665132473025147102105753525165118148509027504768455182520963318990685276144351382136621523688905787866994322888160283774820355060160298940091197138501798716836337441392759736440170070147637066557035043381211135764150184518214136198234951596010647527125759351853043328755377830575095674254426847122196187091785607839361445113833356491032564057338986671781239722375193164306170138595394743678433926709867124522111896908402363274114966012434830989299417380305884171666130730400675883804321115553794406054977217059428215148861656727712409033877277456290971101348851843741186956554497457368452180669829110450580042998879538990278043835962824094218605562877884288021275538848037286400194416142574999042720095952046541705981049899675045119364711727722204361026140797508096869751766002371877483480161203102346805671126447661237476278521902412025699435347162266608936752198331118135111465038548950251206557726361454736044268594980743969323312971273771573470997139522911826534851555871373366291202427143025037632695013509116129529937858646813072264860082708813335381937036825988678933212383270532976258573827900978264605455985551318366888446282651337984916678394097613537662517982582496634587719501243840403591408492097337546424744881761840700235695801774101776969250778148933866725578985645898510568919609243988415692806969833522402256345704973122452693541938370048431833571965166267215755241934019330990183193091965829209696562476676836596470195957547393455143374137087615173236772042273856742791706982045499530959188724349395240944416789988463198455048523936629720797774528143994182567894577957125524268260899408633173715388962628896294021121088844273765686245276121303710173007851357154045330415079594477761435974378037424366469732471384104921243141389035790924160364063140381498314819052517209371039640268089948325722979545640427017577229041732347960736187878899133183058430693948259613187138164234672187308451338772190869751049428437693250249816566738162606159417682525099937416728839517440669325496534031014522253161890092353764863784828813442098700480962271712264074895719390029185733074601043607291909457679946149292904279816877294264877299528584346477753869069501489841339245403941446802636254021186143170312511175776428299146445334089209769616990983726523617687456058947049681701369749095230720826828878907301900182534258053434217059287139317379931424108526473909482845964180936141384758311361305761084623668372376959134926158245162215521348792441450417568480641206365201703863301295327776990231186480200675569056822950163549319923059142463962170253297475731140942201801993680350264956369558664259067626856873721103391567938398957655651931778830002416135395624377778408017488193730950206999008908993280883974303677365955248913001566332940779071396154645340887915103006513219344866732482759079468078798194250195826223203951312520141099605312606965554042486705499867869230217469890095478507256729787947698888310934874644264007181831603316555115342761556224054744733780492462149521332585276988473362691826491743389878247892784689188280546699823036899397834137475870258057163494135684339293960681920617733317917382085624364336353598634944968907810640196740744365836670715869245211829978938040771375012908586465789057714268335827689785547176871844277261205092664861020515356428406323684818072879407171279668200607275595559040402331787494473464547606281895415121391629184442976510669479693540168660100551960776873353965116149309375709685545593815137895690392510149532656281470119983269922000663928753747131352364215892651262040728877165783584052196460541054354436421665622445650429990102565869272791427529311720827939377513261060528812353734510683729398935808712438693859343891757133763007203197608166044646839377258069092372975234867029169104263692620901996052041210240776481903160140858635584276095370865581642739953493465463145040401995285372520049578052546562511541092524379913262627136090994029022620628367521323050651839340574501120993414649184333236465693717259144893241590062420206128857329261335968087265000456282845575745965921205303413101118275013069615098355156320043107846019065654938065425252291619918199596027523277022498557388248998827074659363557685825605180689642853768507720122203479209939361792682065901421656159253067379445689490708532635681968318617722682499114726157320358076462981162440133167378927886892290325933498617970219949819257396176730758344170985592221701718257127775344915082052784309046194608352174020058386728497094110232669539214454610662150064106747402070091899119513764669044812672536915371622907913854039375600778351533741677479421003840023089518509945487790393461222208650601605003517762648316111533255877050735412792499098593734737870811942530551214369797499149518605359204038302357163527276308746932196221900642608861836761033460022554774778136410126919065696864950126883762969072339612762872230411418136100602640440300359969889199458273976241146137448040596970625767647237660655416185746905272292382282751867991569833907476711461030227766060200612468764777288190967916133540198814027579921741676787992316039635694928515136336472195406111717673873725557285229400543617851765023075446938693078734991103521825329297260445532107978877114498988709115112372506042387537348412570860640690520584521227545338480082053024504565176695185769132000428167580549248117805198326460324457928297301291053183856368212062155312886685649565126138922613670640939533345705269869596923503530942245438652786776730275404027022463844835532399147513634410440500923303612714960813554905315390210022995957565837053812619656831442860579566966221547216956208700137277685369608407048333251327931122325071486302069512453950037357233468070946564830892098015348787056334910923660575540508641115214414814346304372732710450277686619531078583233348578402971609252153260925589326556006721243594642550659967717703884453961816328796144608177892721718369088801267782074301064225246348074543004764928855534090621851536543554741254761527697726677697727770583158014121856880117050283652755432148034880044429799980621579045641619572127845089284898064264974270905791290692178072987694779751124473059914060506299468942809310342164166299356148281309988707452927160484336308184041264696379258430941854422163590845761460785585624738149314270782662151855416038702068769804617474008083243436653823545551094494984310934947599446726736653525176627067721941831919771963780157021699336750837600571634546436717767233875886434056448715669643210412825956453498413884128904206820470076155969168430389993483667935425492103281133631847225923055543830582069416756299920133731754891220372303490726810685344540359935618235763128377676406310131253352121419946118693508331765878520471123643312267651299641713252175135532618676819423387903654689080018271352835848884441117612341011799187092365071848578562210211040097769944531217950224795780695065329659403839873699072407976790408267940076187295478359634927939045769736616434053597922192858705749574816966940623342726197335181366260637359825755524965098072601236682836059283418558480269584137725589708837899429105498003311138846034019391661221866960584915714857335682861495000190975911252188003964197621635593757437180114805594422987304181968080856472657135476128316292004498803154021055305970766663627493283089168809323592900817874119857383171926167288349184024297212904349655269427264025596414635259143484006758676903503823205729341329815935330444464968294413673234421583807616948312193331198190610961429522015361702985751055943264614685054526849757648078080092213358113781977492717685450755383287688744745915937311624706010912446098294248412875202244625944776387494919978404468292573609685345498432665368628444893657041118177938064416165312236002149187687694673984075171763075168498563592014868929431059402024579696229245666448819675762943495353263821716133957577907663707645695702597388004384158058943361371065518599876007549241872117148892952217377211460811543449826654798725800566747240511220073834592715757277152185899469481179406444663994323700442911407472181802248258377360173466853007449855647154200361235933973129144585915228874087195087086322188372882628228846318437172619033057771476515641438223067918473860391476831081413582757558536435977216500282778037134228696887873497950960311088991961433866640684506974207877002805093672033872326296378560386532164323488155575570184690890746478791224363755566686780676105449550172607911429308312857612544819444494732448190937953690082063846316782250648095318104065702543276043857035059228189198780658654121842992172737209551032422510797180778330426090867942734289557355592527238055114404380012390416877164451802264916816419274011064516224311017000566911217331894234005479596846698042980173625704067332821299621536848814041021944634246462207455756439604529853130714090846084996537678037932018991408658146621753193376659701143306086250098295669176388460567629729314649114937046244693519840395344491351411936679333019366176636525551491749823079870722808608596261126605042892969665356525166888855721122768027727437089173896397722575648905334010388559311256799915165890250164869614272070059160561661597024519890518329692789355503039346812197615821839804839605625230914626384473862960398489243861872985077759287927220685548072104978176532862101874767668972488411395603494803767270363169210073508340738652616845074824964485974281349364803724261167042668708319250409976153190768557703274217850100064419841242073964001396036015838105659284136845741191027364202741637234882145241013477165296031284086584197879511165115298278146203791398550063999603265912485253084936903131301007999771913622308660110999291428712493885416120380204113401888872196934779044975274542880728035093058287544207551348166609278793535665212556201399882496284787262144323628536765025914504683776352825876521391564809721419296755493843755826002531685363567313792624758780494459441834291727569883762262618463654527434976624111384513054814498363117897844897320767195087841586188796929558197332506999514026015116755297505754378102422389579257865621284327312022007167305740692868693639301867659582513264991459502609170693475194089753574640168308117988464524736189560564794263580705625632811892696630264795359510971276591362331808669215357886078127599105371714022045061860753748663063505914839164676567232057145168861707909846959322367249467375830996070425892204815507991327520885837811176852142693347869218952406226579210436203488529262679840139532164587911515790504605797108389833718640380244175113472264725470107947939969535546696197267632552299146549334996632341859514503609803440922122067125676987234279407088570704742931733291885238967219713539244924261786411886377909628144869178694681775917171506691114800207594320120619696377951032270890295660855622254526026104607361313688690092817210681986185537809820184711541636303262656992834241550236009780464171085255376127289053350455061356841437758544296779770146602943876872251153638011917581540281208182556064854107879335989210644272448986189616294134180012951306836386092941000831366733721530083526962357371753307386533382048421903081864491840937239440334052449095545580164064607615810103017674884750176619086929460987692016912021816882910408707095609514704169211470274133900522533408348128703530310239196999785974139085936054335996970756044601342424536824960987725813110247327985620721265724990034682938868723048955622532044636026398542252584164643242716114198178024825955635449072192265838636626637508359443148776351561457107455280161596770484427141944351832756984075526779264112617652506159652354571879566731709133193587616282559207830801852068901515047133403861003100559148178521103847545429333891884441205179439699701941126951195265649195941899754183932346474242907027188752235343936736336632003072327470374071239825620246626519740901997624520561985576257600087081730832883443818310700545144935458854226785785519153722923795554943334101744201696000906964156127322977702212179518683763590822551288164700219923488640439591530184640047143211863606225270115411222838027785389110984902013427410141215597699654388771974853764311582298385331230717511329619045590079380642766958190148426279912217929479873489018684716765038273285520590829845298062592503521284519259279865935061329619467962523739725655841578537445675589980324054921869628884903325608514553443916602262577755129162007727968526293879375304541810807292858919897153817973434961872329276147478501926114504132748732429705834084711123337462746172746265824153242710593225062553023147387592517247873228814914559156050363345754242337791603749525024930223514819613811625639114156103268449580725082734317659440540982697652693445798634797097431244982719331138638731596363612186234972614095560799206283169994200720548115253533939460768500199098865538614334957816500899616490796781429011483876456821749140756237676184537751440314754112067601607264605568592577993220703373333989163695043466906948284366299800374145276277165476238255461708831898108688068478537055364804693509588180253605297407935386765111950793732820831462689600710751755206144337841145499501364324463281933463890509365457145069008644834401804283633905135781572739733345372842633721740657757710798305175557210367959769018899584941301959995730179012401939086813565855396619413717944876320798688003716073032205474235722668968018821234243918859841689722776521940324932273147936692340048489760590379580946960417542796137825537812239476461478329269765451622902817011004378460387565441517394339600489153188175766505009516974024156447712936566142539493688842305174001299205568542898538979426699567770270891465137368922061044154816621568042198384767308717875902792091759006952734566820265133731115180001814341209626016586298210766635233617740078377834237091526440630540718078433580610729611055500204151316963730468492133568372654003075098290893646120478911147530370498939528334578240828173864413227100029683119402033234564208264732762338302946393789983758365545599193408662350909679611340048670271231765266637107787251118603540375544874186935197336566217723592293967764632515620234875701137957120962377234313702120310049651521119760131764194082034373485128526029133349151250831198028501778557107253731491392157091051309650598859999315608636554774035518981667335358800482146650997414337611827777233519107412175728415925808725913150746060256349037772633739144613770380213183474473011130326702969173350477016321066162278300272692833655840117914194478087482533607144032962522857750098085996090409363126356213281620714534061042241120830100085872642521122624801426475194261843258533867538740547434910727100497542811594660171361225904401589916002298278017960351940800465135347526987776095278399843680869089891978396935321799801391354425527179102253970108106321430485113782914985113819691430434975001899806816444121232733283071928243624067331965546926778511931527751134464689055042481133614349846048490512583456832664415284897139723760403282126602535166939140820499473204860216277597917712347510975024030789357599377150950217516935558270725339118923340702238320775858021371747783787783910152341320984894234596136923404979982793041444631627072147961174569757196812392919137409829258055619552074342432959828989805292333664154192563673806894942014712413405250722040617943552525552250087487900865683145428351677505422948032747830440564385815919526667582829297052261276287110401348017872248017896840524079243605827424674430767216452703134513541676496689012747868010102951338626986497482121186290403376915685762406992963724930972016287072001898354236903641492702369619385473724803298550451120891928798298744678641291594175316756025334353106267452545071141814832398806072971402347255207134907983989823552687239509093656678789923837125789762487559904432288953883773173489411227570714109597900479193010467407504114353817824646307959895556389918847737813413470702467473621120489862269918885174562517325193413520381158633501239130544419100736284475675141610504109735058527620444891909789019843154852805339857778443139338839943104444656692445508859463140817512203313906815965925105468580131338381521764182104334297888261196304431113887962587460902261309008499754303957712432306169062629194039214397402708947776637024881554993224588259790206312574369109463932528062416424768684954553249380176393716156368478598237159023854212658406153672286071317026747401311452610637653833903159219434698176053583803106128878520515469336392410884676320095670897183674905781630851581381619668822220475704375906143380407258538620835651769984267745231958241826836982701602374149383634966293515768540613973427464708996856181701605511048809715548591186171896680259735417054239851355600187203350790609464212711439931960465274240508822253597734815191354385712532585404939460108657937980586201433660788252197178090258173708709164604527279771535099103407364250203863867182205228796944583876529479510486607173902293274554267856697768659399234168341222746630150621553205026553414609952493560508549217565491348309589065361756938176374736441833789742297007035452066631709296075919896277324230902523974438610142630986877339138825186843165010279649114977375828889134503411488659486702154921010843280807834280894172980089832975369406449699031253998639195816014689952208806622854084148642747862819755466292788146216071713818801808405720847158689068369193933818642784545379567192723979723646516675920110579956639625985355127635587681402134098290162968734298507924718460568748283313812591619624761569028759010727331032991406238646083333786382579263023915900035576090324772813388873391780969666014696150317542267511259933155296742133363002229649064809345820081810618021002276645804002782133367585730190113717546727630590443531313190360924890972464279284555499134900051802957070829190525567818899138996251386623193800536113462242946102489540724048571232566288889317221164329478161905548680549434410340906807160880282279596869501336438142682521704728708630101373011552368614169083756757476372397631857570381094433905645644685241830281481079983769185121272019350440418046047216269394457883770901059746932197205581140787759897720720096893822493032368305158626572811146379969831375179376232151112523497343052406221052442343537329056551634066695061658928782187077567941760807129737813351871179316500331555238224877306534441794534153952024244497034101208740721881093882681675120422994049481794494727328947701115741394412284555218284249222406587526891722727806071167540469730080370396187877966948825556146743843925701158295466613586786718976612973112672000729715536130275035561678177654422874421147298816148027052438068176535732755786025058470840132088379328160087690813004924914736825170353822196190390149995234953871059973511434782923394991879366086923013755963685323738067035911442432685615121094042595826393016780171286692392832310576588517140202111969570647998140315056330451415644146231637638099044028162569175764891425697141635984393174332702378123369380430128926263753826677950341693343236075002481757418087503884750949394548962097404854426356371649959499209808842947903636662975260032438563529458447289445471662092974954966168774141208821304770228161164560440072363515811497297392189667373826472047226422212420165601502849713063327958143025160136948255670147809357908896571349261581613469018069650895563101212184918058479227206918716963163300448580201028606578585912699746376617414639341595695395542033146280265189511679380745733157598460861737026878676029436777805002446733913324316698803540732323882818475010516413311895370364884226902704780527424906034920829547550540034571601840725745369381455311753542107265578356154998744474804273234578800618731493415660463529797794550753593047956872093167245365472083816858556060438019770307642460834898761013457093948770029461757920619525492557571090385251714885252656710453498134198033906415298763436954202560802776144219143189213939088345431317696851018401038444723489488695209819435319065065553546173358140455448378847525262539496658699920584176527801253410338964698186424300341467913806190280596078548880107897055169462152287730901044674624979799926271209516847795684825833414022664772108433624375937416105367340419547389641978954253350363018614009515347669614762556518738232924685473569358028960115367917873035531593783630822486151777705415775765617593585120166929431111388635821596676188303261041646517148469793854226216871614001223782137797741312689772667129920259220174087700769562834739322010881593562862819285635718933849588506038531581797606794798408783609759601497334205727046035217906056476032855692762734951822032361441125841824262477120120357763888959743182328278713146080535335744942976217967890345681698895535185044783256163807094769516990862471000197488092050095219436323787197648703392238115403634754886268459561597551937654101150140670012269274743938885899438597302454148010612359080362745852884935632515853843832424932526660875889083187007091002373771065769850564339288543376583425967506537150053335144899082938877373520514593330496265314151413861244379358850709446880454869753581702129084907873478068143663233228194158273456713564431715379678180581958524648400840329099819437817181773023170039897330504953873561162610239994332597801268934326055847102787649010709234438846340117355568659035852449193701810416262085042992586974358170981338940459344719374938776242324098528327622666049423851297094532455862521036008292866497241749191419889661295580767709795947953060131191590117739431042090490794244488685130868444937059090260061206494257447103535476578592427081304106185462198818300906345881870387558562749115873754210646679513464875867715438380185213482819158124625993351601989355951679689328522058247994210345127158771633452229954188396804488355297533612868372259353900792016669413390911687588039888288692160023732573615882071635162713328105181876021048521806755266486739089009071951380586267351243122156916379022773287054108420378415256832887180469879525130732663402785190594173389203585403956770356113293544825856282876106106982297214209619935093313121711878910787668720445488760894101747986471378824621539559333332755620094395804345379197822805903959599274369137937786649409640487778417483364326840262829324062600819080818043909145563519368560630450891422896452199877988493474777291327972660276584016678901364905087411421268619698620441269652829810870454798615595453380212011556469799767857389201862435993267776894540605082188382279098336271671244900267611784982643770330020818445900097172352043319947082420987715144497510170556430295428218196700092025156158441742059336581481349026931115170938722600264586305613256057925609273322655793462808056834439213736884056504343073965740610177793701414246154930707413608054421002956000956635889778992676305177187819437067614982175641865901161608654086353915130392013168057690341725964536923508064174465623515239290504094799531840748621512105618338545661766526063937136588025216662235761322019417013726649660732520107719479312652827633024138051649071745659648537483546691945235803153019691604809946068149040378198297323609300871357607986214254220964190043679054790499300783724215819545354183711293686584305538427176280352791288211293083515756565999447417884383815651484342298587042455924346932952328218035083337262837918302165918361815542171574484657784201343299825945668845582661719790121808494803324487872581837748055222681510113717453684178702802744524429054745182346749195641885512444213377835214238659799259882032870851093383868299065719946149062902574276860388505110326385445404191849588665385450405713236296810691468148478696591668618427567984600418687622980555629630459532279230516167215919686758495236352989357885077460815373214546429847923105116763577494946229525694976603594739624309953433104049942096778838270027144784940690370732491064441516960532565605867787574174721108274357743151940607579835636291433263978122189462874477981198072256467146640548501310096567863148800903037493388753641831651349825466946733161181233648543976493250261795493572043054021829748712511074040116114058999110930624923128131163405492625713567218186289327861388337180285350565035919527414008695109261675414767926680321092374670872136062783329223864136195941213392780361182763241060047409711110481400036233427145144833346416754663546997314947566434236594934968458845515241507563766050866328274247941360628760412906449138285194564026431532258586240431418386695906332450630003922131926476259626915109044576953014440546180378575030366862124622786397527466678701210033929848733750144756003221006223580293437749550320370127384681630610265703008722754629667968808905871276763610662257223522297392064430935243272281008599730951325286306011054979156447918450046180467624089289256809129305929606423570210615246462050232489665939873249339673769520239917608984745718435319366465291258480644801965201628387951894993367592414856261369959453072872545324632915291101287637706055706095313775277518679232921349552451330898679691651290738413021675732386375758200803635757280027544903279530799007994425411087256931880146679355958346764328688769666100973957499678365933978463469599489506104903836474095046952260638580467580730699122904740898791668721171475276447116044019527181695082897335371485309289370463844208932997711258568408466083399340456890267875160087754612679880154658565220612109534907967073655397025761994313766399606060611064069593308281718764260435734253617569437848484952501082664883951597004905983808121052211110919433239511360514464598342107990580820937164645231277040231600721385437234612672609978703856570919985075956346132484601884098501942876879022687345565005191215465440638292538512763176639220509383452043007730170299403626154340013227639109129883278639204123004455516840548898090807791746360924393349126411642400938807463566072623366958427645836982687348158819610585718357674620096505260659292635482914990457683072108932458570737016607173981944850288426039636607460311847862258310565808708703055675958613417007454029656876347741764310517510367328692455585820823720386017817394051751304379948688223200443780431031709210342616749980000730160948145863744887785222730763304953839443453827706087607635420984450083062476302535727810327834617669705442871553153400164970766571959850417481990872014908756860377835919947193433527729472855379257876848323011018593658007172911869676176550537750302930338307064489128114120255061508964110076238245744886551825810581403453201247547232690875475070785776597325428444593530449920700145387489482265564422236963655441942254413382122254774975354946248276805333369832841561386923634433585538684711114304982483989918031654586382893537991305352228334301379533729540162576232280811384994918761441413229337671065634925288145282395062090223578766846501166600973827536604054469416534222390521083145858470355293522199282727605748212660652913855303455497445514703449394868634294596584310241907859236802245607639367841662705185551787029040735573046206396924533077957822459497104201880430001838814290081730394505073427870131244668600927785818110409115117293748736278878749074652855654347488868310641100510230208751077689187815256227352515503795324448577872776170019648537035551676552091193393437628662846198440262952521836785223674751088097815070989784130862458815226609635514018744958369269177990471207264949057372642860052114035812310760066995185361248627467563758962252991164960668765082617341784847893372950567390078786179253514406210453662506404637288156982323175005962610809219552111508593029556549675388626129723399146283584760486276270273097392020014322487075823373549152460856082103288829741839064788699232736913600488374366152235170584377055452108155133612621429118156153017588825735948925071088792621286413924433093837973338678061317952373152667738208580247014335270092438032669517421195076708843263464427491275589077468635821621660427413151702124585860562336314931646469139465624974717419583542186077487110573384584336899396459137406033821593522435947516262391886853078228217639832373061802042465604775279431047961897242995330297924974816840528937910449470045908649918727273454135081019838818646736093925719305119686456018557824502182310658894379865224320506773799661969554724405859224179530068204517953700434724517628935667705084902131077366257516973355274623029430312035962609534235743972496592110106578178261087453188748031874308235736991951563409571627009924449297491054898515196586647401482251063353679497371425102293418825851173719944991150975837461301055050641977215319293548753711916302620303285886585284801935092258757755974252765840117213423236480840271433563675420463751825525249443296570438613878659019657388028684018940876728167141370336617326501205786539157807030887142615190750014925761129276751930967284539711602136063030905422439663206743235827978893323244057791992784846333397777376559018705748068286783479656241461028995084873996929707504327530299728722973279344429886464127253481606037797072982991730292963086958019963124133049393504933254123550710544611825911411164545347103298810478440677801380771314654000993863064812666143308582068113958383191695455582594268957698414288937434670841079463189325391069639557807060212459748982935646135607889834724199794785643620420946134123876131988653523583129968622689486084084566556068769545012744866314050547353517468730098063227804689122468214608067276277084024022661554850240089528916571176174390203375848778429112896232470591918746910420058483261406773337510271956539946971625172483122306339193287079838007484857265161234349332733566644733585564302352808839243482787608861649432893991663992104883078477770480457284914563033532650700295889062659154985094079727675671297950100982294762289618915914415200322838787734851309790810191292672271037788980539641563623641691549857684083984688616843754070651210390625061281076637990479088796747780697384731704752534421563903872012388063236880370179493089549007763315230635483742568166533616066419800301882871237674818983302468363714883092592833759022789425880600872860388591688497306939480205112217663591382515242786700944069423551202015683777788518246700256517085092496237477268136942843500629388144299879053010562173754591826799732177350293689280652100253962688074980926434580116557158867004435039765053234782873273688408635400027406767838219635222265392909398073673913640828987220177767471681181958561337215831190546829360832369761134502817578302029348459829250008956826302712632958662921476531422333517930933879513570953463771836840924444220963193312956203055755173400679737406141621079236334238056468500920371671526425563718538895714164197723874226105966673969971731681694154350952831935564177056686222152179911513556397071433128936575538446483262012064243380169558626985610224606460693307938478588143674070005997697036490192733288261353293631124036506986521606389872502672380874033967443978302582968942568967418643361349794752455262914265228424192430833881035800537870239995421721136865502753413622116931406946695131869281025747959856051450050217159133177516099578655519818861932112821107094422872404424811534060558959583558152320121846058205635926993034788511320686266275887714460359966561084307256965005630644891875994665967728471715395736121081808415472731426617489331341746326623542220726001460127012069346395205644455432916629866607830890681187900908152950636267820756143888157813511346953663038784120923469428687308393204323338727754968052103028215443247233888452153437272501285897476914608083144041258681815400491877722878698018534545370065266556491709154295227567092222174741120627206566229898060328916720687436549482461086973672255474048128892424718543236057534116728507575520571311566979545848873987422281358879858407831350605482905514827852948911219053831956242287194847594078593980479010941940706717644390327307121358873850499936388382055016834027774960702768448802819122206368886368110435695293006521955282615269912716372773884189932871305634646882273982887631986457098363089177864870866761854856800476725526754147428510281458074031529921978145577568436811101853174981670164266478840902626828244482580275320945499151045185177165463118049045679857132575281179136562781581112888165622858760308759749638494352756766121689592614850307853620452745077529506310124803418045840594329260798544356200937080918215239203717906781219922804960697382387433126267303067959439609549571895772179155973005886936468455766760924509060882022122357192545367151918348725874239194108904441159599327600445065562064611646556654875942473692523369559930303550958176261762318495619064948396730020377638743693439998294302091470736189479326927624451865602395590537051289781634554233201149759948962784243274837880327014186769526211809750064051497558896502930048676052080104915378854139094245316917199876289412772211294645682948602814931815602496778879498137772162293594378110044480607976724292762495107841534464291508427645200020427694706980417758322090970202916573472515829046309103590378429775726517208772447409522671663060054697163879431711968734846887381866567512792985750163634113146275304990191356468238043299706957701507893377286580357127909137674208056554936246464126002437968454377733902647251281941632007684873625176406596754069362175887930785591647877727473927200291034294956244766130820072925073452917076422662104767303786316995423745511745652202278332409680352466766319086101120674585628731741351116229207886513294124481547162818207987716834634132236223411778823102765982510935889235916205510876329808799316517252893800123781743489683215159056249334737020683223210011863739577056747386710217321237522432524162635803437625360680866916357159455152781780392177432282343663377281118639051189307590166665074295275838400854463541931719053136365972490515840910658220181473479902235906713814690511605192230126948231611341743994471483304086248426913950233671341242512386402665725813094396762193965540738652422989787978219863791829970955792474732030323911641044590690797786231551834959303530592378981751589145765040802510947912342175848284188195013854616568030175503558005494489488487135160537559340234574897951660244233832140603009593710558845705251570426628460035440282367876855098267816176552037579565548167789603892749835560879154117774942357340076416109329400389998219926725708695732606877497422480202330752518765025596842076069322998858757989889646074438178817008154889522651672283404527721910699141576463948523112679473086580319507645519767562895742888179681209002638714525785831527761510908863174024369568056787301523542780479341426649522383370711751126537550394237209878466804913947344653071407962259728713050307725871487557050258257346686661380235142605611619740554343654869800544487929597028759035225840978268359866644658604569424139072909526624993290297344056816068380572662605727708840707347149606006456145407073443278251408747427550672230484535700609221439000299298160821171704791761450519100813267037521493074056785331110605835291278100739174994919784511291591368110739405517520801963053935074024850955377250036705466516233043042508744232426240463211507899733692998540704165626104197670020241509489241185609240963760442961200236459070644977062720791901923596480704892363697986019828308728422856475235316288279132429552481444750552190967204608068954518171220493032185374062724742151974030576904360268636078079200477623242955182947352202724437633902772139208776706571624163975178585925442692342853527432885633685078965196207251941655606187037055021846284543425785038300009537451829295844046491883868579348396115129716058166574509670367749583666669312188176367964494361713041603724305065848513174926405585519401800518090847521186822461697614924323831948643441590855801107307031120150224341607315792952875293683582039700338911211417068521936658978945950315438958901530382714300192958907414994359289408309707707836287591448403704503861896697581120185231923186865996803858381237032915620757883594878094168820553160512819015264759280757495815456422134145937816705699286829989561198235383715788048047870458417539466549769017322031089007030336291176730844845037214566964440146954517385743415781015861878383927855260939913057025557555906094705149809348777332007279757303824598946680968082222134848587382299928179409082566520958165547247524456674369759447468637633242890426977610679193391098330042231029372829879890320939109268283630617361017387812367989864514931170243712828588263048629888449220741564060714705913740552466575697187021735528724543942771480917936443765063786186132434863579741125852086345992780368879249835436329845768765016506511534500869572123950754478568317363155715352704652423525973751340882546160966144074667551422683603195980107215246355106917187133573168548563128085783443562367095965094994696882066118511808603420282133180124941099150260143545001743273079362511307029825049941799428445114647932915459955590958780762163666859179106543596606525352532027365072598912125568684280207724648772201099663182955955290339331228436486447597356085984076094729838954243393262315323991898185226418083129633354635687482886346561850481063228880559673784456200094146560349928087940511531005758712955257196411150685034077371060438037125957559698594936205847751202635494734753474818926225419035267161442928489985753674069216527163008606065437373682355658862648634368915321809557220445677713736831045807558452961283283260631962972852796667436297480082131862792186904428434263073576070399966943078950814726973025381737569492275179535432615691204059483286094999236641228788122641914850485632807206641855705952037503032291689448942757830609091085241060140068327420558396977382315073499610875876370425556496408685507194225634496673243065625925047458176273328181601701969816654242637876360145303594653845032547667499973734083566513818602515652028363738917101654541488267444800910570418616262683797112088614135727961109908829297022969212818097879895139150427093678644498319642013456683390877594300644248562301212461451169792193963440950808322928129427043659914648274998437594211302041829730841717881309037955854560324717081919530277146579455547554475428443440813938890860977601785738930751866190650501807716500184074432585402418436050111824299070232341724367452536534959479906333454075437181269939983371921848541873597984534893459226851506818266249007802933501265882497422624188535252663670282766249934982948874833106176420842901692305289960897860413006510902817980504058710767117904113021748279668235300196022025318557678984331758680637835996879160153892222023657576558158661140919939486159920915991755334178303334764313163501270539069707932656781241590643428472136023521823674121473312449994433415591527431593168747788253315509277033620290122259779480985539220006452716228085539827890658423344755282127651765057266326769114107503484587189699643487577513847914818363510062146681858509634888708145697672202016799119946241777668890791713686594596072646853881077878300216136827669702622345941873747673353799888440342704680304255169412715873932039844437460454781611305662517641275982118193966110185056288055594256606003231211618099462212930100247091334715068226843045868030090424286168202556214094608790006519109949557081581650582898334073946608445756578063669027284346201858732825292479650528668140850353851983752363745192562279549029055790703028395010485483592983454281448730435804705331508151050300152142811717539364913316617262123540552786330800208317705563029496359420165433309409417719632623411938710516157010179805355167937086029136675698609712412036858381295769530779814136570017476135696698614606849143969957383763169582460251334210807262171360194301808720988855141502416381832597525959316553186583311712685794152720661221842266141182515465748487831261034783454674925830872998544742120644509523324505087743149616655525179716802099172002640937492190756993689633028139164720896358177173555584859270652450486251641954055080134351032338981337830249770182275490638149996472333407961304146973947637265086927334710841568560843092131624043462986392084166005590459850649124350526476606760034444161818640367008377411410109432058895559865867007786367189694408962232137403411359719913313594655368544669236765258901210841377743248219181274784789228726489297003237187345615798159983483910041260105074696459943033197881063491392381249050306143340791832800406390709867259619709831126596014747372533052685371774214655400587392462372761736490519871336806772395257078136068668326139501432950947485159472466752720168431658660880751276858475554118438116901162200555211348448896066825922743131900796301158708467011765493539304656335622531124472779666900583119061610197266307397054253143981845737944948678013461821787593907699960202908396567728784690573640156401504769644899394754147460833991869688927115694234549265124664550779255402810503762203596753055860185649205606287909076945333920880884947782889485112215474323019138324556299388102061449026687601020775321091568497783074085964985796715261701003947549453991769879132354655010640735581699940975624814996744327842920276264418979391815839456270817330158216022551965989876937616401986120746675504886111085572676450705262244613022233585207227362048505728923881588493875453522918639971438088406175728622095012250651586310425888413435543197372985621775307202262947555248304444534043488887858117034134534252235431940787797284676018158322709774518092934219318981581248283265895004070485520609989378390034191416304463916388054965878650137504634169565515661829887863070584230696766025405302481147100789978421183048901046405689653970288559553092555863605215895737511408956490584415677493710585964801431587461449125054925319116465382158519737009328019453032057262845265804604633781663142993307664664653076059054896288872418971606022588261757753992205513150937720062486308556282049357575272499556708922163423398360256532873102919400704117691922085001511673567010195897100179701957812089291096941775436990436820256302405482262540190569650771058157424072149633956036527028333440730575007367456226058464988611510168961218111905847171446106871976101745658737379674069713742323875383903031720020020720592848878512391174647167374373792328388196620168762219134623389376259952702567213862211245898021213050140728890430032253550409586681872413936993819306914874471718664618311194260316166407037731648700186479960024304400324224180940227853330901150988087067826883531720076752255313800881878043169019007280483179928741412547612308960683309582837766768828757868868309297600101197453389833195258861963013291709438581661537417179449631917715431250695985348128568461937766989427745917091880252001274990555940728969659479333167224362156789677696670803522903901848573080627567086765862710476940920356559302535274341896592700222704923318682999156093641375700498853730459639615273462939697495174806269645179301871998678853758141597579931480660855723256837430528276417567005028804048942989958094810353483393414492788592526219241554723199714338508663732092663272824351493364070458968385234562474436117525676698776759722343920635750747155291810276261401299248042288399029787992541851749912963028399072963558857989059331779590876907390564602562353356722155225946883829845288292296627513716242217295467867071584092418408414755758253938524096330205134970474069539956789798172786092046228683973577981511186815265988460694975896548131465115039262637774951376155724819511611987725034456471073851343592735553871246237559819381321423844158192907004638977168388720791636174143249707910965816274642971707287172514274589835689709553462682016908535610894489840710058192030217694512077177458879551951047338418473998079630676788584516757572990430697154264238349800987086993367091210839445350624592243231234827854966037465718801489293794514787054060792457590060121962212392872001721558866634573497140953372115165598575794172441988902616701610161155783431502546032878119842402748460851072240667677876085524761777383308950261006438835055020545632434616785945194179566987496851524488384751361818066710831616556420936927052061189851729261714171443465550870630606355101294940030975916779915842604919712095432270267843265429657240327208871432199964531320258710967716512854966996255269860731176371820749882739977060199136209308323073683820645573256376598291257813149222422042797124144162995126594563979275938038380478262316042432539913285112303224703756194232173304785407857624401329171799297924078339071575798142681686465538294684739920588863165593491986789696284044734496802407709283137640810335225524271740410767356542444100448334744010172644105295478729634589864050120360802445119035099497449397361718157527709378020923666813584163626831926340671418279742134254622070541560005095967404561684045177174795279035325493258912048338574659009678173041600052108893461076875400424197780308288518120017336955912713771419501136130440975327919050489158324639914348353164868154857917863293512392555251021118278857369606027693130146966143344964230211438248370563353279385889526767207668897127443581563208810665014956814355879657690985776590276870745365927636497555344961730807816098710324801379513617036776345759497568620801399637455176242514778062872226597145548290676929571364357215267446898788941882075129222575650914355282887461419509786242752788157156640076372103780319404309584427254926998716923433189002214150311399876526068876156674021019720171960239086108297492763956954115303227546017387079562599357978530244347671639959146231793123998998692843797570249236955158729768385400522765149561444710597196288988815710941517170151811474351364385400511624620213117480079198374970010047136343252328157891135545045337190527506822915618500332846956792622620819044247334036250389279207158596003936315336884272437536679969864793474113319832861944146065392278409990314384035456504705678955202482717601187433564369024350308563130955905525039049273161331173492258464460902453507919018441129932169977045183285358648042855682220873721361649058630325636891308410376021567992702000532235543980465311933977545904404507856802139846500969342954731026924994758646605809166998416068464608729394380827430828581747969417287299031101319267557389798409136425347969494348037770336463495847686298259010347072786121862300198660798778268424593383563891957020685352160321163523006498874460020017041305698536515466875202385937518328037285114327481169968369284922044738057063349661871124094783591586962685864358914135985425357768877493274363451475448864086881803036965243175568830020586077325695971608648541583446843248996307701137134467515693024488548207712413355773230694945806726784523594363150787272815790157307003317879685443627952571902362327461426286873273800949774112285623766321490465329407202619753907174042225953924288816455979657003095714138910693684503626823105398674375324005270153474589332567951494185453780882706345729596216908538353537038141811557381637820903256151986974535764641212549807600515614170729804699481359348315056811664279321933527982271471576734018608872151879966935025270075755609971988286306428544812827513928069470275014816328972731434734852852950460488327167397898156367880478044360210900732072736974934463049973144257156043313369038761810094887312071348271081588985748326585420751007795311832686170803707093592761493678253085834048235100363216637895742620255035011686154340737950451648289675569835893552202017367954807578190950269798127114870343119036311224612829530382051287043092947197459469082102563478899543177152437969621128122450342606639926885213307919637027778044885792057304699080092344018663811325209712309647605998994792575985100817303960682221997532730160658262852758257669507854726034938298133582528178670608512656002268871781125359782933734779141273628418865617592083287944741096970387985473698402545806329483502235939354358748022398976091629625011047393116944910066690723063469313016971182063253526924404384009372428442820970936485690946892008737175325255703054353982872781230113980809386701547488580344563187131960267854879389331620500767526411204439023758334272429869965478636853410284885737025472550236566341868091903838867078790720840361940216467012153483797815183282647257862881520710108149955898033811896156944175676134071704653851217090212377788433364965187211990540758187739439752836414395304424591390317881300418879188711455314826746998705558793104024038888408385068734162507165727418513495208496367095554245043948394804597915622828248378793415272036226336956180555637107681488889361927574265993582355943153088793305276755874751236506584396947560429719200231986802435171993786810036110231256836425607959741057415362829718004649774857371837863903703901539737491165468549971645394161121641761071714540176519056505252066227788312904571969320599024137539598386198260320549583950167555250964413711822256149601400302303540789920969867750786720003807426797053030716793229601564862280851840335235017060858951291222324611783025316362894394607365277133651163164644619909902122492241231516899276785586373631552600250348848781323300191018939961670273141699962651194574263676196500243473717272902846220979839487106598227000995491887769618850543265321180221944428222842515255614118743401804194614139451471287252759239125596443735683397289633126767823491035633296129471910151571431157954909339032614119186547523762472153110207936911584874220582274734320173558507712243796985796549158062795027409771688611480761631516185530685669245717176922044366843312739893379411162972245169998546856221570241759471176995291655021168550010898576193463945590882627077531146577522388463435193765397349848024549760760244030808448901068387869726123709783578245166801171485983679405529046198262165669172027426285482393396001825459940925430816969103297841123402288560019054934275022318529471282960969397681373419770427812130014732867760571940596997927551246171843495698564171287248118346542064231871455182415286763056751311626771773506175112454633879942652912701057899567180572143655791835069177793070407573290439749499582241062381051491765023850418273009662017175094059080540895728375540635515221996582075735131570759236153986394592111558640009880975526105383825689927215847850417460651615113378833609760121148487005560165812492470682568442720454728963094203066504452986462235942260085549915891499536064984280345794927570094979594506023787750194706246323949549578230822830668408188025210766390742309737209162853371768062164469354323179178553058331714208479886303408465726426939557002685760575393478885870946005827232305191081175142349126873365859607998917329289158960018150918163374008060354752000515117510290122992487096154592802620607616982721810291673155489294237408519674330791660784990557821019357136624359908836138598085161564174769460547855400819535306708030896976304529468682332105328782374389441156851762717116363094014799096494563545929501307390036268210073263700823561506912696431833517162543903046989893142615442635951136346605737865495124457475262167895470362890483048499680403772251343193737344123661858694458806401858407314763379294038634043591941987235526301565460805186867606804316084512845916042441326987912538560299159967278766195195053176488313469325736689464438255813910848620966374267457983130122234387258312442203309457145754147047929387585823899773851521352372389559664312235643262628601147489086817159281066872708400820337718692153523526926347226809082598988984002620815217828261122931311820866007099686036540981832680755824776706950410997586143624355216194535302920025466736799648504337313349520821075119925892663899564756985870790185612379157886437446903787150950011255021003884531192365296559946190047484662064234794232967006052900370917557818870819352214687142723527763255989808694872111384598001412384216382782441273654244674883338167971620112886191415401936712909478990264666443156098372961501968624228250672306166720943546571425149308642488778598682759588749065077260250951829536765181182368616944724360783764294762469226319498921964644068316928766161506050813846319415116202577907863071801231159458603896562526554223346234454507394788690268159497513116885143694521021688319044616862976332522986385181885004928693572764766823855564636554496400631764828557578586661022855156485990882095868944436254698679523822686115969910056366082926791533753816066112247869531326158531871763885989377929188902998793879810003697307848959270625410484859315854323395683104239029907026344379787569185543408976440760130844481978626507947644083013494243583428188591525929347143631753374958970107287350127078898048163504567666769320755305184043244610074032167647183608370847506512693070766084982529900031785030585368213951273503863824605642510337775580986464339801718620814266307417259222600051109134268107467012901430165410106493321228379082751500100353001565459750832377296543969738204774162657106574082164996062622749618795334790706598897487177956433406484174564574790692517014949981009535341354890875483632757952240720698629102467170357925144176670388660990698572626058124082533622521899200041897574576531512300006444571593170177168863548333305192158205594611735771632113223393196532038619900511617817133400107057665268991970816920221946470432379535641186606392055860903445706415179778214505472227885298721019785884607004742002846887379584422894997433365627187799172113791616449254132971565287952953263975953853592095013863338050756136953089954758488302426196275898594151378051580502576754040178579585244883117210508927708922727343197382388468730716823024878868858551010807352278140537140652075810727084816726397709873145516264691142328610303693298433030032367616271426406758780673188397151500279816337477907877503830798675940459107392103458740421961703492580818990720596129158642020288573400911495523886510791137149533463976398818394880453007507474037228093682053543049495194833283347007516197900868728543996298157560589163762472306916287111113767608648032375245966493041175394613646433780467116505550467067183622128579504806716563042762671142999911348769844705037063790018109688862972175795173243380278061747049630204249291661917188624335559928209324391944571188632155632016165424705537593869662465633412154101403228699093015913288580883124124288287637387274283803859071029274863335150309044532805259779565892055456243429798279413489175638240077161217332473642854016061004433764145722078592171559140103783202013213383309638077890409572381055882939279637438166068683519505927701951536160172215890428785678482068291944169871819286273082704441630396254713053284388337913374768735826122116258360272896162455904189677024745382758396652299371235163048983301242141745578859159425605979242772181990855627984860561745368447892379690797559455515464685316302446232567403489584546225674485820204245739199425309426422450420268903815015268360241255980759752364816280930489127461511962315461140082205639678065853540766868822754265038122599916207601708955674744652423445201766165032594566591296678632462137991922296145867142248249288064768032108647799410041006003390679275237362546027742960073478803835668752200348245769490845686269605771570191917489226063520812973879744383548328613693956245039297680578322340217167655591776684037572348440946176293128849268993687138983882227106027903799001904558336007973927741092665573923314702590923389065438842235132411538801855923495613993022391964505045036935292701156630515335191864186482344249991927202729534595990630487236080415957600296681211168317236603811054280359144572024825645610571405546242082134352094810841715828957244507206354681600230512014084805435874252617101768185388355755871741542477544977222141926131552526910917556333193232224321852542218272914915981058368970250352281300214119248601424806807975369964777193949068046835528083473276103060494097330916903167830979346366118327845318687164626807388336567045660104237685058013950744364796392228411269794513477300492498786496563679490992913271252897765191817542796280608493237552081536111324033971316550439188796019838213858500077324246177884918758145964264233788979333081948816004011312652563569324465939840063689031525472292399141447437706963389357619260391892479363178008310261141954854360515778716004955788656579706658855104288246636305720777890226677704251268157197953322510763890368197628440286102588053923393294746720240885412764923864476021611626208242129916603622991849237822363009834781195229138218473263422857591209798054782852505918379833680178741124264474600225624149806914007409797210232785395756151283458061654111179267104279905793944971349463289504565128688478418717580205045832838748531373691135102550620102775345809439105001021833973245650472889476879298925945019875076712236379187586472012149660611512804870964886305622844083936944387216921208492008515583812510707419551872080937469424597311728117210519289038963703942357768621276682109318276366498404212493814409795986311422543648396549998347908430702176438555435125743682822815303222238083476795111355701480631820045322072379489186357214910624252699399467101536684623410515333814268477062758520352409920797208699145373010955164150331762820019691641154602682072366925527514184299699205398534330730680573723805041671972211273740507892726634063885068673445856077326664838457802771891147580132310551987841336521851907146068138986886710314759826461129379543952667286727599483359025974458786876849646268348443441413591771458776608807784535718393293719373932364083563375766884682111179935055410208556188490102016005056395416874510822060355541081766646052412496622442280454524321603203601946413560979200195902404979292367329892455399010198011214029086869992057589177718807414612220502472858571536753074781438973057178726836636015761361007722863196388526462351255380773194595635679653823624999265518043307963596211067455285214290262949826567553352731004687886573104724664933265679273313451229550591862329373933260860774513507753090157444382948733977960532284935830136183795862648032129736847481751647691366211036036950910666650517171150827820093278835872259839404630683763181180890442362621998812368268078579526219721668720174551747262781803268305854880397097704793483103543985590784355277667603313988460527150313885633246768892710459585193289513916782385773577265810047982563935519352005520408002870596782497393747886052835649359149783803779649600052124458347790017560424658666519980770288394385163809550430492196032443609034008517466042962743097683871519459826447359402342482110447572911177795877313415536095275957089861258677145625239945007593802060935502489200847673322930857422225502064556902391265436635785242724290560532057540308210145123820902174669757976534751725014658374788480805377351504222240429576036137543248619965589193922050469998210629316096756517907513229607778575533102658584257608668676453552092774827556754517716995087894118059363052499449670123759800655349987396663953944170170596981015127193331184076792327185395398097640485278467438723164329100290654953086128333026640075801296184992070220025559721569575883761687843643467927558635739722535648841330601192895746428093578580811323314331152874821797660397125795289003640719892332813161164041693773662801325973822223742681891764895964227033803905929596496964821331144731667650419767811084909664694257170694570078712640144865224284694889761725674653522050616210730010192624831468212035516995015220073163840041320303332423121670826854689317584366304307843507859281044784926639526523987186441733800856816923213474297545832694021612533328379009606486277854941266795136740458774169455961407626566250299006922672678760365871379327960418488393933934692635434154809518362332331752293703521029146413312752037117166754872063473892329378510729029514462927415467619479427471669160304978292889614745870264997970792063872408250230064255449959040119741085351678444090188064629374835443961440035352331030404117845722890295818058103212374382589870274737040106837777159251264535706508300921479258349892475127453622006105854575997369313529707814374284134055195444672148941505745283917160371545308252555834320251254241662445752456296445791076971715214709518505500355054390631688258105785074635656204791466768055698438455202770996971988980723371486956356703177687763789743273492829343905145567060744607970476931646278121417138182743785614621970880870210642110573778514713588373773882407652804519142713748811055974471831009393751976598021002410125112308136826033847449108771613228576602639388492849598982365657272042635720263748256494949126291419171306462805956698254936032613201925280434617043902892602799314043613702658201213128514881585731117821041310335728887181729526271120008147506402683046418988769747879173173703813999188824241699421215277604518595671190941807373479331099709283155468165639527101046113762540664495861838546389822089967783295501114314995936803982223037136329574232173574464734210974149174364199473195884005263872695923183642325491845595504534377846709470450959420120211422086419127904935994521373924871107432314951138042937936554363721726348190757113531270930795272952211247953149896990808946657476955651243605611420086639905609900038030250612423607750329341347289050131677280971316268349596340929224303119508487886710353352002371273020291659297525265703921042149634952385708560572343462157695698513406830454833154590753647114699682420910232143117176922773853477041779407644100130104859609270721132052318538222744487024332710398781147912754608083611568779215131131045008366363100751751102590028086427715020962713662397401075288445468331618211502789264307297635576105511246203324800531059951115054314848295534329598305742724517378865271930007323217362375873273148909109455374027048118555719905168393874535206797085921189640785489504109405699659887159886336207795504521932156336124685303174705443940294182926355240155452316098682553138970188015397045962501691796648125015559323114826730056338357972603286017784741496004569725783495620587328730124514555763452302986481495441009078835298012070126541095251846066620176742045257367994690771908453787482060802904825167017661982073061833123921935356900407052154989390344659388090475077241695436518580750664904594431888629787235716030224813522046010906352145082806397492755128476943549962033991644887919743790209571888632002475020791023790730729637463263366745942755637845356913673455240148971259094803685662823210050039400731066320752572831471151926332892852069672393471750982952602125494764330195357438350925828311133911539063376617373077236302798898699857994501659237690675488379889294006051628261400481504694828140330839164342486509396354589091328059511163345503656348245191505831794980831827281347950507727173359496633718821491928378711646390356692577994245739435547304493555939684803279020861419681508260648109246885433833298663907454780526362916156279880318782827074516303278639075665336219750632242486457694597535966732006038982629300007612514947980089567124525695598275854857690124636865949422422772717715184964175107159841635720724122437196806720392706478942789421712842641334271183184794413346064724314115015509855117124146682433123520628406572269260690474791964472975283227495698196327787281625954012020538073295825004974459308097824095299129654233184987988007716816319860865120883158672565065944140618446837496318929137459934216034848228831582897309421614736892558516992715531155888876007217034102445874402084434282730046730979555566681150130033888958380231464313829002600763228503475830780878895180313981020762788985174353478225120846759497430024437895842895680752663203627696299460180834941994912706559130840005862656399639110406851041282007153246256426371456355757694528492711263557719632506589654553648212545926335525729259528149934158787765156922311915102337344071699165647639820008969846298439977593853981121332181032819896994579261764935829748373387752352859464035138238230626945363458100319367250206982807384333411752831573143426398964163471270530347756991558003118159180911378802688385475769729233988828603230299770430666288695530121027270576339598976894102499684794981684201199256134807564404065594623837087236888125489491487948734808614168105521140018455170084444842948475507327366428272220633658240174549880829130188391401568090500008495465737300032747797209917507461785951579953202237285235920400742515225638616675620318839811761861196022162847431907970250367459282804678178536647393560035403827828184576694782337457113822121932616729501042706940952026502805228985909350023944908745626205345221731194095778301953605185038549614062182530618203651827337062111989390244889753863581809944918157848783365288654365422483020278924170496896511041727594750178122678581439174864942435730090917126487716059592097445811462955422310022008512052258976477811482703942677666427827462593951174380719861872226558650403002846914692786468003183603463817264057027074226203429718755580993868712404656223338914646583055430131550952851097263005080518826527268533537293733856918269371716773031611864749481042421512791591014606569795333133774095936749326441463702427524539335030130992833648540706984034399121245249275580299798824092066446404258596620088874191649877302754037292042158109378147131362262886666945474212449552849091492193371936234029433712557556998865296623645035351920267776379424820828605689362315215231788501452131321491469868548359447068658501098131420589267641611516210940535678073681008973424587293270521085357267638056422884092966588447779527954671073519329547471301507922084032823220442894467821839654711090211734072513972475735700855531274321999675125958256806323588088388436620326226619141493474043649800024739833209241183866742960926946070141838817811071428243965779638843986478231371542498947258304114514952687242361899676305881682084632743744121039055276521871073556452571336011455804558568455865043285991767651961932711434986654077745145004730727117147957122275720181288644644077751746032824231733853376529898104423224046772463204795179809715760258008857689751340594805482687728847762938464549604027037050853941909276993706680455171941604037635118018551365754510952470346022600207417428238494817822549063659920847490375832057446779591067556606407750093471298170058187694080279926904605949872117634151914882251867043955731001793710004665729218037284879797156922788883970419825456570642890898582795862565990137596875007856985342094439959715236676735599115570900614130188539560069330508261157883159790188291287776539696406753920808485822904755619051863754905941764720809084852392996636537774687098568014236137076370467423618029218679592476977765292629290417983927505343294338447653339850122828362798515026374542796671771484197573390657287154305432157523544932053465375423820484485088463459085338667729253852044498441313686375189411768486261360368193736351339325408068522692147430732913446762529322640845330844938647151561813941363435036481779475509763392559882786903696323863303425794452922923775203287448902004053266813935475285501746453171721459950814556136469252665022711533738181759785579504198807548581133628915490090390806077541575736137375598801875730753624873700129122382611343810392343723135368988915337494937863249849417642814170452840829693991724323286772564150483765773114493352155385230017811082761636303709020525950377909253411047057004656525197792567933141088663264059262317889312603152857587164242119033379872577587429012903759362697272343148935725724188379418627686456677586869202760143980501638714352047767388090057892836338177973884573441001499664332358222579253517110594856078918240152199828522694650958763149247127952016446764740270468954543510306982617999140223407285489154680684209574320750662115448762664467579863644388023258636088691875944227152142965066416138496381502797217307126592057826600278471814003420926569307030904457024596467576490185278139314813150920364104984596906022531447482294570702527043630406111445514222766936650125425237207439401827752508941432915215170599745459312594682121435106227633033185043394889512767206372915124936819357031910469357290527628876878250048505480059732307532652277925524199131596179115220694196854791873415669978109670256299399320816450717417349056433986521998663905570935211985243906798615021448623928438739820187602285471230394945966157258750965032007124766575938137212480113415355061675472036957910559746106711254171174536954301471914199373197227971690211613572625243116472289366644142621243854981362369496357128211603685441607108231775107801298304253814190892249208595364610821395648113205316073707772076055993498150342406407751233151215899924629749784547438578559522708926710247919919964504304016600562176296234014928218161152050464381405120101763279790269327122270125927081630457940869593885030885857777676988057712027746185837281858599701772111603710982739324147197937663864843160008415792725306116408501515001652030020014274337639041878862263527470225898484946907769474761327639105259940566038238237163694355547065817482730718247418272636272404623994402844447364245864447510469029976526749734435698570853905781915995859960967506128309101947488656507512613971363292764158349130420830095085110041407455744378492789857607261057697418196336967907551883832201734437643980536829626873285189395308159721384099875365774663549325311393625597895430009119142674075385925496901579734191837104016999179009456783596285732244714790732045696471978631549086284123332517481278482880984876102210097427834751646279055393851966889569651087606287295745908892017023867207401060245389415195473932814246622312689236265027205640264302177690318955552061127114631467170389157733900654528692327208081115787573749910353244466936165351752212468866080593973805468948675560258870687103081189892202421749529345821953530099156135536073159095673469906992487426800195382175246210534986270106132159075726024080430082786835629319838427105219835472751176423302799589268727305311835580568752761240919742444763356809568748444104546702835236514152765627008043630974774537678098208734980384982599248810670297754949535228299516546559850687428317628520857196139379782850577901499623213922046234152416823803889446624267373001896543376476503634125182850951208886485629471439877956655928074916489625621859267154146921767683960545008216421626056106423144435798230691965780470574714846007296818237228797756049608915817868672936323790241579204728364697021031397518009784159855000705536493875321257496167487587258325992595761507433918622843798830134604454088081780968549119454119347026896505991986041099765321119658106296655005116183651706202928808776091498461673164426864197089230648463056754573887202476016525776085293772109335844538710740272925919152462676235381797869306421534013163370113573563511109814182112966221073672626961567267483077524887444841676657370240048508393702558385910122669483580683915454791660164569148630523935977932446725588671741604855038711490317607553732194472830582219155807880752453696932744601747360524205864696869757706121867761972058749104516514271549542385392023252697512349546546309061329460056650728309872803387373515537522356318357025370064940926380803173746348540361146600048468762423108947237916500745179705248628467276633755173036873683856440370498066179092008317107882104981833155261485053735407503510822393924744563010969204227884473716968895091118573692689033665971852253777032962201670810655181267580094085251506847757921913893213809286961195312209050380181076587488368317882781425278626187966760682197703909326006729615127557125278643706989835444409613917379035454851804039733313748052358791095558304048153480453918785403824323690730431027406264177776265730103470338402112966908481804616249648739473458441215530258152221499458222499419419547256410317502114422808652302802213424093193932727678195990608112598623967339458989619071679777780259511631477576264028588262514815821643994413506196081175890461951158539082613354960388032371352224516968118059751218959002859179739086652449528040782713027004537743726785553250485039746375739464609840856589301848223416149865831503466082186223605801948114554903515474266266061295026878409754779814072682395693147248760982803450811893834040961534314863011248676465315478758454946522227531877356089083504383708112088244175993858646630939704811725300402030581340904474505115637705410350141668619124852526949334829785101811147232987404539612754022221909584405087230662326888849704223456700011949751859796494099148971385362279458874076099043285422812773058183040249451087063369869468674008948109753971009084947683041071152955063888765249054565999426077388634739455251144897203610479375725447239660235477481274941606983510131476402364194914610598055637570446515566712365256828270157445284760220781753972337164096986264920557668761564457744644664925477346729725557053882859078923175970676863982496629455560193873152710362720124293120176425224644803181954468333763994613138361445704160888342225371558783580701611560271775414247233315278135669400989800444582389984200640748958923892389275228914732945531240424775520838052379510123938435858775454999001272068286659998579098429303846007329623842629079721823337274766946401526920488143042273943883838698807236503400880952451272600136152570415774978954642745928669621641542751907207896576567620470876291025929888771283405806131718206887950962735523080228036658853093027046194006144644918627856642449420816210203832761116962244213863973115713011899185316991515816502583428128487414927536050735501492751649655689498688144578280724154009011617693658986281137459279032257848909339768816086708570029953457215794209809972205321457514271541122093988698745628011653320792545519698519103842815726835120109236799524290686799545683083885930136672185211353641724422837049206036481544497177998861873906197012650668437064042512445995190900622608217984541513987408615618924659308440274701471016725471601668601739769199766201111998930155354062817781328238679873988318548093651417526904050273992326953229393103604569842520594710877602232101677467927935625307683377220692980995213327549341076406829369625653809798299221502007619065671332333071917531109537696743144582704745219185656561730561853216604259464553856168837599345327673827887812223153728111341735545170735532082760440774525442307854537481125966546355745960432703685421573869622444796092593675008309891400068538363588177874864271068825787874079928341825197714084223048949791551798767827468475408492899386476349839175392445932931291380807387650050522006666627273438445404989680118343255349997625011921767875580980672332416782617825708911630179808819558379107540118050962160109308042257018054929764678411538769143070882475312172313794037236592877104345544696266599992623393329864113710012680408116027696940228713650729810644525201655173386046865040621292457892714722742676386142682367640851641194766265143710139385568064270077829659680486077517949221215629173867163546498898538357515324974315835413991322136505155138410903090275543323644120225300770428211147141918147570961833137822943420725434103155582818669328386683660726916383696779320102142029046813370491534380592465471149708354012272410065039497421641886692274473689950625289450277718989469132963467585879264235211633546474686426054856131577840361143149026954427505648038478887943295655604844339184060202704514682782423151406507022104851959207231200493371767383523709308856526434484194677345382413296885430630247782554350281959571754332687358317282793377410102634717252580005510899808792042744778385364274972065430922479605721400330661597939815697061366098396405520287669991722547240206396060964299454270591546000735367315498807739083001581335160357301111141092801541228066667058785550927033385009831156762851616492425509292830390877098893494607234902865856020542206703715680463500382605276371082398659793184830936764165636079070660523343411137793121612020588095146143773947683538839504721294528349865480864837885019467676945623267019987133184554534837360845127671800567875423588719510589565279780453783448465046814695167753813695184510308323903749657162143307963860154481614495523935111212189443023826954057860116467373664795652065872508159275305713134383569920048999618043254950205219555020617927799305642458366587216753519281750334499239183325623616265020814903557861244051834404038159913582717384337340452974499964059918656664153561242430800162617933750921429658088283221957057843171697946284551330968382460003698996180592987950660376071243272559753650882038636095880904003800176047507866974433258772321543832599839986439501144954150770097282265369583943808509128411041629096637012742498817616344101667423400506836167648232710388942239482025308696722292524340750602651298857635878137500851005688687432827471873232428984773354258150416258955023854489068496767648928297072811584351167607761726048913558510981478950842984983605593659371053202059979044369735340166287645320637188693821897801573219076299810361256838764838726985360129448160731761865806680596837338941198265008732624266960024090883207622611783999157440210584278984506303601419933928362455402768350998972042185962090201621015651922358421194882020912378392755718560554165620545534719697866123505834896282128608208403497311998810772590454586337661085050958238503075128425964285974947159675425924034955860979643401966466721757237237070785184646638370671702995416983298869124728187680273812549629389876072234084657095098943201654876047933946794685134373263039223093317906873031699418007404800068725136597857958599478019949652342728688988717813516171550577839158713864040578956591823213708140058713808836523047167127182200601860881125726033986240354206752127690892108155226032930044410189063723659195711953030288248586847825648830052518126081035421351812247158400462751059244487058370954083531897521523610342040845076413767423473005882203432316047463304350628142321082948724090259476441189103223374049794740857827762204826182195142821798112437267662584689519510699867374022732300260261505970642152746023269994970061582359282822297832868401997290365378168160028841173067332449662838403243536504139753620550910521974909579986059572694138402426755596748637742930858314066480318445315329081532154943458288044293735568005276670180009478873358860913649494583852689279136559434288174186455594102961792995812608097064547465090234261840345010812403353900061073469412097838671627721613708361451511050077201170421405751029551149137025545335020681411652447691784586943540341187913507194728683338966247610118301700497261895611839898160539092008911727724528273299586808380107378131400187606725012692645464509767337470023676782013523567324262478880482343629009996330109765730571074508621321877968280743439896483552427144875730583032180249452109231991204178629832110645618982345049505439716180303956851265380149225169487847955472418638278627582327821299397820742867554710924982182446861479580814083550046687559626157906171759021927186972378454724112985575731793747953518295584299133692814058848042157153807468531130233549462721418440056323974458753772751807146601657065035375000078000547610036786369911132398586213221822462464343501036322398596701728992842523411315434326293039073595342914413933874282187214841861312790716268582668472059546640356511332792729283670421533337815648978787243472316577108118905881159220534134477675212977463550655110980181145470892170124410634923949242422673834943940786546583638685970026019915416838558615578967012722002322003168619541970289247574216667668015248082402211115619098290952882934227840649039533967200864995696544707521184613434097785777736426316586916987627495418868313324751453159002335440951714914081359273191146192006775792158563310761254707093396116441508800727293945636849253271858915516881472096011415405664003892102811864854595041190055800792839471619967600301877000729916613487810389918979927793308260333338334057919338601259926635435064710091260634625238574346352684749297906578001728766596825621946854107798742184455047104825113899365427994459320244389898513442567266932786132950485170204267041681042398878776628283501931254549510108703766963812060312761799621889318777830520450194812047427052045732125487339039302866808539289855145395183070167737253391567927690390733624859034335147611787051779766471010750245076816165572539548200948091105863173298917531184160364021950346357321959475586008320829267512378849551667250649220720609741203129313574353745218554549830258041565179862278016468937481723971338112369536373581105739391053691797392934319775188032524352586080827553740999721015400800469799279434223454476897075803131490654997645727199699628033269209089155838176032139892644880237691008274209066808004373992504541223684971940977467046731673788785204941656447370713254372831395409623181337647384889412182775687605827547211534840641119286609198061422822955249075885258711407213414016352381199891274778913139757468280934247282311021898430070244399964290644450844788027668653946357835978633014357430738552248011805785516300305948035170230529176193766804489745519006229814174022546879385980914228583744941429466840567844786299687303736686339751013910079845588319718939840420585178312625560990751642566660914485766068367937448065297240370993339629283434833266104136871344725962944171536616832569298746075193490043675487124501251738822895942643220617183770595166566490388962341590342836592467623892154316210947396500986925708950750411415781971894579948516829239976768526059094084769255556032094730179889261822947383468868847877421474782112462900504876162420975722951786073395988696418605399569127426110537996486482728821472986544793727051143103641539950430249248903898719047380481217370572566371346514715413122205631956995297107448454232578540931960703748062432887305740374143132382158355626714275687557551361820191763301086283797258551156741723050471906087361627708326296442958048279756363082376436161545554061698004581964467066781024334784598806924847727489529826204516943700371120191295353112919713801759557797453217970689981078697996711614064725835573138528037814479461864582163474520398558975123171364079746838514559204145005217721229144669927864765201003653978899709419567795422900041438454871434885285565176308029925167644424768218649062151219172342568685160060585978089662366883201283965312270307465481821199948225388143004016811445036211672024446204828296777616016563789757634979554872551080910578133942034727744847487698984192182808563041649260299176230362632250441829629652154385628760703742186814004738630945015910913254210303256135110757558287347865626080932564507434633723342240855858163385371530694587826920205239506727247536900139801149643165945829716486863220484179521964244983279488063134646201089139328705313455615037887692114592726850514677135599589063223865076477828269016803601306170856982886336353398216641166133554804037038210034458380815055830340179712082249390950385660958557139537463476283240421751934265668639255917743378325548207038610563301262376287698173472822425094615318907021508205042181039774894076572149908324785285459510024679597393084110627252254156964938923682735814346077275980334626431259827888944181849173802687044960388670718647708315647875891178035430820131865658203435407342292834745576965149868391503976141261336078948099755916482490625516855367948247405098464960856818891720369987375796439800116529527027723722601935755572023263101476869284762636285189304849269092640985472493648181412831689383283125795662135988355445206674089584092314862575591105196220005030802042573700289966012413635564880280339995694656095885763219926030004685397559802876555831710706399750666047614867776356322611612715224267109673618402529108255244615388577666027796080898302837068778139849238125451717898757790676916513246031087551814796001216762016855436138875351111446464459659489862868500384293816775979619127299904591343960428362278214574384910806626737203981596833114583132775573719396476213947036948713448379653367208865076094944310674893862810166860809354876204062953142683679016223243442162500961919886528250184780750093092989616878935144048527844852101949729314912293366428383610958359117926697321050328658637196191306498573320866152431989177517561330725336906062894401403624673579168612419076797307215389609926091477800392182909660567805157424539481270515827865608617662808876754852826435345792975109103743243148049050997201340093871209967992266732745697219975739749835295566344453243455703262602782931368938896296769149005111791641573964151622345962414387998499723972106259104524266556282960145967901286176415352478643304785581496257111395603251503631837450619425879073297479906540337812932343549647709599415970216918103681473383333064151387713221517339840938174656833323752124521204263514948017957370648574825588129624111414646926617747817386015615569677680806354280813392622226805735860439573916273877143508484770186626531697488864738682430941960189287589120213872770961538488095065653207344205898497856821448109934432714379412923407297547932647618296204036144364112746524043691754283585661405959433261009132314486416420497649479552017171086517069812241608482170721710164948247980774918016666318076045716395251838609582718327208657052982558926649231274050673123487720349779982956094106360305165816819038480111470304239018204575837273165208592253994751093890012112219426665445908677926913711549507896665766765460962882777751995705545072979236662085235078168943400320475437404007621799091881351094993966943134279859921580629270421382675621435340592467202350206425854109685955128295988801679474853488276232260898821426027966949488339973538091153102615727526061516646757472311267311304563021016442756282782191487924669897532097832652921682584330479085478336542697584330779557195200010120787240198813494984438436763827041174210036951169011180168326999466120100860532094157901928897613978403516511159934642044414827682054550634184830616197994602704896489524389702584341717731903153309321479805420208961951250759293649016278147407732247725732201913504568055999785692775430546578798428594684085867841341145382412407206567559826482625761903033834174251848538540384703710069087650808535086402176210101567282914356736771103511643978363440428302347807354566914381770474508945872117878391541665309247269795195268639282330037168506787620787754817839108197321829047879932913960788741768330818653181999406597926782213227134596324714095294630761973967499846349363609758067253661551807859814534953582160148026023317625201506366399391351428775115353212411225150570657231152085376502843221015840618982570047043917186490724120891714561202491730043799349994206586637985787346060480619228119464331562925686710879697123496236406193738811218020737915981801097590801132722578430025011137880349579204391899288300516242921760033764107933719681331920675829918260784852475711775242016834934819414005391646393521827371048915003658047925976158343651355349438431915092146293081995018359167094253026540329803249676158439634711435324714370392214861784382826113866885521598461344505803302636914394174355991753787166688140045296893435198765272300845846550156565989521130110485288169394156867063517831922185595530500029864832544477477719955016508265889671396408898805679580669160658060940485139280102227697615613826083190760332454846528661464942948396677330080707320067510426251414296244714536875097068785066005939402651877861032765470280632572990619689759188738667230511012379493292597649574826255195927394471764009255618521185772443088894589313045709752725867071455651423603418198903151954572188621149171034530596578450826186807436497735831757700864758799643227445489500780966711961621513676950853089233612386662834811029398046074355342727244281049032807567670033772711209491284344874508135688221560330504388351754108148303753443420841220816836058132623457677542793161986045430504448510555800411679433767132055814705872720882536047310649679318479637352788447885205873182866006563349325602359088898353777250797020050541440210559461072076492440913633722789739946639751234117883663125090061416232276570285410485067974498127181467643084141030023752565373049527672754845459997871633253310506190240215181468100146512628510397598394128823698621131831524776496795777441913323947985528716530231998698023983984731981788171333103443398908379580000513196534523383390109097044471434794265026285740315181520354650728231183851986580293621352243797543193801983432914312502757766754316869888602865677013500372589696445868683417647387839066544421819235857731078700231917445428714160030268283724049464360347876903573326188114310108132188552798589730345053440330372276915140453182361878321719988989055082908966241976585598057834142873730648098529078214594112649499219651136125677730769946058020640723918086690020175695641759552721135933758979116047598231558725356445682571437465856688982037370549704529071584697376355587060928012017697805329357967838079502279220010520167689887325410838931925090717428881081070862320755101848004176969682629039239983938116236638478713081932018555926786589807098502295373949421754246962535470439547324133924764852103761177731123138500161871304710647783932487585006361991196778775326807139246898440388265936051085465236922261927240349912103831622629724114408355686804998074604837135925207539017014469373916409286486391905375739329455653677543563294895308547919735618116894346944344364303087144425491060982948288158115956356299337794739220978511040672166448032053106709130375948843457873439847370765374740479308090343824433970583053269585629984793830480817797508901932397881964474728134854864856399736790769039302521285919509594533031379751852981866262011761260953213926339182718256327583059118937210691577643838872278422852900912261251408052315081202726247737066716153729796236517171183091817152280526537593373755812823486429693226678471338695988769158095081150499363373569059008428920070548252546176895416471077801175860714328662404483055236425937757985524486960807267305907650248851408147618917999896292907954060691650986275070330910088661199318365347811068950055323212323104099431566975712843211058927290756266529830683461268817435027634457348731308127878539668259480450244508994538506262228156572066562590807106009071947415806434289617313151570605581139989607656842772395481206246549279224664410867393017052678406522475041053604323508688152543821884057815229519878956064995606982745328922732703853758452092709242946673468959337778965806769512859044905739913079487625397989989468534486708427632847644098046534885512094360642889373837105351559587950751036819995860092479405220515488077774998306131379026412827371575710612817362497836474502072277561952126743273581685496119698882583112616695052224021881146693062574953847086995865745998878927868473871986438379048046374622281612687127634511309478316617599707595085332574602849374001043645034556580449442950345318338129078508883338583786977108498206651020627957076698334451779345271803769114102075574774315429329032629532114978826203515987412546422884395277795499289564754347105898585159005508490056969036939946380541274407827207958812061095018266675052829100428644011596909156026024587211745604551094076846979736827481459790404552190484180115456634783353438088153414037239817881907757630647233836848076617187887525444073186583050118647563203017139833900789875424411026277749259455787263151608748702504806203816260628415675429971100845723607943683883177569711607177476019773629986084709225612419033443038680607516077836502789166628360931767596955301493681279793546665239389865492208212613277637898202946799581624398705936239170511750705049392442937122875207210047900369520353054174702688100313142753117445624640735452001303351544161161284530636382206203182714120347105733305706095610419997744129437897233361952936807116294649741746746061619442841957715064212449115406707312213842064141269671545664389159471777969493519583468433678322141303743107342917437343763544159073773807768335545452204160755832450014127128997410149470548864724341589912960922829862407455160589149631021000595871347192097972398368312801101752643186861118351701735867540649265791513740582162972420188375102977202769228078017323536585248661037355246360519741758718234908738197745199604135160468808608272559061048282225757674635819166290343907054759703480904400430433331741346142345412745677987258923240909151087305920242790014967370151347721514257148023878189727890993192321188518040030497628938731198868763397705690319074145176297505582950790551571289772603435467222518751947227775034780629888158027640883058588732114089935625654452632562629304285439933282550329502893699077705490294707962200839029322144411265738208956854344785225355843731269337547937659943069910056990821560314508198864943894886795977365202377638052694955587145427065851747444596468235269410568519337370049144862376065979574374294931376284954237476962984236204040699032232862548282233542016522829128844342157512706020215383178452185648411506693943643644633903294628692150012003317372231594599370244046654644010709546377862736676904564259977586034142337627592585363126437089730757955269968503132069091830679132654203064003148245598623926575975731775912862530894654125166228407163370149790267384325301619010137297886469540342569455726305220387629423264806499623816308550031265168054478855681997310896795755442683922048513091902688240337712017786398604639800256037206069295346015367351300935166490475996904153484422840649464357839627395979697011999599689705500713980267143153912391461161358183406808760534667255305042239792809656622109111184778965033519003128193081404706478740367155552114034070303989072232339159423512652971711214491591287469696454455709228043473384101385887428050725149320183676549865442619068767503039795693902421343747525920284449370703219824095085287439294127815958647543036695336546465043812295538569601870814630360006810223193535677588422170662717787522895393749739449846068819589926057904266324281818832976825708783089016435405464175367797521401491698161349930449104204274172990731837969851312455958606399199659668996108005049400729639709895951757463495011315239540543638424771576730579689978093511231012700060683156013470561688420818621059065843854685352265309940809550686451819643104550056985286403697227264496407220910728050656517590053633194257188261901685209110944462304938727622601300966509801815021611618931499175544866484510193964089242453518586296685358807237025208629039637513544240841676796106254077453543971872022038982925881504881746263214401932459126384677645387821490032187360528840161581467693409724342496695967974551295215247541300383824175967755422515486890349846758461066315941988121179713345250927530701408561426350301527147370879790229663568300178799028808419389392249188448911767008038038758887801697701113453349115348021065850875700255173632568820097595527487122535718255169787531509556908689854648379484303518706149231357340296313652791276152623061043140923956535229749326101802357414494002010757529248895892932458035188934833623226621107047222795178964311353322215133111281302699657056542366660712427360675833767835191012510994437030462907634661496449559967303212585228400681288632060138439153523932091157906047341393629732349275918089423365652609394831336481029064358631183082596587859784715023449078747678799566742485205104010399975710394022063069173474202089699175600528889873675939662936740172098219541833712823393286247731719643862566531455126992223677667770819864349679984152604519464045901639578960492791392910434902756838172684047052298140890671314915262504417545271011235786801298936828493391396383366078142291794554344916809706649131884537812025796215523212883988829483096025415451583015564562313284503174185769799799107895565679960825291655375861223383807006921957963941983742611767676910050735750147104127391778359634794411592416074096491892386416231443150984337999995741238608455687906501796604659040119009310649145976455087441691709361597805467174658993017041375390468254441984930697739630336143300403226370441388424564853196000910240359148604341956718891985856156554657750890144317771286164568621900128459460742160742957104583140046201246390110210193236887462318746390639051846090824746612222586831716989063606402540489350875060019353832358477797777718415669271122400445516770541931073038836943879788904624217590046666091040163622700645067167256329813561916957758561333390398277599652250990403870932789862215954943799706306480709649417708005812270559330916211844004635893785632435864191061540068204787901621404457877173981029526071730009912179711375424333488226661867180593453500359794062610169455894879852873823946192592738300586578623690127192963826592639378195968777634491927813839152734685103171283501167754128969634017633688033476132425006547944835516002423125664608010786702586037609939080045175626009065555413098404273574300500668774331352820617072990338937053222546700420588964046523936142830791854041696667832407095595877094232009415610955534334434913854388408610824862428985961974125657170424006787671236859353722710915670406062194347260204099413954720131755244915834594427491919291350235583440418720697434588605383370185897657206225466863899147406171384409111405424448924181252805873784443759903370271443232078520464193147559475831429194169719062976979044988213080192587590485875701028049890092764667431817419312738798791908667056460174141045183654736392112018312726421352990750753167418604113908507917404417265800928896640035085618299372472136843413149569295704019813001606087541279574664190317973325939240210741676702423535174221182857151618329768142226073090296369487133088077855566632397283342252706565073072518903090395022975145545081413444428165414364410492175062270643628610175717112048366581497058246357800755045626453744628052593284156788579850690105804527975626285722083047835436681313303172332381352647075257795233015289166395286543189995731745780167826728146022264038189956693799484242109824897420088233111400134104409516093083130905465503159555154739774802214624067611052716137579986283543969665783552456700793604975187679585004347859444483487473455259996323925882010445287895767233391108520813799484234715318952612818751089051213546549692460665576734518571774051139809005074932280070940569206554428799289768091385328823923127426496379071979978524909030460958502032813011881918979875386127705098311267968672117810060942886033416074080204485324414144579454721054698929166499819415997508117083997585525312534793070723771948237383367606554185021133373575357116049840886306962649890151155629827792230433349844936783915198562685043252008447985546296912629978831302936306463370450331552637520404739224157072857779988029635328900698400767818969756354021766194294424753725649845722655067873590934057238979378191460803198271139248049794110049229814317594991993103280897957472533768146061745433132644892480370134626426692631734244357427051774756506755634133360059178313763737592038902042651716918654224484136094659863626775433322172909728067721218122945017766423271673310919275233772424505908085892756556434411548443888953213270285605406006435240340117743942638314926942036676773124923344604615279222871174737320682073795040775380702487513973697487220807941836272457926715860587568437382569660152884501593636057997648795546668979631727641445826714098393026058444373118321952735782429923805304609792532175952943764669671785995655479752601048111609001925598770316036928905354642196936179009854720785512572597532576878034184282394193011676471278020013244905417068719406087486425099249004124377799025672362387521344875468680180570026771659045717416750935853746632784661471702229127753816489358140375420413163179662046260168300583584027808425084706102856321467634921644155965653995124411152722520988557631807880862837444395373363866289139439904591869356297993169132074310849123878269670817379838027600732835237130570383538812019217807455705392131250482197669340639428023453350969805452191964164969664205192232229332522498099068094382986082393386867739544526736321944401598659040665286702065100494097867130245089605063631147497897543186327376379320227953001087717684402618218003859090607702934597864093296951123385326149456558596771175442461946208674178988143477802702378918386547507367250701231645954210423036825301549927292304970650068874455290889366465514819384805637455447031971718642272096587063004983436657183030945852528562989254613260790172374623360138208947640472176710210783635306328391852894263097083524184268806663972454351949874594952723688235110647593837053136149452332629900606135442020790080078443591851423810954062463592880074917472326014282915066473564694914907531304041194874612758425172542299337656191322834413615968845123050979229080934778061000120243079336754606956718867847589029167162815104791098481996879505375747610343839289298183475591353372834288849228539396595016459422968490216357698460365666770688497906149378958662389785139503019552520711594791624303805713391044123512797717425894997181320899397240945763050438176542023774937292923666640858263563047018894284713662179628077947581410647203968690057335883783238393851564367692910953212630953023723418877637759513255857198868415635114346544492134618362582001773911196356597362091748028951071191193121616150493566140019891540677191474060450200848900785210448984071558724913181424123745314739095859285491926195512752815404555548948605304395183055163865296351143585542678957884332247030322398462969403700363866705975518962282166849472155167994010237260527619206175045604966371707626384595300533444387899443285436630146414207515026765299871484148385924204684351505285892648354129599964190638362225500616202985179080799955171614289274332216280696351216290296505034545598002429203806611312249987574877781454333495781365580083004587905455655237596430899472829415658468980629431127259755469302188791273103530021686422763366103189051108633596398607097473741955293417850780136533786877679115147383325251300237191023587588679803938552970499832183038998533373533151034580443402573042275868260972398342231501764080332731762263196756598977297183942297165227761967340857344413747591477931793339892435994058139603228134659247855875655057515942861161317673955283481508085185207154795143926672875105744138676971890208777611959245935929086383969620057686509962930381814549128073418097204032036336676649944391993626414522714507350370590760938575244000094748229713623772159263083602213915885590946140740697630129708656969066762442186183635520472790353317530936077977879847080239021859587448789607452374905628374741893102680628048174338130019822127770609218470081525232714598672343785431049783904364930586076453575602598382816254098496399831811297188143863954265440828008619305729179956888798818257244092308607770862635131360946309767740997028472766829666854290845405202291900303432247189820499382480607516387279456689408497366651622813369488285833953135050217053611181750210101696093737288217468389261806871887211712203206733649831281254572692763105648258790106857520808063392875136481758375810969559699338484199106269224113656117112954796777812386239349341400854705378458378285151232798730884093735721100458603654544945301868107329376110867978282803436613333978053861486359437163500877119311955984802182899267779769409139308492689239716108751625981364642795191163033917961291900176095322165573491103747120945790041860289922155117591568303624947160865051863227974295613651983035189714287602237507160599904685227028482420257009629938279147818015406641691792596965023061674967724784194741420092429772971388832511665522273033896444730527049024147727564715409237680664165282261122166055190351049532169538299957017411465102998489825164390569909394598682049855258312876445683898434210936589431051140755583849278936997409501389198821247991620988839243558736555452375362389064107266313657338688715014376676574392829832073461314039495261709530844896580056558463095232963187124518366166304277498527362023490678591557693622053472426111253263891430252893766737392628606460991664258399987464743414163952677732246933313408989228213523671609562825134923485926804073551815360719656739502706913535763434376744311724908455377670326669884144911480888480132493025843817701187856663572935398781140646588369417283873657084337575104479912359736597243445574271838473362051640986039310219592121122572034365100139638906494529671420560890861769828831638828382522970765818961189545729825810733945401727749783454068776411077800440742929663980795802668931294689089150061861841892185304164332216949278213392118277190216752020805967262749463002805388777945962185683074384298925646302408906336676064738970496873626773471431934643782695278376028614658389278933623236160368696588859944071709014385765008562370357074728812300427764747470377946320005543727473658472402618390250818502039941310950397081248122107761283245956399564073037842282949417904179913536533706092953580412844901956771743632655873343028440148149907546510328181387821090721433983745415095721808723321639314118488540488247613315649935403031131319714388566683380217666836082950323604059513677592715516567968029585973380361344069307813757301161300265797024265591786343194362646623018687258796305755636607828996953634981452238866007301477187919864160661439080577725519244870708291097673554991120061231753618478131765439557295038545292365366941334856217878926154740456150452308853118438978335074806994480208158304780292913950274218678869198017655546818144544307419110229272193186444074979031725993977136218099711176146890001377240700923484996330832030429732196758278940008466523507115511183481032014483529474488518863241330396067639585766239272743538647655332592611391601058972069491216041943843627692250204083601834811827158553439255537458236282552372625331435969964636667825593382100917598744440271852251290642515745359479613052718959948884782435317225627541310959985044277475352638887118926497707170550220105682325307115438956475830312255116287639688351432627286298152407558879959620980439465968893295190449010574191419981498587900005334896120691631117546825348582900768395376626414520527393607865138057224150689718558277653895215135856589764073014881111337386924588890982276022973395124413507510038725894820664785445392905511604925465568301792236352637755462684090494780037268471610264950882620693574846316439689789627008337630374301756194573890788481042430928552363102983551745174544660652976708199474320599516529159600871565211546129673541395732775167844348486459833913758485625055460175079220988358771933860139489675148337638021390341529042836264537637458087828153790470854457596761421037723612329619640229202289514696881144705828930980357001504103694841705472869227519704469469729203495196976621766414362032109874971729908144000371573928189152840831974229437336774778258709218717225298406930555693522583678625387769903710832987797950516916962995760702662487725611153210245228717970309373800563354059293108901874004957513305645755468645881925344372271704841107604583450525724291768442356100139456682456604288000474072926191657544095336500054458333133334866581972749276001242323822517184689306940857232461554239281388742202766169379793566344104503711559823675771431249127962314115016452888044094239005173464563780362939532778780163604410427591864202516771182359108124947844895488072585512574549607995691801297131720540384249096087363621351310975286209862242624187424357837677291264179188013767520032056332618924101861651303481024400685680860611048112942740900937527485785858684092297315779366886086199644290736157490533034510746792139213935734146937826784053313199235443303460719515520570066100116930106114645564891680500914500556137849404543693134859106184193301895454863852198600808200402863322268577928659474990069360751057802347420150353177373008364949891672893509093542120975207472725043666188006133495909306114071104645992447597175424019965407306540841697352392504156355003902644002922751551910862941367236000269412071278113087636531615224433516226691901231017136295013316980770097670312259233409954235276489844208910924390275648161700407217392725660242958371557106716854141871300357131023054472593770645420643730283814784191021868821846656713832612826378069753098860829066330396698468396246747688511450649131518615524629479248111598731109079771152980588092092858162277065275677719539311203573194334593434733729518994157214722761903678004308795904799926642428196201630098883714884504398012244624556026604086161331997232849787615931712681400404505618966869098470823941370855181326199637688970212415231378187331300156011219956570354141065353563845243965564267272174345053170897086203476547586741281464071979228057446954068492795994590458209018731765866162517873312969357262487630182748053065600294624181015143131869024087493841124215821508373074128337310032226683957690735069881768275484817730499539131031846532783838656267174760018062788758049254008878403927985646496451552789273450200154100313190509627108096288952376898287265139140819451167195916663181885337312798227947809638418633081232493436827327088471684840823065106804984019899661418486821929237124322629328442483023610179839100426990407744799190837610211112396067250719299793136517706731645047986232255197970299256653151015966045966901508870688829825272864059895142504765564643861397139093020257194585582527139271981132775888695544629206052026876752213679668274687758745287607786344913826995634800825441441318253472049480142126543298296784668605437790613389102060765389746783799090419822642829171356980043472466696993015751149537152043740319181079548689432406229094586232624522096675744952856601646578736884246540265604576973290012958378742017115100574265974925332868258662570245837811521822012775760787227875362544176785168184919799494976491000369349095508194502055638112249647967662496507858023271236894462286697963197153902499010991176720532965920102432741583664628510351940054145719071486388246944690382245688388500782441039250163597153748490569452456053125403791760331016534775001998649580583553661420716997411733105525404205521107731858104589461046273558070947146683528783522244243951951095964801933997282254412372911975335233397882005003209483077806628336460632466710018008706662889771576131803944530851778599796791617562364245799131874799529518736756020672433607862783164465504713334255774562203297058370652084614814618032795565723112891379150610787823672417063157427908602758268048328204825305959448653553053355736089436683787788779088357733165815665640463336311789655775538674513596547437928824432776177665299775378844321226267587896126638330684384900580057761373094604324573314159787616555372263016164233534510023746353682989424782425580648076643361805237741563140378933712699900811546084081424058692844640874238912457751936646699463735915844119317795008584806528052045138617897232991096461177097629716988054741486404035888392795004056809668826825267833258753583516005057945853148483777029676183263606491366056471185080491635911181680573568625676757483627962595423144408426869444178084654590010983008324701273276732518629652810119875667425123718547191741964461099638143692252764876865242964332848802671048804488801559106447698291833644325638379834789224992424734734749255855729315186110345341373356722746257827671875512852296157193501863251721759999422779441251276949166596411764533113076783943587557015112683397880778230893276729219673906565016790988495989997183620183772466979164681588840040150832641339017024402863907008831066490683497676288008809713157726433416470525153647177306613927224056325710013972998990955937477305596363485600615984961253518310745042828059910113561527646137187323074054864438709510376239129317441392679964474732361821363311858580406993658377760655841495332832660287785469689430022926853101934301987370587173582180980066938912507662570847465950628991846834694991196205056288100623524340050240751212565976218356834552257668404916525157075841461441328952097009306872902271637056385906105921696945735131229699292583567531883445210953757017356326181664424591830719173259280537351848183098722945626217254044418986403975038451360611100621071808868929053885565380321231977664500797880892291390719718321553376607146881588861466593708021811848640949124415780158696473723909595858031173549396393423239812188385832226906227304369154796477329036203102315846228211866082858960816909409000618964421346173446825214338630608641076491303096303860615612269477567270566164198322661282955940541852670099389441814526699815121965396719051384313536550321313806824245173488947592503124192484175255740381823511390261635537093686468847101525986682006296660433267158847028467252827367513636915893498572151495769695739379312933338786858701558643847212190881311947133708733823275000562399237447717210347921689995870015046980589562365188542682939856667127230583317473946798938791798447572639669972565150933504944962393298941183809511522027385936199162089315593735213193801270298481882968245692466401589102452240833407352947237676601871908356625734394683547048362244546199371292199455216077052265379834751066676946325551156649491168070523052817308690882682380129412541814673058459343581273433407463471098101697337845113700036146661477797375667676221187825394236037065492372256647519270025082488886040622340981154511333422390177368411359915337237318467663405071568966819381035854807990739961345388882685756724350459189974006910447041116287865267920106161324719998448237152334997836375230143135132826955395290108649420581860439615905305825975400157347529974982723095387057721000539641886970487452897359156879270799441658104944268793902227820026173884246389592211392638749541141959433002708467142370681281377822984874389225801960673229557664622256072650083204373463689206974257310148877783281459700550621125297094395513482069706780920457890090055635993193030074671042570179184746799520164509853815101539696173545527780430626775794877109799136259366223493706483705981684191440900869283841758136960770262652637398421792751865585534001802494738842479507635936962516581598005490110797072695324488613743499388440836614685920902013874629297290938453956893091552470325456494848342558435392750026839808919512438571472788922881800472797910594164937166417567650944337465409728901440632813018914386339280633443494240026022881047169997255339395707641070678950590524163290221291761570720281337963064985988232242671029826426454822793271548045876499212413212681827672309034755957930311584824894830141731719343104663561998293422660845241977274300089475751906443642507040115738131779480959953392691557988400547828953652395636741657296488046346305736737117215809990209894453733255406649244555657047977207914581230450618880669347731611549213528598081110964035642010320650313878329814443085638720657938940705623279586874460852840698062839012831994040317536981729101193027421648744601861963215944684538075570987221296475842610580437101441448910748813376672138354541424787136666538718207128484761707002802307713986200152328528467498051716009417700848306078163074067412915857045857980914354160929061349459709688925710567910055675290074750437994633821119211999009122153965563172633298735935838666500189702103768105655391258112742565036589214291019193567740079666127138230714081882841864932545670050478902357998346296652053903452672297367971122296475763842795337070307941563289311746634899628691051860472272688877875879795365481133097185257748836254995078089623831168239465051168547086261364021782044527622621850946877145846667658899947937102845702785828864945578192102470884098054884049428920275863251351203276836916550933375756877423110361610668383215808025643334645427172202495621806059358605778368398254618223644983354199190818175492396216871052804951422463758912011361597998438034553898743686379416430030513037889583127924845498683990658600640789933528127851940984016719729727069932213390718420955178247520680268463616539771651234574340304432466147817711996108553728243091711263519501191538103322617009607819792294603552601878766923621248636248851290354428397379232513895550640142391307665467538114524402470683765280641424872089134513796385999449351608677107460143274772385102847494666363346194172301607736297628897725128300258084687726530151682029250873001346219923156538719904106055074193036339018444239787442338499826069676057020535368456464272727034894392366484590024597949473948604166711335717028120922680527815688335313264331759029946538574852184710972047718248056721561923131996627637828206706279778643822558087274035538875576372258299905067359154147149474372649839787057663311505334211612174534089654152155497746247888629118303526040368732822025070893530843523458081507195695889241260528757183964963055076628600911167261753007281738884588123735985372692992626426660021729769040932291664578008028615731050138340599605215180202337467493294109576913999967663852175374648850721464227683648609183197332363921592490390006967888121011297463583734052586878544570222146208736858727966414530176263354155887940590732122253946707378265467560810746496041804339579538721133064646799286122948571393385632976161785089115582766119790233799986635770474963796822399350957954508205505111893034779357024430352830442834702410590461224680811375399707428743435120724179827100082933191371419288771409898637054627113614217060316038877158734107562660346260346932057574636326530612059614741096786436632812848924621727699060440035648313727017184326110762869070629628767824833725218167849520870187388883526681880688561553821029179384688125975922387175756873776636521727918293598889124812904849996547644596555459515319230198673421439626905245337463449860371792720542796816889295558794575534131465881283310245574792805020086669571693957780153414390677074688444371997229473142096243098464505318539652190602671100605662171450565239616762915821410039307333892918625670333714472417092407944822081957934969811552492557325408808831648195199484925188597971817916507188649753536943195763660262426172292425480056059572174815355934092538283243334477794234508946594682954801561640088402355037323496549878662171076680106251027447234054777387228233706324422346571309983353563617904512966453592077279387939270095466014610509180273269755513571365490940517098691433383437353862239566253167050813221234673687814427618547883058500581078515556788076939732421220873066182620090830504150607987867207800863874831471046796221804394757556309908624424438280907075163603921360973967193494081982005189308463418418513775869421385970025192357210352359781475656283700649893580619427747837673671656860440124253539425460837473462224960829827247240218753734151044388427140893032903966317059852727435757224919804396406893690833070460690336340376113566927200801720601652587016620924656531832178359034831846684963362317735446303933793489237958382338014835246620707688841775646825727171361914835528944036115796246825347099957785414816484667357356113380319206582213549678296294583794899259090657150858589924036877724709560225206030410594547223573430761992020038703424402223490949671809511947981181231766216132812657418887926717804023857800559852923256156882467651635904834058800448384582302419984176242039750282144203323781364695612918160908807052269274478502357943715614285496103309997013947721460617450078824754170067917818813373073553878679601012421924341739873289763228098676229374534372899811725930082223246243759854001837266087383264712072554491306433644995100194782544525542561198544468963386192334108861190236636252006167177340726844487670870786339928851878574886890695595205756080655359723625548665768065997300269614499791386394913764334395117818656169724575011955527139876663310241993649615936734233367659351899510821050854558659024045243950149586570975168801772980081992225972528916152832643287133019120720262250559930210552005936427206720674365808195919838946862415075380275165662282604255844872369634231527370496473601247293747058235189463777287608586271395235999069223258703599107092753607717873127548150940351270138170794870400279463643368842771692401282640444753830021680605559739911153275674304250791689664936534610664903033926454798262450752752970355117029389549392605026116732805080636191135041503872255354805249503072592208321299167699393857896052191904022659329689320152805385584883267673657568583799428685543148848459878043199371078484089337419779080033863696659632700048007534107331302869582860135928766135088569413072689527062211944465709013500028507817008173296936069944780801165089977469838327533544622311789004142445612565923619067137782218830990126205038713863746110754713824333342606611191124996043119748730035578467538558093194053656414387240871593070280022336202403420926692484103654139246032528151391060258069008679246947846415137742530490811333748592565903252108437870583690180305933853297001096960008742504481418458925985696534556980827237127625540048379270764101702087000675852444325775264579036182680360526238789966875626868457587113494826170278726420774053277917839660593024680537612528783622421631814764204764333456586924291561946174147929303267274533198796275905105825564390641279605996051629410558357700353656324285671397243309359986178485440971818172554477791409320959184050164998438612807378871881675478875650566319631976730470586489462404594926976645328510919874433735121566448881451325097829979985682830183029271812658757997491525942142606638449347618236694361301000778347450454438394059463825316417469621679637540394915211600835534045873007034167447688538635372417591191912573029628757699866983060284505512542557781304919657353708109753889805144982819585172096328879249759668785855762687283638577142823352346656795892694854891954487424195222854027581013272572588484604654951851622252721485896972726328951526610074191959717832883659455976857057726284785595448837240757916288363148490647791455348726575585011194226486996243910900959484219505011828545702189874103457183898179048636464908296777315083677699733551507417008122025805388524519536398345318761778123182923384516149201894678720217480245281591901242255865169874725902155076249749122673765945633076166021194348403239799144070248817343433029272571092865738989424064956181090979765498511842477113390072880929901630186941142126117034372249667476682598881833777489153001358002314602426047205527579931989940964316114429852831611486989731748642308262649341631684527801622286945217652487890699556099151096015879416910388459563596685293612599124572928376935749499600063745405102933125235371942115650133154753736280907142815773185118592763310014484781157730515727741163632176299555971064374278716404082983071046305419155993714815391612554781126437438903974521207357576777750742115050829810085737523835183835753993320297598915782488050412070590464407322768848308743534512264547062694097544451369757257089150573023242573567272108516847067390111372101828058046032247916600738326914541593198292432543374648604963396534224817293832547511140375938437780558100267902359338479895865486078741941416884073043417349690424069174289582911338815739432277101561962477635519024021712746862782472197996762662900919176955643810538569264018591476166954319407769348965559060313034157909445519756029662487545487909111753269937093712638067225675146306074023344598314820578077855253816934364805356807945204538688872214580520228137165269820116250616572973797480750029723392190975012204947494170065939296729602873876719522255063086438503602286418437662400917471903283390839953674746861310109327545085370103248816456357548955860367991893611297876190835673731227482378182701853106426309613472487143605493189037702613329120207411857020396549233685908632729003478722237659894186318952339757526448262322846781474167839417587877928413411223019880554837191966208599311296978303388651675854462279134053844760839423555344903316330001247579965276168526319453293095962731314672619266181983219456648004891272404216573041363833042226648978515562645655321971144729732605821321486152801009727680151040298965202063860686004598161428523749991208520934729230797735030153390597764783428907474877815173481573626882872884730960864188664530329476007533093585380277049260073288432941195208648297113175937525344388958814255548385173295283601137791532901133575981174759080829559047506576584568604989519869930506625060170970783298760630468160095210972977875136018632054589557818005958757171911723235091578713751539912551505260695947605933157635090917977332083361368071945515640749533035718842256369317118343973251605736503774732145350056359563826247493638224705836847521426072791995525107455130424433833640549397003333713488002997859465754494276518303412111970210299873361991177647930047649326491521909917772362558052712725779928418622127220259472957836424156951838904261862931949850239808827901822770867087071935398018357638280472176270261490249184634025236129564512600179754496131220872848373883319385740201890828176785029850526215633527508339394101455547212563763685464079094647653816550805001796737374314099089474841691430065081182103990094191714290554428743486917780828412716328334933373876018980519238236373021976500702991998409539536408192939354484433786725257077729595961387100715792147218370758041500544134986004929074996989379034881020827925069300574236017467712639825044479879477551383688753888207757212063531958650030083910654471490754927971155721846090155394573325186389812858246877695980082741765554992556526378718474988706329149439080307417260367589680254871837399996196829326612241217067713397137880925201702623014717820800639162135982052973855055582095940333264708915619555223566380626412574791346382537492599128801431261443620117181006104722585841850028634156211568844185662028272766006553624341653186172705470460182952332953648960573330745306473007739458174055622180102965869545542962321362680851935845002587357305866651956174463718111344775636102931642292999771284847399247914997524697574616765240133398871189935029199507259403541776788784275863173386202123143312232454999521022646419170590206372156364870441042698336333313821695884831981209369368359190411493162347872763662759215456841070241740529792569429819149817406395271447869051184234337195592612319193757906211785809093205884794836305795612156010565182075216489529364750499783642596878804760925999701865361111313604844810434313726732714932517640677959128270418092840993021480957457866349377922712137553712549498364613219105479011950805481637782317553188054048344745682348295528213063830359546479755313386037131657640783340885935945737671967408625251809781817880369860116613883471299915377112383415452874048995646902826030068854276345189623573554618158222214071967866843102682655738115194937131618234925304365477918872773039577291667603598906829849792753264457930205625004198215817833679758324582016703344016375194361307936066877060596155074581873007405885541857077712937653954611123552017737452675365027712360102626371140850249375451997238811849720048529540760537575504863349851760393434036589529608607344805531229553356882145671180576047588419420583496338454216537702022628873203281426271924191134698071535062364060488010610176139643065506664667145977479275127501313346596764639606994405703118605608781228063289678165765372750629672835762639748283846472950189179856048249198500799160923239976671964767833012638465080880428311109850255466129686185565035001236106852974356644656198492092110126637583119546240112661948930083828438659999992833337948765982135588393330975965394351687477025420380520337338231789387828254304773685927377235747888656685873609256869105637744685113155947867365164849217860389204692057392137396597629342661799387598861055713847390158695380014400337739425963524869263689609087053952625109612729088737679822241074767848829902625921417206513544327199164599833303338205097023670379189129777113900021796464556817013808941825846295987689363592439379803701260437000195453753209475856566862618691377693236555385533736640181142604011712634532053725124468808392504553806425476628093450603910861511948831424647739359453611346263253979030531061551540475704318358069888911685088278357540626047008133489427756419881104615033910819669743603856073267087156087766588589106089607208747158269701690562668719926815848335174102410950604976133322103046832009316294819666417866410892596335403862924130152476404151953276182470723527897727695774543149145720405417995318578837498108505057157671110581585216705522011002403121471715798464585433248907341098761099295649676156544718806244284933719422274740449837985964755841334894107426083336152120775019298015129465672084211550763881645988966176464369760328924324510530298250512242680703731212808393512202255408415132029479998057513768649336556761678499471334926956257739078483718248283155679298197287786862903631056068580099072224021538766147136448019656148112453886271654233428875619797920485573019299975004175881862203550843526937422418347754235756053467255495615418988381785602926769085061313659528803917355560245687971772310603217457604975950232256294196379063093795581044909587621359167786582953930306576530923070439867570625760671427063852605547595952532130478006326107107680832162100145794640977692680069139071937272531922852627428957389504137685477459296033592272625266668352170703189496282724565284582414254606303728040777479798854129463539799924647469133552433723183045353848908080893152518135768485272858917328591746450365612006882947050320471690415376867800192930506366957785508855054236989012229808779126706105235629735806022201829431580735552190937586577473626473699288881279782933393499869773523241375993155463631192982070653727478607258997312069306272104015723943842608756039326387063929022190308589098777220198559385372688147932288292236982590464309339788165229985971114388791916811255637498313161109319061156325528926120586515985149397612705562408767671406059062759367897286320465589407531927159129511701844375575853523697820603460308111408561622204290428905287093487193875366819942119678716034475116563217044041605351341390173136689463887385553138636824336997598597061645706267041304591264372849891483568904556090934810115809231807301845998408799090461574931098614313315919784060635683188419505707596210326850840753951104607136774315063186556811750456842910985936094863468695936722775807730607288379881424681003426858744195332034222592225911315687185512988438399771818481775752765286872747867997560955981443326979802322469251748008480437354026738684446482509456837198696619833088985878352579323281004784980000165924072903146602815056472411034520315765276577171450510804603051297596390336904878227083901331040053851493735374972951613489722639790211988963444866201881902957692950434647230578452652005806799064539004955427487396033311151334342323939281539285755241892542753368993670767360327076953407153977831769329985800290247380912222702470030149732148309934933241880821118256958623294651857563689754163574689598660266517287106373178211544073283084095822937176862803685645159152570329027569036857129883127811874734596074173100978847315628386494861931043501661812266303769593726764588538380943049453023030268014210975502503890721484246009339875439915383842137754597246409868737926602794166204708663284387662736608782721500359892776517074454770653839619602834310285238409133872378563979536825788370583048947266348134821317190888339633672412315363972952037995614054202652355733182260536030151610767270161366775347202108995240601901907310716711572131531313991087346049948558879305557329074866756924991779147777627525721533153059191543757640208556243114944537254595680970256475764244423090474070144938720093148556612673864189942549493136310475961893303490949930728432409009866042964776416063621289476951726567416922104126791976202629175585305961605883598150943813988815546473953900221085978718592405964780276788923924280477323241680115088099429075130067286149727378504160015538097278691011653816376029956001998756771052874341796486349487590228434508102484523242850619456464928288338024674531436007665393932531690693471534111025909155950980999607771081924043400817401909049952241694593670841551263350446837423540829126465380354941695384687191594786448216907197188279045374175897865653963543641749642113833239127266085382956774626422043748613750869656038144115446781746318241578012548976258024056722181651902552564665510417840313993155273497012827464078379677343103957500116764350123239218721736939561572561209629465861258179225997122936015604832529324660590007467538289113588769660502304327546441577272041355353431069230209904095882802842492545660922550473678663353597767011475477937895122163950391748837006069208321431310565114032165914971605450331526087562443039751201627044475665497445082910844914275328651257884320143371916195074243458542671276811026007996977327310910874040713888398593020568547705681283700324106099488089120372337515691677129447677010573628517526922673867332490411057618836343343739931740573619353690777058069918700110387550682586512339634192984733096678757320329048370056903353621683728691586822484931645864130995561280761354315839479796503645798442252939980325213460972862269536267247076289971779632763346141120704154148305304401967545816235986063466572733057403342467568253998855700384203956509771995410026837628297511970715692877805882319026171014758008973737834649921004305707615859532250733610872957027150743122979203137211031512057869458182420174183205651511753381284579981732961300097228591130828209090533147601196781850383675303470470005787483609975909091296303441827655051198429426117421250174531088376152772103209162330883357102085772162595099252986436418206894396569085647751243182903018353395109114675137185342463058517707443432161316913045445620729557791498890485478502949425186992301564204823672996782085432770817139937297136472855162369102809439490498095711147987353263361086154490921362107195786271826589846454595870090692492488205234351128687386269125293356955656244015333447567162409478118265711559547566993684235624999792277233328567847862452694981303829576715883682539034846167149680141385991940555979179178582819757848123724780229627342713273807017121315934540225441686146416206418549556220175802717174193296040307242855759140374875241255836486847826530579021129301504600930097911328939110209284222126288743972398792999872217126802442695704364082691751239472885809766317352190347740207830108250082306867481659929162142043785596907008396343174915704007049111330970230468766158574831350801444759928520207278604062469098624581837105663182549206666339286894164223168139785374174558983550239814134762756866162211863675611345401850612301450506414647662002547937273701691150910570058805838552877515535683461355508881431374498563637773694334730779223692023281951260198833485319308413912969210345115664615581718451609186530489711953801102485257498931586472339992674537252191487877997888075626737506387237805646976435268613067747611615640308898107229900613620291385538646836842458354434207249065269431319263630645579191032817462246523050868114539223790346999357618192283841178311127342660931717160547230274858700010478660598353687620423490935631467935443700708676044416080934303889641691229384629350216611002107616405466145328261330250989929553919275962994627826326321165658743195517335942787247995482872278107931497771103534255438166350502182004755984571947076429678271587726848362361118065924451595282915230181808971672271763496522837506807313174144533509330105586215719733675910516720488567454157281632172593979270182677659278790726975958652444479862784876695394914610177605776036071107508660345575557129623454066377584487731406580502181444145701216138894429425430127261439960397515488096841753887787099771053156896057795536359670078069985650119553616995819109185333740366199906618677458653659378289515861921683583853720551718196699002906225244297196477607657921208349979814831084253380066460564654628441059597587010538378376695134144117115765801529197239328318237419072418270556211429248125950086219348254518565539701258406477745909416107789844866798787983603594306705082646985065096507142428798416650133033647595971329458356905875969705836598402375264559514284152743093476002848059737445115482304008577453819441423549187838092922978318441402238443611232216885056243354185884325115447206432849620845632811941082705883189354288454365054845356330088426685693563642890202766923084866336118299142987263879880682998086123949763295104635913382691252518794669450894153964933273454972994489836299473991754744164719717317798726839436024010521661014981526554162540385451779521584002495879879741049524800475355816454411607964967437476718422118358157376737048968165761864668447399574573863895284956651895744786659777819507522588829870247890096406531852047423769523893355012184785996600740896503838595147018040723457768783856075809561645339216884897542598305991753761013232063543253442404886000030908226190037306341848688614387637364941788740120482609505127598633905097702424725298017588263922938707936732522111670579264414090854374014853045902503716963747745860719140542569438156117014437888441888309159229271920358412987162286685053246038943565002307341670837518645953680252758240520923744676573351270601601170349080682223272341214084695966733251615657580665902431013032064115375116874077567874060359258788617197363493677111426543048470811333032318663398550949431439748048407876477678327705348801596714101698443566978084548780518231995756407397883177027113564392420445203330076097643679699900409585495562013135848058753749472569340330909172832394183692193249151868723547739392127561179466401851180013807501027772171306420425326555361143239078820350945377075084348892301020693648517284976129383325793163280402402366224770735848850558619602148189507568896146498647108584644537329496552333726418838326212711782724069322657157078641755728961453382916448918652049552729526330028104982310985733943081602256698171115056421803074943611078136138968220487736518566702091978710942722765034706338508550084211709404050825699245756282826278137513327080529455232216084540576543785400717990812768836695374975228640671461534564901126938742671140362151382047758754942856572278533665848729086917495101023758749766072301695185736509057949181869154204951481895063313672323360017919244397594016416771983594510693427217293483713315270825228587814764495406616826606632817385906468170848098019563095401910023030383772107483227813901168208258238927793613956120621621339157864079040962777743062394588711681359324124433710944830874229948965727049696689190976787295678568374918266228075947073087639094291791846467289893503816657160323834130048221490735573101147560439107642307049971417179272249889362511853771844565361124353668033415834710999978127504593107294920164004043873689108489000022065896894950988355454330344806346906836264269262252604805038222965665856445463817257872024223930603167450160539775516554246030743256914538414066770009334817262533785783695496880181971420758304790250454493294344080654706966709208196687180957451822379033311686660106588546461622251368075580728178399049938203254035222214791278735733792405058170479343611160465752035096499203009430633851515570103965436156004250209175408368025107569627240540070613073914839978215497526962006777174612537517747408077042146949807246566921031380365590139144631933785249560765128958847039568360052405603773226648488976759864722223687045726002513146533027894907366831754285279304364168449130901482297794441453977670005047645453944199744253400902206497079506577866762562579041678795171932282160484279042228145745555525850110505111853205128248170449340850065111058596796611348054315799010027116370414625588451469531501613765309863467935139830644217212539142104848401806995555589338646984470972207292044160017446457448578988521913325497133025482098021992094686705513088504112321598940306060776407088621530225283963061061498449297470451281206439250952683933163016535406892928056518715726578741194021747809172799541874118113737353482320492402854443728542414478667353172039728409992107533852137685218992027547637515508803238203451410449033687861055113974555644534413352805893314950724154536504253686358765114645577638528618422250037354433860841945720257808362467051613544121936052124926547855797901126581591993322554214733610252203564003582790857550730527883543159467417937426497407409479489447795731660962302173239728840260162155089907451024629671836859160378905981635743926672782950299181795702806863651012454451544131814296541845245197887305202002880204338955209521262425068207362516464829688831505095970100022643721353487858260253357898428499264259849382698655591574552277223044783670045129262032590728447007071826463942993971057965049240272151309090201632257892936466206907911418909170955485858170999693984582418886230434638646853709469201908664425001423704907060547944016363622448420494614145407334077205613675377994717434641869614416355642947159197095912457298893923381500104122943958528812429031638189391182936404756748013200548377764224130832273379016805513456118786526378739084602983248449677767652671446090984272409221944208729050777247422712849199862752884095453612244260812236730263624166646367695658234050934786501143545223017211043182967461181271247726747558418347391829646892424390835898304107786122216466741392745808441093446709140768890811548042699046447661790370691318643164487293481162475314270947951218371189543080160613686742330865206856839261480478445664749457483232983711278348494575681848235738129672986025094456310021387076804904301108841043560659563291355136365953790577450863465841837937855021385507306606203236189202653437965542409138866780517648660235568680102444381998217408186830806326579344501366069588311635276590196371091221683021799431781781159756256933481181759016370453954880025438691950293948429633387880232454026868311592077147266096408147297425641352377071326558656729260935213135632697386334513923237949127274160440716533283727666360699207828988515818900740681788356003383955024910544219136949438402592897576804164798738875441907101007388250260025052937157120598821799751905251548135128926507035031295388797395196807146312979739398855224067710747813296611251424440942546205865605638648411769737650932223200581373898885989302233630809521934265228150675306773116834992003074978449533317392356287724988901104982913538099432346738706479293918382984736509174159934422418013609070218537683948237197255148813881635282508237808756177303718593310237690155181489566802645106695566763562703316375504282184693552607931286771716300815229705250139944041110995237587821689870722832415540437859493648816597106019417011177530819779600610206107580954184382263771744158930893440245480776358985983864600448191306329182121252200728063408905627313615628251425972911690969621167408247163145189174736006959669914230808783383786865901598670223214286915701414248070458972191054200479042072618389456591675766243374816523343101319777787506264814478962379685449183339325445226328238983995521435086472399882461823467833341203496969634652310297098007031272981130029874875884515562844310131560990894615878405840038361454306275028384345168367939943115519406723368803326183813019065159316862019183963643881182869704116494587694221136576981495173186043944768192239400670145512792825405653032464235241908378911520916520753450114775133761761316030346350015830432411983034504597311154802352914726755652853961549825173221870281189147558219251097518814749962701832012386646655447096270322119673520668256883487375964507251207969145168739639987295089292861505745093918352489864171151563371077207043719429897852585410651220208721985115201196820066851549509077569921619316805761225508410799564473572362115138442605911878523611115766746246167605894908847321882511881891653729413018475636508362290409687727075906307595173734465381235816720569986154493374413551158082859997972507000542569584482904215703296329695418372061125327781850782435323918726737975390106042189821333568001491762927635897397491510336102944854875541265945883082627308729741581359987850589708156429324159565205722438860158420781047504262811290442552635054829661343198347557885193222267186930364566727102649599400511663086637317274044545694973748748521103317754936462538061133447431080683263084662203937077310524427999513745019352661423522551418680551040050214387677859299011085925186749913131450008725837116693698249769940841616062428406308332897997161870505765196240492431659995151896649754750390011473989031896878326455784745372518045223597268776687624285075381661679248800082340903203480714652289022230806149657427044772212502661923714235626092912260182505837318119710390751753385771378077621317724528794791583171484322731473506837177881579852023035280059999869776669370082267088042043304271761036044360211957405318323977508253762435335992587448066952313140950826729742008271959187161696015340654578147571012432947034049890117240314562707007085891355513065947483050109267533105047676685100687279532443236896493872434914018868580217669706551588502561741520703150927265145873588577166907411895667629416813405784240677338866529843358282099209279600025605373161195748651729717114043583683023331026924475563496301826785735111056397494733570817580632987076680342130966827261284795060436152654421703635540658329019547411263216179414368623878244681088510060879820657196947315316887276558292548410060026288708470726414636981454676023069064848000195089152920883475200294833011835707147486046003231803664663011378346148102080104082416246439862858027535254054148117877257844982440121535808832631115767938834439941674255267181270687048579050017001882766115402598966456382269528408612570000031201513414621462743588188113752159623550909618693482530381968085084967571308026522100175445215043882446963539135452229483822752193978161006308157139473475716433100288572011561747191922667719543692831282660439606992546372196029142537779739831674438120809721881883123622660338707532678942538559169182977283327312615508417484951235989157986019310463020408836581232828339328287752748597870536473295156141142985324610343025553130194964301167037928656376695698547963744374046951440475248627476738025589674084963027253885817383209577772704426596764502346241958872573593386155268081204775136402786059671489936812371201186212349054817129245481543023804103650148753567454311180060450042613078768221588514426730296208404822613694974262081760999935003344619768841879030415959515392641119654647748208496035361889457612204857186264614323274971918808584172165024925561228486704440794528091825391444698761813663319439606463782245081613817787292827839764859110463455622717222178176922974115386786214605724201588982175494554749486363176722743647089802154620073250130237057212162666252200530396135167883101300856801679877138600808744144960859610304104119748536983111367107082479747419717080824301691666177077131276333136381545315891337525416839840847864317750667503948846636777214679211218536122363167218880380661069859370237909631869224025911914634584614974171219255019925474796004846006334598186460801159374470373166319535189087920564810728118777240203974402460212973911013499269664898978223364655365129497329341543406894694337381826637786050347493433270290837561801105493469017933942873990566379697634781069552896198764618985072208634587475775355868446872335724917904765480775103923736396185466753334959708917470501031396943809023634045799030707248529632851430888786688074249816358563633931419476252306615252056589630703714209157446786673768335155822444226371755529054939532882366689615332633149358392812822458493254055594107195071379970356374234009731613098646213937953087094716536125650803315785044573000094141394600147452544140381692099336041159658380050630368254566308062825009488020034180021455841755463480187653567764411516477104384366900853706116905032530314683543713358180929240076805095818888803131922996604986651192355333442715995130769082085266296774031025947302259177682013259107773158578447731207588645093398775618726625393836235757625158805620309231213866578072162611618127003756053446226349498386252566652422923443651396972082378259957626108099849375422735675122410923244793072428280291762353753386370876387351815527482111244800245912464051115111499664462619843390057925463539496228889243623252186402524810490595955408365028689357489054200091253386743431340734226519599814488762644831855273277494122878561306225821878120011628573521338086043652520123507908301505963245468281892247598913287169435985142267573258150924982124899051846590727823763964923211904205643849172556431873441622962006044719016116127860806915970507233831799024001062116474775843902375746789131695701182264621770289457119136412685871868635824932717465627067280751367431597507565774758376406338044944820668352178332133327896776383657446746201728839572367211098154016213270068168740231366194833250104464856464603641253174133332379607567293733052122974579333525661685589200437596251342030638342943060971584740953801974115495300102821650559592594591948533482273271554448735213653447294239495596453047880531794558629341890107779349027602218084991851412571653165137450875031401466774251976476204616693113326045387896451657290843861519443114016151423070224716393990100437906864103416236790741850646376825660389550334773489673113343136294285431488760312473133541967098000845264274014209763136958762258591009311129973793600135533529207482985367204276126984764006676698661053455207287218738180679105816290748701076736965216687344878743827719973271864925542480668423833027410696091855007115354892417444079433704231825456068386702420523393305803173064778859332292996554662168705712818066315810759698803795419028671051589682183998617226456523727215921272699856166884308596839602871715385266941479317328935458449531502185930086689117971366494924105395301740136078588915471340850039768036453811115720861295639470964557427082387312687498873097059005337318346168969341709300000861680278005895674152284436630022965265070138562656843588862975858927122897312250450193975398801959929585946674448852792346410372473341353383902594807739551764067414764658014533037551258783915206002730545980582800834158675087820218298029124179773152353857706406771166845213368665010906443991846647291438415228435595778052417869221343902620970359030350252703283979867654871112971641506576891539350909404216300292126234234712852108395421664911751887684890160163507949908725145944284090769519699618037712827929233063139463215096579366488528671853658985428232404638733828178481530209203088315697267343925583364321632066089888458071136277639996649570648133324300804430706922817962968328613163949834158178871426219665499051404499949051322758329020397338902854257513664074283771983895137584603568593319676365422978795979675682839983101815254236665985727858888680648518945970716203467370351680456789741083210206877691531050566876687732933492002389350574436954451602342979457806030671893157679519089580811282704868678565179494942531798989854558463511016629241506701611762219757292557732222995795702695142731341258703602132593747642947677233855393949608034943296308145907993381594311461023743648260905274892609114997817599242523396972869525241668731500923820412128542613616353249136625137866287441728736927773266853389990509144288059316961768257728559277785548891224880886696290222200907105319867273320350125608327618654686069004612176551141034532831271204435229510016794790313350534253556783869192234312490521332794361256904680330454064259314334859893529878822549531857424881037641375414844998295227489027969508981498646907616443895752343566506497982594152503242632552944116596940559895866507612153399297486410528083098879197123728761697290730295301586338095431940182026691046931393035266362835832196293419502205582156281151008278370219142231861577528944307401251206982236257041351162127934474793737507085853449040251894677691474206491390247315240473922375703568331255397444736369775913101672485564252270498558713299184758438211851524915321086608709389477465558909768150090915524531843711016797043942272006065934727864923765594695847171642902578632718343604387060615267993199251780719606018199788961891441329681532735536565531782787898770454849256568315404843368663589348279115378499601462943301785359189222687135602115638066888736024524286151770771110671285143971739462566840777072585891951865720028302687827488064624862580451433334454133086163786823325729625795380067350910605339652325575968241504827951961974945905100821796236567014770564590274789801810063095188896213790376936533729872681282088478870106308255415850421334101495828542771806949463381388168245190344480504922435510003314142920894225768313480195104195395648342838316899469970689361239529933647736059673795630161780318422618261992081634867619660275866447118087603253007087453508535754908948331667080132534824971180676522815802360708233390414281170229413525360033063302611245516864922753389765333275088373087354659141118979834197708121109080471374423563241997436195814232767405600444674915694945578714935547922254176429822307573665159603939567872952083076212995729056463332797905608736019668380684152160053409822871768205430304948296407143779589677891785265134420901479656996958603321761028398322325242090918749756952825023624449423568735010347018741990530029380969860908761494567287112680687195992424006465327711570046123469550672596301566722909054455688966949036381979374684658665340679559719446297756316458243438624037934898047300575709839515821613921444041889422681665534895414328206155392681993338132341431398790872065564411761005197910307921159446412482298695403958669789629636022480766326311185609381709075532259658171492545809500486428193072375865331093474102684608835101765523297927925886429690577225713908291190907196417085384594544335991896296182581379576619525337770939593093755869597915058546959060081600343557079220572841848585599616477156190633768504329365545474742979308228403401042147794004948180654572922448342610480152048933259789368235759477584893907965398613200977738878389002306649650673186526505682839582196258033807020970898871414621585654426237525431393842532127573407453319116295517118791369927035391723508149986623779442841884334571492927103332266309932715918117779842737897501478943326849720515430723756063998772961668725323470990717464054024073987653076499928272555573339710224468522819744063567415442339895224040425483397695537147315990391151995816094959851210374536599442439645586621895120731402017735567818531957450015913861910640899786932831364839009613757106272347800522824211842642755283161285869760156604643183353361039723374601999153889315730285882691609204948845413009226258837771404879655160155435937451107898471808847009606077890762206936840737849633609634250958470825725633681267006429102982227999157619394123050106656193243852913122708830715674719682021862720194847446914775099587377486602963126211239362626843231533917193569137898919660667127709734322808251984750619540620344933307037842679837994177188238477857304923986255856611633528615279571343531452481039163835170550778772229762397920840708871158662399192331933649557410994937541006679688014265020731066633219037296882469804080705418631788519380478271412256541799994252084728832820347685848972552574718194114111004174156679999964197532840324093311906319210471346702337851518168229866134384617955922289227272479295126971190232496391380440439957405009271208186132542943749468080349527402878663862439341710885765745650985947669489218450064054656300785760186337903961142713096570463860917634603875681169616742477001757012096224159952976060385348857001481403137001128029694543163723511250880211913858542622105689948995183018091417190615926369347364953071541759066678807228201488291988205155707763583295672191122035770424951685061882953088988913377428009260557482311908831910313193929933455923134282290824495258005239231203546840959181180376700411041242952060041674976055582275384027855722899442909707922037347988086735001702235402887074872415687791506214652489173325524770184486333604237917427498553433628195137659386276403281742636248147200965705761727339321971370162499437607223256132787424937777858926933033596401621334413649840271139133842747075776954377860117566491086194270718291744124265444598136378594344020432286589754638643482729148367579090612462084323439039192344334349677277355611142132001439444322732038136908572979573632674477894386577489038591809925988629697792589137470528577954613032054330367752203355085505264185246835194929346835243286029416899457532838210307005971426445390140901802991823336647440778847072021623062385605597582213448377296299598832119434133694583446147835969370283268271410484814528829052616640328149408184024376827980831494520463340131479318752237377806414495657562106053033737363146674997142819907423970558598153503666209046505844835829037062788217951701095497639603291046554060692645863021268740270333376287090086360775717231275916195076539133776329195822156023957434293446887129808461218026897104243417090833099109858888883525408594227691776828812075617943969011907566345241700616320081014184753329081130030931097586770730363184254529334530976661529175236632365647421690422806169751560533305992507917682502236464599957033774761084147501885998830265520406832253239105872448941321492042015076366197289000406059272042496276071999299976515689850478820851909803573311574154465550052413149012439899507673779114797142127666155536570002998064352235855946334029151965574477372577452551736846772411482287637268001963584486242603798649865758213080512548677536718044961870015910447387934243041878546178704578543664944284385030411648192666718497525267073658399302540061886594630044259349864218873674667791401028992193519034198473257602258531948483933820611464807036489978670865314053173481514324651853400564085301928990763601600914076707687486498786614472416438426254922859816791081292052188229151944743470410361926198224968865018328788122865526149448724335598640670553488667642160769960153550823282418270715618196314343109296280405256938017210064387456093585636653375409615209936844109006423455594967899258652717374982980371763864415540833993324732813095490090911694426764709960605136670340174411830366225048991020282241044980053063939224651764328196320044478643107106451818292490155470746630136658502775050796766694470923111695074284579269198646547968976985744247120250261993627690491868938537969774824130205607630433892247367574753831471341754678297496244770665409381981829405339527866772898388482829911423927736324571601437337526304802632494216545565767197675193472054649944251600989150852653750800251075605432655377272342230719696794527224661597386602174168903912272254713382591553228452515226694697281730317552536710851911358876542544357904129824103543174423276434327137065420996321570636406096871384524624566335269130122078920780385412037602063411955394534694669493091620795819911659307574198269298778666503659082585310210717015018441367529138484739081922356470866562195031986519855569037476710947140876135315487181593027818838207813940008699996704517400589029294720495124668073909517224305516930104803827814754464193770269424932724336812520246015715348610440607590563320374178837147535214395727778827463861841608721343254982369004837382182638400925102155997628249241483239110024692789253625384807769987524168277515798144534559218091235201623092356187262035618063713743705012462568124886351162269475668968136190873913861168278104224664184881377491637758235307175109336365159207832028507487817732945679572288027029253303930356296096550908111234599045006409831462600113397660037298133881316144986246073840041038738952334677015604765647677437530913530360277306494854818181579855584587136278315376804648221524841805002436048592042481953288367840363878995631933216318317783975299193755242196596089650655373940446089822896508308860509089024965126472119109692294038660590913782666359794484078326763625443829738263161238512713588318951107258099419857239426389659059498278241780923504759958072822879833836706610020415953764569087593608209053046464560549835109037784779087651974600057493782685696226892365647368966400237614213914040885302285301422924022934239184746072891824401584031619657037005116503748328361213051792767920294958449610757873121931236279249070877470494027720766863951289959581037918255527573701990356398551282402947935134304701498533163414882724147087051137221073263781677079570424435254240265878491032309944218504765710476292622152637991177350294554041471979736189391641364679582508105253622100956730870705995351102328225540688081842424613290550341124636820625956442929175740192009705746751783787094973834620003515202350965822051323495188128809741701382800727749270607384295786765456512232806960187359279384225029823945265456615376890950037612041625651830107353700390702915020475371427789436880591732030271185778991766663425716426953716695933183141768646992039329287314780654549961055635858785803559889382532562784277975277486959058290178435317038641967791407650481298094383876881163359953474978349632584042566556488352302309715263896108526328413993551737005570157924331455713392635064912691032874574336801684708832101983180572589963564174994799914117646408783098587388760126224392915251351274316311424091659579854423119407426391419957370081936863243954288891892159073355711777251658869544944649051569573242236049429106113988187879781456923008256816350893376885360878491509761407672722017652632700630404298829853236041000240401829907150582095348667865854914752310391765304392444451966513425148588659357253061878933173290841634035522164741041543526137582181818791279065282108056644581700818846212095327641882361937393715845416545004613763475572691672524761025578021119822121916167692479946814851022110835468697760470650797023269791794466405825458784123513783915987868576580174717357584005545002169915662489343277570531623439857465121125566976159579416550043092783958064367856201761093695343227442032372778292126410727927331538805426571871952314614760851241207116214537070523460987352852535263985551737598862152283252706233171771057646834420711218489697162632921249061416662418876041786839653352081340399319997458485163686764908868591045268078730621605021495859193782271492653332286096853650503986140379957839323592680910778905485558610885924282242259277447736511781827001981388531607305680336579676271784577742916999791936962962907299726810304970969706175036178487280491571455323402489700865182505718413909708998144321086327430762953464830106029176031739831629885580769714433956772901529479249489257305310362880929885710977420343390389424177496084967853115875752446072106263522179995794483282496498179688087770356049069740609755815112095162050132770910780391346114751004969867719578046728236822175885085551218737882384355023971353564767531284887511145584394413075616690802194047054025092561638873057995935710070954215242402389738661449843026964361569759383503580008652520663448232509342891281594682468813110767064807271539213380854908893217446305978858112744253448813196217550745390469229226077868286365875156680944750478626722735707695371489726486013628080150844226326597221147118721715445818774261586970793886955923103553477448442710277279181265419391255476048443180934367966463340428283327337418506298654994600120905668609109495035208441838991634030696334351997137223404510183936562839490571574119917388142068644918856489681633355195066000928843332524806735584171337496171505509342637189402325303542599384394187718742088145543543561643034891031481520576588694447827064491099533521284325191049124690543217380510679418598805440128942512325899099623123240538773982101446405849655974158659523205814498852510376930654974893135060329360744818149989820111827492778152011324046430383400093022310805472595975512167467066592294443857107582935686515980117901994804535824717234503017639891490221449489021601986841517587379191682661098385738453765280418900933755032348767588757658350816808489804889946134638467583582758945004664802602247079596073112347087019012293963842199250887685371119985433129372429484757883611517408335843753310906659427013258032954398152692068105480421552102479651145454331971153057409954937838369320017065641023993968520341513173309251386082983961034483756434854709456374110604561666832802636976055941078600530148540321252825322327251732324935578822659395950837334009505984530084486154937608307729323697805390206948984365228679285807815810808580649532633173056468160917851471254000880722579371359859196020321176985166181382057266644879714560505647641742736841891450673424567564160482903098189791759567447997044184815439560470233784356812676177157987374873165244588210016410619287671529519773096125795040132799512512304460717376533044348897583775022006741467780169732280054567344994253724138458236775963995722855459307838519140395047441361758910074146226819297696949886128652985517880249933196635638248382941924743192355842676350731985803030153430748618243783252279335799383568537811327556538647300247674306723758445557066433223967058378975019401109845845303120397416081495286336512248395115142651395213619949280477614567228484431285659615449731382785953307673696014941586370703621756586701043035869611457917148344582054822959711665470211362772824935407946290706014037201690357789239932630327260725450600403646050283809296100760006762109358216154880968279818045908769907558279711149674858710365979817790055992046199210862188333938643676754535782363369890881619356421821095595110093983753747755465860778655943306224849127897875450813558000955361863224778945578216728582156558348574169205578223436150325355191306945196005289498694046865586452883932391961240439959477905755435190582258127024682573216026993531237621731625638973247571162859606999708293949598146454681242911928944932167578936358775236587083126261297689522140371213333713736365700974961114679547389402162548668414635249814865684371299325661036903209843245244363745789283274532540101378735460870857849153391330184879650215888109299037143501149621191972437270363318901179929310091989720660589194991838526986780058093923091737819542985085168466812992334259466707617776755886208012614126146408861560637038675646128881437886181688406921057373100714712755602825523846104942873199498380141927494375100694790609597627570407425605279204037351322564372053200969027126178788419582439234331652524668209425466272979348242095027327770295359815649824733818061639387154774919753504932179174320668434092062017580847783051887549612442395201189649070476601860635733321398793734673914908088123513455137740715586822235455884575446863433377540313871302626071462240117170602401065225491198646843096415721944924460282817325253667035372300424249866064805311275019543565232256873826351560617978177490363147504957320325827228208790158003703947220784711440853530216267405066505125616695005739908327325068995212697526160602725247283665244676995469356947594725756685581189425853777257680983976858806496441857538717290871623665842954600064572836053138758138636294410431346299537418277627185306159193426121771320103100211452565766902870974555331090738581112895514039271668752247998498749917850258926890214824595782590518644548253086709605415246391648674819969569196375971963039809610580335461327894359818435086974525920005485900303729616830719576226854353641731181745095799331647769077464027402590525538809186293686045867395211331046855474844038171072506636910145573147382825053570575661393917552606951868964925034468664749146526156085505037913942029819942221994735438231783223036847137330247485594298263804065129848919712773126979399424468368139797193089451531301022820717602411322963912280618157095376184520228786336178426103531073417592039782916543702395343092259108501080565591877252777554800270019294614144153767227568255332141737201407471347884434363167591614387225594330494977196123384222661604896439624205326779704143080241164011968089101092063429038027925515696795324416192834866410838286054415369964365931969137777870059360304820229130265145922961345580297182724384196876724370844926367550705633405026837199449354732652656320662743808369958263351676070823549529856158343311952439229700398791067526831494422487587059711975013571688080770880163857843277818151302778683116858919461143010895892183928971335941392888564885450916372593983597420767157074607149752460598639896695746231577768604879720148035767956484589821970288761612319470132095592421448835550576272323443484264260117532230618223035658508047011011899193252571720549962926641297735042850437026228972358528162675637896302038984743559480612173873906685354384530392931298819388330411834237783614780597575058406622541336293357809319478196639297423503908480593200697899176788339686913197482588647470862799713132561371727308165334061394625685505907275458645068646565277682555342972140883383727882010289029324031324210200261063566424436966120830417686932201048993451559732117466300908671200835572420529225106285030294066927058050440068181922735142563465843548110959320734012749694900025447207973603791646697031950338328483551676760583103654527085765549800282394782231371887039652164207841403863200501687559289244248916432107962003137110746260693591895581823998836591531097004235817429460073596124743290572109290976292410410656620923503792443139268903030622034078705847521368443498140066439968281777288328306808296747485107268422856395031192396793997022782808329040391879427012564031731986705480903817290109382677032761818733382332992873542517912146741696844438416099579217349254754115169550363292946067218798381779848868362782909979843021720417536252229967274325716308033262679427008834667993123722778928049072690634359386334482737349468718088069450888240689972616587134375187407124435358999357495057639105502602348848319301097762875184555561427972842848760393872130490902541848842697751401162693761395504585689904730039876222569569528522702700707002236312782756472091890723661453383150645086601571667250304425313457307614248252993473550820094811107402642703287961354558997238769243881097597044445727972255955821483185792211683819202237666014705355033299056638996113950200355900395314314853199973395611006459629555821496162158045516324961524984625491338666155661305747107306606494761259251347398672404294705271394587005711446177435924891999977985398589155458011757075458419857074644417157352870883181556649067116137205248421240675688333346326309394674405915392812434686527415076367108332946799307960121322623629719228890611294395686589067468858225888839891650188355330752331981579035535868551557820654682183321590742910347469567566339248541522364537150038862178902634313785302662274488179999873853323415250050507599445291601038492429647379231448519967640031204261931101839001074559769324574399651968221115701722500007801852007690927995274819572235224900924551021008329435060470903821762340123527848387377273143198123533121673507416247841954632534461520828912237804692290850938628075267737336489167527510886718690748573151179871911275897371721222006979026862701539770333762353916857302353277808051500852598175329555080787788667281565096669161583911272169869938875911268864848545345289838450017200753178809612734774403004524167503239303836706170710130550438058717306756683353374537830368559993775908695130621846552857923593391741917120541796998725613245326657739756970932170562193800461482857499893752316435134747073658820981060577886541651473248981787009463013850792559222607297152262038819437484391431059409599258433446565768173968932611045987010037275435251163774416122729999410186195660514215969412063551314485971954528608097486825487452445903626047313806483937973446818662497007215547106019350023864838934375622763501279258494173264366237202327855359419493045001115249370114763463415754264095574739430694456354236208121224117637357697086777635930193563836444028893630507833322803667474394324865707989508525087274183268352719951577926527198763749979076208438946347212620360783081738142804787855497828978622747244177003016325501339705372417682815323516176906921997025569996205464243726535775472510240312994355386459483147019494015602668494303183783693655466186656625470825860748948397282515589160385534950645138474422118827562986206331356921343505354175325462294273857018514221604797918123913581857023363813544535711277117194321660466143101547419821554929047562109018957208060623490880290406785456674637241772486811900742065578482219295010659668353520867908758553449009271325107353781311232860041052918835504828256821243931809785796664144164197438465035975431670418385214590779433577314964845742148608548867452913145745893151848342050585427211602752070105302881218204425718504079717735193826444151430340000389650835476069521126143515144940969915151783325851724798947405242061004598407363843511382982933537028551641532818468987804359217581976011103718826011571521219899280357546083887409473752204063912336289828066187319532355292040142200095154808807061007453865639725897080303279855124057096752994877525034838119148447639606902399800858875101161290060080769119438103026094948065984761969048059321785213998286590163613972947333424529757842997590232889212288761745364343158375314378495746088747373425879587582199019353898142294239179415156131539793025146413798608959887675413694323040487028555419780922958044698990192904558906846597838337994492512716049413377907064865785894967575994050617557632934756808289220291115491864882015921461776544992118272549886765689622517063614832195140603084486884294749081714122766989529766528467187010729193377929282443532431382852063570615807692592826032221194027687790429240836532323215102354075342321094760532101716780478896041685107197396939918618794634618967971354678672244029051644439647829326694635849186615040116550321379582388464035453370675001468245089396350840796338833931644002155762948765545149622984945735704556398458286539010312031199558632978985996427424165456402215526931176182193404052804977001395818569950450626908321844220985806560360396650520405092652944916311224741224398545523345939736021584889595645760356011239472260029091102323581832707760318192895789319120042282972271927680105785644667334020318606579759989767363004515534412122274649211784192104299302330475459340814869573388558531187892572435996247019581049408342713006597163643751657463710249870536291692900609979797982081471471311289950851849200398640461465302509949141434035836955688421615182000667253985853203567078753447410182134499703959178739753496211472367771510750644341932067097848101390611946814299656594694998030150150504394991658193643406175471200602325330510056856619953988521096991796810306515662761140012393944127405040656002217098547779644246858748631969461895510351333916411959039718938761054426423024644127859663201484795527322743409286346200984059824533857638615193364432098339181957496295052527170415941103294160552007079700445274265503291068016829182150548865729790830657332005667110403931664289460739742761327206991377358887764684076726016450379690906737624912318156946132584214651124301808862838501872732082930493205348834908022579996208931538204345874620625236296812240775571667614708332530743518028015646615241233577266654596895015351209640740987993352511242368393255508040779538906513598486931485726874899490140853001062540369844024339857382126776294549192772819270727100759505419454503790918051636158083628887001538672439450070274989843218556764740324714392366484341116062093101960182503178068353985725839133571334493036144917086659797233388145309217403181174775203258167433894582649675275252036112627367210976454313402380658720112513451461172380163835947268752281763835665589618861321672998939401494125103564658336368877609065883769674182919192031194564697809424983860904160330963764529279423419300230174005434322585462509474354551709683543697560356501992385147371849267059723327757979117381524743531633424117298458941291075045550428858777627373406633041603918082687417260659615989336077863307019922231846664888930452715240551174612022301603661921939366157937867369615816259730058212811282557646795949402814667457604557747067390220019769831825970029381954149275908113373323605885877787161006725835962326049600160589914889342204736161327100754523004843943109899916372218862326257224723071197918230494443514033574476639708361069860714457006927639663973492029218346297644381860189376688053451277703848156908540614032803615028038609490335348932303579251173935304158411332654712905673988844359308222830330322211659298541919655979718488542388715808914036930161717257001557061483690681274229550279346352264500686934307748207466636874761476200227501815517969782667374145950438705887238733896329121395730399466305434028913277468168754669502161412465503700912659179830290388734841761397234339455693566008380160943556137855374689207145442337764671963138464652631570101713235839748746654423630277928541904501566645788185997947897125148114050237769026172897930130806565716312121207914290705421508889837954536591643551233417459879480927694175114903117460552245578545813558670215309007703195565589959974680574161333836164169114009923341556438683622586644280794033626701052266693619246747237136409054289852051883510036926818799746564705254506826839362640699442231179129973336410667817359159716289832741772887230205260980424875777100698819624037291271628455835847840340492436487818337243203716187881493183663213242424242014718798660129082954490209873995954287213906677698275630891679421740168823587653975042030244898641889636909631627012055768196992915499277514254378812946766508325035126716846644844454724041012452806421783273222776043691610288078358871843710051808401795801410835281635163603805346307638919476150186986736706050147556545191255634854744061620273938350356278561529588946817016999401433231109528721244827047206054602585006670407579111413682790697868658711779204356114892996871988803259034954625868507864515607372171539953391070545742084470048998112828994216021222092624494727454056103582092642512678039819054526594437375194281321713703361259105755169899284729469534242980723256290258883626842678447029836313294966054416253861474882834798167322881097848769413234367188334829751327755520981118356612998485687021734497159455814205167601363168104474987091636494315666700163412473152631466469447022286028071181399281588875163721426683212141509231720573189111732882598052520156090041554777595240408913500940365197084870074967833274323358869463126879009850231317206614113210860760486195706356624523048720492970167945781458200903619280678213945893743377769312698768681171248164084910525388423933369089463540923580231081725576349979969436459754448948566477328044988676235789173021502698796454984277123360252396013678890263912763167334869009946588810286310223749553599501716187794059542720325680750991723040604059244759347558781923115070860386436400166976935884441077368702845770379409283494140282212958640752706393539930444723850843968852757779835520831758107094826865455149234677116451188567223807600629987818448782700527203129388479982097194320227571363520398880075609793549685072221738190964275756846644078438497623595416437898607166734860499536429215769092696151709528254210860266888128762132282887012394111213560849984856022616743503488305211519952221309472231188245473926080854412153442104345431104283533610723224461095047549030823849762337877239798576467071485072701155033507917688942855325655578568914111053937681230076417273323355555569581979516167876516112715880238173705812584337644549639320903363088842383134647413254157583408532870162147846752736603532981421989990010399651663985781627083589624813758112852050274683143462186542100287357984530641972173311190325200734619298128722951789824511177032832347598640395627061908545507358079165897100777640229035197705516514631569542884142437557975709689422328873125015446591323568223485632308818621486917525444204250311551711252093266720935244538532857593078572051963112677159656335359564606638121569917613427105035796893469256097759229113557550044954680939594198807691937528886502489711246859161951191180573662336507492183673283957490669396689948638812546588558883830330864279223545971614086391328016968670609674779349702513696709492118518268068371039329768182793490904880992685297949785573337154568122911908288999964961736727582967722542718264223286640013272432730924295092305662213469775602749713113774964021604518693358959943345170131474316716699253553526251918229606855110255210661769391305899304704401305553947858663168437691828647234353248593887797337000237434440522305783385042336974867005016002866371635480721425727423634716598259200059952735028634294139066792669723798730437353937957758746704387095073567124554496603097896118194554170245592193009640593805522942769217350988195033854243901962235565665095981189508495583475832679441371943347770644174306876072873238603190937646745291892183927340565244912505869565176115620698125003931538845818440649081930551382206808102393363085653595383285081518528602490738088819397197419266456341614484265115413169562835251959112442838262881010308475545489736902540358823648314244059506043336372172311369797376625377898329148146768547541189710236465877932945245536608462987170976671452153935936295650841686793887474517768464701970560120629111965939271694287820010473842269120842037473633883862747926634381707460086181651770124738002689102832486145467289464377033943420464842419670256187916489725183867462223041651600018564312996541175982085005633239524163204667553500133537296849174676463194134992237442472246330220218595474064637882118823459394089968995866776637011429528531270793556632378325619667821366570922060283102565391354011906621429239381641120806961721604380993879930032791351939616054590672596572424438866730988394948040500199586995408776106691389068427993564695024599087865610481526261948802916220377285440431076191523309676134565789866492760231034670807839099262754764500023111598815152501667563739574019057703412613420416359044808390765374858277752596662854316298833142074778261209504077604333883663580243089244840348835410287061473396328346465783579669745925874011346345762321608104239762225168959734768174285127377213488843126429868916706963162387342001469489852142302083551071071050255718846277856440376053415487371340570353047160477106775293200799083008579633505891364869774715093761225628448351427933875263674570722200256769127483422379436606131986267609440621051523719848597473792974061772433307773538025430221894395766769509566727981248500848626425884845796771935614664646260149649514634714900618867260130216748107466054111926689184063788353110563044170808357801999223295643474303295979135889437938009727044258215069279799888314467253297689672092433109678778704372547040496937826853533277996781762915186712775413657266836934910872925660656228159152633504466949756792294976458396040312478260968080763245729179631357063805530181795061558934619200552502042127689204726523519590844163705976227580527335399057273772924589843113466208946935684628077087959342361434261835739728412166526019543848177450244296873787044781845808456698591816757459363007125099299455902157979712679792868141836179452938114743834591130494949062545777573965744825041893661050156722391140633790442693276717835728234784024292290403767470039713468343855464064270710261175300913084761273575638893444957801436719780138982653424377606720487305659206933281697377077205067321400057367553449808955405386888786715911240760240287649361091464856324351392282896169205384742208960466080590382309965918933425890790062237040800669979202979819440927717350270127336846820867383102707947935530220822775215446092735620715171955387489668190846802860662680526626173073955928932432766560820558926492281145720789325877823680827930505003074177435351425876432091818543266940690676007919082134203963689530945256334022130730209864586297689655472486526242846110473665750904177173205232374140756584899323927086821679426432687569473519121747691111577540799971999266828885079390393406103104213296468250407706477052176909557243268596647176986382914115377976976000258192723944692010496600428508547001480918081081726650456796718668806462058478809300711671419078497133939149939952552454520949465078434971981036142877818403322057069463951547694697276774770642486460793923519565436635083070252079824653742742569969457756462611987386294345328054150827620990662277435844486270376709248843139673126563568059785342858198446090082502281505106367269141887603978831977318626572931421807329055093538562444488808705158512055619441373703285405475722146340713736932655210869322270942390754299408994425444590686757411432252426167234352191278258543884559516797829932832364273745745254454605293989680626351373358721485080882020551865995803408148832970125378123505679305081881856850573123325755554241960542735831944797643249922882266043555852334960668090550290521633778474635193474971302232949396551041598783974016751661859360517933895039246620524551126883731112078525724424579962329445016834171359514025209517926468115682982031361882739642662332167644152469548755816408435821258504424767069969380375857300390579011051541477955717916931272909599822136411598159520145861367892066666353218394457911294294937274642464823921547797561573367089576184057532209850474858357089176635272780949535427448252511373938291237833518414718278488180937762594672554334206902383755976584674449885729710015336570259383860983788837055966165661226188124546387807403643775582925934013645173858446245540764902961622022924479177890142432724924562461057283299442767967831448193467055175708350294256732633526490651414121023786109329671886310371717046176289311616725902906771223985883659641492455308120728570841006607616854351666353034138280113381967791228997412665524495134833893463618128225649905341150317914116709383076776877423256980342914079980291910761139653077618040762219445151940260406347035679935388327437858815201108040649088517527008205623802051286421842482300263243205599799834692623266564470195635730067953905724415039816423908213623513271771458619121032811235726993308766255344089415120517990273147386818262664447528040672746408572380155038941891259589373992650168775274376974153374817242203770712866449077116260315441711941410834860689952950744477220336274426681847119656361571377242461545607047965087831290013343491113629297558360906017594945379686150681790850760756621273810011791829307611862991163557450260202127565436095113856909481542447672260734006103733426127360804485531214757889023755905771131745500941185974865296270588563917389715951598898701417586964865418532486377943378050698934555388050523312494984188757304644473314445985055247398653997073462338193980085773043569547616982826589381003060241121866568598020725337165613533509921885956010788152195599298483073711416176483995033003789882479034541053250205495569358801615459891893688657212474896361367186281885464478617924358171011255185131787177450430735364502976150729230110833080255153495186929484971690099173039476973337895650229561487787804836658283482754023019230369038581978853430382855827300672156130424767965099736738986396308459533099446736600527895351007751062354051809506207295912147787926626338542879258977595863058064650448452623913353834262705043086700946703622040633976725299136518784230658396670226258056212221073354116185029363564161665577923776639586049469324455080590361798644275574129498302104696986164493137010370277508486015396166586451285354530481559829638298598154556259248659186328817630110149973720692015386987741862165578208788502897085678297019269582769523940825795893466666688391835881554906943683070353276320793494510936539945097204283673067035144196315528875321482218932596717370781271405133474738608096369456351201901843916055733840805166382914886247935137940371319796687585625948294207463241614819626828884980096887564131779026576910555080254322803125858998458287208325735889476313492606249627183220073181354243953643770564819295399570014455438391087844914419368047106516347403117037448245850518578818068662884417079356604269800316323634912030291975370099601066619389621731876226707182631485228441727943340681810310183841753499734969790135260460838986493841708529346927915834559424778741475818626067224662481177224985686229897440438439218402456036091912369895978248806446319555555930832816734602312040667007248774759980632684527320255701562168766284058326889493050519390050495049587015400348542776024624858846666734238597445456716114198430383570639742666670385556096452390357020107365232835276920677221366635857460807615994825758902615564428664967372569208046851174626702467876686032287965119785761644265002553662207997203999865614691551199659189260998756919572198275509506475978615626474235578645011389704199350997640667655712085029584211559149472907523553499274100851294919385596259403263820252498822492144447558827002900367951870523576276442355841833307120460124629939915484195813551255146770934471443309247637321501186127983818560255716314174426442103923184124861561304709814802473388125696051967726943832149010465240998150118339414506008422291319416099500996449619633076617168027996614596490848571740823780571312943966103687727269790434903189674932321665723319037215414610364718842463568019712570977124204559927718940163080755579153180388638522632934912286894458712440718739851310980729960000540296913908632667141792364975629719250212883990970848468043907176319829838625897603127381810275493426101282445835103972461726002712472644102839306036777543984038462374655711776604274794044711025322752607088191525962388103594491210025921567550999035984902873663946533362227856019878524480781200009226725563043118702187832547386880440918833104825515033950623703534591157569487158440812225354661461213368329141771387120791132563299696105863063881455038293070650764250040959783772009135428432873110669407041999325305683169533185440621809608346131977993381716591706548795521144399346369103913258534977738053801424940934503627616581368950030951261057084123445629601328070394871467589010166411517039393214698903026672660584673505964752748056178078679539355103268491298676656542631273298852919270082470877400221374311565869690760658990854779808775648655941308902704568977297419559655010922193569323849781622587517646552420925574092571769546886051901000316080128972898705286108542297390939681507750096597173714600861152209262260852708298836437362438779812774511708223680806107707741366334795574353354725066344097928989918408218150200626290058136781545284857759527335953597484087245005388274103999870195212623316986282803438849726914169586295036202722974886898490039741471616745751141334602734497423550587807218665525873506412530832457388035608515766265910084790720477045368897507199743566506306631675876113475164418905099495304411719985149916739766229426944516621408087749135536734530651829997758201465753081579408167503572563130826897527686949131751660314196274122716209578299745125950736894997647865130983044553916761879316366404096977873117158004122655528863709140625817884692390364398767943899441959633227733151062417111111758958204213822682471585586231593661531289432191654892821195976227665814359674319046931897070954625498480234955018692311293664029290996670086387840042890442086248366177906430206330593392032243436516079432570246586846689771534328077217098798011814855157928164449213543001525299613772360107729210859513145995246165942271641574763236570257188061170634876292627323600831252569965434321893745077967445291542789471272289470446481314744124221166590081005721723304438700873736053316468302928700555720019069943199870645446550624282172711712459206812429481055050404705924105288357400656484547245607487562476347259620195541630808699130865678696787553970081279117686691949683813515098808520958276792948785481815843390389576480289850925724608625300614888628650306571986579365615795598257299189432894771618962056935467280544185635018462634426748571556088844337677677518111958796316841853639123374976612377125870557536771425535452801023619128824660846856736084934133311957993354042333577358896378053183909344428049227035216223087149443606730042311797968286390517195157505209765590273099670998902005130022633264738184520239976911295246061557293366996541826787561464474369388729088789425992271475632620666673290809469862929534311107624328164327360863086413386486466836833403411741724336137908604788056800459754328933272140608034447503284344114611719096701762539842822668646838817061002536499007431738470008614817616431964214609199373818877654827069979398415393897490946103080608952105623723373395529906485456547771113235115058351872397486970763522933435497256100301121589126783284926464529265711611514653003449614413040707869371417923311666247696408763548739901747753710201821142814214482462132048901366552314424413404287752981183566734855659369179625585315367510798067145279663745899421031188154745480752465185317021824996705820092817034714330564906110302966007788621864395862030912621953745931915501116913315595473394117208613535884052045859273604632198270224071542061403310961486299075908103313306591475749539436538701843065303834279040143059829881096866287939606842134010586681368770086255041066965536224307609748692066674406842755594708259403759545439328126461519786010940922100394662393810002488578082153053964123626303568044502330247943343213441880843146928161839236820186918939839333078257939151876598861585265883031305482064741992386116621691904597565625333631844676895075299258677730897811322055452689323411963774158070429791729618493376516693756215146488138417266217153236227108027841813774596097865572452165349267876088009188070751445179559189320746484076199051735585848891330328063507879705231316767693157737318795949072123726379925971534942241650491860959163929805153754153056010835414124426635088411708895426440977027422823212873781858481377393550974933555114062446643689420453552379302295569902568889247247648285698792777177043958436924724006222094132555494329232680626510065606711248779978803998822145863452959171666248165322874115532752641124896656236536271790517082015310026735395882470223528163997240153464122032025797780827313551205019368428155208185549975149151101699141271160844540090762083005141646188255296346203608737167901905825189468389540468266297174866800839302951260776692992406943522577743863181275967950694370015606250562785591434151241339403032771295325310711861748025772234948929252198097430895212231461957666207592355635972669076798666123329105952796101834310690770203222871625208361195649481175299713274973059783552852128578547844286181685257107399791644850737946301947948601093793836405400303508924994891380108931322703064366040921361522517503364759125529933623450874620625221161521345334640590731527324079559395600327487909738694260663614314509347957936425282076057673668224556127797885798509050746557599952332576801978516473222357344466124947799906429335103202924170618147695710507728019172716654227202802454806556829265624445710748443438092473558324059572792813700931794958428020067816670302348301074054742192686054019788027670617733116985490100532526580700391933221832551762219500495602329543188072487098922493307375904553488785189577342825125096765197185679965291017199510174647814302781333571695642231934075713767834608696712243812173079896938312170420491124145158622120573819892602813253361650633270961268112735445764503438627183739199389437969585611671266838339375985582646154279781331791205782912378998922762772561595125842754000144632044579106546866732414053365861918428042262582168827371032153821229001605389555745804814970795142882874275665707581482605482420221061203768834107343704461695313565847315846499523328897408613892603743654557103135730978703051579767418648833308333468306177619964953332343405916867838864524704127553143957940278842161375968491828232860066928911605076118159809805722967611642356090547827553099902283601182556875723878812585829342112120643535136234233354548000376373539228441337466447546489972715324870623432473939494074367849041727254265742675895182796020334362260618434065482929109694732775810631500580250568949213398370571061955381036992510061604500623195895685277633841453387092156878758032127460311284924887146975923896612165410078451665187599926607299020458345627963420439715652445650039332697584161527418689052810339622772868014570270031896278770775137289513749285389160134511814790912124554283511450747662061450207874055271983106491319508431939379405139356086244871206328233097256310656806715935871203992140966633225119104450832165354362199377758584328122723097176497270028253352023603346945160822872847275228184687773750722988339131876836902638244934888564346061470214101593355370833759261193543814375325836805068692651602131963859004249450260777932898292974931025747485191547582123684275563739778101515027771884673967343974182564271586530092136733880079123112661604189172284689063826787172246977341470030337709486294246783622917217912573978588957230493800358591236399689631216138583104648370796376626799297615668211984659341559339167444688620035568965184061896502099578794947503421345106468294189135762409949557718833764748449361489033733873640844876651285799060056918035580217574328223720982964054139849176861425411357801923284322356622012533756997103821037145053611352158087544325887517731498123415979007748415485246874718698284371642775679661218822589836358646123372708731616395878299381552734158028806222896032274479197315134195894883841952929056752913582847028899729046824217811588125445002757734897566106936993830600284424883040855689756491161569382878286204590171592066183555970557350218309269119605068711363792198916388264700303239855998258529737206759685021223259479609213701331543690047347580052669731636628087675468684315441200544518109639633177996327073327007842426159432871983671001853052211000499358589809347272782613245222554744663365234690260799520188298486579293564334105861920635765802134949712381542333263308182496330203863618060743007893628480494572747655596897690479630772584358960972355626885277176950957548546741563189365444345268252226873316585833671741045351860168973900370511403872160749256572866941446343428193422010787994447931528908070441678372085914038078719202046871489540429657782742327726300675482683925720474289569191676005205232153821140887324067972558836997229770397817477865544513393695280467309791987546440540501535598421490176493970899336823681797861826371377477618992421396475468152180235657008465062462125800933823937589398535255324737030726876131869326125773333729027491969501508404817998772837366525506402719361477732598808908149463942273075462113797425254478573065620616232758456633687160410545655582196322844425800161309229256116952170585617429297116993729879855268657367981622307685949173321863761507735171533780533639947253173790467038575527223738278135885645323766083898120229497517958499014168966345218786083583841189313847283257686487347462195353899780087542415058674978015601593113654055207095080352550048121231237718152107298003231017591837862540565962539948544710762023852340834150142189018389630276690864606288997315830500060541661052112618332456308874942376132111738323599102671544333398090301076751921560686091509929757948984709134048477603725331648663327399774574170787058858498903647825050060756527667766673018142798346299786311547247190463813082702695027155243458377713288884011332285612327642475805491414533400430735136820016710304896740791322041732936558863808199024025042475897990619973944942406139385900204374508171261603627839124114726820908569052683742250689109919376772207776873712677015290712968226158437571496653462961540352898069849819902381588132490072828420316645458645186778718177177277928321252696832297664124549673971527879680434765895761265338524573915134381378450051873859153296341405368948443972255080119607926902811622936704343711583719538657786003419467130966534425355235613503926374333559024877800931675855665020261424517552023105180379792416018681653272134907447418792630463793570195725465687076964902562831139490830659813925877165753432905182988307442209315394562671891365093277852758561418869150584311281806211645338346145649986102799088783159992332083497034990096448289736199726084130305016138343757350335026967919910039457648503139889980405347620797995103556280094271198077141386253746894200671129290379402110509931288176786355712128822058452590232988278448897285576764337655132098372084536519727356629454075207868377482599376950854745853778544015186687032127032510837885755352532742246745616553017529469704928603493523766319377581531269112157125054564936628404613157549323436161143868941551917955211604032794138704059736596828772355549369536724926033527449892888220448868443652751589546895588589071831729289129234577442844192725052768475503870270632829799758538825993879067899636766347263679970911370005004519151507050208574470532031134283753039645068373494746515254316164069588396569604776248100769812576232402765632471455867811665356335738413320375632857711145794773611775891097844959748713454994540500897494312370266916002277962151601644314463215567465798696913430209173753793295373631029348259418485153134577006494373909764208589573177423145767288296790675029922315257328698330263412335263163490206490429708210063264881567676324254446870392133376789489600125136265235472565170222559556998628425108866896847107872600167332422156251242927213080559326221307214093686435499689878743035267688492212318344924190763747157474462521597457646635724275279522289150406427767865661151919331918178305671646530481381010666734245915686417445768839062419201865410225266970615389099907254998428548419566819245451974709306142275315129844530918275771513611816730358093214603225847235281182550470606215426224324551446896457269382316655525095989504109342537430859997971370042588583403044972671096299697632336077767437347987883567301028647138454592879163749014540664751939489935221236247436613174783048688463151603659224357676276234466653958979646879055292390270201075721891913821483162685249049584867543293124182641346627228209365327728397667557267289731938129341943057239620723292007186386746670306364601331111164254680251228943053311250985386012012360704496997852109585987532930327716226798230551076769268000220741884903016500503853447597101830167378268194361241656963925229474103574318517658365603412327643390095651186326079173389912627720721351617522225524182961243396282518232869686254441186238123306403453315560164069574723203836514566355749873441168599416165518249604259798392678161314831809025345071646664426702627611859764913247682952727805703223834351506367217706637637402490304659096285960271979725537800141820199810181398125950423486624834404392113648723666292020639396288453144837489010260840361484073120067415622915966963669408360326433414963712098545475250177366960197146178464515555994167263739708586495987795324215832821841093916405283567907068642107803466075719798914815540054200510730096279623472724997011221778165679844919433222633415033856753082446773410455032742856115745538742140007192843017744731423009836576075155127779628101472205306681742035059679410509804665631363778251724709140992555247103681267051382467521172005284942952197488628489852778783562106004878127114406349908816459244518980104429357083290472201607269660461984260772247831071714390934928973795075056471053802916187491886994635301357293501873206687311501731531091296794862549795815121682207571231891909138338353447102365979448080471233882744403505346799952913354609413927284465139119083607622657983981564246382915999044162845276818935327913567474032273515068909877547218155749984883466946222711943435139572756093318776721574285783033018304222517049632971612296836752748983294723150697497887414002192670067206567729213108493572940763592895618281290011097847243283038465197437585736859123098178360303140528230081302663133041399253399217941576479853470817863611377200140857083863943770352918349740374183511622370040173188269393263087505487566452909326566503024394453622727917080038157851325290236510568096258917942400163871496121216946992544239867472620600571311538783883388307801653788387752115931194493595694917939405788488606239594441849728928723084955792607211329771213723886969863602368291622254647108806210944791323990154066781602893469428215506272126054179829178173824891997338295301682667906177801353365047188633978427353358562327918535797792266270380244569682968625491187486853054978579659891848621862374855639353215630489928348655615415406495122104661037654818060250676549134033273862941691177626381383478511836410569996609492020448950262944616846685510606624208831453740126877947813985957776990398770739941703256531935561300052814359945606126160832235899032489565956752757698532457440356076128860796818576197717887655619852375274472235992720206023891671879081470886706830279398976837802333757968374847167920420561188461443508423836973785948258849782595214143167689849592131938941287506959614919327114703587453366081494375469714291952903101938943563718359374914830742304493402959628111665238995811060009386222162265525297661065074527135894973344740728167392634862226297134715553293624445799465082319790876907445852537034570900774408153416786387014809967412400383780852342739778817469108053533050911944331387304083804306750603068626953212452290166750385631858585931743776949415741081057274944438400139915229529240168066745842469660556910769759698731095078451825185768980009394286371219101669807885171057114466950703127370696200473003567536823520581524918682390839740880926485270458168006391534013493735254715092352704416192657211004234584808532239809308197012158641732913053258987171588551684206065034055699685937159156219395459555855700934771168117983599584279819556435636530938905094196464188924341766121771175457371442940272937717765918310744305815153159609482635063365572386141392081307541461074051274134813889068752089651754728644348902015018720183661384172807988272958201897748612633836037110941408680441463818997551441905115201402418762897868823386652887495647401107245990553799217515564781980918495587675277828080382262981804394156397956172569409092951857744788365159447872068267859636945476370623820669620239662066592108127818321912746808145303142177986735336848938082668189691299983519942232127263877159757642852132151588371714648542881242312246840283905615779681998978556251027107062837939943190735797975362287371994784521038316866852142082201926672315581011737244237560915148938634366652657942603716828928158069315905715237948025661912687088764750695085011137025788023338180190302100297597559268182163595350706418857190059497444679741742025213094724619195027721323724702570296163168146476218464364465179953587775904809172469556739679455373497103221936945596277893779193834069725378841550206295838748309619542046154699022268434746176771131973748660008793544360730243366328086536847335066870740890018470306769821475313373154286221515513181409541497972467067634369769645830928679521201994140665404326668344081968691862291765441036492080785729242338875506180983659122265379728841112013069101857603049832953269421418842594286621469527688063208257196486713422469852641941902223624118633913028417184472482275572337996970748200243758037179218073420208053693574061876566416960773912090981349470212072519721369964234420930547846506923744649042088873263022615635791960630923699160278236493000344974712377945595124085823970994657027536675981330477750505053663457471551655837277310078578178715303161327684892535760784621147886035180402976569605848671756763665930874801609992795078717891310420384947894328608479705150428332652457188642319839993285634226860788344374530927289314609254429906078711173676695984963306217751488489933778786785978526528057054866121737921355212470239532560819067885280383242296807554471743774895014302315014696122549489533836275694486930467419802292255506508742977275807609510687982710919383714229096826872859632194283672724247744390906003680485278454385481995582874334418909552309926592958848289777196750543920577166893855239773609258209069343057898674235729531205148509038465249314006899617373173581622229445541614935787147750627037619249803638440016091361171372955766180892638646794027936567038530577991298857394478375763909267944333650549677074228596380872187039958271475800044022240421400330359036096054800471884730467828680774098983222526245316803203408443510937431949938029908124179211089542392709654258219584858667992411578844781521955749832225833567422679896009803200935486510854946767671340531034349986434975800021528683583572136597820843573260466126057046440920052064374880868404199958540869747731601750539025306490362044945847644088204005386057152518221779351801941471166008653294828106002191594469278346037982926881867778488378271314816066812848087479043023420037713089646478178559946183751062068844135862845063034644191394289376235474277758676901467822890700609268325225032463995333756672899766025424659795196326090274261515748186527819297798368110133133965162579331841940702696498895138692396126127536959206022969008742083472084083318841582683801938335897322433513641224432117497940476682416780963520356641543325415096450197791054146094374981599044579283802888013356248181407261142327597289482414188702595745493425472274698997687716231609932288504202807083810081409188735263331835842074074844657339783842980534710600237421998721176268333490920907386533795907492808928303010720755047245085118333467630475982066178999800446274480337019655502132044139642367450695370878169737996937906163784820116979627072127035848047948858065830896323128867340296384824112876595218536241125696974919905747828032629986123172479305032363770584569878577453161038667067555844068240891051181842902580329851409615733153875631143854779215298366383821587135882408201277838409736232647584435263028166475607999322148392715632124999083709893094632955985992872843352125242743349437902382494944578516493612703264233909454480862002835352626175298183552529788046502813539911284716128115341446038970316546773952587653838444574611035156164180927334625414221790331071472031059929495389595843688577348949522598210383159642062327307148371669179896744454184189037251127283530059298273937473757109927765235637036064734872478483968420374230975899887438787654284159356597358834506093612992449258746769154280459813281582587299911030078063159248172205221320601077149233660100318271006672726648894955094233689793548105579642377154495413717740799517750146669546557410080155793417959830131871546171383822033328726313699780809375628169857535292539023656811435865539828428324170005164199005176438351200575693343042180293152368541142405986805738973771720903281648623839549805008436023535858255461885594244261292892143414789826709417676045222513492987299743533382062762240633100488377452738118872258181998221942829367666600004037991487001856867455441231957351871237930599514821595486770105404782025853908333564061826222520802864866680976315610713764189090236060395412455357038066753567652472668036751767384556469669359602263425800155572089623840364771321429669219347242079872962986167579674608295971274857067903467039157865858111273825743251903978299544576743057529928302863418624254502249624197916398273490435941139589840434895757833246482216524972533181193055585614050310507654858991552554265288628752889554577367874202977037846847563664249476708485430735413284036163491347107446832985898095111020124254488464307122717488658696436722375125740766380757796859385182321580379013885132456704225278538766101351956828652339460402003567338602520551347530790074689452614361638124660209433968818299857253465435528540463610413121499376921630261483151823469420962791154941719466072066552844004435657532664143893427722090557518423691208034737988670796922839869375088816146073838246420008153936740018862573073695349973083672528101494304364563497521354531951950035076482370361845384975636163397442943098863871989880818808674749583176022298467250195918371787001546471943774402458796441934330527377861745024524970714990700051872692928345871786309174843878550639754778139797614710297480525893069221666222523537344901135398626602814192647629370976801318720414066687625545954222924938494627117755017586202137887676002980515741123780955192781815908206636365403568683324455662009516046337522568825585458292001930638153387365651794574370258875626473210773227646623152269937958253816250741193599257543470320751896392792921623091299025904455121720931896617993469495415021868337701522075911300888689023857991528263986782465460887462785262268142473318858857241665126195900032922440472840896196026492377307279303286983507199509173362220690426621137935737878963398219271111792437518683817576213472922730484110905289312739756654644015991089205635953955062268490348177834016388807477585910604735866456072994009420006312043562308116498145514965551300585461173552405216715566604133347587598792044559217567756328376722769011541649211224642236039540336845501134265424744898954599679203644242966524827350687996495015740462148251111674016381288237054926766797280057463290619456179973094448723746706306283461937692637284371025062943023983874718041127794451518210864000155847579128464012873995097762977082622634588250520781834576050530815712768164616012674561513103910717697384557873224133003000553471951166901258113520801563037304690809309792735365856491357471135090441275907649029919388200826217393959286123336572970664641027058783855131893465796268593304795602601154503596771014005799333688900402207538482513993086371634336600792371240645761765003641061220543568868817740625305700602301898291109153407117751712442370364363715890220116231710263565013024399121540427012730391660434852892171767800544353796026814476987479405571599377835639966210066927419271468108962040736111634720258986246474408196120403368752089701088063354284436925218017425121196785699110583349449991683094494698470780636754666776782538372304052848929117305480298931061328228524301397442127840108229799225637499186161909539509229235240387265633496244744690348057513565946504625030962501118599636302403654187824457074024589488060507416839071505803242418375586267960448940311842071561842663899300596835196088099155005408191160942615617799649455573893623350956021693845302940741535422017008850593410802153774416896976552390007001131094692800034443560636076613103027287389274226652498990981590123765157043277319218502844881119332011035710571944438712183523225548677264408667340454413536740399010464179288114132773295705233233998780091602670028929046700345506321135518225964545636558027046215314706032147678038734544203988775731536419729437465867827633623111986467460831716249593805163179101602174316003637213513550655568116276716483228796239003714331634809586892438471169048307896510059110496501599283143831201893252516676895589731051802070915612821279478576823150309965487013780142034235086218894451130917415520121250377976572630511758844557918166124319147934998793718897466767778272433292270248264548028499985675549452694687032750378394003665144268568208130902094905789962210081407736696556627978958759938160373929408189832602311979060514597803844941218550734723444046413633317148297819766986696551400518184541976331055635044884971342236033913005897971734678237347232923051738850500463602568199806272825811245559158601501843909040986418097171007546188477393491127357112710753309507903619794617087334466480524178880606773110645588414287431205536864507541312378920501641824559852917028552982349175681519817495356504045373588004097369310021016197409940885723368139890685230580215225783079858444498849002672215492888861292502885281352717378031820762808665819870213391861211336024618736264912859838570424605478859944208240180919736271175154047465634118048628864398751105260186007632086640320800588098124668287276915828885145355599297214513431881771664556450266633627515714226121270282902358703146786242730233599895133833106908036791228975922320900535339836105280848797434705051051242979946969587732900812070797287965358392324265767339214438047036170652959567299323441686930920186625715820350459222746011334917847686783106363023672435537093256269498230726186313109105016432061267424608679167037793094066960713544777204124017138715254147871337456602291427453682810092920558890079508483723267871865955621283765493043122746445977381115639667409274991990309678315704437927396416667510978926409311746824187884653928794391428071913722819450621119960494201416756751415522656932859693990054101116477675292564944042879583571003684509070345801908749999309273423323790664741074628981171010402778833821450983160613718505842790389539496134598694553433217338838044229221868482471011714851583471060997578697619681601243733023068446927105578932616600129599349859749171845033446105624084001095249031129151310207353660669914250974416710891804427926385025576622062566434705688881209134312965478161984539675154821081024416062444931858735121428601085815587151941939765526106247809254081424759646627019194378550718698349687692657517135017640200359938353017830278176710220244928865565462010559567415771159047285830165422561420054826851371916276898252726600077033683592676892711746614588644325629544170512168608373571659761027823884860670144632963682136373033174648717632014278800674249348568445726886782552555092500615469758288549210812222476682290277511682236950254398732456186120999673805014575214534677010802591529816042122311632876026457848920881444254178235178772946368491686378710335598802935287975131660096503450213500878614816527569342549157582544785878977900421015928011354809715815493253864902115138985775663927058200478330810319358617209592850309837197795638466498733455490133656606295899331266703542551795858953425568522216705720637316682093224155465652870620820268533260086658005839660906950497030225453493694184347991814854031752161531889360169898297123827273296188151354041870492734852626566640813648637887168029974341992184045267003615580203875004096372188655376610564625258596762311209145558061492374462248655905259414678341230133648812086451317814505464179416456723857750904521770549975833236091618246866373119959742563739243193683606633468788836648939977087099239751769429327043157163405058351989947721259861246595675803136402007793328797865113011947679012284933455937274544677730699424562602023887549309022335739830396642856599234623943430754355766148585186128446617314397997597768447092979277382764709356279494509375749758094022971955437014385922121605808100423974385330454346711914387122662709140126153844627736610886518271556640204899738718538427974087178039858785748721689263629340793705516018371405087714962816078738336233555978837136080966631521893228751052274037101841254829712856895416419492794385063945483861715452863298700743447464614650341446025619364938925571934232096238572840936220720551764698253040064322875603806977314699966010186101840908347452808928098339129091492583036511730299676547392515184502772448449537680476388640190634872967747990212485612731663998442736186230885517318239967881715818320630969964851472957372369464794425482501448372786430354266996443153981527716867984468577777317672421499306359765181359539276806871032304580251915603646418455272288614825145974092997199452910599833472410418542027208513605430735748762273840792001676346615109061471910813300876924398905054283828587174596002008845764482519031375548086017940341094418988372652319407183137053799835234437595489813215342408428748244280989888047197105452923399847655171775144109635033144384157428360807901341301639615794455908736627890914427598452297630543934086667826431401637571705618813450653637288873684577300189754353864153639381737629018229633304944189194065973057538512133986275646249847032791841511149121135250104685119008961170790218889188062488253842283641190655874808838120731232314134423335314443360965627192108247640392720608888626285258851992830133305890576527282957142619497916499589436317732474958095984149163996087240559405897409518518453701084239110782354479538977220797522617599737993180176602584167834585215453135785842096991306995209918786098861244401060741198637447153099351033428616375680948503592757047442658967956619338287688474667387627035779875559654940146628998920998697164854072303398883936761101330378404511307837997043311605332621995442577030710396843975279691973081280251126223600777540005130859749830464540495130970480342613835409134454056413410146219371605655280444840088045303964949297382686502274528229948457746734337867550280099756051009152886664658790262577689571241879315839487297388771483538424812931191683160601354302997848368635277312029030297107783027747389581346519427561606674284360702040023876861045920776965676267878197065606120339730472296548137344619132198858923218674391232241525774192907822570914140181569572845738336229188507948683294933053359319357209167636459558136799238696355674929865113248271394607316285501241323117372648773982965149234267413224728863284602104136696664426772810414959430276723876342860664480790484267719159856451260861870402572744277451430790173615156177315157500598839964014188049730699755066910129240753037495815578462768311483735161008264210568687863568408589201192682524370390352517666900923840826467526170926026971040704714815310205739799768157918298128923530414649198759361563221245168274617227796815733025325573522302296833982779941603482649856938263973605905623213929485507427648532942671058969945892642144119600084535333114504068653731319571484348541504151723470687159665889346879477616050652520532551887794276200067792917428629514803639371556249214921928994506784097205434600195629847440967486246536371130208738141754833381661656151851119113468473236553824853198785818181450105386941315804289410531085026258281571231111455512388549044534798670025707762174138029189276234523893914028052930968645560208707475029630568566687239774998591135620834859426470223854033139665551229405206772298210771698874906831232186566788925348437392893982430392706310460167855928753060178702221330681129914256487266497168032854943908954011598214937701703276762092987636152947610229638640039099466517428605271606511721401325095927055929483973612998179810256713853317710667503313178278732512150132783774865020703313550622755813048108002946051717988641864693830142722291579435039799177801649052827713029562457091027849444590050250012647562325140161203982032550275269695196707423516842119109820901473455345247385160545020344886526119484579467391032494601754606594913347356487848126818801870735259183808390367907272198713651269112873795377159952741342667405298605826727776084199746970641965902995956295605560002217637882818096465842429443116043410154032416183711241183341336908604073818218678592966006015260979204302690514322256814365746965542007161049260710551621362987930055591213266525433447237515483179612564078677742430707008766220291814065502136019166384385999886123275152903529870349532107528969061140401659802188280376805348714902083087191780477531360858414106596751960432401798589153532443423362991003390367726189914046681027614857872154303275752435932050311716517034302427376082327100989621495063849691002902577416713658504489820755135344694419418519912145668150684357307587654127131665423566812227372223338758776739362287460341063681565186649322813423042420400173053913958045034059680448257513405554904641633578438160588686022799179151567769918483857458197898136201297053878672660688951885072200744261029707371283569426697793382087809127052674022819034488781068280495959107943088810046956183587209343232330440969761237719689629821199168787098339611345262017695940034586738339782341473219138249974991406589677344743402835803153747984899676192496998518224017681930521002245510857860384690568766364128908975155436650656165061922181855860639525635204347894591616798123236057496837482343890555964335042927547726071932198308253807155388521773092429941314419026355802110535798866536264151014646071198559829289549075514813694409360717649426291034038171821614396041769852817328208821036906125977046831405987658981426853170031066274257408280910233116815975958654856178161460643447651930287173430092180010058739548345440376276460138242763405329465580888477374668362561690834309727006997481782424574194262607770979891422900350084332119239773590955945746815664694781101010369635694686789030933757110276208660708782106555537792608816413375293915596153910623815381314813176627603231988804979216779611049102388322750639647100769652474414609822625944767297584481013880841014521593298873538518073069810094601261678689308602437849860720828026692445109815391695973601821328794407922306758412984849036563034369087014258314198991054139852269307546695019990277201199343809980965719482859198767241455917159595575000602439147346499990949622807320890185317741662157073338928388639164413759397417797996190645277409657976928253653487828864697225365575452522803168847103926942994401774415056541083924818538097224626551468903000207821275494505279154369817549666187513478319186574125583553974077373341601561144528150171617511799963994061191100863047047957134095315827911496975506142525966187901940474528757334388929908002976987789308698733990273247229361876519329728094639215880105812091733035606960882552321797005760004159044881793922984453580379746071294707608200651516833656451241281129400207911460827424310952033600285057851031781296901119673208609949003674260657883323675998903174678418827376211282261504373578261282392358326023506215025388120503808761075779234110200663883596461693181575042860662121240253081275797002578725384490578740240767751761182828022057007680331731437332224972089532223176991483092291852524674905187716587192833914512722243910768803814676477682560519916242899466641586857003358971005817274611700131317272015264539575067017238873314438527194969975372458504518511212453237600924304723995439893327632584741996602126125298056618497682305041205726830278895901298479037010123634777326720390810711639303289268969858980276042853098125791957324080531453599950680281647637678616204990872205057179263264470138021032744757850959815376927943735399559906920110868457276158737474149781321992210097946361683688376980068019326724635633139361980228446602908257497088761161261939179889891414720360559936908838930580535936933911450316665837679068253381015494633685052702160528658989694225709635345492408795324498345015230231036833493083408235168291518964166715750476290195346765505045433189157265705149877638414907912672838031790537940390655134324257931330413249480760881046973124954534545785626432924575397544363110660436528940344384293413102992185638619690395362293619010163993528535010572993277183944687864902771924119694776679674321691661740183719065604639000765211961148350720755592910178537877056954207460072534754632987591800830202715029774978915283989453325540719516665753230926495139421142554045115377864569662346800500105576656862225655975320006948536438622303798485693682238749031954900491665783397436698609183391998723719472588452887254012846450566305472362710992642785702458292237304220010398925143760741811976799800496115848890313657440481472776934979335196907912412868049505017744535830567404267328578975726402516811291440172893889390600786220339806661965078580853482490794371510593186923206404967386563531281304079107222213576654821878051985853001988320719460263512142799370069407085655958724681365543416712160070267748292362040145298505602122441854833782595541641910011069844160611193613415728438557376822437027368021054904985965165829729445551918241516040655118397072027202084640204393072986300139055434860805727208711812587793844984904370529210374970100166399815194947629499986428493736752536317521883313087108880797883924177046278893607737691470138020578895049478115887563990450268575505617416055899462503460092102109352130947675934350822422873652738883742321134710601092049395617317488537802273146628841603886788153423753915600377407866832869398483480806707192360015857192029231113417351022174559411995983544456137561917963110704018047448038094383975482674455197750593665932950078695139834792987338878101779456081754473813559180829981249823150037350662654337764521831661729592356655050362988711935601204167938372520077159314190351927245801694493938939688612900011911705588515157980783219758636439622341155912478451870829040220207055268885676776757208433019621579008529471279823397076704667834310190431379390956741849317948755991990551409619689392255733193871822401654043894242976165912825960645565767896269500675457661057497034947209854964172219226415181027989110590330653915466596702202149545429252256801199732233186299301288977260054888305180190736561784872448961557321648257454753816143467084018257113637533942016840051144296003030823242762724402493439561055939330737827909395440108058510853811441266551615428095286811705096078289107899719529989342167794620020169989849651440553369490931441566374789827892780741711709779831715225227691017629063753678298686927280589881500482306979073492161899553670790703347937543360494530720796487701633503866124771679889404617208901243370958171600709412249362154964957549239133890521379284813256006540708721929520411745114657836210811062428541807816619494184580109484822606357864009531803805531752590882467441944083716975126383772221899903516608185037840103696419148911071627920249788407850357701405616347874226400006355817468995774598161717654247358213363439055746336700418263131436114181603329667629676001679942055334036403518166605499089721637891019331493529788162093954196820658190642836426624132370590392568046454636658820270576326491829158713636046873638450544974888393625563446902584799733972437826866792004894254402223869489172004665582573288023324994353981089464662938621067826158527899573711364825491949666999004651483304786736213896107397991573499337265679173820506794890335785170348015684871190573315030732364815754371927707826788849883018486465398211832288477459906823397462156125853826623722831969860252043378627735575155507201016059787121746506973699977488505823686182397405962823899061718458168239669939404234038027152149341645806650609425516633060493107167197330836033118091222672826165364917781545471333613951369357897079038129100817208674970566963962750528372743979162876486455768107697904387778853689843730036014312948664926231077274903705956214258751429326687828478807876284781862459567816866258302682036445978850982950892525944172113535585941142399515351241488610058114813371447620574893722416922190639131378281162017878760864388860506587083240869863946519451168883795277463535977800599642251188127560160179159022475213976910679863209283384060086102184671398118661205103771796785864715889119197808206511049872092732936744466455522783331556127984651988348361976080158313179067455124100208677523822065546145593974897869216323215553119290602588527663367002810850040367760202462557785265266977034006959215776156476425963474335647160218551276752648922167599801547259118353017790110214847022673250795852527548423162615892967491280149800575414928943724074644381116109689127925533486650439477764701668970466249702173347336807947732108619344342264216085801303502463711108941668102650367375214032824342933691937372637891689833875137555791026545295231372878571956727250352327250114908852401112212315223953566814175636082796889420199323245274911500056806619067100730562113125640182950499334281783611200441387083045411777990828298523910316521755322173908386337724070260851601865097547228451197539120397627596019905383829494982268416069423707468528511859666876879722986460275718450299124692064899469489774830505013519745922277894280494588893626617557558501668491138034540655338404509254779564836853141322067280529532217757679973297500007720903025851044324639934067451094331243587323598628587936132286240082781507656081553948158074626359271910622864529121954899127388993476898406306935015305808395651394402432325066622429876592396826941031130834151196755536137839854221179219411449561916538849185979570764326736974593593810668775110459390561587596349661795677581631290731439520021171624160236387809632990133247037859386552914051894854020217477434941180746937803653261313994620894555749060397697094955008026496879083392220773063033152719944794899781981828956639787262359965053845084022616071288706919179553483412729155634507839290955496217637809414476039267620299120979785261012616158712707535586788607013322937414800980534901978765117235013926032028283193813753046174386185487073152287896043801626021519321727812501015366095539593948266297850096472147696304142092856083675536971457674465825137792689300349818767309536656154094018181213814515718934852114137632397475912493597045511811135126263852182268414222905761672336221741638596959428555841526603258173569687347871528253854686617083171567897986920796685793852038673279363131109701750909153639715774785466923898418800085984984931159137283608134143739359840877268138815763164529904003317006143551587132104849086040863099554582932498512694150896588966201964410303356985757879719137187474794198902398557644542753175912782182067919400959794488980216551994749107670219496596100713430683605884398062502933339291805043787495845783955975219184993991566568420764440157702637349736079804389437323371035779462949595697528642416907667162597431170280130433527213920989591016293150314406167603304487131088893032925209532460424387158071374113333496752189467842043520120051017155888101407279033709013906082962325736543490225158571597343839643254968282425392777124223574763651474626863042160036737390572809741518026332536477880629778365031696247887663049465890413981453683496483767637972403013154653988084173969361425867179381914048143126221184901047710700206513634019865582459549151893608860207754337442587939235037833850250116772705272060991938026117950159381871004394547864261178425146172560272380476328699796611311614717459878855420378960304851193694719210877495085538628995850377779904479879768191744941429000980359750244314457216387987325933347484330457394081255124793772083829886046552487144520681203144328720218249171333241238941303220359557278051440495605813651409861600790510074644557432653939453916473024455409044935918995009300701806172333716798202231732619548655260653765962406939391279640892608416114880330646499405407464597314824039656863432159312994393707782160027095587125926393806265309063722715903021445408278903536701670981523898327042384001634810127498699659383318771950793697308356943672885650611025094535204704190595424682019898279610699732262136628167363122989056247377762923755761011654006559385237273915066906457679463920589716522864977434502284140350888083093446181683666737157251416382605626840092010884137838892076012300086402723310587403779236807772363376099963345491422951402634074069500035719201635541039052403529072732698238914645854980607121971683395177468457273270578300165043438522673289066041888411382508341361379961981016970527367724719795932611776223445398195320472440733945521293754849964621282877989475926355647112480984478863548576844040079645408653431178446986669963155071535534675331827894217490529540847002365155937191300707653206101646242846057544591362740802494426430247420387231136814035011649167388033979628128823708626314777371095092521166966772840005669652355331235727344712250584933421000654380467153351524918231784616510258088180164460499940588489085235408615183894043607193406712923672606944806459997807772492209029038624407445869701420590221988806846096515170948230600096465701436440766806637279687569407135156782799064907906327720904452450324857579280708225203262396833548515860693145978385283616945633618631495689575125205427583408433765438773575581133233224458741691304462333288530403416818532765079629533256719680304662622269392924233817614740621769438130181644683625060288786882638848622844076864987050543822925806584870404035562573256749520111431937547754077091962079537181488250616630692548318888716236852515548481080757453534756650691089989025790067471165361044635484862584532960111660552481236658133484434023033838766947308531146822952900928520339707297247845950326397304709692877275566741078792127067696914719162964677848426437554185756985108165871827151474955036156500371320738054521273860737134932832995067948381046672169613166745564983864106655385195711477979897804053131531304695355956012501223073013512282359030897413153187246065767650692731207540535622805396956670940455433100169920093401603015109670070870330896286586954811171164472224295645926247022843837363168276182638145452738190115715089522016695558952554622067920742767776923081152264751106824433913416500252404069330258598945633927036419440753978120082182135850455473521574804387050965377446147811346871656555888351972792131850455068355394307605036900936296238783640866701294439893854444187850881588375087629000114446901288812955855677523752165986849343242206433312659157488729539953386225175380682153450511244744094691104511632399585150575512312582940123674771515790267854663437832997684375181671324663954643020788768384514133131120043836272094728966779743948889034039333934771491655609878440626123581223512954925625958583191636244844911239536576587105078807396708810976691210513367202108849092498348141080851471979311983256014913407118169265377176694886325677385081130992939242797311269677458349060895901467971121975453286879491003849694060700564567237710534918906445065280295574475701857859353330253437314144205303581894725025659741992239008550333847929662370767233463629037599500875430750257963974150203988495903758576829100173441003016390174848563306422011752017788579842745795912502607278147035731188031082540722337056184039814643086670132641399107350024418877255635131802012518580814897540973697308148730540887173734744284091929164342440210244964263928735739824038105842003734586953107032797985022930946626806901792724178709806252382975492674271740109313390844006031771503988397175651715664250661408635197545734597473285460352577081637908053873158069228053306986610717617047231894172238541326756768641085069361977285088089991205932294787017236599579112547404902304217356116439548935384403866196678322738363099111005285837078249625061455188256938516357639930307559070740917791768960090942166268639945930987166518752762806121677655991791029060977988760291131293858955350180182828228425127176741423279437724908344684215709467901049134293973815659351333607061912518396634898789049470872644134458081024139652538971443908917775225241178022016887498243016237329016542389588802987575006283104455394872770124930831524949797471267648110417923690325649790862147591407233856998568489932072281268315037098991931307602227680917759601941966313606533754265145417078972656421694991277672019356518712974238974200774227060081833146868926602940980858395534529813264337429483971371578266348938881758528599643215246849202217050423643862971531703786120257828547239685501094726486865273393613270531709184960842867973063004361654213462676610101700359875797906998622320548802641853248629251096168796598076953897654536145457445540016522391424814892972938142790625588597012238728348902405738552464234439119934502720657717152104991279089921169924264097040941620723180394969416889854265615303280722468255424581111427009573232719015598853789575571161924596312339001389238727215278612420381681489646782141666758766918285458524439413730677146403734330940413644769293578325756754722460492377254530663122614055017563811599943197027883656146997453561866251992177475878966802204666776259774383389956603904036282986148270213861905360663668457915145149129662414918969008081539878655838537811570342660344304822550131978660476762711151914132960639612967956751485560535966427176487338775484216680732679344682737453566108015086057433991986215295787876111855924472352713169009007276022927785720407394928408102800388985665402155563337562229145898264058171848809035219592322984559191694639295796753009154987109014103988738347924936289310579711504620617690105468930136691256496076455191053362731791560064596482747654805723188947139841098601302864866561626662957625009817839445743520393794916318616232450841043616455539817023339682807540816067678923505102764705204099569714819307832159932255622579133690177937093754250417825765707059622397054241206716418742464155756617817518321100918462648717765091190334572307787317880484937765442539452471494240914793370735134878763145769851002496749829672571838957837846494786398544023121454640702316093210360555946195476083184107815497585524494732214389320523373497582947729369785424473319216585338317555224946584875939746120313681769249128790055178403707516106150863284334456738495665891503494240520078974138322121492467179808528463428682044702757836988286573044737017987549883391821644363204383602752611309004461003747799027949076124599381124051619199605965139007790963429358311903430562435671573409505616362874827820587615489988136228400631951119520178080967490670497658942820319324591324255961711416431669441618015524066188633117399506879643778155380972229297459868674364343772446022500821701314936991814024542091576768395501316818107403428304112686525498680326457932318450295097745201389805535819414101913198483386798555481994017166158488361181485049186467563917728633058374665125190995176278621822177837392160428438123658550359877683167988769176678640376960033967280640457345259752019328540390384327847518556147531022636373359384639799945119773456856654467428389581911035087502447542075011754726557934304064164481640001854896172357369876500209146312440068050665618211320293368595675472266646602468685420080392607405662982996622827886673306450655032884162938829562588755409694680707065812198050857892405667820730191320067060364216836491652563135377625483089594842053609872295558275245931500943341900907815467112257271079852122273755615832610302392053167927886141183298226459755765340454234610490295722395875331195796195022894605030835697403198482479375038973982795389920689718912962709702681601799948823685154410249063450379330463850598050068936885092159609249345461701869664702253261938819301682122648436877795239618136877735017839876014287972084836641077328764288692535871469783972618881033845033371181517114847157535728291113771363131977821202456846096977749219637968473749691094564421462352746752726128530180078957354303275355058900276072417108242779772273273590062666386669601352230256085097299631537578243379250716217207440633313796387517144392662381145539390043886785184247175875379030663666093268883193121032320723514090703360541657508220906033720166811388503146846445191695043655886615212595069382843445815287087122829314072755593369968121099035159101642125607110757656344306351170567316743528958194754952161142519311002589041345289007507758318181226707486169370511374740514479454619795301747600610679345348377394055213592998818346545867982587586043173404055460118233649355330635908322439166680612102928592930996275724503127489439096429633208730774671500777330083393431588596370124433769577694548260771609767086154816667942389103506090461460441303968713689488679983508780406806438162177240634791781191620062957777013993709343944321724972218231952125379413260275336745685586088441059085112302706065537968948611903334311829339108761961856541457096893874369570612342801977335573896240768163158443358487707336072070640126367241684125509830095138195768861512464866019104419000405387333567120152878262611453144400194905011564171801462355300334608021767589156147995037146733274581502728112721182646692255544413188398595093341962398594556118494767478653220714920141404358734838912071052581636449069203988138792728992853988460679469997338628784322251003743280666592641993060846936167567748471799555382249785746556725055674894930960003881116502599000599374017386660470626212388528481701094671013876835220025370049094466710475579000862748699860758010055989739775274853207418346619399378999761075399302511442615689204855197230784075822784838312358647816828634723970507033770155108037216863941507175891202523520030936445381610008908813050203916934115910823275492996997841354483322967187542418224655200379622790431069770241676548293949761640495002830983893942602243046169048435580474772240387178669349153928857863022989243143684173047030157010902306067503702447200332641348728560100321972365652015909492934148262122999823173320730648796012037972764731556363037609293837342346820918332034208803758319968924099274936352907356498472392751796483564603811318074452718462234585979449722843180527406250005784420048300523823875108485542664866184058788046412068103591989839609872713115064108184549045557992760943542184006717645354861510528247568296268598180602937728298792442529438708541207310252940498327891791277490031521755214882526034714160181953845417671180625218368758194154070367681561576618172047799869233146403361380334652040184261580390264182536185722468448606128873686999272027416268063766621120692903461969545811364344741598714018921166046622658266159054206976394359312366204552875603421650034736011943422561491403201579417118517154275639651725686453846709545248371305948985825597452775643783720939037376064487578053808966666139918396305543463515315481858867792629127253634262889852568544646981449746189241495863663671981400650685888608602242673379881276879694064970299154524527213257542819532491731150662085866520774909529651007534040492273565482829570256906293588816904146510697177724209554461302585438178630485080605899063738090543069502613842422270537535459859099326696733216515194817253453274733360274472585272453947857870490548475863311571836633235913234758825934064152103907287193632679637592847331316123397815498565077459574263019250136134421817786573268459498039257419696999987645982495670940955954906451431929975329699029290181133468491893973167337404737610215349790280131722337912799863914710105736458088249640377936691442602252243291822035969479652296324150462593037636643284086561602312161099027177979404824423743772421754532743690307492626172588806522332614106033816532093232026699108708475868198563990498575011761996369059699254104368753291819072004157598262345466727015736971133357041403209379345126606070799065586879616157998493410954090321243654431087316158637572737481745017866557379398486692291175992043422476006485976005497828062941873914749664566019768926361659828965655744580409914268909472497067352204701161915360094527363253066644020100232018732278197614868663489891327347014448203242931178410091528333303769111970512525118902970829429748839813714997780527816493437056043260053526981069189865886898161088992699204345478155357404652938225547579239651257816984986734218218531240734311529608214112091999940616010158219127373016501769581186190366897792756904678571018105939373143881192914749443565221896260286325866365190174536592121863876810777420915836469090916518273980753103066499806244849277475618845297329472713914899726840778589778686560487233057524228571724734436667418181232708415917914786168197800328752421946480119315937935152394174090419098412578099090388940779420467270491534500024860427455307306836472220758930821994452347214521842825620929143768143878021396936399786022126322109822077357144129412640653765264285434829706936551168067283061481553500677992734287467174083666602053729220484840870252301258571791456966579523963596862706459037207268058794398134006676701411765812522334810483868677174058797368961559962178465497307393409546604314586015404956157764561673447212642746874614083020638793598042849662247223255046609523176817245863626112848338740765075828895677458958873610951974207232126233355615193382471760218186838953006797502120769043883812835625814501250071190271565144346270648149505901969961390405607906737260724112924471994770283848353186332981761999473128331449159687775042903279770347619380629551238401384229100357676929698595905443982892666608780103440596705590520766837021015952195139454477311874107235279456084435494667607928826819356764666589161362140424785642792681562544850631668526832752465600274776524127942705341934828054626702815992453912487393755809401259197783465336557356259376680876997525746027021669649252998377538196938462547085188615104752264751364891883357381891697121958326810041957653770211921182725665088966824675048666996598850420411916153320898856723809260181428117623447955829428808581369886073727549749121306874374219430148667662596916951953688569117493823196975595579402179388737225151599714054472897083955103654866628196503684868466103927455684143635901777440387565120807714563648777284438331563572496836756314810394389680921192823374145076186305657777377941453330257820788793371355232819306677810347448788145330227671159824630146773913180646990171453231819572964017138299344586652810423902920440420503010850372288970722667320416407583835211625547293542097706718652620762946720436336432735056632041125212872258941499762804689148555075973614650511764125793028369745320360465061569238119721325105618061345213438176817327628414181021644134170249175584365681145479777519582806628442497503791747723620420424505736306091115484024269956433600353014366659751182803280395342105404919103056731421075413023579348772342390739593893004368913281485468821970534826806406133447603574659090656460980097171769957520437556354521685044224390827808348072156800312138051374475573866335806612898256952535572326630739519540636979469139273919509297099291348801486760727149785168270269050710767896576530440463362626888722627429312028751738497554214315049989074564612156955425357015201474626587358829154486936716821097263877036692987627033326926764051123565917877363247704611611875283786408803828013634904145085131829558738033657159237554043740366009431266249374473501836940883501231805702551089418469366688303806236043616899868181504628145439937084394672379528195303288606099631547805411053979831739104819179879337630991824007163695359256783586699908525682834617999204484921582868255426606669480659055883754767477890063030763977320119162644193123137332822364181193438305058658554498299868991146681311711942189160179373602575963218532104868749920473470299426787127613334237668342822565756501574897202803431803206244849572309739005715093145389184344943828397373451579980515625916432262701418620623694475930214105085028120360491099390536847805602166270463685525727413290604228995635102522847519070308253273849955553304495780330902592753163522180988988262911598033711257017217676690454568064922305157474689155717101756724035418935061128887302404314431986958652186676073303854903602774609635450195252965340703015970324098511502529305886567190112508328471496806489438130078371862392446817902162173569122887239480216484647377517681894212220710356555965079794844990082719355281479143404037138717208176090319885645874610810991059369177437947128793689503247741864858064819679956146436708248708993683951315072030565303007886859820360720669916737616414756654287719353591044521169167692816396364562978340737064788274061834054357077412161383202873787903785858932745536149564461255050554782668745445509088688946927185988949423449507483821850184341303236200466807001917504592628408385053643126768698034026811580709810345898604130841735509956944151799175432334806330732613391399797880003821091327660145496111570428580281606751623381353863052429563833095032019287816413249223004761179535824956059145300042464478806213024689786559692629257635740287994013569211675539040026996645560256829723695049590996027170973816661686780048327292990594281029681615746963060606101062267170212539667479513893813748538953517578329451364260069361377774400056699301740201136677317877044694506012922607496911061576207637893345041373365119560032907835235964653265747497435286721116298075675851083850160699896935867152259646305700913908762874164925417081690968473095488602332982888001016529628089769877231969074210270093488809344555121881883365197843185355960674763507221611787287356394656554342761406855941242591214170781163030801019258762199380989589430509396825182771303303349266488532956187952664463190634938964927974779630581823776065803540227966910818093226725142614287685085502340363959705621412515137620467224442897997855454131901372056002945670634038242991780751257244844635771525893472233684526800050490579407659261183404627646998353219893312711732710511293877462720081317263208671247247831036953250571166846693391999383834165301330924772942935847074388263424007013217132097282749479611635667826150715662825021252062763897515665851340604552901092611263816622423668992710649041886270014421128735923939982500565800643250607509458935850072180729322308246108258185874671334067334432680515475652761122900942154655618310341268701722865416226907574466637402578505819839033726685391283425113889776103701554705969784284381211041667496423619368984063561387622795954521514689288132823943963661294501387816765909292508975324716691236834827515460782728044518243453759655049256806485323099928145147534550927555277962794142455744052552188253239556250857211799635301956758117744367625509731975115565148451372854240749048380819955880915161179392191042619092848578161390514823147445531015161591784145999471223905165969441039727295741158339745939062050077580709596765898924961437343487815637744208374999146183451341178572135657651002882165343788389069722998862946226868519562883232057053789421789593678448999728380822512958573742956531487043040321954330164722045813979057452880207472858810311408587987472118632864898447340531146044004800111896474216571999311588903720590031466418126179209119408878500667780109991854619093489266918509118998532817580156149634425272742021323083262625378297537478084964862057473772980595049021455501089693480645109743330059979855532033131826917519159195006558488436551656335235079497441486995545934682666761749841931923239198584931429070339724907410433531550716185771284452704556151487208217879010758099459907819034076848455908034852561211244638832388776007725640595058576145061729291017634210620163227631335708698416113338433519159552199342391045655659731008231699479978456319598341143056370588841358572324394599937160845154432247333257474326902932111340553605260907241688375335436141287023423782527089538235765851659641732811004236702247942658948954200246277977930989345076021362417137031065132759759613489924270047047172533326422774262347566320225179842495249821276559511394568141270076623154851582573596335382671792266993633391806685509480289663970163358030635777920615129299586818160233278268287561386953489833858078404867756502916232810223212628623703647116725909111622074499444703371546717193557960340649572183991324315717586890563578201193562277776342162367247566768761722061015213389428844275546380391429829340970637684665116996845497749248421623454987901900590122307110248805880499208202673415213345261948227180404524659228844295541908154492145808904570493927298321688341342995368258674641083672846833132874321981230074513031444007683574024462780977013002142187123511884439078142864571486713031627438140533885760388529469050776911243964028442753921160112468485588590871112043313698335512983177044754395273511809456262736507213423867548781623509663987589890781058433372203975442049861899214534394570010766993023334045070623558228321979391210716339044784574064959683736835999610270559810934327545718226581916273764083264919446339254141257047278930012181409950288177663218498545308566679007037626577058382731749561209175232476012728488544222989867998826628395086789457714388158096755058011481632951013417845494953248474350246166826049086054349862607076952206845769308881019936388602056908101664505187218150057434727469240045662801352442429043237968476832649959785995418767960988824064974266522958440697297761914626489783151028740066979236203320604044535479441981998947525319571705208553161777916410772764613921571177402991355550151670979661965240622229141609972270298654087146907919329111017460401206520811903347933507409339673354381066776442516210910640978277403934724092269713998641932401833676257879516616692114857084403473110985771860414380657030581140896522799033707067927777173240196063669059902396600617475966027436477233417132112564069573043007387189697608262537784076168904565036964121017260551105063180587830717710457167891720931555100513126248850749712570882776081846297351566606413813185775692321942216169819818338615910911121296406834764541498748925967693915520889997434834825109771717334774849042415704476573657457752887031370873919072182505772993177204212596617789094627810737489396727533366949775977576140133909640059949599124774240582260227674347914043659775007117490687276269345637528762791538610334809869295742898490087041375521603759467876439843626959137289972377200731453366733526996836629260856570583903882359383118961476361331704366529764436074940164969717395660023248475312782613511627451693498591497284257801156635401125748838344957820547565134867525353393094929877785668247383224713634127815663824590502307339832536083003873024839639954184028662980876689960054360674637478175973859320010970384009432908482521486078558007203028392624814842107356768943650847829172394313537730783382862045256079371434798902477544800015738911657789491143660036793543639320677626302110521521013592154694544997058887628365793340606132391102338123478911651339606482327343027611585343257078225967456692639944506549281999054027881507062990362135050452317325013670624394106180766761378661414563785766044207492422926977034984501265149216717696331051676726784883729549005678657239784427631134732497719890600761875914089607306658215138449134561555571151084513215973829110011142873895994616239385058360323234420828814504339150737808186319372078380311364175837348751976507933520535426106483964680022831803234766267824389703438282856767409938801224558418282506165887184191773971348424955753553615428351062448328211410756609679699510482522794215870693151868682289065990544542897676834078428468663516950735929005944652517186518412045443271163745245912494051031774974327164330478610425203579403271210384808446436333013715290149884275237794983457479987528151196515943440298872149170655559184939637362023534636888218131437208134936589804188526181461668564638974283915059558370394712383217345273482136156961283263085165038215295650842082471083485563684152892779777775636659828621565022125074611675903211654209654147012294283854575672141738992979980052464181684733481802173252198821195035184670582808429271159259997015375097479007950930331880565580101398081229845654681618715385799281286103766006844083084983972797637004166030652461482660428311779328935587420559345188132647605029917983382716373959860235887851346092673231951588729729246677097635098946770140282292245909364931925193174285969415236656465995111925468588648001037779316307387944437871151634358086838550980361673411774679552505415696325551756593001109871034383335920075203177187132116942973736665048161622813974369194360219793318911371477579284604851057454283287481793287227871096158968260415191032160358867794747925929885099949904921648497138544125533916737983269837424487412745470962063371390474048360794157529363363904481795414111734936202604851201230536055436888793862914480787910052555989328252773354359247067399972692273992775653397256696715240967730735176129922142025550653142954908742617053358503331777460258915289378865430766613971869474350204696966875056766378250013366544341201497803953340948430588040808713869531589891754432305576148445992971287256207647002380883308255786375448067354538598763808584763650695267362809861199004026798113020461010194459803592743530574492962422737733955201691580053320669755130197311337039125611913305432979416991929482939055726795795281772696879329114257773205002147601996981522020615245179423898458185268279789797440541656480562100833028605473010316050320145740518887619845350296999926465795650019044827824173860954017910370254638143624452508870292266392336640435196780035665454436425036250795296489213906564841401827369714502145264316466210037380995041855887489630824657407334263002530994978155914212875197052710011571017163774988337879565686539344266119544077414439924874232060422661597714780065489643349623583962211353125728982013559848156570204574821091737378662802539307044655436889747490658477949409598122447874322186601530097345480246961726712947787951944151344017301188323674487204478062366370035242586176568380848573688569023709229088212227208341700897912925654354194078268993055731519169901180705018958859647404813904626097073419544942270677540335371029648360620327556173102159143468441553909565909746549927915376332947359960200898026407946829253612778983205853605856186118945140611322242712861116686725025703363488631585717397116032882123866374918745662604295318985208791769279853205968708273206077204908756249762398506391873788063610737211590757336298970566574688377351598523062078348566726739945019724570616041702865614312668507975571689508067386196133576130779338566529426117899557612822039627861630366976572927463176005226248813002620159344695993323013044439085141440696129490951435113240437281803780305270161474596669731823396165575509100944772011231301699270821104372848353646580227984353176487604395208073622595864078734581915310594558252403107537721574321457134477818430984474999189198857234881539219045201566171925554299875334540023811097485202700537114712389797470101585475386268028132317028620129038658514423644864928655235817137202938801752941010225202856911871860796450108765298425329716311744186507520187692927464210613131762030850679066588256061616245123298333856021225199613207285816407020906231271834484822300789404092439163274524087456678136735570039755142780739200343533132128228732868954206188188329141890423929582934929305948139194192101543032435674476992430684895495202395456455030650470971258953086410011569687327280575346288820928949980376942767152372469074527687494117376112489070191987929642324749483718639132922040334047627285290480570200588772263597678817471579821421764176643490054851532223351305020047426608426027581114308115877357853681413656836671339174031607056503790852843226782164643593015192070991234338444761974897013637518951684986306334712439357199345332511924340248672268509671224442280954862096706420714603892359340106844004753696386497513597358331093783260019092515744319203761229377089055745436284773845335137564981164123368922952288866851999159162996178672081918371734730700682281270186065027530298339014669995747944610702671611160278717065002344548526553180461527980301358894310966438222475439771623046764635318028199644937566237115116051978758708342921467498000152971410916725705796936154875615717823583111771013590125353955687127457997201759260654619005937960897846190272218145072358795484271499133150396203051241109165044196697558251321818617835694275540614559727053523826735711023180819720853948601822054826898663602869566818348668524544614408406952182633280487604446919008266967629645490754572236923327441664913195564864399458899338775870098805433186399855404932306776159182859287438960578046409842089740550683296113972392222269790364697767875517303966644741574726584654780659639564895358195570035797166891226946992715128448647722739811741814886633192899465947060089211318989429677196570486185276861342368815000041723800282976700527792276554084855433348616889849738718678861898732323800424009638640679843517162511269725924658678721107053801531949577164948506298157989469417142820421641655866599072861984938491754802695846196422947793149812238364153855703808978900761390103234971796963254719656491227455826354132341424364357459474929792785696077635914847280121218205712372291254433245566053407484951814467690589598069520034923001249866193762108500512364425478264357338213296609669731653535425624730809028817761133739720629836430505408619406221838502449854756687212600676339743731532578383548748244097809739336148731020239045338094741597766456031376811062989214090166123270039005050229476135188591241064706560312980146088899492786235478123370756373524321271800610530855171703405360330737630187113669353217698428260176112186006358489653414360670914199779246409721142744954698914635554828643401104014722300847400589719394255567755784403993657012637700923304017720157097140226189725490249963962566890848589775041571304292715928933801462762817804245124334611567291708721811698669587131261066558109715515556963348198442249377278998490016913340650139225583745253644587113153774964284515400536404218597690932979007200836296202467322396588374131752905866262694467352104426037919315211035606156132717795833242389410113783086245462951409581718941653818826098581362550702814720744101032283856977012126679321464728011596824377110164058829203812229822825505648850200090315990840966980142501599597425610220263183617255711149139214436110185338455682860703157664486057682509194621585069508284940853018066449912071428675989866884127906465394835715319791629682191642876269125672169472287743672269074631085341954406113360848716300832207815371548154354645837025948503616747070730275849967231328096016293612335740850516758670470322859872473980864732679403949139379130849736324141390294392845766383519842186763466430180868960692143383196042210094720984397666522822544368304222054701432565119426870397199293424806391183114715967928827659016065848116137229441994332637690168222434355926079908820340023435099058591392977157604947270770283095758427070913697704371357590202672271213553449733043050674103705440773459584309227693748403956382048859264704386362111993542255000025611449708505270500916289296049847398305977089314120419837701870006385807844261773612787580995515950384666207484815725018212354082543379820275256807457417795530258946819457764606537499326993288820539515184740851474436356821092425017105258634953457915902871522129953659591580769737340686493813561483468625939742529349372392299112609535278901474152094619169375233960791800588818378506688578822174089302237670789264905590178357330290498610475662408840463017442091646079276592403350052136975053666580334050131280712427989700062737291525907016667464372456678743256001955542420944533633439391956768045908713309834479621296632581163765466480890071124740281515643434631081445327339715432334544926861930744837353290342429022706323445090815537951237757161049271217981853535850994155387182194494270861149692620822283110545052601764694421498479691624938335086438997979437257258503494733211236420156454459583232102586733821208272011023617181329162813476936133623163000555185416994512370308747176934753063809491488282318114601484735917650196830571470471397168054171207608541527790614840815435277054711138661935519182555496737687537565590189158920767435261488529376321078731238757206484082373753032884640234882928758674575174119642595547325471299887844133769717447828951480606297501598104109651792487372542415860607092634345112218051515768050395232079839070384455908024897675124281118683112235359449536233280515642845091163825328468276903779894056097304965982167747942906052290642711540907596304907500457866948064424079141604249897363962238355342656882489249030940135322759829226761802139944680189960320675803429397947950058112356339869727902367019776289840733198614297089945534090372605768223447488692010297648871946187586293421317093272777691651871002498996665855083811335678961748113924008069204414625665382945223391551604594824870277524026560308024160840633583104991593130853947426907323472088411918202484707573291150721245446898526855311599851117939381080209773473817493399988897385653699403875952533621748239471547834800589460393665918892899621752104716304660384444123734509103829324838945600129836493417320422432165642758286269646298705494370864746342771185293824804393582160198607006217119659183259180757449365566031905742103306975370732230140442939136072997423148218620571279724084322974222530647847022287728988917204454136416830186205926694781065001577273034683998295511059964275198344209099429823941361558326538840685298375019610026743279608322676608982437399230458381935994455203647109590825189916629159319639863860998442524559194442374098076505561175057896146435919925564267596311962778375128746537965238665256816957003269642878507201847166057379227252095232109907611270241949139628074816965149432043193064899696752352377801336017153557941527226744043835477478346154171361080719710473088602374503121389008132562431720497688680228292550243349395991782746769594115544309850361643131639442573259674614175806634244925060402322028029469873751829312706554137782988619584810935026636452075093196152508201502395128106961883020837877917531424737800666136610712556138095687549097630224818254733695777442501363334650527296241951503070016298234339909100061555024946737128843219723533994529380672234196217016163432924793757445914665771562668285110792098013823602779085249086140613238204702960336142123967891694992342321715288832979939112946652538472686405318731979322677702760178715157112713190221683641694532904519520461503355347344697871415224470877070845614120831498011066671652074655536718787287374690498716276246805308575835228041919956073276659175695773002879207062873063562282907109317225412441028996562194393033935979312729824901885059982075302805818268734536262076988428838928963551772699775527089280711983832712641649813585056609297466819414332203763601603170238645401038041933756887455935123839827605652993796946311157362367658035157564368020797909806973589289503336310275094784781357000647031676531798437489385931992844679705050146584222778269606759197774314228489834622963809575224532923435922351304412034590961012744858914050582747677591103619718748112625960272458667655714727549394120555133622891690426382083573995206157239464517444989912970211065709594498556475671053910136404655906165911779062436459573934607185777117061118451700154545080998850040593155875095120616554563146200738739443327439156540822226551667114981361350737399548933917480863741966480932781710026395502591404777519347205269361172155291928948911285123125631052770972349386770893098856247973589327598084634232185162498530503627316455508600244801128794870890218752873453929413161466208814826808614162015915549122041986025984886099100100893552198600427434057310121427340294759435672697762854277727675979540678321549998708026058381328690281838621000610033764237919800194423704420633319989321465169743345769912822318261140907089861441540819914737474336816449824325266081666966973361969533212777691297726357984301509710815856277952410140312197253995009854837006991572638174933423198417086784859633091293669773835628870784080023922357823103612292313343138708713756072647955306878567678761408679785388418397508504683509284144719683435669245391453969726703865703172962418389792354536870706291053584095862528817292816924710463959137654339775103303861869054162785406796718856452314625346834643002030663624300772804183915050483997746390652352700476682203370156915852377013990541263834764846638411791076341639450962657613452483409138987537934888710844082251502479447198768883992003573792607365768549301553430268438483889314027219668203872768490406507864149839548386239914432710035484142857146636758141086857568497496424920588569843745946865744801849342280279582356377564388268232624187762216226070904519845932677347735018285436069393524165896011745073761140640689598829299446453818686066474728889919098229601789297804735791247963218691536870365595294443349954251605809083049273594088101251280459106505047664962675822241339331580270942092343548241375457305908715656756767010920950546711178377321047597669794363570249991724776409909961842234225938966846991544188772094653007034437183115728705732067398759578214079407363342360849638323335917902277126826303276948775320046801847577053943430079511966677524396159166308278083959053832295112723382075507441530788977762867716625188109118753519733009863771747861881547641160222390303195596789815373333325829836004518897341313857960092977745880614240104591501478206797394363629199355822760236751034782755648662712188255528531782535860103510822581450261120474709240171860256469006846173176799057349011007272876892619452758833587582219473843208345786330528075574549382895239005984568272914134643234881714858460678305948260145359687621596708124955323057637815649344565257825522938249626575117074949886687654410382705337408989210403686773656045428584516950314022323633757026417965778520817544892465570992408132366557869852645353888011188919328625192592221355667681557609276306155759306626473926089832783476802146055571315939157513419736238143794497888858119633437282923219663203357801261130770108572159898202801245270141944055108211091262826167070806274271062080737562374739117901880630391519189825171866613757572759710389811462813209411824321201157828817875559190831284165898101295993972458282885034709053028292225178972431329487897374321507341389531992364509403300894441779949785506114695615294856553112229462352630605156014992464164694165358171790659753464774747518944903388637694549101338475379570124343532832144929827573206494600570358797413728473085568500241405780699494442096564545420670406712691770342055893545921475139946586563795324498939480729634535959897732503522425366975520262596619022391137446470151563774946817344037945328859539492677763875590864797247808868006817235585313143563297543176604392538385405756899742985095171277824885406609203265598281270195713564281392540661309838725191388287432303850700660199215706888715653136986458667179283657355256586271881440144317143679374810596913709321216806242471623729661715393439953368054145698679389717848891015986030954129352987461691091925238097429445514885583184994985947959024263664255486555633149346893561503414883748846312946530056598074676977360194559815286306276126267663557735976758113842161237331459708729860471384174012488889187971332736362625113113346765376292998408903778952000085393997635847442819798576780721048963459907780154266971745675426172384022032773364763975517549166533844727336853524966915629769248343626504746198823359455938542388739013641770469453957981187527121597768442511799580716945466861749820038914136757425295199235363028640995847738080667594169715580833542623996679137191811974565095014215741445024655942823086685483454755041753280904924396975773383406920036596269823806321058421168311536080639600030298348698625014189519615977098530989341590691826447462124298360754346446243464183758912699382353801438495736433235890880340036503562945098957173182119387536060403375025733118252570466934470275756657246020243435805176179804305001576612206859107119164478367877552875557651495538646290031477843352420182232281862889836049955671009471307362511750465682887493345110800437057008572073227508319673684109210872646030862698701217604409040280697949111839643660521843149230735163158890444548056797832255596285773250306390738623703331339379486490735595468517965042966618255310526459824517353756325028373943551018059272053090105142909243352731278690015151305587405395535952649030281312758926687850268380277539808784196954244470759826527714763680134451227046469658616014050005981355426600455530412564538564899316031280559646970972771764775136237931869535642851430445630127610428264940367974802933019013443998609284058688100268883287786069070057522291637884595429511271236416290417249259287033518121777245720634744414071045798701168348653894086087934642885814053237220522033388278249160655075142849889502673047338689414665771519170670071546284933413054595326178257624745577860528907055681209392136360207948400190453482271750199199850351721819829155537394052447488160840114286829854219815417399461519446756653991108625702661728915721161670861280786442259687806540552408407698092622979890897438864871881241215285862107144171314682739415124540231527184641602104587509694837594318073620219293740011902747502717656734359424736706618039867767305606401858990535751230023066083708711686914757913363840862325384349267186066139046684337879651679007095096077004454535563136240513581616173843997008720780057279737476697330001951815716651448215634062181865695556952305997320961352796043608491646454400985340296086167453343809689982394369382494955094716954167064128394245171412601916247382708669769311806960971015572581478531946257461453503976260554651254350214524143432982492413812177132034032371867152062735928163374410315471046396311177083453501544825945760866597757173914576609587753667249840517245700825958212454852196164378931310988248170038422332063288500432542084921594423734706930124693333918887639562414254068324429613965686240316412840305878256465234281833656651895855036990943259530942506080824684142553143703739066510989676539808735874993770334589530194951951702175226452073203602754639413113711611622289900457080284754036140638147708904136189639814679360905829482054185806765374568452152011414513584740042491714183497910852675578692364608405102964056854716291147960516605129860116421892358470677447836979163436922030219888963849015241726483510873673134583953442150224626155336633614834786432335613805300749667620842875753074484767612212952046402684256157402198984963409036109218476043128882969266380818247741624321491805174576051652767148595672360585448148544021329075323119337897054213766925989414624437580625161532179973469637179645547335354924900140560743663106474176679985725698630252839944434637993051824259841257983586495906278906953651854959181602825231129648862454662474149878023489619904934728196665830714757725320158683554707783672825756239924355463937745447797338296029223953910136392484245799089520465639804512178911186836846111736749565952373215883192224769664295949694007368505028403776890626580850024671729589763991528855287127946920792122067201320528093964522632270868221231475800660317858618410693450455257909777395661801233418741794136221578605007833903459125252454048575436327708936373481376250658388020484570153291728775365851028430430373809464582794463170347696134486828805493874742078360720918196695607797807865955740709604430297860930907972073074960701081558685015948097534353052729341161714831747339661005175217002301479901086903452297704877598405728629894181021529690074555659724334836185037771505508603301115053176164169618772366138127227871098651734520385737873021661272225806239456342389511827106389993828193946808908917142686787488703236974236982543558888324608458202840234836262358836434932664801755904603428215172195639634953043008484166217827151449459540901179448852595049472655691194579203679365403761138674937619135288389765488612131811530304716061968670436442884349882255233129687502916354586542686608894604692937059649512844897404856780035852704039935626048982822152555719969935257945452617407432708598911300142906714002259432746902189829951795534427487181116421174293434661858125957750175413534118015591400125239948393901766175216119230063203926935030744080055648532173648116815833020317058976467823292023818247676449092399715748466900662684870792697974543610502665979171872565458187225995671847189539689635639827391169454008286772208397356485201960596067264555193429252306818637594677165747163985103758010266451314905894653201170259390298092672155326188112168705958416472932271969153732331551498788130347398894896254271704631085200203089349760747480969523143814485952336287596393157034764290005251909087525316574079244929463176141128160500604332367814921702447181040900025235729074509400875419094485013234277377902820376877759883889102242894658630718857836325840114004029582015157277750552204976717418065229681281445359630774683991974361507755608490148304881526622616887549680346283304068496724884583144896108984111641853472467904954298423368792950285053562273808693036290643496106389027342398164443712989675246221349980717909832538537518245143182298170149804714744052082067717348293075742446071778472524594618574890493050965097953905422530692123607017038379108571469830225772485251738459145607910558853704706629305268611514962570167775660509871522189311993190860804095893272714652003159911804363740649554498522211631107924025308412085874327508302573604673559050242876200960582178254070725358819424274822906126115650670990690000964622866691935026133569804484990306069770879179642034494706647343583130498593239705958907652120593897697617999546099025575012925295051756463328193778481798272892162688397915039028415489284840501018329343016939308597691882076098327288892113551698234456444733325307296239857923564576768444655740788184753280032062040912485037907903369696799857569854811754811838668849282624893373134636562096236436017604756288482557468798352316689203275812083119267273870776283087919441640602074628031822157640294565833974760879869175255503170496291961917121507212452773313637547286304990037502459348596003211514499284066215825743674227447550106391222421889039120688571499028125033222930101962598793831274820795145746636908690111021310530573875061028762582480472978297597037886652702174411246083737007276409150371333361497174009051602135428701865990605537125909298969887572687800067915869091084574078027399010187258340250270675234927908455645847233838793694839321219370566310273581109630944234629357335874395461017150974841760325948353621751671249004828787869344317863407778956134314765304472710158730835918654422753350609450045427094382959523450061795081549912226067705369540347087231670377358003858882018536060774078592030910013073668615332051430948329712861083660252455592697326600103297614111917437427678278974751030295465030810406048421266292749225871319580437832558381427972820610467164454539667827506633761195615471808114106637289044508607112165066033989238555537675320538799346850503492185865362156116256077378507833681394845092505697034605431168901434565623077243178045128441499021187993090482889896661964477429526148689757457320468170131393090511705612968133624656576703275299788425636726104684513955787617455426140794992788515941932345573064585536376766627790456519468752359050707029026423593768921741125833571439855472717969334716699045245738576573463632340209580112235447644417233019968875948411158859193880265208241262541577592395355713900994061925788576243834396708253598508677174520306477125971687162927198110872264071673162031199505749535335078557905805522805676870940035886214508419394511021296641803010250719004143518026258391841696334287108392447011217284273032774701343798411733012446913775974881728083780863283584806041092422086576772875220996324008042994492930498688498984582499837138589166913141159480537977042001597068934711183157338901047464798780815652192644112417536626682168177076943238146633641948679086382584713414390786785266254202550798750059834420864335320340338540716970048589542381941646320236449921869693519762514875895364475163444940641619894167113410443501482484379874639160009785800714886541351357234604662347929727283142415592080025103467895454275219424132570402630697694654016135485468798571442948680303910184410863890414481123754437128533082399373283668196231302956918569585662741137703388585366462274719316725033611040733156570076520712424079756999501517168219006451178870287463522929808818771007290339729922566421130560137577597719013994123632672808453894003190961542149931926133641122555360118366273278385267401987547818763539357339492847102958252871038099756543973256712948755822478362680745273903490374539065811519419572645585878826961885994749183952654963544757136504122860593117832774704317170217555427338113164461220577791460736577914630762301569877794279947080006669333908086631285203725804287139455275693441864382832163075424935767434066898429248175407624563484358599789479950735840897211272601098018591318726985820436021544935373422820998321512799675477151086725568882198976906794323199185003456465975468942090858651868854156500530177043477744794386727039309525080717481143880667694404088033700276228922940394954645686946736562765121574442727556185472729709231607710083303276120464400195010882554366611838401750643307987896018495725640922702645363838487828264437784676467889452186137353554365637760647667817089845054355114691231427414164836797645974961007517515958073916479931951112693660164858482939073318797391690878819561867435883137351553906131409862755152129544487710458089772191058276339894748491027833916995225437768143940741866823756712442332351482346586764996451945247633087053644068714145683260663976945480193094371008679575123989119060859807956189770286170467140202639004075521169679039679720071713355977146779184571361114940796671246292299933147763421654122778357482586275349900679211197806030788574954697328419646448724815492388450416874884403265627747095296067748119527859251481070284907091501865228753429418363140611237085873262940243390981983868089791860127462081893950209887488319592020920204199143110243288618404386721469844721805882747761188553143345477594991570811215472430488110982675308501879271223606726542472255495116778349951376070493031367598922164576741761560889488299509311427656818795044573907260386601558121381695557713584204354934789536420233897464954927668535362013175286570550588094409771668261877850356569324883700619168688132576989889215377016429415477035280056119484224729851874877749535465998647312837668102316847838642080357150661043760802759009924176268410207319104116864752349250603645638677729618049536610561814538747453647356295576007682838500265390338220423592553982932841939449420500089988724891806211287049039130029485565147495434457524482287158340654542307467849427493096347001514326312416129821109765779780864620896364347208805915536423226483126451502160519650265847206670613012049338696992206072120550748469831325044567903619793751145105610994059722706102455316434184231593135390530727736431563672645801322676377266861863347929609941243270017744953982304320400254498544641258218149205601492188788848500428184182953837747170367919128937630870104272072105279340761590955605690287884154359370412944870677376427126382152837911463086145996881385154958969349477753009109089564506288798749499879189773300553955499696722311303299622373574385677800288472896421335832669747258346061528037126274322172432529339257592492447411545058597603142539540190273271795348245344711818326753377256883131935700208316178318579346955506250987414808507383726201448358464003533691270556211958906298935556277917839908857649562403797143088390971110264225897462931766896722340401278924999440030146467922020383042161988077173466473516468109820565844567718498749974291629569527774417095631284596102690145422333953644324790898827529451163209927530749937938189831475679444124595963726257884877982459217012800557580271614757921687730287677241427839045907391273929426788438577192396805229940340533470735733345183672515542658263961999930983673079503724486864611493730495761294157070706620328918110723891552753833666381708043033055670727526167741946306060870155565744523087465583961240503014805791061458163090131489886188210793827475130476412486827801601908496784421890111018392559678015888440508539397683873601419123096060086888484095875909397988754571250989027721154014401926221727965465649895992143756911429020204111157924873126508075595972847278699682789162682786949115247674585192281108652677009819279435337913553500514689857938237138827353572717178938301422164857171410290069972823532328848462192811289408170797402442190544369303801749299703208434011087332111453684235999932090895156690859649152277667229639694224242341883180352109911640280643484735443798320000362808190976855849256117523929774165820418448109089512683647084624741173961271488101932945586738194325086126535883736855992025907815396082128790730606533354490598834747010168086963731773732582913940201499232920969270678316759681476696675208077482680711116784929358461984186261721109253221606852538815918559880627768721643818351604955385279364210903131036078162438914712543316537004929543573131191804284196503216157809042520133124856053203608591448176717054976690739276489514055215206092541329165702491817166443720366613685787673325110828590381921544766528622524635921917501303428439331954912297279269763953174862232078789202684450835204124961260947859764764050513446164577995797419209394138731127672405794054104620755970157418271819156561183209665877740814676916977483766418386081752547859685152469480775281790629399270652523129308948664501479045471076151553997996389545735499561642096460474745985377240519452042446951551105760149422144598507856289800520015014421723603039442834244487088873811175695484586881015884730508202936051430137010450699026815819894595150453748572348798071613236899889286204993413477844596482623886893449564130688693968016240225696097259058369035914478304640969184582654758153494500776516075819566412400743361172866660578064097906850684383908655013660341715661217741365352466629240385273163158429247510718207376199742570052663628734248527697091241463260439116468257193844749765274127912883327647534004587978756721972850802515877654905655892204714962052521040120166987644538174938761539621762099818669564349377520407867045502757495420828343826527279906640404630855560157935415801838870887714052300577774791013360758346370816037414033581662171052377954778031082878931138989447958611693922813772482097662231537416555187072430037844683873444610185876496624830235355290685620889367050129145033747129770829859205524051878310562165213224612288003475473255932571175091617659416648239497291335237054388627240848370552817002962980905865080479495462458224013571415849006733084457388181196744514291152143427939269965562257198643919606775303837468667222170355689084250348329476678415036783681989747562636076056173959495904537872887088011965418789247653078202554123421527555465375278485116421930021040069601544428550071743703540070335935650539865178570700658209980419574495123587644781248610414755659045005537787454257327663137388250201726489696161291010481279326374567313473871166387709984542067027002960111722637627272674521018118655910525861453388197012899119638473502901740007068063146230130805397545776028724740990975069178826192831971647212849587379180354955908545006179881321198211429825837530563509789912359405448601790248626076719483518442349058719075337294433959240918535280295720103839420962334277562087477231701175275687241012245302815387958450963485798391045192131863495690303912564113905964125401943629294949192135307171534484096842071064228228981186402676350716079693504702100231878109856135679106593066007897762553197898250066315156298335443916444925805700780106162803210220195704757986565811680933242300056066489673694876242617241011990759620694346859404061641090571155345453768092327128723539990744359195398397372110133494916569271429930280203147745605054466184575323059017078615644303819701791495676539404594356060660507017393893132134625850381073195038674483556019491822805167730576850268843254958908956081419950752565189355402263661008481614620386544647710712187951630698336202140746124327385607330074172908534137146764662082332653007577845780127550787262783016182508700842818774533207879778942964858597581928420499648296204273540733853100546993954125461947347217039952702270357793858512968366440678898374656563613544478066683846697651766149996185439896235023717671102740890919399583145146872361287138497242069080950442236785510287628680425188163584026162985180721152833223758097090574535691784019381600243965432578250454451969403488409243408578999827719151230309473805540308231556081860716158343395561728106373311060601526496414815684043194623560436301743175092077130490886856047273855173095380847501448651760497567736078331544722925343359638456302152171049873859253102039789581433366384155929925508944602780701796227452105550671191316326265279936696359892383006096981600167088134430020391177191630701637780038300371126418241460149870417148056626033849775175603849549191579141792953684959706286329717452214945264364000401168512758738794348666883757228899613429938664023640589448245291242820165800478166941847806366047848381761856515584017460372897821585659083148930651177919857231716476472418930431531999088154997137742072101183319686196849440518471348051037624488758181727723344272157087400085249391949339810308319995228854262630851814551410496748964257681720314577419760554011665143719337637218818650652485445039993766092267777074793998014225808662149871912470138746989567658098163424079513570373348683994607400148381880910912278504987422563947102858903617892486945519990491711623170929740819517216362506237142082526119071317918763800373820998941551673629031054940290537253798957737000881786588704904392091026112781111293551942277819214700743637373519008329473368732239654947632992827531835181262400711892034565885546809503026304251921987977737443263726092891110900521986875537228105305576414761482463985863718977279776193730876704264970441151141289006212611388530603736722959581611702139503007414176611284833288601673671673203588047015802478486463980799957676470792331064456626033730736158992261787526742601353600729527851144731299279145245062334029096397175923219795801119146699283960660905462007982374521224503601691041156322195329726954455515182840945395507867404093718532366038779628051431267662740364398239831881760597852813466394695605558118458939807050113575168206806948943855291350882854473482815176097154238595221327308613220412923307765655869279095700478430395568199401596422335959455022810565437799547086244855908003706950156080193072146489726731639389255381599586170220591397302709006385884149534616276426044283738912519184781985002549826303585100634103443763340733469903127035583080112435481586611646799047040995479238128789718678010981520497880605047666820366296725093693960731366933747203672430031896662049975065252017547135786573464383646763792685019584615106967653639024474899543219972319061169329622877894612265668306435189561638995745077221094512799188532444937648778904054422423347097958726521769377763707960407327897024558295386961641263246575492104481223808933638076494996719634861554060909141594976780877461912277082868446053257271801923246319994667678926030359795781182790004713940921719399874076000999706958163447923360510616646007787559395457858135619117973484724275643954446900185370303889947219983080588340583672047301059337164585377733373826188199786074067450906292255488990834435844707186834628390792947080116968639485118508116438134602812347712665009370864349808106119251169983906911241127884922501074046700100249875549803524056367371564404834835224610219675040334226809019609191836769753918448889810307693136036846490751851920899807967484952064252815039882199294501631224441929079058217550021246415643878011473635348603231817697699256886234224365116141378358486034572918456459731014580144233910343661909121175141432240043381471464957028036817478157339925527876758136335975360559539384017686767430474620112279164213879016271782936332025735406498294315950055471411440663728022590649907729721531848353962105920750948187022309948254672970184837824611212322639194350073177762006695405996037403765441062871924178666242088214648278279438113619744675884359564005433840353292127859574881400073749708325048327857556278773866528397788884309372421959455553543681653293719886363436817907518019612735093458041094465517258849680261210153466972738116149856071359331842125178208697644136628031319592662998008004999380179915344918391418600149176520095550574294390306323540512913272285289533183861280090024201859206830124557688515998603667088214403617994975769301015816840489636950570719416181922986998546181106643162421543438857448343388807199476674230925541425220464613263330219254123326554225179003962370011877224880121899739867454023278310111558138887625327523466564979284560911758393972476956922958164791705775346063017007527431401713140934708262075805563651383657797778566866723143389971585405128381753951728867267924335193242794464042748455722042713703833842824335856314255103756910181474583564146789534508685629018486760916770619988006592305344363957172825088842599663928971247757401309355439247332407918204555381766372353322209351254013248159029890264297425927878945475006549946921212466620662608214349320020805522405722398438304493632828192284548893289587402257932082077749921263608591189029646609838958881002923882049246229713322929703775199313610098035267052448685322637447804638432564630100081448629121994571564479009944608429368284796527446127653332448811033242025174738622234490697236755378803399596664030721437536023310369657332315237722987442690566896177962823218987189096251000966738160799485616991125616466451101755971637994994874517358658677084047168447477084990976997944707107221646280139462754592336253361858445760238686903734040234299795866218897141588045753756507850426102120697436970969214409411346899426308743785693181269940438714594895998350024823390435296021410434798710306835342977082983320775180715284808828337014599515736692340895220746753110902000408776677345208304107255415939005257603460912081402841774203771307008424371586729360593480664925608906006214007352462203466943404377629737141729565773844359400547535778336478717385883199572538063980996026454053272056287315112297815716086295737468456654236008290043057653315412716898974622851338510767066427511106126351131616092424346656970070932995217809475711291051481146984681636209949121191573759093465466617608592524996429649049953008495876078196360047102673940074073208436244200346144947032423951767853242453480993775280280525924048657628467141218672997407703083930742617401450032210497262071517016718491281343898195596976652192019081370003672782082548084440770548894977352900740939641152159281309852432760682475952253308028248314091145503496480558833631436378808692685098402275435610953038777070121200028980325179010492325077885025908326341435485168772200998294771996023052438855804487383316035861722692030067101878742606941786040706999025075004932336269299321409465809964653142858940295050759938374246713892699043308896968931712215225093296152832231404015224720069622519312187694832867420029173664435680663582105332804176726151562302124288855432501934774716280438341939284793348612220573524012877500894115331923097650828181118963550249584671068452926448455574277121347428588612865531692904976784566259641824726692778344002660727947414440837066457585123767092000483121940348372920856002290277977308648541474618588111570240287314904233747102205122542105996607035383950648233459260971244250184778080977172673924731940165503960786701230473957653328065850834841252600889465846731191572917457422417794933549798919007820621308610803865516223758124648355406507243292929115450926671318592967693090324380500504705798029574716346546186859666334816473756375825302952862923734367894946601088352913613146663832807119837174914550006429820817274506175115331643178506860559958041447050514513443466135434913237773369000477575850404699354952865082123106885520961899712439343411168098795396248170852933855760900270227949741241797404757178358915130101948311420886832494331481780233765095332429955285944368343551972731851780494655835099194309370225681931802468448831867708730934727803805915525023120406422360947098853016075837054367783741464411605342176004593264890125101094368883949375010807823551784950908235899540726474620437428881050839645588426654869276504840328312182091922525491147266406362203079345506603988385724860051085280789875092295415205368592926198779168922159220522055198532014792614710859188431868657411596378993112160998976110979633565444902734359098328947867883974966109031057965678988481463377937809720633905840102515148001880401230886131297554207215369649270580145527502161467808691366074981225162163435485100633443491035342053393469452497476955086265693627621261091572689185127730376383979571593669306794929864838663384454486312760855100518189458110414647084540153629145822745729015341057988169354055283186736038250883523047392021460703493319106727265127717991413837226705030042889515491348029236323928824220795773086577354430078714994079606303257695899262392059660138555418034196698932436702851049428362179024244477738192565459972644214164588018332426573856187867895985236347842353680905992711999559785401448359660621563295163890730042756825400192358883203001911349752328613006510978769294553113966895558347643708070331569246477056683170873581839480453887530751714783371195076879764077288464866497918231845023153810551758734071896253879853762143717243682071046881420524923936550870448913554165562666671315419217636666644546134197065884404803958628401161360336854813455050935903141657252576055258698787030511931907553636345440251545233958233658716038160852821850071410354993608466278407506123683876446214589192177914259300649731241854636559956751295850203082278410326137151135198390612415964633398239008789738799337167288720356789486961278469180298840007702404614168435709646116237948458002436915344623192970276370458105466861864892006481857884470461376294282061421070348036308441116780061481502391369013966575803093965904415912512096952973581273097903258329274793996928243831492062590293309286010332391740383834274571135139845774783202448838602196807671633165349867303474540139992159822111671115125442585376091673432769990400584497434759055642063076946934728356506499107776795892650798323481084018224489117074966510406187591847485769721036743268151484201956972207473448220879286996083629358763165389047839004874274793515152841972707861432196582841706939049681577256828050122020751092363465517693151572323810501802258551751824782234136431788165206850661394226265344697289359780575579260783216673889806612519238800016953432522620052889956108613287995075957355474955247424308328701918030564770827367014344539375937631550175093518515879850506946390523195829252309751407405254595631400743663136531859885757737887841902614118689544565042160337064786252627247085434175977950069264902695112027502630954367405801647213159267945379436949752610184466085800078312719131602123509138297042587023364160464484612847091863431519865365466090267618224747180122535599681323522386679559736925806895975303712648024482045813701820343286908637165983377571085833010368743465774110621814317655633962100638583167467480918871707737653558986622029499873827444255479241163465467940603650247460245618952590934996673595122712732052401111139185230270676142772309222947288101331929633399781855031829344326322064698010129517045570430063250156250431508365762832674123002049506397173678418891005142525305249688625673873847779662866216497362402883693096173543733731366775835835701794471457470812490698022977681568825722570894989089912066055402520608013224504825120813756743766198679642641298605943112830005408881881233133472974731212674444311867594320910668184178102655733532621387737473755345782790415115931321851828588777441772296620469138660209349694256053645066213331732596198768258859429879426709380114105415399391896083636192487418791693064635784480721565839931203794011832448020155671414285986372785984697074047554361823481587960114136623524548067203456147569397801228956585216225616967129836900853900438345103629959118876555485850103824200072825738319153990752707127241272013958199553566373551289090697625107030489202794525915565004855304667824943741234171084511127271602210941931455401579997525759706235711965092077965351455828496946412471272627520263856889880768351634588214744382212186296466126270826742263505719504739238635075412116648302620097127671004898267161324519103527836207012854444670111305232522693015087030633845197418927063406924545880913768037295753346806779350468647874587707376219253052874813619851138575784542929107665429283407134350225088281889291524452778398747219008131438072043020724546793175877846662665684652886150768840312232121873329607244268494339139482344004879473181001567234526177025767088679077948843575976135181772233032469991166575966356154888040497320129756009526598823496022332949604235511787278552924080285877667806337022880002218103354707338193738262267571929259335637095406157277805724414831116404280200117378104537735697122670282206349312690545498167184995028115689010796880290011256589179055592345472292137852872328218121250345182059548096772277660713101778603438829573318206423587236993410098106172349638246868300913325653449234684068069390174735320150444061138347551904288775406077581916178115413003992574037864435913019078461131559812287433383309853783972802072728689232029894397339481981775713924749169464666678961234291093703387932512337739713880254983507066465501643565968531458265075610705724702998374090486017243764198142270431480373845293687436005363912672650761568078131420041224119594940392977016342812407872080852166630645923056703207098161722529026960230630812926022797817743571613810291929806225097290234214027211916938032713298320083728506679616281592358286686576099904415991587203941836822473090366949690717745701217771446726835111945799235764378946935653542086062973010467307198227660774393023094688615482810951520215970525502361564783557941968817555609138577852192225964776994102305700383667476235506978823189655698241465028678631892113122406061809386048832645173084016950142082157326064292228869111525025499360218005104193260969073847488323914024155853326011528507043066093224442482524144174607444884453418552824140376224643011608492948664582998552054267151740545442020628070343329410693372726429706689108153584840149094569382462168479929707068737877406289283254513422604088371872199038355526747220941231267659633815572502448461126959274697523814493216404446898951622400692837095862738068883362916372400418759586455204637462756958305079845381534715230664110072569236293492763936710913135127040305457696996684553584714559181928377124625835214124458120274966078477181056994570433605081685095894537463079518395003471725194844359949485446852681297359019069065359890335695603100644796826312045731910115444965551122684173251522773863030813597582172290597661376276417661634769091250701619995537596432115575343966216882710840367511929996000886246321999875418094360053087413396269299820762966801548809052355871868076169855606043417539252404967999646517600026926916551698752652506773950851304080538844506092601096436881089420268561590738998509908250154946391822097006484553663668996858922863821597110767179767897501154280872303912887886996186789307198286754991974326270934100026851032592963268818524148957912443276487218014529821857497714292943666893783643822296585911141794051849420735706452832598845912259394927444557146677651511456929031395253758046337585796415811636218722766151898241220535132242248825616774245967654125403317844988384111376073500772008569727762648736527833891636142496421063088349308903320848779428644049722268286185994668934379485133485590582820696461239464975741223628313977338190874558033167517272238664736033632294221653127763584773063153429737277492314973942733916813987517165017810326131745506377657709788695976757422149371635288456874197560695360039337332020651649369708149229583433116310372740909866257470505147022723096296228767689369377387123902046516729559253963757042296827013721597849618036234804337906397035855824221088235298723949688535770504518289509919376347473203519382811144209254673933678229258496532200800152631802914086468882484513127730626798081559547648285041727113926403155385040583548821872063249822568308378114474967278883332002871767003436969011263337714068149248560992223709551854738445717905417687392791717851659319868288756418186776876841019149180793996112890707515885455246994765082176756772116466364276819985224100965213050465083407275744849661976161460840590607410221444976223667994484837777546120077234904834680479955363749200222871127185135606616822912323921800558278141858159904406240526254636771092443831733984763285147065350007978318491582401175956590053502706403840870712334125490430058925526833691094710188568063097486389407660730095765914621565050197607344889921706745959901008710843618344332778765368258772308223344345432927526450350827510368852787696779247529054351634847177830600434230680251041692709840429423261549283137612187925615980554961799348822340432228376565318861257502640780451529541971941954779774061554624267671433647051086815540321664452516231071226012308937104755068250860324046390867144369077324413439849284146788284714793329962152726567683401040035380272025275418435225372283448970658115608571059933666774519856604722008416019086000078805952681826691313841734181990559010582359290201354051461037292598408924440579962926120982981963175121453533210390556518543575501550633023039398321742416388765814182837549573824813579535376415648600199102097635339207548493483886928161124090428605168897241562593757958318989500729245960467988554419093112332985271844623356777359933348040747037205328034706976370027157282023073057696141487196642042557275049195036632300465139541814072510893070944397831211073327668759280377650717251360875571937648563674485588882578876613391844930211918822927090195001468423436369927531995461156713868570450744143216339040780299923490581446565204496233515435720105541820604402629891318181183565214801386554846503939174422768998320959947345326148515338090881844067372693578429319408508180054111250120345744530333139738044694885277098998056960005191411414227947762969039224152446159813681255751398494030158908912839039690682371596762282654375590561603002045727456152794596519182500713348715654510175277234485087001667162208813471455957733125187680564852910540739280222112003286278105640243980038070190569773965297877909880031620066898403721551962433429799281009560861602014910881911509793792900369449912062176537748237195532458063615013009808650442425293478356985149428846338401965086282619268181813314535227102216178688563979618042557270940196904195278221897237115760460016399090888725718251046884283461891318120296964133489317600548046104950927989751763111474022642196757645198488724532400325330251824830774912325256688475616954239348897784619157579442277085582057854100616348798261398555091924933763441969386470241543432823282768456841426994383723540254093937307380463434382820719655314032671584701694148331391499674109081253099843163120731085050169063293191018211053955855670398241962916952076571999272307176373081364238940148232626547055090384196166395745836874762673525255811990719183623735843687183430590922179954499692223300342870822693305654467683677675587796083757183281068255595685431680457476896844792012444397487470057375724574087492178275642473325859338271836011855063727116823814246245890459076029692142808180577856018865526909992792215471270895924017947650784451441464551717272454847694160766247832606573541389446198858375674984767805369839295763266022647239920413652162373636146664032315518541515481118581084433985515043673480709801630625247510197150466954597491414101130866168163686042103388074565199493245861160487111648627998380248125394189901363772731113383426677853259232453334485375966471620833853741226355530893744390195154157567994245323803340830721684199478996812426888461659706083339733717714436498679876718797251261506319728855406319151261038649620313740051544134572104490446705194515692273936673249768573916031054311481689222515925766878095346204881819135120128416258147210278096597999194416034438418232623144808167321891237994659746944737199473447546144729069858854201016252306419680597237228423373245114065402837552630397078426980459732101949345700252505595946981454221070283690676511133800827197043045192478092511785627291035262791697425806840262730758419021462844091789844256162986739091005370029788550698582319092885544099345771750787849254791713785432263146556661535870211691604317209842652323139660654889308538301968340192413686714206972763367197581477872361433017261255520558300247566655717115576955972073111366164764921241000743253672111718190269864734965813010136711373222930768214698233095862601755272167258424775944321583448325166771795381374496444065673813832664575174490574800465056840211185898270646002549842229320727498220697476980622608266011096184855693521180662292994038015726101038428296088987460656304679850229299020929193246177160616038480142250886912373424858644173126718474663451214908085532127581189474825178594017584472291425938199664790339087510366666154164686547007202202254597534809842350136484857494788554745921337509637678216542791413547467006281276744222299118827998135726907378546909110155681042971730577884247638537402679741523709462463943460512163924514821050797603268598660940087323415642353566766637531227634801010770454890510324057956596674130831157927974809669543472607247410692015339209093345827774473396165009357524711241707506350320886771741219349514666763871263737284611604087706301583760011153364921219020331806850032466637922173797926804663637619558362047195745588172551120008041991146136339555201130039423915975356674113670223255190193417645573146948220222522954833329774556051373077425177097744465980760759454660659310312734871555326438908338370277382207431456894458643717541210660493377454249047001490395946574594377123789728005842939621055267503956632149237672981406635006120236079359507250026118822988170244093230606654009722982433537652437799415918514933904172250146997425335378050436214109357723549008818690739026951401669721483626167233238511176389727375572281168991998039957293746032217281928453409332584411696304062383003542688742902118242985645124579520734798462734619510455242561373629943301498393729111087052996951918353365053484424284804631047652208342085936517309658449613028583365481954359818675622029416138432116325768598256296720182890678112418686878459731338714041872970071191986770129310629309694989935481392187592880483984513874075864302765615714733518354407350625531234366496005310914881303238446265204351362902626593330681205115888510435856994564993886957070611192357275711029419692899418765543688425692806386143513031063844433431339619697973356152324266641706639024036236559357494425103835682493854306636956562838134975783190902427704990944514111124123020604342232889259749143823157590798442351778454112872425949353333098571097875538683981754825212175181030821817650515556345242994845390457756267446578551759148916225117807053288117045974059759864583008005610322332538430075098113431012045083319042286546858779944012296561656389081595922394034392226001019722176573621711635990257575290003386602274925942193559612947551851369939324969278663506523882676894116763890898231461909596833861231185867149575727057568639974542711303659181838471780818084175201006556621304763267524946682059974639368806499907641342580893082040902363238351783063221761720643363201104034409940915840514687832626047756804071261548426034683388026809404479308919373423903638644025492448115739076316802664679967901755671870641363324028870508745716587139591642925361440259784029087134377444175895665581130737629688934752717371131377900031008272938712248798691412428008450272512254635272199201876242350802784479678433702368073614399285904811111254193110135095931272766112488895468919453556362187932997488458678348144862698047039900916289528836891137461673156170241004515775700160377837033957253926135405325011465741922480121824316985303536394598857504113262224005410970519491629257437928191687620492675684777486034513839694679909435305586150042794448311206309059344324700093753671005604492655603472747780790783639504518762448392697987313535284348463888133230439792774802201529619235548600047342730950786780625307673643332282419613242705655779452266065695016189262562694823800569503364915047116242857968968290896905836375827828389289552036322393096042046228781063765811178274276253234050556458534328739368288105558230201554434025666056119916083312452763767493832195233495631786258422134166574826288774471793387032908362503995945159111325505050600405519331067854022140139289307747103178334105594829183713076924569795220641402279584670586885775784687252894700750851850045306875707839746663845073601953573707378535670036258558206673724333862383506635732352725502987473715710495782761939356350167592836742308538385735127612882617320094878087312978109940137208753218796217675072343104204098300543075454308934756099996705300626008939587539803004781681712719509393419106833179242945159543851121090917226732183211816227957059544782253612682950954862217231236316650725721863453174107239765038264726120658627233900281950908857409600576878745913537314615158976810289446734608601099736780315612915571892379694137835123162740751694569490868054417875979200365546926344461817737322716700344426677604609492481205879706465849735288079241531563932434412578917793572590178637582569380634250443054588279581374107560228758444781096542765176706222370697241979180215229145483395625622846078386629266810605263766773584382487337825864288501212332924720709607596068275605802893569806800904247794144805224614080192982744535914261300673153997422039808044537501195397261944848449519911402819066003262802697095448716577923187991552650311232355363968668453024301596197349226235227432305360422337560641777731623856071805040559182350894142161260438937320034975326339693176839639740834087614896605346765002018018095017901524757381590514466840423320462519585964796028953155907754720418751680422104882739795248273749674258822122908418426732735405062974739562518609784580701322766115173325159280125006610307845655227933906611955467698467069311445434165385872999911772553407583626730720598192318641581968334407756173587601158541062885902514859706630256627278188193432044354405942641747287444638497088753892436548269542567705195500503048573967192593691831322499523829039519078750074774192883412833931514360545655499274003400051475286011764913688197540583518130106428191854277239798889115565442061329521483403974655953746931767971260593262273578893694395281403715549812562291836028970988448351999590927247614292738476113427394270764659658609967512305032437609252837453544759855871927974513545604092844631238388919297638722450948694664331645858611708788407259566344648877283898144806975933463489209208474793366411476916948304375959983029844851046697116761180315756704307486831913501510866268148110806626764448818763734119104630148643395133316943864867191253051197712222605129272066288828365146022194470819695463197824818062306429591934380319107075672891130341666939068376651437334009829176917783350235113772378070080134493751248050500732197381238516250632081049666953651739286885813977490771907824529794195616886972231675210450667137919208653893674998631486641017004445762995894532195598663958091794185105600868613728352055446420332754284596042843329042543986132359098896161049110403705381295507746816387557681316299190250815702719076490775784360216977227904172832152483111546737798675348633009709840718852917729363837896867045449380220171574243059909227766330242974417045007458994475150076574278290259389637763493531594783200225424326725184230050688202082549721292140563372558158112710474157018538931782939878771279827488656715046322466438555534848878687664135561276104858242058918651972343533639572360994808168173974031190309304510004396180691234477085551492472966785089521986109016552489835770049619203738616558373631326523459824531995105916058379000397996951777069795246952298367607431499008548564143327220034989033840428531242112340210049816242918589242224349575360808260306762401546957880647296192668452751116009590537854831636712454848677882017252054639855865003582350020215085164236635007877607151985614525626495159105550747727853798154063271681951117541022889298378222545336756651902512168230169181983942598999759411769587521509279463766196336087192509444685902213621857104072204996638635871299053055527028410467726202127446674545215457723708236444533570645225149756787051719480050080256782460781818548758389225888164176204903611290431281674832076693485228577606793484645865766909520661008787906430168167533916211520568108446789415912337414636821138833757732614027462466645150989210440638180830560804013701008907417193766295844421691227908932831982677233321279200768091661026838723843245442068679756039482673658206734515504267630881815855803931916173275442955764365162015166446685575937259409711518783692173299938415788276602267092529147461823418663672193112269842360868545204188312801997803348787565882710587023709613027479913234822581376961217046227422496101673375478801063408551486622869956915271626335017898033982736448774282315381482900134325678883228760716511011595871871450105783476297528874339274581827686000452775717724788020989656438529423881738799918747129758741165413323915565108908775257686286616807192109034326503014635427492044749312465201473231975770361204501174793986282152535497202671790895051950859097956215389121805648789967857306884996390327781322940152073050520209607654688325251752641013550651450298021343533658755591616836749428944121480486599822561119879720866930212849950166479523817064956427351552584684628920014188138574351067080680393400649398027820408450155974311129777968023582204399718918274081952024523016175994797082805860032889288674106247132869094694668439042012057741066994621572385110915692375927855868449397736068800192293491471758016316525474727285404111782500315404941649532114745075496654802310185518447420493368214986786738789249575147069024662390473966302006615781093579204636277135039469784343591741426437780311902195475226920895479688782548564570713556669850232754612398823027868901317573219171678493016365013895529131590117422489607374946020294851279855924507737935690813338697470374157396558258857374134903582781434074625542355164396890460779583866499664944507475657969935149351359732001330337208116628916765098694807294403299176129072301114046589113824272726329685176094284187939802605239565406645933007896574157669708671920929452539315527437352828004823457509144853354240491820583021173669376049738422721591348355204042576169928064285471401936855614110276582808570403423258758656946500920230849830826784327277486927795504066111004359764768678653849550272255885422498613657363173961480998936084740971764954715433406237073265869752764592133742971412420705112256449499079144192444832839379138042063623800297002820623931807561922648539739493308325197087313845811985701710024913652522719868408318404784693642902511129275176699398862034387891751726757221744214538576110028348743219052433329399280948839061529406411018793753941134303171916852635531673529853639867761635066119682247234864034096810385850460672960147613107402400742653402436803792106844615341970808088122076807110643890588634215785282582287743675470140831003113842985349352824935850403623459239266883114480775467105910694065472373465877894192487323643702402024017517597046829540255079677309844431798635413464595390227657432035188431115597546352330452355055292850636311524081176784645471413279813406592746732083545282276634305953054734309381750377872317646489096491044255879694041170527766297023256952463671775845878822028460530530546618172209655098183967544401193567027827210833556064466575228098058628703330757873821082112921021038961652312284879203280376653872019582051856182501442409628366098463322528411015741736148823414602873774984914984590462988903284925608395739914059102412068455762480345904723595368839274619006353006025286844345466005785745687250028879740781269950143596964947641493185049625552169444528557452948072324330277365557456104296608835697425307361113031082380003158538736286884921091749180339054828505462786410001316947199894889420953086446502679610071504843926206331171186086120818715732734551370014186768692196704885901036242331516776017271742233050495306158524791962889675944421346235651931221942844071430978955055985886244201736282607350511638463571118784683471588349062334258834361427479382954834126341741688260288873554781665323832154076835909681205488454817189269206203670965360564089875928450815742747862194136716994322945869330495353722967997800487191020347824739491797171976726253884952817305136008922705243085564874504121603355151493103964186380892659519034350197950366229937107061098032834728693454151359671815062976637443099493236957049534959141935272715141873765869451223636710793801152421662449411980044655721259753580463999102393279770838718475347998543603066177468548167430253509114142253635633838835435446860011086384802147927631584793510710622722123289000304008555103460768066519552168656718918133485068069377003906870137625405524668497671014459934961842246898041701860235101964990133778650832343686944378216392021885085996581311126588948291773489736110174739245996397882377084643593256464055446635456450627816507891000060357895847141178811400147045565792468479338985904435609519395598304841190708596839082696964630103312919540548356633470754825597162240957245607899522751374317292043294421457175702111966492732950458924351154224989284182930968016279099901439100065160664654765723303846462439511383067770124161991030939928940398116061674207603382917593065660440087162242294864120927680054840263546046021286431296861760486768545873324590490445815446897600129176759371782877815746344749744317472245714178249593326589599012326316543180978557825775355049571779819902461257772849446353525217033433931343645138304258981514773623679199418168832859918715721722876519947031424824878759641163100819127666028856647310961164666767118936763472129096300869239623420708862933863125561287340653467909741993828816638506027873280048505449182019933787113082949339025444084544528311079067175578158009386753600386035576806398106423575109973318402806850770996662013993830215705749043949115438309056158300113014109913958329032586958376761970744891911326312164098184347256008766211159695133389046258905040210397168875297634115653016376140172417412754156775733851563340968924430140617974975371744256647349345457924696799301102619433763644866753756108769161304361374833047944122595261241514898169980768101848189578003832576338780435311856971995174084040429215732071789387708959315570227427282658161497408013320634338400868902388939183331420045159614008986112156292436416947254313561701811792005595928543918333436945191945143171541350074200639050607167658190582421620289769684409055245447001281886858143549545420556689838786244832075212174109487364741091578604099102585558639401309155175600279765865384075682363973583472336482553352052477229608819305408210532813113048809262550440623955759039194431714152652754080895298657263071634073224395037998714881512624460631281385241074143597940857665785251694389927465562180588692066232504493702921288512745927021376748342927777412718922155406268330082860090179218753829486291501624540724777886699889007098050569250698581837390135076394365418723293031183658168633364477932900707857451061139914809110997127929438493913670158424189691093862380272576452166781402236132290468097724877826864188122877993432976707163870569511990189632309245899990217975713134517425936032513690208839586085467504777322929062846481720319507281491180095950512581344757157055467848443623776914819179984052906677154792911742669334885856708813947344848621438111159547544985280405742250695146472008424624472299321579226467217881452064820830276936119217385236785674096279108523422956090632666710480288192263713909073768444809318444989699293106036870095308727241026213678870697269856973400228036350475523688004955869735903902069193128307071061791355676742158772575982219129431864574547720513289458782737577521030711942554517528858363344593580055240089312099188257065548663923144808623744145953055900306580952924404261767525420677103355368495524654643577010178979641631303867495239610828903257724489918622996519842327827499595893408310312932676610272410807379546281880763426986176170331009346800830651834771328705425499623260325011619282730212993493413979963426151264850634734832759136317868247289444932146606184796505730406718748284151914741684169089722956160670072819776610831141061869274357335535646272541437940981346383228624336413347897889091264153187304060531724773810353708266941065444062266129376623363259061383819763194013039898558209482095391860248199098966486271356649875701497953400676447858682049107627096977570549150879619769194413901594125683267942639579018278254556896996803223178158977822565761387167701321480211552727673111734165311892203845147369902316477647593880601607553748338232854582595062910239360016544735394298287668207371219275299907369744081134237202013142340450525931697277559058565700313202246547908665758345126654568263055461931475471873912792397211846921778376200632624668145632249687765602801045500696828152865754259823483400926471012832843064302569765264469413502706214583191104917931941434930177034870263334601687102918360837412532758776315402230395628877684472328030214298729494647493950314649180413351420239388152487593737159283832660035406428953541698506199223530382921861048691825526902557498893197784720619919805017972262247637181445979641371384620798209083958821187048015563185208134305168523741584217478145801156305831176787708977094256915360787809113628435482402282839456580419522013031197722796595983884093635835590118574270448266505634384216253604983408543890402854304926899306613530295624400202826734367287192620794029735061796925410129175376266082539682218062164181246217311896733474309422088767060630546716996314182155902924351378436435063226209312068014316916384978101227107150216792472056263468706739088756753944244827083825087882653565581974416635778492417631881483621644122223236354993894299078409216509961123532512011031423383550654938890927596110536939808302386103713047566762605558309278494357851978563905347432674505604909407708591886510655453008198264452528174087746547899161511634875393067419302334275836504964156863538834492970269883021283850750117307225319474121886030606608665654771424490261810915095583074276082948581103520110703303058709257951235338922157247424785671676788358973767617721175130586934335536764903674373881704440543698738593926649447153503815259632505530020490676462445852260521393121962997057825503270457798044858956070209902153446695370684284521782144523866710469408107506167317478569718979427878871605283450429022122439834339069476764641314581807048184216581860366937640989433649381426799919717981523351084157064761650276045386329995224430338938448698694879649254150996947664654689769216486142392356827531850965408813353323603150184543091811589795300960882380182295483646650730834615875373909467531125542610804096592752714562722552735012176578243220128221736845401883409112563696058674173544188303029104229540931213916325166527162812140200393485246292677025335567801321211000746875104927292150677332824634054330514641101694580152392810648716511937484962847145205922860221643092270732911314850551462608765491036968970857811251399477489383288426598056121218316115303041915518697722069640705170655830745429556802055860647919856113720832021397337158971801009341952992408631804186229969441590014844534898620679645053077361183991361144007305930420574967863953731729127783584821562914800308429891763640342582197758590998861542291506488185489391946492442442707346065366282411043806874634642445248921727008002698896840097704990687906189943490599879123299393168654297787340536374108604116821223280321443018450796681914202371152463948220177093142729884554336272986473983606761973552064654414860620658273116315057177242088765562487222682926660203714851121462441496499951520297356963468957934911848613873235673727236286722956930702227282618936242091446834342646800266077199502216509365191242991298909496734886916099755708415385632669799928723106696812003873504357001390292512455612525900332219730742628557709051926829142078160159206846851894960268032416450232179784549350036868531120074399878675353188044734785139543177396060055361114406353642161812602126386573094690593255906397219492038056287678828743091909615406869152123189362789249870124538829074308381607486273896787745378236370946788911603417540455089169754059227394049266623912040646855819111208987613022144456972568625452950130411217199809106691154157468748584959986619908398378171263310681533641332040836168589505925150168276847524016347344155357829189499213859109112248318187172194868838657130404829477742444060109969015638352378276129095967481510722582918132998287427054987359677484220856206752067159942180911885102146438815360796234541509213403430061299786868257960293849765918712706805152707141861960573903188851282433872683766410207671757126610927458223352290512994852828161359254699066916018502759401681624498230386088013824249883069963917623093961348545994517800671078225519324205087390126795497844015698988750791231652774721289479153173128457969061288370019751895109166908506798567605165873074799841445684924921279790288124241008840884778373159193613204548263035674749277565413855998730321590540762951436378852229866981851496708348605274465264498176375321102923062590368635856799489149248808960412651107338909663443593384412495832698268242760102098965945460477365239871180175186513673393394494426767754232119108230942372896868022034743959324862376943741086660282017476556319495108722588920221524980324583927172427958667737838065801661372929777118446650250115258124073070963018040694074965568499308726304218300157041201379224567873194025821310945461093699749222618583746519732322036812782167978548254038535799586852096711956323580355674470587232686279282060364871793666055944117539018089837790280843442247968708856595271612788363404327608000580450948161376241757342033947798630322367382842571940605835474378389044641540657909999318560812430846353396799172288126378879916003383378858845547198231679388933628377732064114661702595420850885180512900843163071504331075395455419907964650902316442883447406871971893546673564945681235430496129888453760929770893199421463048220766023539824321576162548761284254121061611331336488224541324489754535662653491424082249134020661750072112694306124966341332187855468029459124917217464103818671362151457164950732198489695727687268836431105360442715715428913668157127442833213339763343000508127395671874826350462103931432431997549195809096136562570024320166580709518873058991978706793682952440485342023865275884507762927871463422193015005638045725131759401228561135543685420108182371586901339410613178329297920410991327454105471307174533004723383956546187163445703401855604718138157808981594703684942578682192636363447742822186059642474579472170150025817333302273204738657321534694893877232700555694600647506204148733161156862285269074168809349901746912760692719893850556484002433703265597529368602387426960159164509565088854902089848498876250095069667635938123169779034511780554066734922879806476973399138920735680864052470563221867382478507164461143098095494880924737318007196605892696476743801970268224103288656111365849274866963126807376841336743444843549156947581728533594401006332275230578399387530325507216780079595410679816105128701235325189048159356172170323986252992391411785715560131667449541431362322513430909381171389724401951230821032789265836285024029590494049294153277686423597978387245805939513905679556048902242960073431779282618475193395556459371504687561997579743169015357214406687580868655452485004827357130853173124413579232099358194008478035530266617899903400164500470949101383340177229462992656423345478810460564771403017078618144781116162479625532392440680096901179092285135273147955036450161301300382806788453356339113517314102426784397707124485599392643077445632719090320883935185236603305236997613131733483452682577284960574391671553951585295633300819418422656349976173206683909930722165580285405458697118901221966024066946082942278143215432436576101750205912960184367126183329145345884749623927097658169394040286387467768485985922138207034864983052250484391685775345481955113749471895212461814152399021533658511335253541411165644033399101481716030559606437342868032391003140709411132623263239983969953761922713697350014839858388497144816815171497459079590177449277445111306272842013163584376417920933292431674400554612311429161626397607066356038600656083714043830300413434746398954845945112697033377583290553364122253592752497345534833372325862570963384334203596640897285644317895876135181009427545203740088801072788481889595167231262118912500192087373386133650137343488640425225200177046207266882007044656184738968235564714710782682630045214904324105536355452559184213541968651137397886663097500814256431984740377591458789590609845742607885786320231440257646052463724839202431547042711190031890420403338170009864228643418074777777983442555989308922906974570187202046818294167524913485599606198009894844748916628760419800602597001273656939362975409320859454667562340804615013545821550863207226603893401376730576253406555169815277785599299882419464266516768776119173622270209227833605250770480707590718034363357075638283659681399539076072706818136565759198668375105461152180837811919647554096709582495601782824567273685631218502098047036246417619868271774847822246349032781088546314151737181432979288325624993711562971573739011583631087044860251030049694691425838693706512037704663082421648944335800059686873021485249287953824228610007364203649679148694242547730644728104255087291934196066705256450640960879002440406424731141356609900651467888093279138493846480654610178905627645635564452678797317660085645985904575945045293632732291403406240934385163140252600210208532500280314180983752338963958307623736733425481189342771892693033982841203649517717601003467519208158338293632128206631310891456020148225230455288294429174005143891311827980981984843229029838696282514873944582039109406532801887540772094907478611791577001719038791280637623661744014404520702292452320454057628069657930850203981218378402067202501202667529553130834943534719363417727340636026257960313651197855485669372846404204684892771577804345867761008528960736931441334648737735250159245211976597545908769502060561757819359107740362583576536008089376532813708436943902272298653222182884374001388258111629715534575674032149860975542868865798743690094970509798609377027835722338833145398049398921017143358261896740031225279973033645710616072849682640266823477045583015458557482717137243584709948613726587130254940244957385588996605353709033892511454055581245692941378882716519900043761079672572805998748204798956785593885849948346965194930897814997277634733058570717902709356822757630639304970229663395528763379913078585931420781133511143201210260198730421670626014357584117977079045808380884980881666261853588355924200630530246434628992308203070806494107304156759771007752398558686759457317447670945568426890385311284949880181447745665050961489899151762992416428780004741385080452032953053918409768994631996955912786769493195927336620543091812055669246215274078665143235265920707086787955864168604527753575020748767143337706011912940315857431076777779521359026130808289832488394832094998845683076724175929943034020943993227082754835738850741991713694004987985861942344627960841444735665203792829531701633511815302931272302543562910554586395777780221165886661126933574072944361455749056372007128254481135578340290160485176052432969813550274714705263542935264813662388695848981951679047612474744680084772588713945527367108878475084256882598396368306676476645133082342995384063714939655126025964126916639553294222162779760787495529174856884218248637463247477832449298323544025715676079286742595284943389896764343657548230757547840335036965376873654980223987801192035440491288268359419539718436472554090531421055666320732046388483827683792610550038057395379402151364136624967493537324104404348623823362492049535442857905306545277265072203465929044320220171632423583137835125210957641527412446577626167543609470974335640076904143622180682993551510913855657373411948903218456220443877152700482110127612081407824526498863610383265084808525295149522635542646067184454304265338266686100665577169517144295655590542368193393871753203864115522428847408796387265599650354531601787284299590624897569431465725329799565644275381025956667255876113030863545950868484208170230903776010731371062342933780745475082378560549479876902139056655858928600919904560260320637827290761553970383110180084490112148119277796748391027288205755978205350883461500219034837657646311056840142504210637833165097909347259499426617045207232691017186806893159895008062399758694838970524161223017172894039046699849427213392956812616100465090284562126757394143927950319586502350481104716856357835404264857212754026388128719462092038132546481161703135867671064365876605516551331133170227182321568773621958482168564652846069706619054395401406510630973336513811963331659490303921642708535422804979802671491189563642517489134412142636155478089214528367082216940259871126321143885299391696304804817892962988201123807490130529424929480161143533023900806706572137816797198568613029030129939944512498469010019891936059827916973051475943464960288332896966081505634505660937812923613349058578055094564210353090736019584463712165073198201564242201326845668774183233102473192186851564341203271703057306607851753850970691717079172528551174362787130160095220892024240503057564021537273695926679974781070727937239123557770934682847560107630127913119953917628186159430382077839824326173196631333620637934967687508952402364246923190454167386235836048283743927886654775948590289204020193959377065673211949099104335285517987140350203076055782019148388288094649648208424176699245675831226247807039055765314126326024292243620371953291855471809159644318568520578823501030910761280604457044251479975896088802812599786238774354965990492967322084497244345824350368978036518490995121422940156691745341683830903528477964306760861159976367872049550579563651669383452102120571246718902363583790833911908020689959689699018812232185525286934857365188863016045294102817973608068954952403606648894468348535737117060799430547192164875943131412697595251661025229095753755095093371854490007290767612634676529166464558037153306020553474162055566838087233101145670608219713601991166960117726535124144051093620360100175840533446898756534900244758018499028511290560362815437279676288312381657743751766245640457837049648569090428184674143410766075498411465742153343796282523773935177587703994255213181690173990186164214135439277973347087659736948171010331818637689272837636602301920591979295917914822441639403180414779002828571251776448410593156446753633092415797021262648130428083893377067239822865434173173648142456296618079313695325091128754694980155031799451669122841384464630874102798782095587734617666779332006361614129983611238785269844967622494946016222419848188284417597250896504323883882677621153869449072231408003864096674795565960336586550083450157466810037154981215455917708285526905878274626801895484098548064776732259308336464326667895198132303438478055425711893324488033710276608066426197680004014576819261412342142109083788260348803987158967469186812759503541904068967278139513219884211832561094874735276486643671335936837371907167136153442892072527305707780561606591615442358910784646554736956343970737221781859123010944369231395220301011367407345705952613302936743793212040615997089068120350786235412780541682658235374259385696643576271097354086523033339574924977199534666256942812121192667488866525631516970660724002193962668428251544756149635793336584523772409968735795322759190097974155172133484533357868142287399385190209367827402155999142045644643838160009990650537188148493816086550357227064177438662975167896665549998788957217902623090845448064651856930925569645317224108945164542679676181972883295841393513384459604167285457399141508049594466135343984501427618054220965984867109944082508151323925213606951062673373679223322142599523022293640904766459615450559484204881311441317204646926704975974905993511692043902760515744667739687080324780406343777841672502198884943540982821160007277291505075986936568472201694104618944458261855116004154945106281588724851403451900555634666152447374960766113577874837400388629388488610195028128078179274503495840575292845298389091576491324731010563331478134640265046262915675377909213724782897003196325968912513302152465612054358376226860928203077741687004590435263581749463672455178978493175067539046404160336384724054649807500393002457661071466060571949510914024823273526691221496016070897220722054628810038730762296890621526297111428927346339214378575838167995709651297512128824707622937565721348906236186014189959500029393433011746330033297290783402638252783796053000047355927546848718929972065613653375153747792196249551796922008557314794457428822592422876777321288598065370465402461993872964993594356323021311084824249501800675718939861189726218243077831783344585703611816094139763446516272565828861687821301342558907381840573422275279094401507963350696306831585842595975834413393166679973048051471042051621356217540904877733022739698065649590094569569853658432083562061593452925424189291617305222097935246571227066400541353921262095374160702598813126795666746170932371740523629631960893652984442507430228049766416403828292571371636030617625967249957176153695852486644931720109608534572342362545038544414412716384767262833330818958559364760061635249859063288744503255113776818130533466466995015477493242098568659350490106211412991417730998045997886539985559972088652729738821650877480019866860316305612301144493319357840763341833138597727323452702126526577296264884620440503237750927026440915992126524862677165996591324571541392540015381169966140144979220598528654631198814587419187337551855095811871019692417664292423893754945163159477245311019841450800876155626440788217209351125934261844683035210737940004183828936058544070651726449168857872854526507281049117224129415223468484489897349653315569393268554021166559449075153103970832462344595701968564326756803854451935868733514968195976960082012537990084001054633523364189127960544687635703710651413568371551244836184919250949941414462463217845967667191164877674448959946443158395848718188466274202784418999288032751244966696486793458941329860233034829288762606371364458073713401017269924003140999628987593282399732487871382265254741903488221774981954557079637800427801458791944118907707143580110302662454293625150543461651519860793423856239066455154590868997009872757833856476910334686388994289636191695331383106351444319469299789521504273430274505489128224046567516837384091737414843731819711882264119670295140010484497368688360489262885407453712460157846887947781317083920277018500839599401350787510645356146154845035346787490153402751409018346456754197604548330869216939024898067509229922940715506923777878266699123015899093808133728505552990599347167842350786739058036553895201811147715527516138372665668705503251456831582959065357006080657269902272143379149237524221958255515527390476641515242308413093279355619405005324441453950610949163270387153037015281008875408093329479098659178396540897411919871437341136512716438240524415842887697571497711414714279508295887029927924683321337051526756439423113502628776890344646636321844459217157587924113199632987541312018325222678696789964132934113176366538896832051191636223996373640065062421869198223064419813515321973198591015636256986218174854708888378220216171014912432492165323865576908527472547859682981249480686066444493519183037483665508175542257335268514038987865030070402899334381972301961473408648283476126073019822268614411798984367558389159008469991314054138319391816564308843497882991517174297486490963838967343065171217360275453757834311352172150182695929149322787473742572457213602566263841389526262793021300099661963003232522013138218844822215385253127676763048551870068314684039926818548765384056384831921002472231916610091343950767855513837048214284915101698975339078975632339921778903880476336813748465168922635716230718406415663249241086692396760121601081445609232133742914578448806124786377388264102086180249513057338836941585087823197098151586711709517388028679580151067880449339024806890990529195328446696828825455292078708090501661485367533081336907004801338828585461654064133202506938355963174243658840647261575760099347841140840629982366482357485543533590505361262742820018784805295304476986322636627829632741637011531118234081786739876610728127325778513921138076815418944404176329463049006186478075989126428325729987352871612774183368051756379419524402321288854911774150653111681836226989531900495922925083762608050033174333856378486749582231058631889407398076144969201791751393353298858853433644997913001657128680999951557636883579690344998472342604194318599122046582749564413763677702161143127001434771612016464832132927118257132879105841357861931189374595323631023912708890139129091665271923774586864170364801203295328751612012917060959270907773561674019391174412447124601417849679728249366145899072550082434997089096809636416891569620898451925626719343047171456304432399815568869354337262302614980035283716651359121693178382309796485222062854188473486939359438432529987537651192492335099196668931068393430992917742911260879728304331663875840237022011217239456114473365412763340270584541778577485248631649999170485476948432053120929273998661075263131976433765380295221416374236023722185067791138872580576777554374253574423899796335819714032277935613974470711946114165176151512388236279056488635894726860573344797283092570943913779516563058538904168168987692580836506882500936119261078911242709881222693468531985170663717420468096376655728936417132493864433405288735279025508689950937615120464984509308482094646064177940775927273518750614934528181767517108450236520442367768151326743193251095192005876749184930277695596540981225396357711694671126060236069439457213648076464990166378437484109735730098749733872155726959760331137128831583803062490323833048619521149826235866733363594360815330962043523180699058672531667967198977573967198505633203916276929612784504325093027849365575704663665005042353807000210433790543654526769156321162307081538667932875280399181022287966754927414138146006565485087779489944785505088949148052882658768844456627293908196144006839830805240372569506411438993318116637701630751930445002156616091239778765007387433986121377676316379949916035800294253941509361182877925648901997063611511833437732287805137817006854618939770780027545047057465744096115186501688721678158080161854864108089863222334099124749225808111853269987957362030363601202486339705294671240192398688862699835431092004562279169984416988321201809559455053488532617542549536385150631189625309217665291658243159004583496939706876586542432819456476478537355251530689891097966688781002569839068711319214254198866419286668754537724431761446354156657628714055353642878518017662196471266899624319482731009397417104259055243749687333036596872146018899966928025823050002504947431957887361774398118194129480046029505427368669231007938335527797500383591562081647286299516181415118243048649558704764203871577064527587236770808180590408423523775775754008846877561116658139251193567319094020961428901109648995715039720715905042478578296419139818646456980690038836467983679810123769463228883609158544301049426148760350379903441776859995675993305022532347652546889955258062893178117218231637950877845934372878641514463873034437300982480492495540033223434378058884644265651671117254089024251656807434576029571481282240947846055854321075345638218480483756258915751706013714681964216897177605495301992469530239019961482626017062848187963579912396970015944414686775318564583127254717439445008216298283049375695975213397439120310652126169622928117872149914975372547212930687038508756506150275226420337304121616234963978809943527080416693322721835932242791116573630925466496712499296143990750000976357102050913521721026748783818004596833106999955907782554648912836743394515824781528057461034151134356381056637703548798094032652665484582486845829067556435863245918075346077580169583997580648813770434341301059688439299179317417474286712514331325517759566739120611354673648311519793542086154722283275856040177338917321114186236520276449176308259943093916713016035555066396640063769917744823839840452727764172011229122906118559512750665064983546029610296574754375906955550751018593507588378946923408088442421040443517845101844946977660224325727576337213826673283184851041913722572799003023019519881457021217165722765189190273755803239808560285417910869633038050283058254155207922154675509988166071263796669062669622288041052194375553599347863223933308807429440316363392974318457429479645304848126672429605547789372416592547542572729481830358524079897060138339019218816473115578505264328106710783042538278625507357514417809437945152087696441803929450533710695800288060095926155424042953849392236692825186545787154155054376817216194941624398023669701764585168224184823494985612261220525940694686843355828800042360426716492051983003040063908216049484182231793780018789714732654139165969414662854460720116633852755083190003281934916500791575742541572642210731921314240334532607660005408832422430395364285170101907195968996222168572420582700804488458661600852468547117664403374541716972573166435712993493887181992917594663181328648661847971944939975673768896889421874125051812865226543689028478952394531890759781837842937386927112332452240270485501136807130149912753906376567761950408247294577951614725178334058293631438937472774496789651364811407002313274619898292467466885589843355545576042775737627609120580484802719998495539526723426269717512224621696901278008109844442553591517508360950391542809560322940245012534448001359071329437426440765715671941413957919227136541009016170299103199865705258409257998434141590790940476127073830478178955109473090662575049936351422786265074676659604091872737225477947297521215673568572609788566464575410138193018478212336515699772263615169997116230814735386874455953454013866559999562536246834629631683409797550456405010277261083787851820349370533279213894340837041728605351627431809719641851581334638617864058085289932616267479202822900779806148737877411733583027613120796025607848818904686228962784390204998370368536881027711277649164807893994443904092507590483328908728324142449335236463081679818407101984769366305538954028736744903373984749075859503560607200358784504301688110214426498847297177449594105845200382301253166078708859906630371280412152890785515342213121547113947843863137802569372757622158576792891521263000669716993847263443082846306827831953212479757976403014368143734615264691989502103421817625936597845326676025066744884671246096686617300970662524501769227885205690673590084316041245928474805668946978182767794755884701037881345716318817494428998929871672786857254665536773728311244461767304087523506505439172831961983050563809001407118907712213292090837662204930496794578667884181003586373834270913535280939425518198079349785464480249642736866843355216708089658368204954333674108689934436229704144434396109886127019621236168294238935804471970209738919920823023231464235056710649911360357731956388471918197698807100580670387057250153019061535855590146412669669192362905950385486873376121913721744271446155552674522825740005803470748350308148551071539938916838373110927502058170195123131177677851844877768726804213939286034213238995818513277666936559818064557155854038012159297126776864384285371888091790995730806801022541165164298547985978012005303253225752499741035431088380198432200235756740827330608396642555936595175830516153497134438263679902877179428908266042597494911477071422970252511258606039005296024025458262483257557575612161312795812812156853840855916278057092937246612436720588868157679076930350517895756393400311125929797253577754420056996640220213834735660376916954413189061916061446825181316017660986167723206634974560465097288265951275397273336869417550848721788938864061839846003716868968509185229834465775516415629814905434676268421144524839941312303852580518486801957088922618832522355364368736458347914690356787225982557597559602168145222994919737926897880657277499602061831236191259842299974459179319190700446995540584360693267316708926126170133984267188893421249875569902430595059536766540275330755030949068933593376555732175383356648904107287803731742673096181407451562072125983147245748301211066094797879629490438133242706116552697331798122204673427121226641381929147327894366091827878882764146146976422205029114448418441381849237635277149146906974336080814504292765761587542170524939409283863732947357784234240779548820953126235340275503505710289039431336814819951535661092447742704699911672378989551639046374983966032427419931139442903905760590741555533250655482151792922547642545087189622131135166993304543120000747182980065063873898926256489054397396866794321270549392327444279957173363591063334844185146953429812808968687408323754080262605943298620562918175441222290018402100592584355705001162633413891116472241032935430679924686315539002795139232997222766212995130994097950530207390559581191512433304040788524971092537241747430138830317970184410857045135768151291536244294925037526161101183732100465189614678269724442617804346498440708181946488570155664729124940018323157474892122721505485676173310551732867555555137275257228070158444430690911684207944852719275167523884694520140584365412441900688299574590054357430805615594652422881931272032923409249033976547146518111314592519057258049351511243668916540226006275545801761174352814314894999161467189352381443368464042767295387167526081339509875962077857277892498559828348232891772081177773383466334241884922791980529683092637567318470970487223370762475836981471774211480432136309414872547814926308746678478952455561005349890788889845921184102235978273731652128019748541341986977054395388749739014574122119048053900855254751776918270607097967712659724884419682338105825994352982382672363173424267155782964601050683100461379274890656030763632598102793661123570622546093038459223095699447464899594352803595728122073590021484674876096284970187989807161708718601131703969843543710968435176649247955442027422470637716000357522942761374328810277374243763384654818232425458586522993701908884747767400268001009673197266849558645446767079878771751353980883983207327701780462499327861888076713309254338928428954733998046782679145981967469019830683989226343929035718573309596628538845031122658632570149517844368139185358392042964337583894923848122175655021035540671058277268875751378435979790444914526917905927035088146718778168140149009915546216901425697803503595872473914976161903348045649916980438948284871605733097080720504665480348755712333122224862473301639986713795127886798643810255425604253579275162413162454955297310236459199301134961429522185316982957104068514803822139888376963907581425519571199359171118755087759625477377513592338703229940139176365803706784400859562468763995140147145722468543401280785856430439394706997121975940645921442901071293191405742653347134164128664510758564588123951140117795508073216367810160373433760157315563492556593937367165619355004588107322335593024482569699655583883053413186676168998085666828277132356870681226254846298210313176077180123905872553472420474152001617666021805882461949664874606456387899631507124429153884042324507560321404776242580365260920519148291010271577459241426287104455972926999565011286066885462748757187665066969779602823041381108469308787168483579092546278034944264254586120459971996080031663034795899289456325531254253443173998536945980583602867451850810533130476475285376287457097777675413077142430023253474040930306942182911681643903916557470032165881100062420718524757974698052765170972745153025094618659937285040116814957781425963612401478096837868885112514712762231791533148704487120579377655030401664297015076738855047738328881787312124600745276123541766657688170101149428992573491012356466763962580651127133964984228245027305669370892373581646095356116434375056502996315167974534093823532899970256271802165624362551179869721624983230956587196829602546680650000467162224023966538241855057306581446063590559554964198201139696528443930157393105206283089149218063428715535370059003504708646096354109788410609656603436535444906170070789958318056145339065047705274315664176097215179194892833648128660460835307188194805344217730423604084119157616446130913675931528639923396387054072054798847957988616996218064420153535317900447652558227276706459363505728780427573485589876829668923357242880868062463248979189584169445790029592863228882938280091603246063532023822312473773678740617940901041381533057610283008848864941592255754380946063025862676989173184615639367995770538251493415304834931224348063333168840269976702447327490618973633454332782808207744026670977817820783120857263445609470855485214265848910184957350318664217482298567340632852564208874664253405339504502310275449342901916000844150398495202153256001639276693664778095841265604290645256806170955852041871281481347434451539374647549634422053892610995494428914636753895787605584248419025831181728850215885837880689893059452153928137465408877753610042351014931084607654329094608679691001884038416225009088883741124483064612377523317654542014868433353152580752667346858217764625547987715800378073715241248408692569070492890066678114027979163653743339514516141110722645617628225991247884909928487298887052980830652459935517374082411336775797272335682680337811635754998347666990823837814554391621551285638557681880448034321321029394216240813548026230882224191231192566120525501613498997753721130333183980963621662471863300454136003383305305793860790211293203288717499514527204506239580054268931734818354080848734709388738861901021362175650259591135144212702101164809309303749416729159362456878600346602240033953522514244915160604299764794242349837796113498665910271782929931246528425630398244060789798697342060395170075318757863061612647145001003208115941696043578824718476564441351338509186208978574621805394727057491475888584634266518241468387985808048248820805502019288776349020535515856240018934643324268636634117403031223423717251943374514014690928714729058901506152389562284615203146170261756675858620951547768283562545064316264374580760714178578002758760804833259675887885318095959658148160080652129817919584398592529518445846927246647707609151685174638564718762214919321562301012713105284450748107002650244641785872435677992213039965218382791418482652816251046147211630479078224202348421762350643914152982300554362570147636995887845014405130574818011867308723759652465204643509343130396665585629392515681038169466662031363943991734489671398298156274119882627235109525122182170475068625339926753779784668099954204214991134354070102205692681999404251665893392849856566734733257949343731185204896148039890749110350313946833407778669368735475491107761126947029878211256476568149156669190955293673205595772792951298209071515773009178847796337430021458036031447789062007715549047648054242705131677668935326694373590972240083159402375838831476354214044086042129957701653672965990204836305777985457706702819058718648306138252752786007587907024358743812118409743929083622398912538931673184265955965954849588145573527311910746917982834574376785884144398093699453232606572599697588242192935879145436934910439042263781767557322498731475695701341604149887297960683857414839097389448234081301095658301659462807191784479826332845553635974512187260332535781792406870010686165062027823681063429287414508137306095489089247445066227733083852681090209081324313151184953359696898903910317086437143284268249064812666240692670421336716047057426553138242434220856097935006501412683886793330241865462230747202532071789380503171991787349112267762189970847823608111600798019560682135626640924595140594191988865960527804596189879889781246044507520439119510874257625350337428534435996680254877211293856191012207429651120888429546855443925190904093459699762322513668449395939143105822005497761651193236335578447738700727516708877018336089731053330616740094074876084857287050254039652206249843878079142123292038061883104817232109300172019148512553721123091515719016127137406536835464034590901751691907737631221262572265866454964495912374961837193955151966504573149034869814045381745736975898227511377456307867235621697668252392452981590467562185285845589145301482226584053595263909853937176619710158783873278238375584724428825363726210818665740744020130772139829403432459845503488984691608935046060460297207524305222505088484098134455999907586813154752220465614576623314045263269653527929237979293739291903748696719646307180607247847473965505170974750966062602342903764684445058224722202132386388557145132347498203499660406621177777297860644341467366211106480533161430705465164829466033764356209291270324090210435102759540397065472997927210896183967315084703036220498402080566869922524659535837374960133141790035370052464560586947767468897309441369101074420202722385751420522547081908963499142194431740411237485172889543080184574091031999461128055643344226228957934051736502953133602831432970249365622011880738379659686693856304036554244937571974210249374057019369451384825698600195321516256897140183511652549600636011031202819953496704616097462082917736572997856457130696516500162277788527383407259835596739708240463152591767380422974317852831564944495450369564011093698558179851150272119159176380048296581307898594703973120653780203227603441629732969801205906682469014302949399525015898904771050802538351571584280517815264264006574584027917036556283411551999177884995168857898088140509686764825608157587168921378526143482401986700859594918343799687274938039243990012408929267645452342219220757841378533424878833535474932468597801974307389167814296105044449662857971986849317044974915506755212791116158380570696819657259481529866721333525808676789995964951596061098889306228869661326312175575758648326279685711415335026472140795023598595852764820313639865562813744761293814847740202250445085912182509562477907388965494526502037078510053115696562202984993747508613619043976299599031311900804319752458094000091455821745452662580527403998131693257001827684217223180514068200502309296617727018544600370433014323452516468664561052172069290603672027333539615770828488823728813588940453449022699453876878465724857819287558201702633487954178253554555754906825006997973950595046134205343092698190572553123033871330291285031922813569639601283853455211594356914097746015819877741238198895866727111427295831082708986392046218034537945562433971856249712714095792596192307818840453555297977742210688936733885548588107223676878485938225154035440994822529059283484780136013500915158114532921442353962987554830680155885316596656339447818622239365806973126128512002422047411433759617769910633391463758052035815470306229527721703514821238530493265705844611319656225452385286064449330918167471272369727202950026266949386760673907235744132686071478130632796252252135834514617531970735280901135431467773945347102400608951781555830757211821507995005588377445473192612925383049981743040230702238909816076153110992888652872560217949886633964206182092131604317680117781542966367350787241918340580597801941364138016285792981832086842444697476095946754659351392719202708606667009644691264257896976005037528190966153756618554580626435229492165790834984379257431971587706468682001818232048689982564563340501384966557640297083448061878669689312163513396687831362351177497941993054822898661904006471543595957922754427777943966726337297466277977535731960843472491811902101192943925903802602648417484447820051685684303466144125006122544118553603669682994806572139535133407886924532705912914982801741121071884134268787888298002107119318415476906323213303566470428019983416257261051670413116849386770027750949884410851369316956444860759317083546767369017773894297315455114592277011103608430557718241212234032928229874439864464019195609230001439499345306044257996938491772397816149451131204204868637916752530634900665239580440289843539255578484580722003320292503465974481326140173373348415220872649858367236488056433128304693053048735390596848977694106624899681646551018255627690892330654374747732515748234642076182693720200111288490837408415666378790491771579162617447253356921102796313636396193338303169096058563478651583641040952185421892539384536519000945682188235121967853491290747273345761908795277007145342964288577789197970051773733189425647467787059514167095015125436325458585059092777722357441369061070592541796579407364489401336846212597403776943629267107864806916569414494764962755479752699750611239290659055560299806182775792321198690451590594249076760144944330214475381107886168394173626824737953620485786673661943401837539950788735707695697363348906096623415203303273664416840915597267506068186919542897295549678007420888087319998422933180164226391830114079597049126719567266193876235342306778374503739921556049731619654537918413623760136660987343740561564616345985238478285233197307913701982509058532692942864012889661556236653366808679676269021933858700947062040850270178945051681786827703193427843070164519313139114857909616968441606620928373208333878676414883913529892584818453086699758841288965867024287556877312359003496164995760829237752268936555707635413408265577248890243575485397525790911342017983026115347451748939422823882771044974234435922820366214729739913674036710121597094308248753447698010669769903141940785020801000638451622035427489532856955258016698714012790945546584468531729766388592232722802392295725516217043953779868091887085119555014834500653542058958817281907159463277706136347609047316518417732001776274966861929830048478422225166252681241060317143651945672834889281095890446951076541036189885348326694340218479313476380613355515202360217636561827113154532531524831850160025503530023509981187456840139784132450412924899510635618839886059399851860662669837430682156089353640803722105692217062106540290334689571523900667996984398197199449488473637992656271379144085545126277376803369248790964745110630943048104744082597529027649301909961828672066800838124770828042534854515494482673351770991586513972074445355962906202978965148227996438228462410049492538096631715849474649687732429417148601177579254648092229392563484734484973447687678972551867684457804193010435883847874498471915754661252774210651983403688768217709856479897496641796375853276088948339937898038693590500388591500418224769262139163222115117073297407572999505921614195341795453956482580695755819141010547408583669763889748544356703808877762253423725236685862528686070111207376644417703475923902205402921183363592076828746819163573443621225846855184911737828149893317329432868786673412770941950614067843095596346611830093772355931550084081882042990111253625495158658798777933201606023025399639582088857852464068389306031488155118818510633928013806882947755338685768700628738187175509620230167890829577299370394812355322511773065141377479705343893796451947762336804445661037728242377464065317471912285508752570124855530349584254775511192310417412608960417645304738448618495987688244554949742237079627425226137859561508152707173552251406092471466287707657592328000063623661781851820146612996897320450670193879122339028019679284857642151753605032428049537412601702757403030534227164186394957860000645995239276691728895103478325073178136744237372764385742521775361860499615778451640562125120075711268692543912705480417413062908526548019648798111143734157554754999170822366196507152797220508969852051364905355472784482972071078145745145684608611157295659631757938864748424633163765649448116161921604628737029040409753672886130662513809093509849143091520136859403499036297931364403312590118696488012087866614120892897810507017559263159328947593335355585396153573748647327788469290051483756269645692713830108719298422825611441326287969308554351482195929480670805922268245906695987049805652022632188600045813384821338380107140119370503199986558912494606613140897994650450291669772328830601951849785565324355223479476176792576544582052660516799447607227055026040253806930549886106509217465565888873017888384128959995965915932279304573808414378982357797812216639154001074121336095716896366700574845895205479261619617366617966892473003181633077684291239817740029380690464820050593056721097047072358576276559715286685740580991153560586905724472242083498594270765145780433987934167957681379636208339039508329344955805953637604854622311362516792364381354247748419480435893321459881942136057929416741226159998361085501672440264935290269294762413425825638723031974350786160646176951012185410632203081716611241488676440338872975765844395220221961007374345414850891687133744267835952705613152125262073869332183059356589306210304929209535538145495116012146419843979390371896439869348784158909220909390704275782190593570943076723702438900534531209670035089619222429881608768643298293971488249604124465132808211248922418833144474926880363423918296667166282241567818396752437966596745811699149281369014502279780135976931386539455472068457777174591385361784792669537103695089637722790612812365479157088869076676890819374934061036841067386005411002627870087470594710658645143919698055970695055650501512339366658905717331336447642130706567573199190393881189382530752108828595161475068094688392457400111354702747869821686212743214976651883003196033345622355344214173681170059576634936762232906918488032373451924349124656653297182384173969198658713331341207105170736834172412344723718672494151084270496155495037955015287382248605384606767203928758686262616984382280560158757866830925122304015998975384892283600959807521594902580747171577353748066900500153498535903697672297104371592109846939120490542624633960855082491823286584393402629382685637152596238947447178336999661802011547882499133236522159566534048570112325827708188621501307157793460027439516892752435518239624083915012347392466865100222767351541533981744380629368188431870219539467457880683873304502669934820474093085095294008870695181863254835482496626070665024995646819410647040712273110042154418554912316340734019618090749872367033899749934392439916588065128366790564169573652160502822448852175736113317429473563577483084783309849295743057306045041284029711489736552333702529333285934154488313740058107262424647751553561189773427429425968401940681333381416107490916404430780527772977009382768736682692808362834677259100328412812893578761188653303799439157109917313087684148298147316743892415070812333046638666526885171522877349580865070902110271308011488070525108616418161525567481710478621940010561280013464710004896008161813633986131437595378357344634700973802239706673331788471217421662379783395050849458405648043005911201841730050224196298113764325550862599366729792121239683362625433079201974575553798577860333993611397314797358588046748266319055503171475107408265754553845260052439117163947985454385464047744527444232082011580589401104109453833092047559831301278034058767338113451784704239620884935829339947629489274926307615195947580863523050039063526975508973719632143202797580886958529773162198359442566894666349865566418285278405307103946038370553195307057814332061654837208763730542151049819639823162239461555401624481922748898899154818161610141291114223327424807105120278497238490440264296807698034403160101365988085642296075406956955713350800535659518884145626531983654599814935470353339657880494761273209004855311359086974714535368901571896984157754811777941076041901914565272888404051882795084900826453601324291522888893797519995599859682889360891127109103099730675706218659729673463984306192842955042921054669160915418280351783236841552181865567963407111243064385515415624897517639771881262098408736098299238363730302750594187706262635737848136886836829333969889277444686969662949968966027691600369860596890471841716000197184123626519979301278741913927227986980227245952294015243220840481753981240082576371360670303344776541140427436996205412514504827002105151741189088254926097747214620553667790075520087998923234653592526127377276954567121544499950148452685432597408757444502355950317588809467867062427950496812231738195319346995561510042092153608326032153069185727225992986003953925473431806464770644415440963085983320989428117389795068274955248706628273280536479247410723546119459442653797874986979596432214495014352061663273608338778957462690088960941621373442638200267657533910341892476105635988817008353964495585219224076981305252173195013237419645342897616581354073313026303028547802248519255207832323745483267963289071256274752461229292964140942485029059474155759927512425085069966347353764294073839182074190916254160972844591625614472721705908293857676713045438433599082616086284671963287516028608040353472085362193749494136655199150853689237351274850742948144519654169382291793153091803782047287223894558772648584565835836888354176105647212556438640151856876957798827517422243471111552623436972117076334504665327247663342378211958791176157833972287470845127988659924518327916414459828021443727018946266803579233337517480641049931852188455068211836085689756325118138750460942419557443263971984310789277524723566722883955273552360662259878859853963287728445468369492367606484412273536829219132455470407442166682067461265670796430120055351599047417085461637336202703865952273806423126218740626890903998167108615021958265006449778173573185052157715160847631314297100682482491391624928925561263847673862182333452283028570138155437476505784656905883948253134199813962957362501919857105808466792364911059290880550683382177183709440626999382691970682447053200579454083518610036611615609450824239865041998731623838357466645452188735902612193453160485833921266637725062085190546236237337328114258166438424988979859667954175920036913004537037196275360687183013764812127410561482448795986351085005487349029844775297575349396655307150551544103909386537416665215918335499738256689326452686208235962140239634097122426826870025339558269322438059983242690845304781419914989311071015716947495557635219458745768629630183899058242012787867557969347231850307446106034839145987949779487113913546290254862822249743894474386826616436068318124885987232687910766162305380086029215833814432845322407462355418799888174723812853596838289500620225246463573161082663603643148563553160504991541441308872154144331745253732106513961197330694878139130968733186136669619394025720049930809999534821942765587811323521877812457183423976468069730697934060813830189077853792276215484664088231264298164212394174569713566615398255554352949817223901452223591925741943146421826647768886677250217123294152289784461629105662854200714538834167814891345667445069291290631913561846915331585581350764875413218594557457701564866526167466208580107002355681687581059596769989019854727064175312884874941390708664208080627694450131967019703355181004171924251364427448521978153703577709617978036554715010064181805027540735836312100758486904203604530637430343887615238289835573728526027901096581135839900820251064150068488603778514517039936269383226188823018995912710008790754166287483223944522850239184867913815692056863543217041633586370353243530386031382451788944252008048530148042326400652099629600966417769376130820806870201308834720999916645580574702972650642485903100718469895310690174322837847571536750984970434834820599312232247519854853545545198084228145074641693251741711660329326677622781908348972275100308089752520503024664935126461278489087411830385877998569663906345052002212393452668657992044238614847572428901051143288838145837001486782283330164072761140369413621157371699856058417354456080336888906925243533810539715931504525920940128868267619578511313238397636156621285764826409723566892206504594883179858641010564381869889428992763148161311411978394851438964020161614470282221756482734200646153016170156730451861843770521270625734225871506289598548861762052296168865652158377842471494798664877070673248179908424974414130307727812217275703938985310766265694827619763328744659604559350180212323136168294691051653679961314965618814230797900281970207530720413774496674530625110784565792463800382738568602245895406143936149940484842869698064832621084643807433365583986880899884715142957010145120549668428966748661018668765129731396283214410268341658603599114389318076256443446092747502825373247224396358231441866189835337323691680869502922048143623720481234723921748226842910666117849435316725923850410537793110490815729580082189041099653740522940462019848205947195654684300768220373283990614679207880313062108074288782674565222795103975301854924501080667143565220340985209717127515883904861311294666733964099243492647162312234605681600440545721462865662561689286997468382163390433176286370809582850819096974176212074055085110018153302081718136717685434872720891726067431810386875499096428742804106528574447831399487497892443435373201883750977953460440052811978526927544248963257416298794288255060763951651083871176646737663875269750883793989032883574021122956354320874374141624949105157682271174177119322329453919740921365908600004762024328188811611636449287155599082998145435840371709565305275679006103858220050257742242925697737322966093854673369294496815432605685823408507390915045923150813226767810636325059586274551489228285654069452221056355802862241676405576952603221833562396373988080142461187550546095550941227200200166732907897800070963848283124462955965450221207433264365718697134514468968889229510802001625680799512184131609833097021782768602448714433613144592320601473497481486913207742459736433949200730885748206722411847926824053304598692754589707213154584154047723222208392080363241272176311628918816433940368693171355826800063517320974505243783052633429820515857292937290651440822520931400383344286009437177696508292941118971208737078409355275475946676077007395829963258388610673745079261804330672514053521161337678960365385798503221845083723457258939744824492032873386027992042012799506284586176929349347486450464919686353383914495693293534991399224536641881006310307109505687734454230964589543614186308762414944474198666983477134053009577978720792914623896263908846392996906393101638336383213195393793042804984875962794959779336483584800378416101863317414981336434273879803025779702183088650364181062215710292820215871814456266435519128923907464494910427359692766523114695665844581811447637737523501285931265925760750556501984335677543209175069011358786716195493655202913909437717332015580807227333191001779316519681542280883705765075988375970217541177380871379853389628968302629816280553011075577589785348238548129828105014962885887182322180488826018274616448790291728418400029367469706652600862828438830881335633580243510577635285933515444380101024499421747818965531884708737815522364407145428295483213118953754081821607486597977762279102308233648436172336602917193399261678828689800578911911569612861137304042229962444456452288117974715366357914615049438121796999117195533929154679858885690828191103147183811299678656514530596798131908004221827090056930448074830083456425150236093637525563831935174270343629268402347764138990390433623518513502639300959664448987760417437860381723420607907143711944475395228435516778885709093405909842628007555002487258306505575112593538963151718260658460012893268297421617913081168782127210392175796983370070556004792659974323649525447559862348447404096171475662882753250917375915460325080960114432704119873159696800796893604075977501803740941714699818850466289826305034062817302823197991255309183628077992511330655577725895805497219375476854503466072184115570530967474247232869920729495417686489051896687507736218429791511575851590669815433469973569518765532300615728199574087984332687865483877037048388679696344710448810366625529586283434384804626781221476425166019764227020362945087987909230689977626220233634117711820153990501730714939961155484037152282685779983851093840045282636757612605639843913529408739455742776484992414146858242913857917756232954020168247866760021021513826664110130042178006234432179195236861776961388050065925090702529001557499487526013723194269628376917390123280026029927806831063027349010110031406707790045792769827931368494516308950918290483029650019089283364988372143961807932087423287680686490992044495073598605289572116995190404083389840835633066438541288900714754386656707085018469537900325716436271571357347225105929586511098406845689715658254557256333555945765777476180201568378523640314978538098315662531858094257851058139046154652480727198329095772958055300883576439354657145791359276746643254483845455827309139861671777995943499455031747714365979668345645423457823495302203379392308962273442866717466798655682537325145377430092237212027531693856659776107823598018863075075604083677127418714589669834570275384870360304258428021277883107135113277277749920464830373404864279022583676007739008365615912219662842690363666029854323536317994514703396394961386871671776305654609188565518443445168903346245846829124143175358657498912475955608960402921553939774464288772795162230612464779308826542357480107178091527740165487104682655357030989813108310430948667539415116316766582814037008668655476438339770427571250447492214229690806227876085444048588139957127475613019026375150738783118851441005371031418316347433675117492320531768258391503423545058602263058687027792432296916175459534404574473997117121192077899158121806247094415506947273514012345502046290677833781762141918901469088070798181006734859396797266934876965238322019108208731369657998137760621433456083913079919949161884261517662011516330133652402686506039217254034345528675180825801046290582083646811073518337297519614561225253713567711887842519940235439622424775173733453533891507262882321321961008440631515479985995215888847115997837510010625972439544429056478372428271127688613087297176674503877844706050498179263263011217932857796302134172905845069384231278574470982819903689333323225245658784864990971750320221672852149988277546583065590159584351618555205489782673613579627957493305220111916108420802369961389004399328350663451816407683899879224132306415886725004798621914872760913836555345671757845474556760412913322446095514831253536112871452107430436355478982136977200927930137261704890828039390999835574082898005613032632804878407025880190853877303188187127307461366420509108749612419017691344997077457528363397832315611035648212470903595368161039384137568833771578279382941354623916270576056022717798353211081825134419902677286104968703506073372089355308640081426599165087223597269462486048366658911303958507510474494726993926452646055226651892497645308072131093520962315760848831138260364791668246800841422358877741046115569322707887932687436128379575768538184074677820984677627367244691118916546554304847971042152397792892067638966358963835664180589442147453962262317532655797252681466311769780129937110982453405229270933003996295137144383195135057317880566639610421225778725280132528384833082997288182507498851831471768420564258524847512955453433867631293546440777340500072199683801405226959470919911895518840537007723165819521053047311491449137585879146562388719464798452652848026896471317271515010401260230712122287922468881136328743346672378205581117942027216479225653704224487763296970129276913150042520225981080099979885590235689043290231478538738724020947448385394177836794323325613093817720501734309796245324951033905554193731155678109600573604690408793506212987488240528497439396469465846777436237028014143003044016617901165797602697905113693090919413004043992505664956242468380203405089480290002637622005786405521562274015538802800346895591754312762186131476052556899895094989323834728790825399842346397579120047011707656479780085662647461192149320181526856763348584378214733117677538206424894580965820041347269571623703837207793565976200522780225182252963200325369276531984459658381037550792834252785825917456435006260843441631129701955375474851856666610908213017688979176081186745294529881571076612860214031901965386239562915131391540587849663072019421858020705480546447754769556787208960159717907361724140611419772765025290138599281353137970925603612068498388821519225181321799809333597821317510704838060219422357710899459174705182470860381957578800281615561611665853316284726372858902442337220872462933270283531749284100443472630417990086941692873722278380802882663780139205329286772928042365659125645148945492893200840060968418317839059349023762050002243391242619182832918010847706957415586736411928012834964582068331157546262339166418139061988522457343683067739836101046423164641331355323522737526644533820300409551032192889761040287882571654340181783887410155412948949210975077746095597715247869128811244829284257197468820488565490956157685128610593526780265614393833585921788673566005965300985365462064254346379106298885738983183543696792192647757803797609915199776315697301911388169677703831361743164453785457007319360521970015173541007668696013054372758816070499877893650174222466174381932691928624293010619842541634604853306131224444100538119042170529502102039492849932802291875208800031824083379536386422378318266935454676378570360640399221330699778381591952595555888781915527331155001317087949016677272842630344949747135658767281439426549205263006190800059109449562185452175790848418298466938419495588120747001060376835634410332054500161516572407201252986049588947079721834259701643847598486582809808690549036772614620215398636294163771793047627218313659680968500291803114107970431138118641849141586975849866022454649276513102872758629386704002130005951781635864407787481178065225685065307135073424589446026834620834580313392145354223387544486303860708727850277777750867762992022240271074324591340040289287209026586544735621084252719222866313141801122028687658119592727128351324215088164501912089966902197373677201815546709893992735421991162731652624506949920028485236634716192101353179446018193273960721248873981575039346181702082230279563933543167655527885029351632734594726579510401149973448237742065875730346360250516156139272689820660483210855423220840720240030913751582541746042105745596153391984589002739715743753802242641556777875930793480424536014455008046344124054408972659399663300799797259212922310941947078384204183075966255394324456096358954142256613673796928542371376474952633755697716260219922673491394272360917846761965872057597033676399659157563639934250587889437668301428916417573850338881007860021862503880088175428204767842725956719604840605712100796561649269169969392085577449942497756211414133332432379515093640966413408084475286141579712425085059258050810646205124572216884820197934411532299155248204859897513010075598847969586764952488027942323124198073887359066664964915113962924488710570456434199781743710931692166476206909405665634791222087667353162014395794445762166386846601655005339479315808774710764764454783961099927234890028514579797443446604405111760455861770084338760531480088536735702115650361045487992840375321759148201882993997086526906455381591739541840830826296942142296036192656880385459991453155319530519391834550185884549349557882374650985608212984240079518041763726731295371159953298713794809681866455468851443625835036662440852558593062441470020188212204642192591723459339896192579016317752923865551976562492371628465685389344727069088244110281325841910775755054815966754311956994397841516332406889407043926608112156186190253032207139064676977326836815066112376928002489683557571372311288425827689287823109567811899669697740948934872414661497397279494126610763694029582362830348242237176331997184323999039812849393985868272446460540716992594084518183571889109435126417684691477909225283783753239560194745349090551016423380781159966344826207141587238135420324049317575753370793509694613482852746513771468342056262363219717296199917086663830438150499887260671726765724838996673949347818640599731199005296600353299413932648526328093008221083677050197128707669900247813008513052729668440606101643782307191363070494220493834196009535099939871351587925219739428061513565643134081615688849017478248578366068004039267599629086309379031115067276719418768824628307518879506897390548979889399988362663176223805421655009734384360758921424204680681022487307387780947877235273901645574306789841755860978059801159655866608180878353193002712597379133589578973340087634431188614869768378811215108771266775723101833251113919851666507968096448532556638417583116694938859216141667456755553823786044244557126333966772146224467415869012956205456527681047363682609789864963005682790737691986315601291614256930647810069891970202265386741626030496339971273667679574289555663140148811846154458200759316788356682670899194556985802409067765427444507985684535490547587810827427720219796600382020997865951969944929335431694916491705544129448209296760925147990322588900495395499572299301806217926211240711016220957855270488860538192842360852957014065767422134831332602634217705437309535701089078073022135498263628528878265586915685634662594731325851956591384689244624458344022770496706653499387235475209097706488170900011063912557187406824704713672257092171222867211191725322046914596922156122975243745550688205617369549406662733252604137044629086544615104425600763291794861451069225887944374815778912508859111341722330315674973819208639722065135201582800869824687653737532334466697837732810111452619599588666501082168815975949566602903527583321493728643587459967647652582086055524473391211712979767298140379890972865069764920322099279240402066292979560833334837097343711038313640741164847600506985201567447227783589996084255788427247353061170516020218645681801484237712858766165911990118688140951609402458068261990511296112127545741192753463822939947534991074859561410795940104716129658891591656799255444422507796929870576970584791430401182545453561117242733713999994326721277193231933913000689026267852300420447759813672847437901286717096517647825594600907601267703866659554509740468485891271332399097293379835865350809726709485316164545307908715735299550751692425027520125482063398833903447828489486253263843703940445054343631202404956819485038629028569337191554779296289884532505765976820764344629468981452443342055804499465858237505365957053622440381842993593544150681350709205774449799905166769053802096217663656068357815873203792310267605286259507765452905795272104204138524615686057656282187475538902520578508007406933729429877374630579256993775040268566158661680407615422161938897946385363383112595824418797097195495224074795953951942297685825139007695483654789933863568806182905679340765197580246742179102503322169643776004412820779904903233081231761123799725721469283312184717521295801191664227393514437669837519984530645787366407773806996529187031231945950041645141202258269724698146148818462890498727283619238127204197791615571313447996875757033935401932546128936025654403122892178220340954344388369354604089544580247901808476297034197962302160294516112476916501860059811641727438266730728952978409244016569577657255557295761302425335479095067619819197014241516659357446039596736185325510610079244346653294418180701214764603012486296399753334724745983433900868516046724022521613626334375200406632342549930842141858826098209436157432408456471082544310188309077262585702511210465516446200720391537464739321529206337979709851707477303806053628389815119695460644201711392956688531188328062643343170171702051702648528131841251634392473071713355495060515867136110105805046978358806115072292612757693952140803029828397043141726570913295082911253431769430807546865513292224276499041740474813410763681949573977464379686518304446566839831848419482441760598638213837823531373045228594983101017622494394053901864942713232427248943202272085052667040161106549298027268862995032014078355006817832661244294733793470870403693394744488364014630143076654888691999519065406311664767819404973010037519857054167252764702308591992273998423414933499839097864034390769224272933766892660493494416947156971554705990421742192588257534259299956598642676845141061238468788065445791771750402776282360633007943758407436694813190183015709126766620798933170017202053954906864094514977409774109437345210942859684717270234064506710071428745863558686782369963390799448807437608835336820312113732445157104041864292587944963777514577235117586608817493878267538776413037795190605040647630268064742690687941447448269351953938097017849673194645289143892223863280101218343141180980750479702438991935727257052706054704728147464744620822245407471416940652069695167600105591770136489713227842017003356643205551146221793313232221711932737347771577886583769699079117113172835374019357198631824447047615448184577025234412484550968128116664970906043227471833668098116783651570046801876817095688932418440736231060256627475747969763747209063548402949173472748730812019505270963758360746254547935295423417127268198133990264190257633736116569738550874413024110469983643222100126772868218094989076236868926338441751885626283212965994121375179698905209247519987894668451205783735845043148908445688161384015880396987292009854086296947132259863231317127321942891413549432335912293724230966015461649969855796276327555457798445440322304090493465934666330885736959602328575018026850212000712714207655565772640798302072919480651293602177611360939113593935308121773628431894417396213554536050024613878796067604080531693002509344182571342161361444011915228953065300777905397200339662894179465964177798355925342228777465640003439352647735178351593305571994715981212503801755954757774595152071390843361001153790490150789070567088184457411450883051229970020996961130971218937285330835942880990492700746796012809697182928394128198960521323361070521443176014995019958953589718336907828313863423685795679656341929304976981520997452887831214597368460756747663606003968791743542138503489532629582054474876924133036611832868911277831754602912791295567600741873322554290824475967304300804589663453378198753699486335053772244515901054165665887069898901375388802432758515141185845435365298749157271886535640826832722511014700909898627167722415287768986226770369839699597828165579408882537183764537402218188411874481338287947196445493757002072346962533601592218202808179726049128292420726712980024237600224648500879889885723158842214694614749102789155465212305942486102726047126981324149381499017673574896094118268050477173013164589468234540907505186166101541070179554175975982804229386271555107777996745912246616384747714601117896485867721918610441753073190603997309812718219106724424419481471152783430392065368122142465502269302065675881276475434385573474263281549277056266006654671184876520726733565473166966217706983364583582683020776633777864748958731255219478599052629324698436382468573872328427778983992573759790403828529778739768466380962417547759148309642991552814516580372824423195752092772658269323059752461245056435575591405340142976750824433474662439858343761487938996414440251411300246886937195215783044869344384073455908669094644813823535320421925347916889980143917862323760175521459465427445917974760636166524018620618884755864873805830893796002947147554901679495904281561842872515852939829836320669197995673894788001995879803482831259925329759910502073507362660254243105132862940349554176399109476329448542904448102689152595895214573201226639910332168000686350486200735703485896106179027766071816770681793663180453823791912595619843885760951802894321579652120565761109398991549688403137754939354085695344990800901270384017262618018204667379599468295436971942325792206474709758952510700203774171942638934649675715427250404693871883572775634448769445950849863887761683550588497002868572692805421291795858131914228380387137282755286830645433314868809215169723787601375527981104596698829177796241097070913703788393045064501245988678589578863709104821652981152058332278081779915608263843346554197603150488841919860848406264900399587816932942706196229745312713653269444151463625697342752416087344026979787900214636269626201203775338836775496915720824154639242413505757494323179537955463238524199308940605113410985187805588409273559116716167018711815535058236609856919392270006468228835899448657522671480046316567521942019661830703452163928231825112778342832895414247217260081014787580302122947515344037127233216708657243418108047795784144265189977886011402027123294823762338268920964111163011032217548508094335350434077628341593003000533913418044642352624003807395109513701115850953473248223743803508935289352165877809760032571212835419531225508204126987603541890077136511086047181941080884311107425363917138988135975319323346515798647750468457586989391963118824114415430357040008264012677795384110666509640790498752217172264156490434959626706563289904578376011368513262468346021348455756462607773521883602166221683273267524660090778680934843387919815646612082484867805064429695846021029304537246334876025996224270099370735871074599684633237610502937874080790673626883143222400263425418349464974943378764251078629404943559708895096801337624024819095581134913297913613799767020614698043501490706733150637876240206623907027183279048028514829560611547406959972561949296683021021193050250622682638808965406298455619793389128419758811358200725743561685767723665936577518536374076870100824867273258270559473587594991527183547659915630391378571672985440402751717388265873849917746309881277693341113336407022766678610507168850450924177681798125076910950909144115833703031224085067230545812454372712593920137937129895049768896410465834850748194540118577023591724690129665114821500743422992828122279978737566992007129628455472834859249657682030788467950647021947309801494977443099497791041466285009066700904219602986633110301100111327823018058898455589663934608753728519074360022842303896215171619564180656270009999560134896928557393262657251636400204079984714123360388867468340872957614697626597150757397051452167403880838542015319849409356208349418084482165184390718645485793541198865262240327191774938527578225038226935970540054945456324866881669370213670549848865275526796375925429531152739433899621680155290688351370329024845825815071276360054835685965429410651704196303896699098713022758534590416511750974861330271136043531703717184168098731418195850315648707721494788546280039262775184566504309126034142218423042101331402856915028903541775090965422814083329824732595632824701886813189069773412240098245720477810212442578679419621797082454947151657388079121305594255798293659101859295214588919897364105748908948877461306386842597756423252686346343967798383912119284815590463257268442980690380184893738786626776014667556930214317529099268057699957897317628916600923519338328859418224344448373374585706226750497682736139292125659038855909391789629362867921956985672207711451676871151703638400990180301892877956685297391770541609614530699375915962278339171127981012984300277489093587489453981173533815768461395084185638045832986728493628692878012754723986638924135282045057803538853648470973275449256800942755965160291034577512451359419321526895090145445952416961136980647081102315333388276662298702841007248866052876037540430218578429642231635313350340680402784441475200826890037863547841565363689567311688395043354563178010166155103643844886149827139560795729139057900864661298244152281347786442264533490158637174488626108777428373375862772081968306963831805881107893895728376778301186999700894336560624571898381501767465512480893494477000837345306194820022438725236049547571173946629136182524460576260094886690256581329311350674437793232025038020543501852994980778105259985304488755072493125506510038857190824854783899326602860337393568736445574675696601191916014388077529876643945135794760714470988893277660530741163115301391104923282193110588097367047432344058908828564002679759435346427421078414906154092962408338791081565789909498815712690236620043280215289589615775222060621457988284049182338365735125431269368037987268684755236920077772138117964924003615902345770034941153406833557382487391313539191475815852762541337589984203618879551380731734622447712358536727905300835514369174708516100914754482240609224557576103986096635678828945500333604333720846556725164894623272786930989509455863098301143787825883212299067132918193976522025724558400814024130932133420950689694190778702026153575802182105123290813528319509157259925550067198796875146302345713152953633128866961298875104615085935633839150702622404505679511688694605110946627672376072375052884555332350474774899801582880457530050460916902159645238303826292106303225851732156752808913584883548548712412653274247165752201579356043381984648837766055270265526784708356010243568608832661178809770313606137790936091130872340772096181023901578532920354712719691056747947044146433121314395609675166261128944405036638819340286420485038072860987919829804873133499004845521940657346541555378014662305783921185114327966512426186044783706656942465109697462111066255726717641719632000060679461544447383009587849363123252352851899857198091600068141919186168389015181248046434719012840007070411738005402484159936710284924075593039634872403013753519911575118044416261522200880897896833332452200044042973126122516176556942460302075359589324020852892492435270739656513885729183164947634488104460321439087648326551672987621999736837094585493934338332588462059401572984464297862778628233290690449232765932924499124046133833969015247585601019682761237203430551089792317528677738782013266845098807180268203922028048492157434242568046730697177121873456085715203567062170083893698275361917197371079407399906036839520612792285497138600225654467398562769675644776992563009495709270131191929824955775763750859423691449068347634546043944371318679563025883826817928975790738675774381973520813126806852841944365315510971335681257482834697901789014318277526180883313639973602829599010000519724377015255864819106123617676411458323693479550647375250340609927897230719508277849700119603131624755510087288521738129185608767747856196063893512409250785806286682155371236246489693259203489219130671347171099770337362895959783509532523598271289649198711044815613010829185812739292211017926948642819683286246929210846438959969288165507695822898733723861578329428488075621932309574063083808914628364138116929229083233675690406787653576163961754266645938024360197471995403483650856887128855292429351867994655684451320866302074899531698788879839089895456546759232060581922617788376612225335473386370967729593023991180556622809264950044987752773346252173326389389494914654038212432180736158453611404602155525975366720223919881050284681073770437723293121597536227505157238764529436348387913528988787905821550111104233584518310227611334335804789714149771525157789848298936164491828979317790326467228749418675453269183640879828266619105953142528663092670701732405950706227386670579287338827184951879760685322806148088186465932879942779746124529540952671249690441046131073909192112396940683518446969930471686617424050519222976752985296684867348368116257663525545752244031843922462332556165225141042359232732018883363608901360504726337496205823706184846895299865267466363021958716136936786724835356109940373813996989004405153889590391032827945728151139758776274744531842930536613637951698172746052088546469232041759114350013503950753484896156924950900207556055754384170290146078181869924923939119438241100257051821388230098035458587811640045530311277179266614743774837366237460202073538403482309687677893623056167893806731785663137163538704715874017289052724912520827168930437398229658837763226587058276813473532994786385827743816547793609856131567793418000201475804245593773783036039563134913576340135030348407399275786595343912755160207530865236538527450378885971248667165003987741926537414501116049507100186493015358275730695530268422875848340321047793053485220954907925735639770275737320455079910158184367980977313035164498978068477009241246589017179499863901523452423144640733146239704547452605043018742129943821257064491507354692970932063802903775911881873901579103827946849262860649355770579275356999844748784544845580050634603101943277182722031250809775029951919768802465896398114153371350684361001131099629825109234007688626817381428582041411060789570114950689430862796526028879535397611684580730435299656271220921968552522884916973449075278234090379343664317568824083192949783543147314493991484494446342896571796553328504009467593996359499073386426656218748107263247872430406290494679202538485915398026608630282068371068192586367561616748830031493430128105299599888061886299723689641652045680607795101009177465730814546919258132731296730255920587165658804203391315397441591728719487570142622214719278911066027507612894427322429136699466592706572510419363102385981754907986994389243889008939346341213828136219471807981114503000204339015792043931255399519222609088999712563092330271429125014403981870500420259608780870813586866490177244473695219446703490650223840969305182593996803942103858321601640076947789192421214895435937440099937964372856130362894311674370894674473797167618208641593168356184240048454270762185606643959788021421643166519009607281746064137684655528891861819603488258520748455566190896931890551159916269087256988217638846374595506473777391415806674076650097783414934842161844038388310937601539388936310631548713459725290483703688341501686075158579902541153195356070770381497122744696096894095305260098081749270092193326742138874489748595826098162781123934793382770561974066637897136621101115062064178327309094386421044341001568487946244696759993524704930849927057311124823975923359898645282770415482776290851650379608150578350982302758742157795977900459206088800435487434735298281470367665784539260478341670459417691748946808253772836216066856869113519452383389089189111091279851458741407650285259067209111152799259142128435543975758998522071759099462414469284632686263402158266024982921158694801076576660549161908778645275866719423683443431434193812335002128977713142500052922497167310777100171685118882299889208472946752106224245534716079912083220472626821596886645081673509616439339924477511462369670308230209426462536749134703407424587665240882619103362519804641137116122739349796447567014545812884270106771962632936917848228627912056184982809090073238861546445788578285840970960477441126591618895177662916625271687217187625165136317089796176464843096986550203832749903690139566167724533477735942841050791076893352387935549818784678123081259581976513263542563940234617028903607081664241775014401517898713394071954068036840143777538230232741686512733144671792770675415259373709342131975970409314814919948898722867822674696519315663052914595713618397495524748019433927949365635114979908435426571310201971443459520117787594580375078746251804995052213989814784595033178625784899977510091836758799219228260550380285078100178544158073124700713812448131990189182879151729748063153541840272497319866760503046989214001220778491865416706288946143739873621697146657403395403546570420713258686633362792832121561488105450732644643989838002417068492199129748009428508166943564929578343441236526169848230319409486334102166069882846231098338701418928078207374832054307495416428963248139509455899337044918261866426541508190058270723588418982809980191510351770638816439664279347043773648026957853681036798665319390376877658266085036871810357283666433650577172278666728793090809972219221888136713093480501052572641573813406411781621048067871430238916681156631072876053694575377847806505850299526911703233303716719601123523444074752681289283558682868402632571605697450019444495170180661810819064410545524662199746055108376658288581298144515267490380226956781150070305237616097616075164743583933410407798055772293477599134331367215978661055073422783711677618319948593027585726139705865847098686679533960946291886780557171136878610078550074388185710641269205096699149289422749742545108502926884893954474822863067499394273403248683744914556473583037878860598475691837004542330128662758579270951067896905333597342936142003288246714880458353144138630797626597404893087110768851232307860793424512201715455801841692164076089577132875645199431380232720750051287556376203397533006053915208115880105429443178555893398246356458310469241582866117884901004634140760949982144654146039283751024735058944073491964954037027224534572201244636870031384833984230918324024901579518659337859928294701598579591968598386859819449054412980974841995536896369963547172061818135855259262329953991693759170924286136642185584676677206230544414885826253705320824543744822903027802706575103800171088178328186514598655832587195546458525341975776978217729236120713336412402816349700143731500885527129175891960828973889802021760821048775450013336131917131976208564149148137964066304065403542908487514460930454287978881572479698005656607995943883648202831603389466790445113655307314233276057871082079267604395353546642253678185026829228847438639303958374009738587014265108634462047051758476054990457272575031508505858568197468429290417067166141331885043846980797356017771048117683664107793967943620268481911773148240899769255512882631452780126438139137569639489110846479984997677906299545449515731787008040712480283337111702642723015442391360206618534063071130828152074975371931468400971062250371959216386582428228940836492726282455960515525235059120784146707605675873673361894111742761679155530171994367568479285326732265780455932978644256669444338925456899171225377298404289632547282555336798903507722310316422225593686622402932897079007749621309571349629289649293878759756447666331001001208538049136577804869477100465384219708755533249565430227984049186231967906253176993147358452802777820588676922324779653239355985991799263382568607931297153065955394878327773888071369814974640506625175143141064669754807888250621080369303014952360247668717017783045944939821354666812018915558951093237791066397432171715286101290073335180113311141356684680079103996224531505962071620704028551570261433581030078027781650237751720096785624016907881512749267410160630231957867333096674195332631791548690087721251730723578980925225302256322654190233991410380309934353845802706803344427165192772582342536905924927564449959931893373020241561339217286882111688625658527099872906016565710880738948758361695217062095632682460903996183788978720182268702378535683441810012149346172306767528635990112808891008964737792459795688250073985023807750959129815553066924895357372764132385668467817781405763877234876040325129467647135943665941345531063140695856263463368973106516380743553431261006909674537650144051981183492353188719407993999095538928957798750477277803270846609361548855965799697025956232802846174744164826320487241282989494781029882283774618561858232334667185868834958184219194388322204129256621821361627794490041022380140242165823660436391323122954434656949827222067908232880702415137352416231227477573032561247042685443385322470127977785997835181995430214875947781607618852708382020848349974712755282025796946996655381939593798289613778443007953018540036966166115762868120795797161535606620273576267247120993482629114587258566100302026165460068481438714608372797925961459932392110170397337698734954390474516654195473774411618809167007285249734723534800924594736914410232283436343841037207710013462057946640670753098240855503576886997007848143675510401545336522149188838320213279173749522508591040941264626158726646161917696317331416633744493848851485951358679018700795817364758504070965634445300631086513401545686454609857793768228464230331017327992712144695553139665054817276401972657906219538813253509632509474459898910878590169692258198604873251616314872253320868115250387783903092109639731408701463262774873619992516036903516401813228638410157789138345482086953949114165419212244103725882353735283296622540405395995512541880469553470169279658180842216911467794957709031814719952242004890588559374644161534909346821095273819069249340125854016212983888236067112990472785382510932212676008635678872991110606474438540631307026915793291147168357489308607341762034842422557974325100100386436881605524668277328014816697873496332099634172377923788303516605487167179287400111914472624567124700249762245822402739770702702350323771241691314913084480272640099449725957209235930230699273000522490736514197778118272030525906050536647931018487082839762435976541024547190212964624407218786854291307199115602213435981092612780992449298835321421151688044305242231335172036687591092061218171572150132304915038524312760160267807102779059878363028490995133233325655424283233126970826048284109116462935530797013471599928564268898897007674423346489650045114824894488438119052031620239561251550801142934559384022589044523549160677057526417751973609044020448336788189156897027789366044998316755033346099743453906679681237983313639844586220491826985980185062808365058175856328286723970216470379261157543687834566404659060788858593615726073376479473628394189492835760504833644940113498654912082100481325506837562819702568696995491876219763972045027900446675639511937613156006454486485525074979942085002895444499533574504683662276687208248316413599480307060161182230915617525952849002899529342873761735102674241881593715994890969792225772144013909127224617888387436080519675153031479114143357320736585904930427733798447129195444645430440095975183097418233761863378115291280151786636009016476974544958957323146795549938933751394956436260145495926467373472160218853132654468600885372077221345275103105952625307111023553788569164995911692208388877078051735438398567867015096378088686475757669825323540442454284008826874777703285382619976254258199293420591217977808277870511858452308972985638768651127507276341003599414660122279489574955920360994603780484838552595991081712362827442040178498021103176278778875030363022636160976667580106039555479978745699815797334233997424447588453139334536645917552581347550463442671610948908179968959226704644021691768051005907184473526312354164424864777438787765173853478975014025204069329911353255614813604353296831292899129535615290402759131767734127770463653085221325754863079335478829963834069993715154224943808824064733263123350461388215947951691759254509848097911089233113778953966407460834573009765117060752414362883466091800384906356926853296400551653599785791306066404745571908486625041462763357204425087660332076412002768371472025839577572548308176352281706577594153270832662553910968973058504562259368984989756227021582652652806200251844164898191969095582120789897267176461338008395664877220193204636718817239547049302092798661041184695704868470049638641259530673766660389421761893875423752240187458159722844252290797737229255101808867399083988549214491386356253886378916159188842405129981936517136925916957791998849494149771151943157558263070599485758635347496397568559703862678054007200897450252705193979698125296883119164590452097563052833730948602383296272132256900737675339111682947198127705742624375221375825032008736375320464500057389179346592355770836220414528501390794640672466736018275379854478140769212560856944810541661956752647507452390254517053109406626366824745757346070406527575357774320102391334113813577503322561143900976099469521398177028414610884136085659183932993931358081952707069270927607721717779098763854634460240516904994977475774828730093397894064147369457198504829905134842867070991509330445796639195355891478010944345098270173677240979049480592883846575269082140684093675224888424661256052695097801012605772822873599379849977045731761175869419846747429048640123199674462226863633260076411070293488972360126214984596841603187424531584352054891859045356941964460633379884931531169547583611157497667740703154480578978170504573192258815494311439025793450499895500372704236182645680415899700136977093646184318296660690731354763645120346808804485446394798810546809849670131795494286681388276584446505851797712368142674585475571382290726634603164381375014654291945359934360820628279072531886575179734245746612250274430190922429627769366531587168094442427862498407494665563526804502768435782113627340694356164251537923224666458237107932145904446111092210703976045651010128697605935565797997230393938683961799189869179915938694708632424160101610309887378543956773148297234896594767142721341284004376210660200550566202333951957558645128302417714282371577693287679784522757104237281724684454616224472703666186405467249250144671204565478357269214470538798054274436506654919003697852300703720061418372571130911168102172286721258959485746004353295033114695796564900624462269539125112528680378263752083462010919392052994067353165017583782632764100489944648907195082147841020836669964415554899731185444595312327881988435193646690756191744363874898626362765030272068609251880972360884793801625295039225521028318591195209521603087970922306318243049051361251785266783098964840762618711211938564523325880156358456632568153659741400635166538527833027993327618187316429284343663516156632552808774054766967000188148312992649497560617449945560484056516920660629441907471164740575561955183453874064046466344652333203510377844767588566666090172875209822447115645045567243110919573466626779195035111191248491406455543525772549656639267852219176238547538197108319832284839469222949537374931725775542580964794985891026863594535761355146603751391496845122967455478424717793060749999248715039173711331059841824004577425759178667121950517428961196738988890457931260778363161297825694113684507888434449786640449589578177977537633175038686569214328456590763877035085454922881774592134644790364096719378848001565990852627617509773940164374064232153788341300502620171319759124864587923006850025338135489151319984710933979884365446048272891549710760373174451260971717062154915230935580784562839217995093664990440960915699421493871124291466312054691322386063352687404641869764975134600318428982574751202584459831039820140609484687076916183830862387891061468241972832005261503851106819905835176956323656969414236261015215538172503693919882029271368544401062943672645120333442448082952850778650223588668479872923363345267582654613647644880992776331655021300744945298954339617526611749016912130058109554244912267385285122343836959839780483975246451012058826742830639996089076557344363448014904882983571898164096451011928985398760882296922643542082445684123687523325897783852438454227592056760926079584672793866397640133375298174103800839713669875017925188890050961627253029063851224481562947348667180792167574395023354187971463703413595070688796031015016464474223923286729237172565384290147065906886729406948425427159052053409339014321081313854582597043485809314855063394187054375482019170226882317510901329413617187700580911334579616422030125980220431073829668649070375044538684428440879094580713838962095449207599615536655713068440469527129948783097134507882757248448998973497039622465110498777004179371263198665504248264504271322916123093246164135330391676894514835856927021660319065689993035272966942540932985850471428540838671088927344310873634570026911192432496377298229400944020752024662066447383917204425754834014539408035462734099909640690720756229073746841311985865787988559142521470803517849673589369335350075446723246131252582687046375634396463905947907039289612597648667056907181584602993604285664165237827113760774562109031798086571731999343128179691294296204556952012433154460835957656507832446721125850077609968907142990621463722501837031998516922005081391020537898391562299250064687356797954066278295022474592665617686886293211625656050084542945590329173720098208588173537468783182064470226861276497609063433941566490264262194495999726278798874206865377484001240271202527473344361668130227204754587027046409864346757364149445560401804690256490853251672716709512790052393421702743032886141323309616964755602018386215997872360962122757042109968737000712257994295186963004129541887796287240932784617980486479076998905777338860558382491142283163748692878538148143146224283984962337855773508605110105092612932309949247418926751316188186207532574038684806964904698279991221611386656638203260191359684025156492479064439833300318078952369616518405614103384347993761781821004743519090706548064032056911716643220992154712404616942471043152222051048853663827047208352220722817923077243786214629860668300394431840318971195938758807198115048397750862492845205376609935703511384695978429595440648575150506208497122812336063954148045231830375903923041931293580470253223963911512793759360151408705351460629899519407457553548868619822693246955382102194720212488490442636553953053943533004050613359968320166698794772079525866914331899092118652260584960881496268365467234984048143810943198574036837746637093658063733929458794664451682611483334598089481323014234497363000817700302901541674017957443616201842207605357765423162845642764409375568971553787286959872245740725586288916275422740013939248909372055545616078424153956188399905582479740297074147881435727079149221043557745460934900573768159682819680197715906457966057549425418144532992479819966571196455188565565681215133490980465803768476182660137371756837274130617046443808292439165371329638261653072310606823338899995102553073274412094269941379201101046632087497154105874458261159959068772409428697875946269429880547786077645800522940757030840638516043605931255565855331231165546386554103007269934477311816907866280119553224809956171278815563935190125607711288469473226363577830259656423269738474469674793817191834984412010284235192195947941188864520779602313430632171743540692488623758813507950130195421256853896066931254279329444504604143997511059306830758986663120897091786738144310626732857291352473357373341399649816225605641974178798441560213301230296004214891147848575264386251814296191368983822274941558639578740823780903834140879297644511888802337200988640122361741764305063703810769278341189017294013294623856393085315322442227688185717288938851686500759048441570973663653939411381414330070841798311723439743212898269308828179084546083522761688392367067018193779063875186889826789859261224877072553707746809091738121955681542467817582498635908457752822108733709471005344704316264532650987541870482604085049432894496711511556404503759922183153150621894176807974004026780591637359492305802189105616245901301913073423092201187748905417634752347872050957508301245800976089449020142283215170817863829715178754102327793778540726836395180372272739907246132811667262023853629580447687448945589355612941667877115144459521507280112452897838988924398057926113395117163372724763220356134137665549360910760775428863941537509112835509538910175699273481058020524474988606569414068805981571455349610211640412992071191573822396496879006157717959575116755908481929690435593444902893696486190086611848364084454709229880820186964350102416589280672893461892128839980588675472338226628746748982760072139691790819941807236451438298943017355303225114789118467993569437692565453511408824626441787817540585204627520911945517150715322322900317837863929972645795041362243073887474295884203865379630088782849749101536714044872706052239832746544345293565280769604772215030240603299608201442874066463090243695582201751481902127695919485480650025159662766721156265827038707214581147446979436985067657688235035063279085526027524578452139311897121959560222778010521705631239634446112700212586723573709009024674069492576669653047973714276265705359574487908761992997975491547095674568662666933178160269499245637861334504012864826825645467814425734313848600668267976727082780868964032762594167884057145941148046291648812852001026105619845278543167673430194180028739280946151948185468663109907951504488133650125461221413542791228391303694726258978002733168003031221980792227233930233396990249323813630178121360113136831038867733900122525241037628839200114687473978301968151623448458441708471154056306712215025240060095668450209965442357785547880065844530633545865197485172711046869237082103742383445162144635916426832646976748511916117839341951421626343457280693936967164403452311179813313674725581030233003356470919313118415493271541872145395500896215199557764809532247281705684628352564627543057620000172149902896451384383311711658584177645106185825082104724546989085526057154334736407766059802184462230230357649286983535477228669116725509292642349535911297780867067640091417604725110184229542894697242719313957825111771373646612886109938596154463668555664063242409655115271244874081386339584032906830166375051593788944700324467944420500623238056780758614051617949156758784854753798036133204588672013137468422277739338301015927873826640352079385737273318787221160069788684910568876737354682071793442051691869120733906023040359531440248482755249884966863905615181291354913330689198050958319547452434768855877383104143445399339782643790560079325779032687723893359704089290637986235913268827691204823532268533111309492766145457891114707181678298795487397796649393340499958044511144263787805500618120194285658011511604965975147093608482447840715101656881915154763085370899177749500315467791994055430238455568432958712280703393036550805203590269022257432694177337833020778508816459977499843551470304189931092788636285559549866645215146083224327029398653547117146112097864464644325618002352000486416928090125195558796777707120141585403242927279651399821426254278523836182489744008376465719918339566033650949707852328897458814933477309948639738318201932446879191922759819287059190059075406735718523481186834643477850541578282244907985840870058612052844716335877723304380827091373968895056845553523261822111023731271368814205839838547470490005360938657617777304878307855972175388186172720052568368730086721769154412628775495032392221164872217861522620911242592377467055016125582354615442087445842149647760255957274029184716453158885258827884286855889496508427039429899354427475578488409253424367596461265438109202556299820515414801937470048035796677458741008841318118725823857854484888166827713303205091480499027063386694690993512487922710050927746141495291462610517648599069299238175990244161879497023565718095144258549957651792962105674460022141336737548079860359695946856983379772672852875925060444184643577824036237766702987283237060452744255506815180955588868358914753304570116921730819041368219619792444604264993438484527323746191137110824464335016948015502532841846287334922661345689441390024706633554707881416054856796686564326698130317836216464658820830050364454812922884964461641012502375768282189455118458059573209093946206486775093802437912896018008279404748174220633279147128420951370105619432717629286857909094932180555689790662862891547375486731986937384664195856188997708279900169246494251903473777039886301492011183528372327919965077715581634061761969840722231867827012354034994384291685565051517438377353920322561159929756879655748563713998498418898187238634477477355150135350791910818082698953601252478254704321409778469323294380147255125843760860998146021996986315484735762920809967022312307799997668926149370948131311761267250290202511250176953858317579332482374758716019598930968995429457152380277892235685048764182413910232691491655744448451246083051457874175073871767441735511013076455378978875222218520586133010759127201284158160990129182911856667157392998092917991491610004660333292257760867565666359653418185422560598843184427218109423181090631060596773327840395059606697721027773614118272064342985384424658772847185178836337528193254258300549961461483735041419186161986291067063879119517620505564105481485307823643720165399965209504238904116749764360290243419567622446851420894565680323277778182804023531717271616138474526434256170300403880716888884214757957281324163069397719048693210177484934395220889779774606413216065912354287306634985649513842991511937541568268804640344074003191648752422812899084960491088752481897662954439463753621983060853026629767762297282370884106403067983957045507986425562413295697069031260693727227049738584906354811946653533660264315355456127620022454365014092870701038450249422996824698948193110638058489638349668423154689585739417810047802743102434361706393732266714140476450553206852545277727133799598971912933510953352183762378144828212389833183922695403629441944477939338629478208565391602768654742216021974541625034794865733087486963621460507966572115585682647125640198323687221801627370274085461233153148746531939362613438727849840982678998619691220266975459012033474871715272034237848532019977394108939918323993534360838319448350407170160500197194079556929169441248268460290554602480556637492567690235856549630563054990947383386820022532727510147653820157189689176438617603846691471270502090101667931435388981799261389495820568431525427173339845849677842195542284969377538214198753983628041513853270951507067783176184926867492451878878256523880787559339874189923941064660842841595176800291899674460456234768417462843614905240996146091329907825077671729948737993004970609521902915918788156550294869249948263886396823849560868500579992081259169809576250063252274297757223532446463129919160295278283878086374379484878160079866918449449520338909118199684001436019370933054722190471786161995211092911279170019766720202163966918422241349535264054150343478493730094810750009923037091538820155082003301200760403674004750282381217235331054698371010096575548811661428174197142241111465396494088106871353167996748974279372263513581038998825451605536725102136416929003210731223430072399556914225246430126273566681782285901690339952558864708517542843979342327492533998925840392320798359932521574358425230374366613899386320008006457475088070937998462747096657080943692993610700273453815684801439818002264979616549839242472149538551664906133886994794487640706256601605517178911310515789812484067441540438634321808049603577636933696507502496754659653517150085997507640004559542637011962683350423969409324732540732174653657712189786335455682417039103781824265672441578184384945382562034978117494710465895082321408204782053999221708309637924719143570526892737882963017204598416396765979399246845120216731557594061085011084015014939584813243143264831706383522933898357328629625006453965323234090166345534976145397775435455101800227298781666105724231243062350399126692725593983870446822440569021752720890597314031719499393757606517044308178435846890232264090670255825631565271039919878744996005669653116942017890333193079128764045002452926077757355448308514991216046260407966357004292941415210785179395124892931131087234036875493332119971694155822422532345269916514842708074964982432091087091302719220736052823988903337764824402482164367448928389327178724630129521377758406567665034225484479527343892962635217069248295722337237260521214867559012437510688636168620684810753252551908087008239375667993000525640041056868732134577420110043021274796404626772079602886807545332844611639636702961676361061209564091590392267597725612770823369101797932402760094779050493905949903550976232855245692014923380389555114536945379896424390775315438661079617254935797164480344612666235380414555736764262514459057192580222293064033049431773991107745994805184843416903012471052840011453011701592641760310046687984340067636613575415938107394902338459599785664900633100192580761796592748902173088186545124915610084564921917339841849364007892425340052885127409782607281844993623344396777834164303286170746555744709588710661228597984383289888277860899498259344457062552084666933620736456132995175346499096607099343125635974902965671846803518878764437192734322849675753487438060586839387320871071234119603308930602352193502379647530151415937286211822952590670185758559048698103361310619537044107720860233000669435598229899720038942050712413096330124739898898650161344604163697641299185513985641334802440109038204209805098188163707656025354228852064250474895868089917946686117193250332482302410598055847663804552137893230572350200971557476025937720767760874681482134522531630208788823985355668408462018877633388938239400596938234755581196604405366017085155431409286335709215944811601753296583413334717730271105970905178115890170866029901605124794507024301232306702621797011415106820022681399975072583213035616679491261005420128645322980067268900094820970758541021988488529545960197473063613284296985538522652381613088966591450912488681312595353629605766031975042950411884393972470536057894798628317140039684807642119094142756812027324542331959311195239505629062261100996439894838164644874586683075485778532874081993757274852197413718094296777741172223936413560332119093344075567878381130451998451486289800060848386942062185271928018778042486680802995128970347329446317094600385951254533868355796890584651723006704488896840610863040612135155203874213928449620222575465858208669864060498655425885908145530994843493842733842178645051398542739742909585700856146256183495270022814173253676539794691275297470131700638354159654463424496835263505948534474472107805610781082964942647881002597931877563923904329178532763420375229756575274340829508454794701524526089931388578312391175126922556675728851334043976962540393117493371399449529356801060379694459568597524987726734807907326761824523355212162149680234492925428865514573375655765945557092395334281424629031727815403998341556419837718018982112476085595551899950620730071403452081550332981497507024426772643603387375397314843137407092665449229520423199007345946393119965350568073329814865841109199443946272328453677112848473622460633136028591059635237193871634598696364439068540532231931524135469324875767304633817030294479835226020518149444585049612032690923375271623551335262343207219430093588150339359897449335269578745727831403967039691001707341493253102206326301692523701801202442268849290981955511719561208381550144858365716651026908664871732381901486099246991315460820019927050473056887614189329810831023526482810810248545022087572212834413437948499972792025835434172044259846932740914178214394928017997456598736982874282682674844212137154682327511285341652370316530704325828337211237137609695939937549536223222219746596193325290740424876025138195242697391017563719753430044796178250431153315067582562735343476252539142515275704787843767885241871966346241992700802576108392749762263654900186532064549951558029083985132726273219672847830253852219047927868938953878036869931884660310436335243732715469989881118644367011402842620261504738823589974728149334325706547463702245188728906125503027379190264039657741760689897698345664647052047163592144830709958430647172750763371802071459744565251418850503716377381890296968528440925819317441005557608985029232710160089825722381739454369852965476949018738404646564373071319590114076131742822038833136029708526145123490730714762453405024542376366668557574012060405988695563011441544314169698607403220788600313279055391786967416355524025076765308563224273784714974603778406460934681299187190289275976307015984088778174519269014769103003023497945851100018088660621628680111091511610409832730880899543375511871831737865587764873588544903668790741691825383133063623382058201548854498278838217424375805492381597296406196310582151670919032631873093381385011309133277093034251122109721550561049138705042621980526024761160750597103794366477152935349171861250661163673833049956487877936569791129319587827777406010753337243279000973240725607038880087113730965963445709604117508944479119162174551697096484476204617412815453612842260155130158952586280695706392444354780239051686133854986192665676227603582349855691922489069011645986609615679554154921575812835409202539317080737814650788320352665134570706553685699281124265670844801778646149740454921184312276218452244108847150757019088349502243756988504945424105726624609458320959625728720309947765401073985580699661980195345005065145010549240188610891341730607592384394612465698616056090945417729073640093913219567683643332996199979654243480265694068369867061758741316765050602713588257443370721645881952261339705452052344128092317306505198995450285853835228737872869829172758078242098261060609015092521109089899643892978629430141114006762877499207817237947462091689983896189486307730602749102670388394335247424342123671217702461011602406111857168705082440491623894343504702508136491551551043272507479410247374781922652059335513625530181219642499248821299260177408010371988421254744721602969500277426850775217586691799380136258422417398560766991654327570612304528672807076318947058954406188421315713800339848740868094144618458542303449514485210539912489324554866593053355845782771442377433853392082412776321659675383266506430638806955691562026222594694142900799876983442091469998979568326670904141398068633325156525696878789922574327961396437026543144639333799000819857530797881761337436094839283022338032797320386536462424980551140224692264789315929449180403829836490348886386975644148556085605371772287371482282368642781136572039474969069372399156100368280751411784737825622127759959167758140385329868885136552323139384317422585356280701915440077630163476477812613243802484218656698552740076410511901095452898382563484070455808090522147697220428738220206445111655802021581372204663476633351756179905008977808856009320814541764439032352419397315472189209202024742704058579135437926009768076362987566147826443389261212134565944568010422276165241837640186734533914880790013636035284321747804016831467261880679364930468658736463114832826980492022787625545401785091774977282946756929354516660986419481458364447890960383045828536989560806656661903603100453047200242263938815720686746900619298730822484900168163489212554337544475803887361586588592485975587427838599929541709917225115340254222296922343661777819296533134967477572209784301938184450598507508056494831896792205834341478905102576174909975820012347244102850794123184376014714213782951102187358993917081686805598813354699137945378313771141354919712434658109311278332662175922275893699347704984352519210735175737020054573451305873132214384620876027751840534893713237662907112055269490530038882280420480821085192876107677281454892794403227236284124794319264419243079681370382948200586974201501323531987205199203538773142158822114859743182387909891993253934150378768995969580432725177768986612588939544201391713064188629510665268960624145208448034034741133148800431386473171584468157548365316705126017466407607280959672132729422453610426679280946977358363834982281147669169596955732770282791209979260863817017654210151115811092683287485950646262362992592496943781822291692343254853616041525142063692521477459809419889268147764439053761119174630260741704144922419498001706238668169466079892475169718500094287444466241005863803558630650636095727097973493070964889076063019079233461701974566562487128849867382678546268945120946229054827542330251732132827853165175869340541118457151048346328320081011525254131193679545612612161031974278321038795482539174314098770652570060376719683830478692910032674834420668406673515088586091662976572277996926003868273349641875833211808091686185171345911568508931494044819961072502337896779899188725826867053775743512465081379862813483506643132466270924523654698351740704265136988241433088355263194547542532484588409399378463186733813366103100581146455151877305014130815666018061132268352963971146240104983148464604395200616373542584698260521254538591505364620141659306152413774330372464410397598500156892102790937867860318517672404695991572340529003816760724247701697815214861519474627054614221125691272253815905020395830514685850036024200549094550268261850958754262109739913220950295489582891742329813431540692575705880157365453517892741527128941314318269476902588854786599196898835999043885422748469473118751974887712150191591908885813263769981215908089691823350590797148746133368039706350036955539422590734536933263896961623842541047946294837937463813246124082530690269146502151719655242567884712722975266792028038412966157502184681108869393992526879439503267287008758188610493008597501969280952048237571389454388442416217566263735180336432774017341259427455820267544027881214092868804120300022706318082593186766481490447257994467045942382811148786117712471299402343531934763897789484462560417454780205295530815025429801570903923821472145748055026968444380960380164437261953004403990818426587487953263601747734396347413330292755818200084648860981832917078621243703459404281501604147705818564413222318877939216398896127369924002251605351282937236557373193193898341753843970830903585333085718369311365037008190565450432984220993814900454454004486182214055060528716831341426278964416953339802968795175366678475509672567390773471816933997590011898911139624652061607188564911926642694016069590616104437801498666998284332465257608825710108991959111180835030365079742812307093951984025480169446262059236363510719901481567744000123130725410256056015931684053281699733907071537208809013265415408408486946485133762274828499161274747053222550579183371978299802173759142434471486634380845991013925549446596674237301191215691048473306980508171297273138066292296784931657070031083055678897912329813037510317467834011208135309146607336751187621872232478968370382795012395444953967588537384466413472024700158852017613121548143721334792656722446917956258633003069945836289103812648952338880763843818809211807397927683141230868809469171765526719713411290271581467529442762521329501543011533690389221384101337883275393592020905194209393897941289380765953087027355077304221911430043256684624072289034021711512731689053394678518738227848515822470484127739268280565172603764458440068284667373544825924969162142390338893181170113891315019222854107381814522925921851485752524761838480775838298666675567628883100860152635893586357127421777289515445831293470980084717828967273412903707607159708978389934279262557381889563194050727520873259994565456085868553582631337084934064139349137491790772182285311600949827036679278923587884316084918389533623615765768334222895927023939153868119581529960664520818861843896972001893567854894942216512361017184737604606038296164427331173040258699852153721647753632066072061232929323962407800474280678081245429927950935051439760211929113037802170395082950990699443939119550034072157414801775922997193282716303971339380034926791334165089113946424796613209472508981957237504911331291669842737114895866286493361339703036247163012832100708415202627689963068189695266669440516751132937869050034120042841739429541445844475412467718508710301949763730646456618634940656615955590222038813571361768234778463109885474803141607518313054403428112703507195990142030588149232148841293569445296431703131903577937739190165691257717806985121801152036378471823289495344465514626784682026303966630199069226106232408625749366744026581397192480133160604128043094030117818395338456973477787554965052267198920398064650880987659599040268354582908404887435901210248570719056955851822996481632457015703748335071625617787840260248079543643142774097520462960077059523215937839265605847631831645394608691291390297075293245752831122063165307794559970935880191017954784682220298137949673390087099348352365925215317478091492963595768036416453157419840829497042403902353402659221352598530803324317858577406056900395174966247831146154707471015241092709901906946055592396830561480772653739984996188802045261369572230890736822583697253467329304349079623158386261263444240863141034997403655086921605004628097939425957370775224212775596279285841773136930903645943638449398233929185489553676473560878989971977807038662092746318519850851926852624538258702495738050109938163238708202285644740218903503702051586824571125520231530878090161943705387176816448293944911865897681228582282863058898610296052832544386045241598879043704773773713685021353938226539490234217108897837100517498175970206868257027259712399904777313320890674211212008218398677787056562942469382004237813491306663028758752092564773273167463696647462570612003467156409034789631481868213459806127296825654557674985919728673797538106742173858019486939329232978545561007900054725330516708185495508295733164530389667280573878280582588338674395672132016122364271902399903185069780948472980377051720009130562696720528431664964904631103134009037815217492434067144662452624788444797032670809204796602152536229777984130352918249166775473338610975771752089257006270953984192767246810212714644651636182903867855736355070011836724154289540477483432843483747564304527445068084429432880032635348132660476017214226940034962856397025725628371882800895476023866630654974704534984376640385989464581448053195091992594514982336136539044123167407129663261870424198840786560346889440980735651117190884162131337038328475271580140233374087460550901973370836047200902016509576637603786372188320038639008631870025211594327839328479264705620690613940364883094552023943727600115564487678447540835616039984885137729230343235300979396783369830091277799794971704628531410043534933382267484965817752353127196015906172828462137140103053343920270345130194910703446174565771792191324143736496939690489657328257566913276453108344568715944990050920224047579942148514139245457253260782716471305699581372348962272410151358146339359857391762405734462715784143189580687674488008034901047315958190724146417291159828969702593777767500673203833675999208981411198985757705456900880667351053470372132934890554554972053530105573246966105380660995007027547522626763831652725279154833145361939167195510302515194171781239124482761114532218866777176734174064523789930150371042110232238847769373142553479838888837413246016948494522990510710895587932162056322085156530074079505592494459743510349190441133791566366617724617723425057713516044266303431268508796541039734739274529051405512410302983625893362358342678655320477807539090909460140438067643829114783029646518215386189201400711494551862692991324737572992206115252478291665457569566383251147867252560975782740644380460707154246177387337680719306797191303107259747170951488737474695034915202425718743866194207982872883105710281579364027146345327984734941390242082297386601437354856090802957134692265331182640679652544349899969780862934703855361570010379699864618068028932857297252901428290197040501117093960401799400772790730059574064535923916663881144597641874269200937829705225640556982994851451162539665867422363083935081487782114697145156264218397232451972563939261864816182977438532410643492525416862643522704313723804662598556860369392975077940069921092726870253264588061666922557296352244204858671812045093427166631890519262450149084600688052235094443465827402258290512950304979961401660772556448746146270978688973256721019292300982454765438008643740010975723666092413723186800774476268629452639172489702676745679273486954263296293307799383060695174258956537533033198251374669746258716171967671157859591293894641900519594231162554265589036040426117249989093064050953199964610719970516938281588424916149236396001113845325917165402764954766172956590312791649517360294213628187264592677678276896029664972247633742345885325543235731917632165397243501468576239165650433876800210156944358236086348457350102531746380709120581568187968385839451042367958767056686080265948295232559420292102688752911543692228947178983633062840897730393136992191147148162894383234242910144325546512377642992120827639297377159406413974052092305309640784163165543554240237060821781822992158282156540176766976612089914480600595299065437623636120263059889510077235755651659219714516783674355129084511136295559530875867083778001919961816556831004557022827891916130240361835164122316270904542939796741282350843309452202160626684268919718081496548307692214680927243772183273970929550675247929813115669882315933109698993912254344793577456066112690464296564074054192882264785479797974455922998213530029315531271761722186319708982235311610694068488157552894816208209181667248131289081046237699070132293532844500814089415189311098796540721461827574805585802435381615139187720044458506579847920254569441147796639922979053202771302349978644034421824961632018918118043264783111515946811148164726454776176349787130866887569529762603031666841214634302624407946869782859874183950317139429001355908772255770537385820548895316960180686323258791510705889327168594220715607638907859760776550843037319077176693145523913518622363114271160854458040847500024799875823005870882654914622078726726806363745375980674164794484814973892387547284593438752792867664432725647955615698313724625104542888500733489513025043675009241929034354360108566920829426185038839729213803592097852633481338499592725301325821086087156279941191224265330135185468301475883617271648821814983502877885575396597889061068322286186195298276402577225660572474465593403252865816014386518537361611416307557297037999446651141140540794271475377811114255133972834961152875330388644328160811651900971960558504031993456527982222342807299181713054322774875923028252948026550571740861992523706296814981242042637768598819539599684750680120317039135076007001949208483688796385142405835386068968037754420706427165194190884481774909538052581044824739134996228296437835613093745711476150935895945792653518444582440734844891009395575602291056062448456125600438212279003427907039318710752380856389211364039358354010582073711565980725630307728235851731361937077949085709984740133668500208412981911223595969682225964545883214339357119483477892683458897400760306939454021357274766342848666575966790937797646768163015848816770646038970658327592363081409299550394583781385143772011353236289264203778348412135950821407271208953373316878810000342084057618038903775566026792357942645825046342858264058246647041364199474705466118335438791076331452420005378089995503474173982479708963230657788066150878820932715957565448426168832058940287967211719805372836240656118907999138028832094343311246912681414321820670235390665254965636176151324015679568910354880795582582532800003740724316505915305906941655244026442226553465708270971438428418562650322627493196295890247541653457612824093535406270144007091148209548333649386576628566250273021544259798453829481913014999381683903264080298234887741471682495878481818005552066910156137025327368239846402589188012033765009206477291158684977059128142539364633256149381380988193472958921912237302958434157505102177387600274257006713072132715585027183263165673229741655699387896932382888666604753463987363328505616254877385435688300572624974075468515505447792066495159632292580229326617229622139077254749522646217975460868209939045420657122232019376562938297808861803061952849313208496738723326039474869730793856785007594093947867425498820242041547066719824068073770803660751254641737104593569506195610338555273220981093912275466544307152856539660824821860992013074825707698853489469154319716569722476616161766706519887344489662458628625152225384290156087408995434217695175410335336340373475038196456961620860504864141458492224453185569392104609170949935123097068124336744992981962743873931320970401669537573173363924066206733660664354609510478033905319817058757712382737802524734990313350046117788777274760720342573148159707116345409091842317519827442776377940258294921372461614244122992493589461434008809389144670032034652189837272897423974379715319830729612428502696561588466394484055677766860581950531483370976868517186306676495978906788870683150525108802156270017004232925652577553571474880717033038406465942131322256028818375188180027781993016740998644106271998252745569596806164230149058371294203283526086813465820686611208819994256087192395986575599068847944798957284718971157601126635233211871997466584003580218134043653557895102240963230644670362396496910274014153840261860400252104070107826599150449718939463765389742339594447809412596446793881059540177061710349317906010285848179428692776802516063469818648761586233701525160236371817879990343795955115086514540258797264232005725044441943317120137468254190708531072152085126939846628017711102642445638079158824956674349287553422153367398007018414596890640693638164153469373358041348621682362812485519628207372517116447100484339267712904709544982177124599735379498959250181926670099192319815139687203924078131733288227406183489936891596258827794341812597822374682335655696616170703773942455538602130433493640075319533984910869963335613308498200462205237942126112738646977343529840614120293357476985428379850731423029608600645839020326683297106647485928028070622289411984685237118462881782523378018175736273865633857652511458976914251738657976813345533125961089216796759921620047777736601739698157005189305563209347680575208239247093075056486535401470969258633244753524002357951420808860993523690497927164952973307312176270227758280584330992778199380439217268111765936516774634858681152391360381723993804361913708704178324583687073268792759151242132793069249368067256716409379581154374100844743180798479818456229533783159209437058598793067431495842128091771469371599883933836596763332855084521448717349872982802287224597211100337067885195708636469326747159061232018112861922070378166898254061531830765384398395669071980485139529940333118652808812321707773513270097093437728645069055248320188640544591213111790441279949017804606511934621383518200791941711869477902086478775088118722447763439728760053349119723576540686820193680867718864154368080099068512360463269609940850990396948362171570718698156808599431927550783617631063522862443582975777239716171244390007852725787442545538826516658015450494415164016924498904268345734562617340205714011793825315539669178650853286160227797761828448212867294629371491109116351044932010780072370744963492569121890493135736176727370757948988198708148032945608027014245740279928915695074977187763259012185583211683324563832463542641366304744206953390687461804874269573082528928549775570446553072537265354490916550585449050090807360813300777288059176211340781270220715772179918469199964764765500100977660172796469665522445266993376993129003168352117905283272874954475129813402506291381095496685728387795290504428896615155422823760174491373513862739753898374287836457085777879177722829418378625092628139451414028381810712499370857034960067976856336968647672081079401343326899229203210797152854322309368783898249784699775589777584162128896661183097189395618055898887347882238586298360614828197063885376638702369971905688791420015005893278157667955412656153240777511837016662680233363450787841366979508958640285849250404849337961711803280455707969321708308871176259199594356441397149528262209871179393056412254938187438143080847275530838917269346294899678637549361154624333630992676994687019223088148390348146066609544524703883761208316514201007631833758934939996200824800998604628306243249049275733571918058260532493551274110735860302253057698204994600214598639757850583213910161582089381025366404328385622156050481874565965450748771370455025814588687870941584142363695825390500441026067279434510615024772280622350966331573612514266794341407466520635345465839222611463235578393993709702620191622134738856245398302016554714620847629726525746426872338636231531355355681663605190357189524466423758661980411448025219901302595893499907018346443127068059900432561387112104506890557506790767625630503842626225137290652256549426548273213499848416053950047182498565601847314490742691964574526581135702651071623877334688337258997786436725917411557016552924842063152187379159524644831952515980633946037421867350241980390342917288205856935267866581582011958760698252396492923489146794430847865749745083669623296079018930796244587484372517492298595716781255748423316730358061373238720790093363369257424578919538675866761134125824716030708943168749649125716727634443030554358794396727983916055021351483332405448295912401218783134030459294416212927504998450167094648495344091524718377825576002939794250148934214633867588345896387026112729779481845303444231471312440784982148467358627326536286255010397360301794632125535434232983465042878299269795250762117660416274969836359499603243495791210300046219201462117222885844133017429091519974561741221425481510127488263009469748351230072170223802516362654245731668291547444218100277761276072978923682586116206667022106584256981663821798412038784102644877355661996291918779924348976235918131207934212628580852454714318097767637213645840433599276725551587668729268189864664577371815671372712732706917446076837023027879242438214038304398781254700621379655600744129064710835313042028929121521463452256753566839681362781899954496762854591729513324623126862712073070316867408660159570991663158646522388745623449645159907497920994590343139214940679848302722545724305143530454907855046857565598503141863084834865010575124492875671828991276457246072592552964338464547294520764118443817902834258464092984568121756169389359659757404292955715291507682970780202397891696925219956916743579510728110135844878034761204586517986663278274801506364902275231920574521535572880248195865656936663054699706295114422061255504568691480327448602817268281027424886402616018934181365408817027519036327982203827038208983512455779035361653446984428513345483864352548108312849983289418172916120839071390684868789213810103679650443525120422214656143647220149894200214383442012409701466236343858272692961086252552511892129071483604566795595168653305310545101978321657417626828559346918714924724254791232715290930876743532838750563162595363919968592580225709413045416467857239737626687111622820934741373839530974538562283954012484780817487662218271515701356954660145145276861488219451341105980195908637689785102904745476657438215181134510250246512821307882573115182513573208273422069550416205631424449297757854181047996194442936394669739813593669111845157777992643506435444778907866885667636555675101330203920641099446748697238001890185771237393338518911517615291790335703578359795955444897859498954246647154327706708272651894378379480640334221433772404786786940630662072056502773700258523743934557949437175759482223948482130909053923116986640964837350683077249445046879290633705387963710117044090375203852640296257030044175089847800778547400690983159410928873587189533947358288473512024777514415286414333015237602025716546639313515169580288664731538340423443705796376486698042917498972943309837151215686192965419767908754359006588519119491014260755969465368844561880990145071492835593653328658780734465634881032988679671646781357384388603935675481267316383463260815222677433610342562799044580710243729086055639419844097513553481936898944385856295365499862588604857134920887479532609109770303465012940402286028361334223505478683117531048043788706828828150004082704666900724460766081328348616471638169678446051551761653711887635152359278589755531581273539168302801968872202551866090543478414559163466458713173467524042320513784665145484852108274337280013486724506825679412532619761659887652396688873925240799849352814127096654205069769479109091969184310175731322507064339087907860867329003063983535165159800074053082689602417037023267069764470297602604698157613952922096431184121990812443297453496971403552504286138984205987355762655435347212310996418075573943049847583589778675340827775255945346907202949290138613691171938131736016464766254974355119237231903375664039955424477839442983518287742464123279166224872611661531195565153183793037448307105649190863769246430392533328182321026516298438247988940816153152609817835820542047575742391907906610890617263336352753588367285253235669995686270183081216740528018000255368992933693867881167440777299165427880446784135620093629755456915180767133129637553148165799090729310413796284759941779072489099883994658129887050988367268841726245600654681144806371742950845879829312533822895706426355589519574792100474878009906747134908177116597027874004848558461844362188045597553613978187711001600120973806585206022746739843219801950690953316230458982917616258601136021828935305946736287128555704204874035807380175224160105364492072700313587362744654707779352664844640806718320237279420143447234741680498214353219066185429925469027839023946936756585504715201141750008863744375280986335535666305314474278010855994616123990295628653163830851747979431177026166211075066725911367956573126107906874252713210208934204306864426562190889801026878816775863339198793606817796800152073864581118643322230027606609792372849188165221926276820901885478038944356032042433072568734606173702324526804366175896199744461169110304860590553199705636008633935746768254932730261029297265221999701378474566833692781960326841205387250396773387410094302331065949859757562894408874945023244710451411575928385431904365609979441778694565059086737279405018103589133007802251836704712947858393258945203373711540965251726143245821365109492864963727906756677570290788108245219873727940381999502492852736340743617223491460131337418826157775394499817582444937381706204950516722942428537471667761788064434756742240965920803803416278472569426829022925212523848585337347913671592469499736083501009084159991613780484158077661793091915947188569099610232560063679650977588295435738186298518032859284770413724366489514614505019206944691005545175316280653305226400767770893310898674759236311424921196473798385954255778544792305750680638612690209013250630793951922213386091859506512594966211156752477031726132363270363423717204669236175272964371717948451046238560425822273820574669416399792178115941355964646929848306709201425779742380093529530764213118796303250033849846428603634072498312855593980962748682443195781859038887550090259136755043758914720260583621377666420090901070593053387190959348338330299912816614493302348832428627809450374459419962277192591212973961871592020847315534698082291794557411069295622770746468292250640769884404759019173477414664989263523613471702165066560590473280364968243983685148167372969698615723107288050308655420546534599832179968137693852187938647137415299348482991880895775760669754960742573489972049994459247477655065588130988577915322125348254266184290083358153300425533240532142124836043612819221729578384448001546002989505011823896463097856070910788010264937937656509471879322583388446088955461529462664001960838911309128568907495244109929559185087086298774924629350984305416318920651890102210836873850768604495583670088449719941471180764413202319502904398729819740588179575559249432469415479940500957863464910789359582772786600741560112775892715697466918567208804615859568973929234646086518259734809876278032735783122824239714918079349952189648914987489119544660184648597939334327981695217348104730074648312530680755197063807910667955898766453000450685243345844501419438076057321597242893329409535776902892813273095037334413744484240496526726491230745760280033902974672600719069651789305684608570486241921921895529501206499382979045221890711544996993791443408977751170261408258401444153573912575268782112047795676433288753969726244731879032952501475268642593745614354879964023555025562412865641888711495639054779427685872504112799119785252786355553260549077541637281878794216675674857856141623043363824076503788015601988095772380487988087768681885315507155213567545824862107453652890422991722156412432965485960404760340108960793000197018816034018706687673493011680676253758341019449395995975179929452901381967248764294353034940384045489020690811451703580193819159005399253854990428116443209598104297256009893982978142801815867903361601288340891824265607696572754763199672245330775663565149889240332801785290967159121559220796605920051664715113084015747198573315595081493132744386096777289684562866947981365031356609445293868587621647238419472667526482797803646166461654600938432009638665105879383584087496361419706343732440744061759639504054302308420453116892618690547745512308142928671314547872493672262714019480580720895607295402660357300016591846228694429707353592797791351415457236366805613510337359416057986935094459307645925364350129491834074656822106802432954472119886042088970448772597852229355144143595866617108405761912964802496895729633619081064734292915801249233415950727908608747347297779283102211703600785545769509313647869059130192897508136820693747662440979739060858195703694795621733909224235687871954488870765540417538648949470012505326595490659115857931270481659345687647710613834516572863565673081448107224136252029771512301152163664361755541537773135312607367384511610608415135837496499914467183123847817266127832291011902305693426788974768845305927887905349031050776142554299629387548417519639979120671487710566996732225389139322340156445850150383589716631779696503376087263341625665152168570773753040224794403987545693099761184759503630211288883923449592670037904222571028065129805454695532114953758276649718670663197079169226050790892188740761776634726929343000028544451729601647189015641206994309986169366851898334010548662959489946569035360554157029370869503683225813239174001133578912283864381866214276391120167628509170158013239407971658678751993359226067740973101511742268902396322001301650111700896408566091596419960202060399859516759933616460872516105373830608301385470114691786335380234107417724977129694982389334746097814666330889062394193197079768488622039448966521855308553719676675096359880517797472617930326912831826748620578092652565290342801908827059014054663747001383302588936160171501548886893591056944044972172021139245648474988858366001193030933405042481909480846789876003827669218171908676966018297820355992071897780429236183663066794572605188960538234728759328230119515865551801782831335658309861373165259350308058239625590828657292138654721957793122433591473237524037869082536021646294813204884573987051367246382465059987311460376225349778221030101454298751138224482136735267372107046667779742422508385846488729490960052186147747715199660246552260696212706208541687872395159978268612079223288649559947129439200099676084626144529668818191118094488991955881471379931481529329582516076010711662495155659372028930345139657761202158250017927165821147493989825216413139833162921591167878631149035037080467291134675664573677603167044711872286977774937204984115525342283689364699486599281638902933332959670502333106318645471594619892117469604407479301121141664974922769663879341360554362801356521885916919160126501703473492198577912155996554507884590280024197928361468861669687294067326579448551412102933164767805043203023892916209496994094626811268847761941929888728302045325483555956456104975075261052442558093862734206358927768284422812958146473473670736225597282943726377487768399286376323453936634450584640322202749734150248757659910215195448391414894528223832681483980519970765592688983154471576951183155510618730067685680405712307832433568627813031698684340855208154148525567720882895194035878583720245447816863460841197036059946920420502238950509990547462252473281286675507560592665702381967985443697384303634755135301014223131859665983550172909122663560683962724430840465236286528423238142349908676609158081152998567318827000131093821576191329659314579978119982342630591411983389412562602152147455618597839408169145555130001751310208382556317361621545903512910618001537992129948114092826421522700318799959583363724143264712437805197524452586298660913976536312050348551968701426164273739442553870410409340117869028483173244466964383927413217588098000494988615024556839321369972260395131599909527837014548012759527925657066876033943012129119785059365743941306541784682021900338105036071495296968271934082499540824216163965539009310071446388762031349134077562755620587774807984394581194951882007132052594033442134001243688746110151026668901067251610584232452648551398239240043572195668307365786346362847139477187605142398707775353711988544676572934635846988478103391466784785470873151504290874245923946132610892919503710118254923184207210437942006267224493626435095955033758381719510544311687327960567532982916131257543568252456465008122805226368146115975321199170660364359744808288562193226739368656062542938224900619956077533306524648443072734872088797672926968147974853263746082115171227217434461213726243363240118432918898637112347583073897410591681818816689559537182399583109158955865155107939110515371592823919727238518934595024177790551515157264975708724287679440973145302040959076917387500961326483707455953415351331344900038752803101337856441911474235022452362008865534205354859562097776348591737878062122554402259252738483077651799963738230090961975938017475257830796156323362664637308389573846711167092750644157476328242109681866702142077632683755260776111089889449646732775343901491089616361841443514027645812228960506038155465315732310359157359227589113492569009356071479776887007319541022834271748757490709187163047623887234096963025340782474650972500272241452603350827917050952440893757333312319820302154163507867782655093217137817123137161142123181244080633098153607437639502654255747238777747951603707602548634894828153033520219413464669637514327152808029100281629344182641082759195249518173693711365151453769757463035503968815577039389834871549884013238769153330886083961520387926598342627243177492768626963541310684656244843493116508966874844693471034053482295484404249445480290150087120911679176586065278724812579775347478803166890035108745856817454970704973599571133983455436889482161005371526145300563991242445399625803132802285781555675337051796143359354831260719900258511108667542907999170353700606436838865760343284213467493632847981345995095244594136668858863653580165643967245588975213805763615902148421583350868717691213845760044375608187454847305378791606854309384081019497206105993813537730874309360802543746183604369148741127222098901147672877947895395173377894112656204674800771293805345840765561616367140328136450673896217852090789222464391679860438040198487605953575729784808053646541796474341632080188152262997279175361841901057253910235261006661285793861284828721151144331217481644040056183601867286327932539692823242601400072598995097051264681198513807028811692974703651388278161801811431468727933233145431510250480273769735906929697188889345453153536951518987596889246757887794347506970959483891870919998567821390784326370316579878408076134700595423153306313562919723476311123701263743716988364569939180204023601706548474104482716849915119737619157080068754318896722949153519195619312478770104883649003430712202169327164487378907486971688905566978934955748268599453881593423799010669245538086603569309347485162719970008372666259460916369119186683408760398160534571873044883787844599456410661946492827902987144851382966227706977101867972627483623450552498684334621758253519948935838926400082160425785815010148688691944139135668696883144598621199233497225849337410553246237223178411540422579197837762605724976861180888568657979800450074365599616849105084972307353455998115616755131668419573344751329229644291365157996632553834794507661032896848698762817246534181038300169434521758808549607478490075673039704749799412435126184213715027756166827369026168815088921349350732182693228066051823157630541607230367138987483779334050158419807105831531091345171439567188012503059886950631165440619618064708073612376753683950228243987528605105113518141919737956946936386812745316528106350383468283573844055142293480079936682108044936068621646006766344830319224958931559540458169497241368057496365679330791963671525698071861874731197459621434447874538755676792302136148597286303389418237450498917697400714288423976680628317290119085740325033854522235403375989440089793296037412054603543841820076325880936286978935955808509497565067995350334583706800572396726813294621407540131282863688230745377375496644876706623705867452856052628768437103120859783070774298894233319665993370672470968952524985445820981439492120793934365568025694559226089370437968088305921735499028081872394235008316672586298989188652170704858091843945174164560090225973841145776221030576886909260019619975636498357231553711648007804190340734995830844145512294281776021521049358131823966276787157371499828414080368819714227388302087450157398585239725106689569962349628354927273450826891202714752570427050611184594647182853205454272334515940869862411990632707461826679560117012752583508647388492046027857128502347846753390313187862966495520706455076895843839186767906678569477562130037760802451808273452521432055160633150403699415486061306759533659716800235921608947814046818533147106095468336916218480655870713410551936174510371015992161361995097086501377805338975939883669378739548227896833361381628700251093980230769216401666959917739312248390826447912809985780640532434091371862188532304910289011371610830868087486723811585974218156537092967446551849292875004065158071920282805299224441627354322382564952517424671577482689612161852563998936569445055835103281856641319976266974391111677809487179369657369037614319223834766554637308885177708844968323805818661049089021478787690731157126141234536496390084269944708025514624680875023203989773654607133043284170537344139038932348425031816883026913873884588479420355798916511772879206893386316827004321470084246757852941660469640375384119123764327438684183406337690865633424691994128446600486512177804327689855184022775180987901106967645819095323132112878909014976869469812633598854195455671757126766788371557631267027615259777699256164372103010849931303543718989924700939575282429872969224107111180096726415730726186239271371578280611414300201711142648258488927207225721220327713009982949992065164892245518836614215959589128237524836062172044495902485756809969155862344381651671463163310048739229322622194319536546576778120984486254203960830112776745283134067622943688413542209394960718259832600135575309969096916373496655974503738055417879293820300756984307669543903118727067442208400259867930924143662905227305487332037499318170389925641616744964935692665215348150771057177730318828452217536385509090287600520764445585217234669265970493470604553275629606790606632310267244205955949617383552205881466766722615253909909223734700140656139750063356944875096877152084832351897942123225929201006950720089427540980857268094505906415482184309235205988084931561998371348630863160817753099343135682611939113131975531178789183155992277502484615967066466405284880921192853256995495732701336628910201852959715102098731818463944280052695190904330022355676019778705309066426484472311654176854222119167486235082140555241633628561937291560265630374851963379831249371251258466854494417939893950361305635853814653497429452024282804730393196391966568679509781211945037151849483955346185707607532969762060421264450505727237362397565744000051885064382554728183969647559539802630009732975909676681125019203508629139643085638026878054242269120670846669566779380842887975906633338519183165807333128864107796998027738812163216461819722979938232792250343923207155706556369315292188293554619023650716907691665853411416202786881452063334351824445869277959804662797012743488199998367141615930040385490934771232162308539249668813677226572366504800742866450667231972813565442043144422054427955692892481651067906360543142276229820510603946839073598742744190252742980580057378424677214050758689327578238964933029539316754365582636829334227866799690862018808955961688981948336656830850488836176460312166876308659491983675260971893798508642961542780131573884226269097207549301238347693325994685064488503584484386598349300601794354979546847118805815318348388546700900036239016567509098519743826089176297051751626446321046822400453548606399543634998761793295439245093275322116718512553617107202565833354352696800851148963267718413948971015796822371232377799817045313497795344097553782240414687831031187320430287713984126674284308300996375651519942564082353249959052809366080177081548029774680469873018442817224891333669076425734983149530154917971860386848864164136682031527841507301603828760904785507046797051029723762400497326796540443757434614926309232993953102138573340394654643138039328475460166828945703985202898970561990500585663316810254247961224979941619238080817186956176833555930820343291711186119406614245930234168589283254022811223751448783838043753338600524598377152198085748474091159656051012610213573908775874485223070727867510269340595258400443876916608889983769297115767546444686686822582163159384153340218454302004455678786165353877900684796481611546147742567664346667861657143213956058051068524929302034863111876979067573730613086580498053996249830885162974483234209187093248655663168599888218076342633618038033093708068565521163083570426598784939627742574272212686526087553770343242797213162471865621815021272100153381435276404467438408179213985247176560645327166630534436065878850200216200832224339754743884656908084822976109598909361512918143246941901775429720168260292606936286775939441303998070048562472270746163817080272609324491040716169431127216932459613466992507264935833273692236372077527056795318598698939329745192340658032028977873471602317472274608055716294488616376900498802876817834462006220327101913512335770364900808455544255768267109148155967365538582594382219513580156377119716793670206222456863485469059877803465897456584478524088192688309227770546049463556158414097453554239477673427530500839360542653385834292408867914093681442328587900922305291527999159050090651924744141709100477084998890303385633941944104864392190202256628773984626697129628687375722161881712782123563349047154994707588680405946324980613245053389545238627255245644008130368634687268413792193795785077498902782431583827323503310967089933015706641952401640480259861958294666114657087896993126661948681911951688997857138260889720165022115150000459167591831413795284292401626307590692810259150476906872272115545836998472442221101278300842149489854275989287579626814082842462027344811563776158858566660628707597984538985888539735915067846667744073558896211764902638877304631228815008241486403525126070075059042685515458730819944836142517500969198812147177694290558463647557815938880662395420189374908403227510206348923283093410282378940889895317257072781466983925467615050901133856273474822826535359010089528178689238513054833708012163757061868763785954802148810067207114027051724468180760760129942225757837851526237298044375489744603759100293991487767534772424112309983814691187957254447449604200948758632104967562261710980657037545797784528755506706813330119403702836846318300506680753062470647522436185743826977839833542129935793422513520349235503103226324224496188486719775355803165214710619958410406221190835966907897963380812136398928437310743158230935296944233518933301343708243264385327899082614976500246622336013479717464642080798369546513329453775576622725244620507851699672019899993401013335072075807710403826558364817000188252048738626947279776868198412449713014367444617738360378450588677310415521380295511482941381968111653016235598910147759480759411771570116508692185411471004985307661544503263624343420505278561286837117886986242284537112278047537319214048956991086183575809549838444566013084746527651201522516404600863882540892101024615835361898855615679545559434153937745029100661215587064016652981681454915048709104536360233696267900742045245107874767111085816038833504907301984545965754311516272250132882641327327200458647504003597538841150858712366767330536716517667235923474108220556620738971458967361244286013184480990099661941855126591403124482682150505096821172238621231152652300713165865427360924785213735015263087364504209708686975277506519538734683752316717031793864707833381254703056742160675957181244817241549006779553950339497434406511014026688323398138407299525779426860509803857100388472248482378758702492339217271606723237837596682806558779053366211090973343419979784433485265324350722533603987194609870643016788954090843383183273800955490568085092791321896161996636262009622696371104592305859857933213945718121849704692397468471194090316286548267278160233466412458675531537220698657075888456159200392763767615955391438114106410712803664182738485702131664766755240750094911376831891968759459457677975505054359139588476862792044160738994386605970487557360320761893992907847325701218938635124345040256111531106159816041062934721259033810339622107691013592064184427275725636244992188419296928450488655716808147667896609363464271937555630095802657166740606967045070055976452397530935669267213475656322310521709797267882011756733844202585858563099582772237670124261950140214124151701706257482391993757315398056518447478149788507156871414235362443327302122681085470827797568225700932570140588369636640436028018657355839449184790336263501554324008794445528858414945115640942709224065884058157027469906282629123540380245799757493270182391447626286719728006741510646157842608708921008843375777396856008810813692857565080184359309963392248748227346979480784064776775774350810648131138541202668180146216960634863869351822833302134661336932791685950307992469114783325130820766910151785797169586601857927299671940055236690498805765228834054038295723294956666106181631097892263994073011570024576283747735763081837981616381190797360315872121983138196203449769816206423985075228327733732583324372882160597886109873551913778558814037298650838175116326674547594083452969670926281699808448890104436399294171335504917218530444136127553727404380196616706233382973802404906298258609513935027495898750528072067318378647302489130579054815627366934203153365934803545221237593231989288843748037324107862086056224621755669140664965603256270152469394700985147116009940891283519475682748329672272176682993494445340679073655254171748865839010393192874133368705592913800277273147754869775541198401388960452885541646155295967306253288304118555011888298415869115770818537363775060713350543268713538259132850979585614230274360395764960678598010893795565430875945538732132350076030077301079178964083799188708619632086790511588913741262048385411578488220395923594332704524591411473507805455040335819033847064810142486891972563811686319332164976298148495396460838748495439694585152579518091162665452367335174501636083335297396558922109211569119783167291844257925757550040307490466642270906643224285132454408076050309972583021790257921821690823779438834808656545165803224926641396247339605115247595839356366074438299366773118971243814345071442634906683367462679651448757604216490046578045668108976237352466304486513946482319660407267126392740537148060020288141194791417421096450631305594241005639877803076831545495507157300582014792515959046024661151783936785601612532406275242043711925061379648508919819095877705809924908420856001038860239431557064092622965854619405990986964765074089090371020410737732283300019434413131898982911460768793479475637926076608714832586479309319426065037650312207896059737211942645807433393229464562171529928698775723744217452435105937015224486976130482977756125599017514547595430957297867274007217741044287624195270575130818896669903902513418046187913963917519996106880395794578140869943557929398861400711417249894605120231528627326923240980270344039357213519034584028877988233814226609893318496674788926698874274514772695849546580773589496632043196842272939054023420699365934655175946440193569680887573651356552737827558456003178125785472579739016890446296702126248612178766264775483706533502859187059393901778046471759424323624082047979583793498520455967990254051594049454774417608395779736867376905855647918279488713678562976470361971927727368758174220619342121583922147169397052507247831658368690921206606029778144229145154061195058652651412881871106491879697943160479965128847403654083999670832363146792721324493626985707407047130584348263293188454405105866194037558732502573156652753929021523622074153014465759307227508883267063705821488431961565310418901791255484578746340538187505614044231461197845130970565453691268255794448780425882950076968232189862623811110723687449921424691504040400313321866823059154359549671890135590314696913736224077614431031226486037647919392677174935407534162571025588711228300980455394033370487328235883976509095216726564747258020548090639892790959497565422906184606794762581291478097037557429248089816541744855096727088920335142693606922157665634684417142514188413007346342117709133884972815682697556483084091332633671724772500819038332573981873743660364293416815416085287464587255653507621150730885068803456968232915354060692724241361263834962430252227348220766743282446251953438168663298333351231892641537539026898020923069024691880866165342597137031996465636551784185225207740037755013360935861416370449092199891298081723596202953847731659451593254575127621826588269650230832748779521264161760154839038458698458319371172093681990832889325916016831523789841750955421456573542447703079868907388542365511940355299976861512185036911858118061965525762964582474395494638849523052293904319208347004085959062477586926739003838567519596357188381477340819136711013050785355589760197241318688735176938889609209708119960863932376114367610703567567519545098566772609283078303333849478963026102904982778516773496566301792404581418889016861103714921870755368544212842300294361846299784470990238920908702825867759979329002406874041289587818001551262385066983520761015258102922206918505898797807610317527440586023149271114853812525022120659086590178202587801042247426440305081493400889355369942155412427940242883301635560084548061142519736000794683676743928913680375452258525035643374923040611881347898649501791203952139272589351885032274797283045553778306485639221525481817233208066725276659643162054180594480709373376273851917793186994730245908116531708464778489793524433572038061469870092327006538735123781189355588073827614313871047732133065852429217695200986522155832270762404786747201853835783437702235042508142457128437565714796893103634180893732997220191856775283873360133944177263815622028490159604474228410691468157779660193578485360756676916433461402954821501762780794026532754016988343543419531698259725727032376723271043885021457551160781078490367273413756850547512833318281681806879234839423579028304653257090996989339293195685942215104275316137785891330262383995724924625652092380982163100220099385178387862912847546474997380846098849157178387404461981374483906873405912842383139922683550617309537760077334415519711344778011363671293049539990019837057605614721077458334412357522587981973201543708493212917688204045074494910930517869705671177011419656169548746956995545794664902459880581820522678280554400630551716201091706454966577280912312827303711793448888192757525099425680572045715600308835125483545318216700312020988817566560248156433398561210335218031222038724546176492771976075616398999255588448247125397544419957528755338160752382890749579434084784098190504995472234917678089989735554281691198660291050548190046634137155573699308168787927857366696462826628267844983767811270499161680058808699835076429727402925188906394922183187369232560399158730451177448334267912516853853293533405574069546616393992231256623733289130824466051596075681864137729049551578853288990615412343781361699480463908311094735416191894425279561023915503630620246485820967519520566863096088982742416026648684310185357920109341489959132940129700809792093387285245068367706352271937561210705529957700568521654739563093401459950709068494399952610995037011491148583565840356944392440181375872950668205071295542099185087650711181272383052550942709701808367332460479643916371196248167128781688086672286327543572199760279585502124996042934207237855661033521342883540324720884075362274770767226570322161459853084807014327113323279558962703353311330191389309874263357207481014426060412219499873952098204314094001173960150011637464937393337425009359679835495980816817494264116175890029744537902464510011573256811536605504921822907182084906673068373474135408768646880362810534636606363963705084006032259444236806840701090414791408074372432537542045294549232054885409447277733086772895728448351993062406233360148946570102953727693192398007913742461289880620940425107182168700354182717824693588528969368387123395081807112652032316069421394350441642211804586597284701987470587704917452361406216647182684227650430987221302532920806244101356519019242976831941842247953230488722276199998130593434354096340873414940098361137992901040490216519800169653451050932011865288950013498554815797648691997535540019962392183037155704956611140749069890614688031627456504309292968564920493914266325600490954672462450603867027790659778255886429872457951551827889549293791361864335494956074796062993943328989560710185007412974027902759832985344536654737382544305064921875584905472536631374537077658929988754531817075803390144697612612080121923648496013191453758738420887032773631045444103175204216817020249242468543393848183239720117336727143759140357324974219076628395187262094877364228903555507099568064481385391213949440769981765712217675877697741374769300803853092414702592673097243425147389794333082207091984442963493682734555999275654308492145005895949858388972194908048002110310107746945750302798672045602966829024330049019586565615233850660108608524705125925107236890391442604480419106885691711560554676557754131337846734357281913557921521252441634267287935145798726236068476879424492454329593759322568038241243080404415170323303546805930255459808401814193883913099131378039516586688564053442504597686306846470385293042281253712888124063837191968251315506404586582122027033445251500245556971852044942712661755709779076522016314099243456249658234632741999669659190963031507721622959737941330449069123546628999767870639644275439705307201015678667651462562096649852069770710283319925355222101790715425549106689098901571435225232088249354832640582544332289933881814332460776202119276353556055401812466401180644907486567924930457530305406358998581036430506691788360446337600725210593072101922922418953223829158909341282287505109801463162395736714345765411805422274015650441113110505863376808693783303841959694538613373289247160253222936973132249379972928005992675567247975790953496341417002038663419614534418285905495280534099977630879343399759789105686041339012606507861256082320438045454486313325106637239101332430231854665265092939118054325741690275954071908417628867735299986425460585144807032455850880023749219853889982576356904694020369388274466818401399841773978038022542914925919574927731783795745010729161896999328831375419807672649180013064389905496374484069145828464261242049616787491900287079969791885341262481087950554207435264417947194040344796510910272448179190320555977587738427273813105814360328119623482496877066808719029887234172895279364187064069484639801089564315352334229003147981016684313694791961472060973085801361507055166513339144332448586946901204924773255718230581885747169914636031877933013847597598611209617071626757731572976133468570481409796915486001251242060298788553533764784651123129289985200406105400658342503451634685630309405097898362527739341235446910129362617019899713956710393977453100963054901054483657021671991872203463575636382441116170937888938549393556125009047936371715422408061034381188603305755612486733268456069417527934409497025997743501467019950271079144783210978457155621888327410710976530634168129793345934674275670724413469431451621670473376735826853171960542817128588708301593160488414921903243630580503307219660182809009404327179179905769932354438810503240674918606915784062898734473767092342257822449454348280812656771732125804023869289361125565308204506530663405614901036968658562063810884162112507243746872189242092630265334764851006488240187531107752387990519147513017011555125936509502776638656047599326777269553478063270493039489348979598091177892565374432654393742278506271653261710049130127647658588781300480840711844142690290625420067897649616996620372407499901838392496230801679713342360699757087490626659373346349331174723891567344412867677628500732867428934742984354169140694898144641854134452472851022266000796138096075270104077275968926615167444366066579171195189270912069311570060784613104860095902797295146546772338319753003929982023067750861479378310340923251667930588580944497178020124060753205842690453320997327935806562077891445512444048255269303533035133590148144451647017174096780541342209529918090602912607156833927661689267445611553209280009335523419347624811687507833375052144864123004693591272455168409493435643592020840086639728874526447641681222431979005740376752041131459356908294863650288665138667187098401912652087193821461049629177160561124132622984729181973501923264693476067359179204734601950214685020422272549906050039052717398308823934696132954605823559616885961443855177325568257200408640667157261428742158656293653466676503053994372643377711755248633346546866174710294742570747114524084069357459330581066479105872577087039412159583497208014347320216673200295921778311465479415676323580901593449839343603113947019602368064364710155265483303322903249484887401748716255541784323459835831317368567411948216488283219830392937820890066686416563563299900258912425367465987427578424453135056811633366503798136161033428769139977909395653758746991782052951266065435874802495310546207908286923825317348709348850922029899749216770759304665115811333830478324658453779995964224511055205282259855135799543314078046873828830918171688650474647342006016159445817592764878317510061540571533408027770017339348691597254483584995703116908905023479004182696112774389101113682498365112435221732941277060381302634181652357514835007798682610689357810835786811158166380254286394548824474315217144653188212265603371686438855279490837229672715058599839020073704352045196213006682618638971124575397983167483580286609024375336597037955301742860170982285254346628226050297822819229679749507068469470141114718271237717945439542475455823176370720020939524803055024861529194258380746445612475663032936211194064385351261733638375785199093033778956350709984872647563288157718587782973537054845621840616651638052116335535956157136554883040230839048499053464022753635053221312628579847488712087974239197129806515715622514535737622964969957851618947258601930480188788414077064277898211155038934041729907842887791396031909094756427746282346450496185589571867270893050509917508259060162303560854100261506599582940941882231711766856103431094090151955603594197629527151914465465701146273564760341664073355301078406612170688048776765829603445926238647585574773412285590994551261972615033569804674294654465241074799894679978464892745481446292704610242772494517285427202517075137258797350890288356512373075140216213117026404825133197504282209895138455281362688417732670088252543172435798898927526987160398846333076402741020725428607539146320563341900517801695481641794931734887812244472518611941008835131375554904941816728642441721880263881656275398573336004110595994336004451093825257880276648144257909554842576325666768618659127051483898044159755020202230844231648171457820102308761368940062171591863696647566801150589395069179486179388110691357391119291194764571638424398506767609270156013876254738775551308216149178633110756769969326398363601998430563988679303503631101462125926182324329202305048739735551038806183963033839202244502187780634180139029250800165476559906039088069177185244075096351519581930854853494363752693142834726012863215569558934759037521733395698605355818133404046834587120394074492363546970801353967029689205641532705761785074369410421620028138597409944580394843717122378085916106254729128941850143373320113941923776992728498792167957048572084826211789537450995901605731914510330159219504779986163997351363430181270766361962564218296135571474141968251977845129239951809480276157790515052996245646768594108003196552477778443101848753683776930481208594934751495753635190836645103834811783830402008724954329435980183990961161442520808102461548343772159007474654697078956825591781021535644406013968931598445159332120198273787780746052798480631885339359255326405680475871392736171274390494442064001760465960097267419950111801944219947030763868082018915210696080337311479275450469180708663306830471771276993888434975203615083864030923677079665962407466530320588557954353589859477754208465854466213117417321363819376111745267198453771073659565949816596887595352725655305225867778743619699554527008888504312759094143302364295198309281704636367105770040823556263457878747852344823998469437807398003882103551971467793674394843979504226155553063937295775976121390828294776160906986615995244347407208254872747416379054120320437632649767578839449115948526175508148236435201449006844903755254950452871127759024402682896602399138122666872871694391424233569071672197485298549065028669385313900278006222810546594919496576773408717385262225853195847657410136500168835483562369923544012235969360060512297048480867065598283362546162498884058080568387476805924167214899254667697070427975947074439924019217135876892945577148244404837002827609384443667265579592053332863638211834362027746460871764560182369204997521426141119495091413659399395988849687325390545616898630962962774556931596271112913890687533714285816832655822915316734128890277343355493447886835534106128230021846623652602520308299055735996294121284036158487698284476721665060508430933235779163412598672524107411628555608874176483498207142090696390405828539182621622899826869597594938059048857536815235174514964661426965879562019976643810050615041800687076584704534771470059633072335779079437670642119611920582425444418641308896296689603339150013243279609922778353395891846625759931945266902421463659868461586505934071484008604030338552638224638158915811836335966437381856210405820132816569854031673556381630196805645873480396751605716449040168382782016031003260680326683960468558981291340311753680129125576890009703604992591452651397757729834685305855369363518247572333780440075047551435090756127219522846296067221062160746123771515371186885040037147862817884264613905805364750289469072392890947226362566212572056919773693290313934135875697822879124283350725027285956323478025040789612019789216413238743692991691397743472714978009964967297895391487270489581227501458990446238905869642949272303541293353238761892115645887644297136389781641322138439455803462655791314402914125011688519989228707998820333274588508787396201958428491699988096256663978461402160950597299728709612433045762531292681564329180373839481915146495291988536197668964987775347004098933337972715949051939180303124409381216360642720597499374300957961622047067461174085734109744287490240722240719200849118581815181242763385231140880919338699052473755179697915334836986077884734179237590002069645477898046544209616558245456575726010982927946212016035864590980012146110812974865267664937754855501638009363914403874704406807417307111491203955955647637863687252125866419965181552726826102491047161897279219963728814057729543718948300129206125582500880958648234350311584272504471441799240885831604436354263131199883815034474732739773265725829183742486825322133620191484736976267555076004784747507130263315279144246484583105426179273255959789950216364980568016721702398636422151384913678946966518959963698189528929209109158145580415830296387791786935412183004099868888870765056067578452348837144892995803139722692500263442393372937783612199894600460805192918157365071406052132436657117486518651095866553176699331817383034483252372392809606769052368514645582723843589209066695738354627801124291041420564745807139444790481665880981587834729983910310275228746947404696773821161510972471275609181821603213271154482879902209158099544671791023985775776007593706623699315285106178001622280013068950348282438059889742807809786337323753673875156399625002026889171560872056819803813215927133464986079783246988263250521724677323215850527677276908073951802063323920222893513074342659786059370251069263878950489395563219211666113551555981326905757540944016636894260092675520406533365539514595944303364729869725224613028739834973048301961869455565752979106778727754721134723081066651220266183702365900835311812752978241047417681200547328540882448388546683741423365059125994228687922948350772627145754704620061650940034891292603995543195783268320040354268718280682549652538315835325773079887414298463873930588432411167585453287548999719550230033835213264235652711070175079374880683078560332541460194332096770637493574153953300374788399099007025314629659804152645589779939487647541072485093192760329489791717413621378419810350684961640393871356109818785335064948225067534562645152529774032989275375616918174853755507337163704805113108209276849359945306955812100822853145418170553396237627676852364626589367737334280355878578128082111574306197915537124356435476888116318086833937758278931522464199549300169784479090007976647619878336146456619219757545283023899841128019862103849883015774370873841082808014473728766681903237096742894197093402433644581613180747722821337753759924689494885688725904871418146023764695995080138660434705943517498600905231831220139459184889075304017368699612543946672139967231403034936228627011018302110667511115697441309369448508843086392094696380055670063404787656103708240980486788426585055996477627529334517217948195455073849381133042385946444639016837234401990718808607747458465023324552057248971165150373546124839533550370716633546955833592208900331481109310503562524157515546073932444462024389516294507183976761698709746973277318500836328590628633813257734717679708600828636578477101424365570873713729405753606851996199014232615351912187818324038266010409932276803870251828268990501392874943375476282680559264438064463585291569837975102408599405715559620169061180606385304794627810116368837111501855642083240988162569805452419611080501075913425742311627438861264992086892643935521215084790616735964953417920335729931922987009457311999116978422688536651053937230734148336277659461082027507201354847990537719775211020802148813910728443483895833745239607913126446165738853182117046599366534312649590347241970089105720731051403100314200160783683427754926384781255572681147907979017869070658706347495144162525321346591354161159377354271127487844264010320913869535451417510456835940101622677546837090867791763832995134146804688956935286804536200975579858801075441759285242964102754439417498319758454369167154537583187985830646715342764626016617073652015024125094132891717472435772793642305284204915384313671868862378670068866990269549824223482653556886677643797575821735368172417852613962129235281465101903304020295980863199433281222029898589174133129412548255309686872331162921846782131002620265685696863338986031149068251518406535826202849203691108013004510658289976889398622302002987302026668239598343372148343594114186800944102423948059712951621528595803182583624588407389192471713075627136269742883335952005433740229716897756514385002397963122083229688685441518076875750485099198641600385192906490187818432826073803657941537508892247333091289023297839157016547098990259096337756258327711521976990127206542767363431443596338669837899069142731429877121028098135403899051819659025752871711017725535981091889718059690665346225255996108710602903850682610373659519036598094590387568023489581209837818456632847510122625581176153911397278786965663647603878330958458695212974136021230392623072758316201715327098091760294702138897544744047645354181384402323951927105008365411261449874776295766461315292730408262464670170879217673162155902352103397158595470580242283827027971494018602228872477449515019204840639089778470639368376384247027691843714011326399534905539160928436499378627081492308485158569104536572034214111838272419259960984403071513288390846139536707141210527220506102534051019402940749759574527174929539079385860638632271697588309131577548083427308450034582094375678511762382918133228500723956526732881809023821928341494144956554284260221379058861020041883391973178632547226069678634981468979548112924564919562757485899108511676602352010867035720624104191113989650805631017762544678994028211648920629930993950416269193632852505659071223682642913459750001143812662446396194029226124931396646008217838602422263402909882607071413101340225182292518114507453249611798278098090904059866888739465434533741529283527320684520374228670618018757744193084575684590083048668952181850546205836400727652064823160244792294576503502716102402360482760918929259141865443107973061585721689758130145997794166716858356701456279748137762877912019970773376009154885054854373491910724448878268507976727424749887750371695099645685066210523598133155973577096559064049995701376219792921438423190219340151337337146388569975602575260969199204167969823087835133893409721274136179671333180216106553351478401227180500056058996254410874291771059638614888712165342027420219400108982349163214334109664552364564157442547616280614994862262819794712099533265692883575707687423148256547621396657615870188608830873520634213818055080953871062643310979218340123910155873234497899286404340085664332440355206342945708350867459782220190720434918209816527415475561920532871637706698839126538932588300907859330973252798030071390325461116679061262209148495864246313746047429285121225840905884715319438431133107476804463295291014411788533608414724183078822879553889265428666448434674012601752783005323779504717394619894984126586178838997327667730925977236372511240936935715309934453343631595721100047780613195625664941902661002920527566702498156483747966409720938614287428218067177294446686422969898060104500552718204741935330365947648428619741881735991210918110517831717355723362048767977349797951642582972286108934350157998396311335671442077751224522159445888123539318317898427767907761957475125202725763459241059992691541859509460537709471536644233681603453774944782038031479945248541902415822547307801051092213830438887300974159589762439285168272417354024953352564978836174476519814621487379737335020138996317498404803141747331125357681087728205440275301579499212248228188315859903217642180857611795898305076310457939415167540135991645960889661120356360724099260713876870353530836023137161827587949437078802623545134999471005751616584083140181416096414848555695573048403239322052485420840917721499157966705053940949709130942603584424107356659675150594129765057268149531775654706723150313046360845483584572144624672088377626519460492307291085755171808704011926298599674373996670398429978562924491578367945605019382322891997842022914384619287710339811795327919640087064849999273641610192982828364419870228318235369601337295269640031432055042715716563003478017192464206518546075681103879480426458869192365485930336260644027694822097406835423424397801948531719202606336030218984998773957051431924279415742837146691717756536221538380395561258833625325561989888138394131519059407836144156978797339022026664366760566126034177238527338171700746543287622673577991734420640145957598560581198520436099074878620106330950503989497135317475818349436118333585257563921246465585146177331430099874708293493663050146531674574921491274225822088849460920942321143346282517160783182427482236806311975876268107227796387411914481207607961353984499878324587780855847079140358040322793321570138959365817735396784757753859198605907702571498519979291886207175540665044143674061959756902461075245136349660724935824938152862368659264139236327584459542351653026603370230664555840862306562445697110879197830061029764884611057424265295474176486625207870400490901790467103598496470060348647617110294936726514970098727032847990599934789281851306023690074930957379371813869516821395468129591464986234149183262075502638768248950956748676320264693455175510292818249839119646790918239352418715552522863268318942087699775967873611749834858899300898246311854478422410113101911458213306528058112412300535896490363692652436919364069404865160756328368948571924613377198958925336526525704820267206476980220983714151087480827271214552656540049463226137117556522557855785438620484397274512811246989303953851327557208738586136332845154980999121622176081942298329537528843084974815265989509596031707675498664537413763046783260728838516515898281905983662442409841239767543381995641388773390255619104043407092540587331227195150043907332570074022910892710639857026423394507230166256217803265052508088792039039830239056304093083018130172614570730839500184286195290125738124421806436611596997022276933679377048967651600229489255184171690301299072120129650133350627007142276635497411119992198196646987095666400665324210039471451781291000017803245406453689450147394974900566906224257146068056925494622647946704886636289350462532097847012868109030596278379131960109090781603725759888909156680494319319589059697362378318104294372533961007287257463297767480226244825115785530275005860141541908753722113152887672443495488939371268118235765079757375591862260954758793900685505379226352071301751998848581413739120823909552910494808863207734526534495606973773156538854783575430682309858090330634518463435242119359009917725193273291229892982399848033143071342088986768649183176648276455164850978318312757196668594096546739916866673803114287725605476721566676445897568217849958036979388003509182753585483735102380350966032255255659914155544417369194496215692433112650812479498775233971600989640432045163241566124325014550343166056753606443540198147107297747801155023230507765864292355729797955055139760232195070145877926441473921211871557593117881085673494674367757908697004868600761048553967400939668266925299485376913467099834065831062322136420749971036766488090636658182890886783654476560523996116874664350388545496579393366782999422123905754675789611320021463888751427704284851614103790853626728543299282619009124004269300184230897419472337188277076536459963443767507305972448909468437335025368601750831720395152360017879073227288852436370333004444092781290593453686631414701046593418834746892826299882363013060137669269882177988517212454145733784882303824671916659511051746324312790315608741488607081554831102132540133568685405588343101887088938761393732502340880796593820148048303164481123176201540243450258972177670052598768575291107994887617033468123201993231132192874341846612599870181746561179146118689268370252016529911989888749488292420616964965430894423463417530646262066320412705247904652222594748526298821801665103773915209569257176760513915129079083306308913138467076780713608298991899449053998432749402438897106017627516486543243504174682174047720535790729788190300647621795656051593785317469975436785042996228068593836058350652163718143758120359463898013538578900875386377999442527513971642857645585388150959986542599611112126352521835373754089383829940714767194795565653338103356092091651358796043175645214900210873745219407016607907421171463892092871847601609024923191104226715102906017895674642383409519835911424086426457110707485300762498022067363837798445988414775150716229321920310260500551509076978943194378348211223131719769687308328746838329398680193191653702663820034824649888828009953080219176380419759462730434237050498168626631463313819924499513504093368521326486221662614304563801554167029975670181079914598371430134003203497652952164385778342024804974604813565562787670014116764532765709159469878574710951707756175897195470146914052898762386344666075216918405152920370643416714344581014881245904108836676936963016122140430307962334187927807074145543096121950988033073232712251430746743792949084700011181578721760472562843687444029999034907235233647795614826072754304750733835794169520854118581414211633663318843613930460864044381203050087374740743035198125879556512101543796185401817683516395531429788921097933506442189220638279260170808596615134092310144550959805004970933341826034628222661365245786243689338287481808083116632140886018962793337969179670238926003951088492322226248791469952469448221322207162281876337541174407176440825635977749100498441131586645655216934794699385345895276480298615840226409999421000433420644939416446515860822749727905680465910580231998140418166646897107038158991782599052443794164767665313637038164955688078417197066690888187111892963554097089449350838086720874087385891678280578464638730133563290056081755657051868983518288538558189418761846431885541883532205586551491960840135051091304296438673726701769209462568404821695594224381628363176054907299398382901877071378648219596279582737284384930210765170111412097127189513677811336345225119432564060929092039892030311428693110299616289715741651353122650976566387254150218818945769606338265402520174627484331378659366835358927288944137222712232373031899762712187563590305524059334406804067165885499108922339510318522804003163077793139388788124263739945766173505780454864709713365612269105452680323351709465782235132634711977541566480012164761891538394454382707413571109880273825243581929452706387243028983887862373972699481019099564763398726779743818824078646963720613457502040438651404814540848637229480891874953336845383329185692611600136090526980748507788080971992207905493846449129981160445105124820157681342303697584597931352507649917267189783592046244135583539680204390112988082084879270599398452081514555277160455545091663910861465981010943648552995834158940501132217591891822740788585450573707541719807935765713476422566400785520271235964984181478091852475405178298598358719450900926456203221456793600320098036589140365924802970597042389340141784940898340588942082813754108453271947659401578491808798841278671288346973044453463300113407842446974676100521632523146960746179723522751888911366108472825044733387698808997882496174571432653895931989193809453735620069779566007329207375987877395334012242628246381176046655295493277601516544433987977965759642130364849538029733629734054095365660271566620956242040189725410026903088730688596758323634848608003136749337880469881081792434870555858612604433511134155068347210280388630798842486479599344269107098070530828950651392898724560947408991150499159326607612639813504186421268398792438281063901902442716735076462402457681752412977343770472115340861680417829499676506858062512747529950655953249881866111872216992147209556065475521976145504910999069756842367521533929735597122527571508766565966450271917178205293885109369447210327912997299789495953721796541482204684847107971331529242256581065964907688575121283151575700891568839077515923394970555715543961203428758061751886703983086783340810134816839437033921934197424316334687716755401028790595185546970244107483690998853159223576836050185875678557363745857714841063401334897590877749058334553977057953521359016826647738272508556557813548876359883200278577063164224046839516165716965633117711645412249718086216525530845080263561891326043596292009640323843546372129515947537029341355782056091034650314827936141065660345442082853716002311366813190919641028730492085004174370383374462810464620942776963785580934275787598784183334039966019354202671488261281948862553950438151533608881983528174947354252961305205889894745297898192765362302146492716408632029235659299419175245477614408430602237931856760648303943416218753627041474976139638429863915287083114593851766848536922452479133970185679661898100702047221233180454192307994392215089918339722129466485426691824780579878782653881338779174799929862716454333930424609112847414100761105420089712585366728363148608986343464569341024174867567648864999320167607691395117456163032737449804460907809064030467634944431558869897372150230602240876896280899677720082954009728621969369799908562863781892068734312434251912571665860848853313223426184326055836735173575594624744942409189135202074248917184402231826670207364676861018624736484927580147358881296157116453077773099187906102988862871493020467922752516710370807163943912374316792866821934446224765726040705459985968287895948181229609966449841895435505126974622222840558216017815638489324156294294102354724474406529827595650852308039881041767531095394508295668667009805968039723878307108887309916708399098666703021614657172247840852262333384257208168100733965346032149843206972663930918651492548013701038387054784958056923908090714701468031944118829167741001086760714636703460970165877479386198655725149160321261997199738034901648422675449125967393123979900748310553850686618304829064433556813925304490175567549772245865537013114885452145575276500340012894742742237558340321677426586029415028540595957341787349070980159085826530220465780692136863441823833585505804406907890487694695230168242268953030195038490457409477237858413080942448126386762545261790718566784949159447575258904329859715562539168706640500338691147025275287746323076394773662205021243171119766975540707333112675955811430766435083776613839374188211987281402430195925772339924977456535991737370482345525690174683861816059068502523687172292558204547178143199185807494916821191010614101754667530762028915463213429187226015691453233924467835360929239259563179924773642655885414299302894571429764367323222629236024015550305643202837051864402703207009413308930740789714593411354663062636587285718897700556917963920940895404949675776691668312826151980538685795163887456933961269736698722204498574265207857339345005521824959736483872781039461205445156379796120302916594765746993415432710140747457728926544229966008021914307516320121147122336288689110031419826976208116102372004620991321164326070691988680286409722667809023807403593542144991574619796835571481367714201028436827004103443187994214361381197705387057025157767500874535392877472019654504906215944723770565106196759999085694877759391491159420150509913677419640531912235392749755102752262125932903159292020632274315631639883559894769491278028259845083583679986203533520206854605592167865528357649815669532315858857238729888822191559448037870908916485672990721373860536043712143961691038569517616028475707074122088557445480386155492999601110900895293056150928346650288039831552918890865902817664933855036021130100426140461218562027290863585170570520775006033082951809061933503365733692688723114598640046622373484736298028779881021471019245854937487774531159628979254055017807474919647784067465527903931955658138966925439286116812702860780164924717579476900407138384187102292173351898940764080897143188308922163936596875379870142040037849130127501003618935528646480423801407266877894994702425251395683293667201267277468876032284869428730134997355463449841082903990246143112485288482555246814876273994271498908989640658846538277748820154989400559486508510846581978619330248608338007255035370575267261626271208957483857078107167903963214061147985758927316520665138741418399014152408069427164153124841465750736716210143728566150672804848209459012141153970570484622153904550532054514086490834816933675066285207085044761687047642470629251984218234056711931759773850712138435661612005412914870910999681331855034567552502739480560945533332426165004974273699236895955712032345816444506183980944636812010841892621331466567215994708198176866591488326823185460165541728834534167044930916637484656897676342312018983264383910341875841362419674579946492022219798345930565636927568493597776710931030414113073125395642486385014555007579436042665449474702259689851026633743830181532607046361041203506982910077402475233657584243492598067819610676612549893669474579320383480118918046239934402048605474005397291988706489083532738462542597815237701653934090663961614181369936262272422063733819843067752648038741771906134560708695128829421341889432614115598374198430965061807992482485995574739758659791783500162512479117682056611245687897954672289441161207246221821503611187196038675940463408153405209319548994528013639239204558207050232815917711079086385994326625268337083516221862790696351346100018927287897223967334211224885525379496233480501745645714169688636010053871749288214974692896253474032490659110794774699550166290271429846508839179574390119154423166333872790505489315733714008430333877117939845502881051522538785585885276786724654682252601394142126380025151105253620202850883368116711791314535182745826907936214338287363671478550254061831507426381713513107673935765006518722579662135584845251998140046504966442936944626432535342270481087358438651531657478369349438175618439389101920993392079359173023513361343336174093788943324363676621020575206404986003394762611773065979007173384350861190466728309191914054876182490354096036111717587384282953107129788741300678157290071872028525347373683052683882088519006528889920671141417561482180485903016126993630220042457303654506308344452127181404811064626550218334918087281343170005938945464777807178007554115944795663687523130280968563849766467416423979403809780240068223930439751487761855101468074924443130493684240279796638069701072185944469466756952631588382852626134002780565139541647267978472018739287343174319563427146861286870318680268051307783311333649705142434586194339937603831348919536165221985717340060262681642333152627532561526998660446742821000163078713356756417605706103653972440343499640755239144597000424882780700901824785204769730606818272868950111230402025965464639168826534406245138943800868582630992637073830478363038980860109948994125751256140153446384423708749095624413019599875638910465209667545877660086590395215269307249475934637655249995739813687046823835782221350227515627717439223995541345490143078065888871451328133707614850257685232363829331474280596688096462099842247620743942690027942917237589747893279856242472965908532159472053323694904340279662663074027313164322304712428965781608109046022568044881972470679934948937439150755051735578827367466301133651280628067638738944351073404778542844945810324021530268892670928927343216222886653080791725525366482531922248604671904011881497966918972383904899214499063783422472582974487571387163937660383531958221258389950053175670095529364850788840429000362324607985108094470411877669656985270022423654214840823074249659128990965088853630872543273215141598918162875678113070516256851055815126713593448321780267835089604725800542617103328951883638910324473716748320591787336509628297455969434624092556528166566428133690259307587404400234673137376777924867261026258403688081693860941830435421605123289943113775339106511731742579190387744275557746660304066200990406304260514920298704318460132738950909981527030643369446904100445712022354511710113287564039593702423317102983934900820727390364959796732460701174416574343254996117806917646759647468797915155727815162473060583345263648512898167784698088189911321003939555111869683602326765781946083927775887735609407559829177542808611454330139500455246551242910049113728859660686718953557118903733300649089756833516500494824375020133685157284996369674642591495360373941154960982344314351093202218097093597803295497595988950811043501360621642003040542535251820091558762332175442175880859419299401661600036343910153400940398613816141852965918958274686221760040075402240523491448741154144506035042563623296960365972082364925594214765207713745747951220023253307577273544066672546063855660020024685704460037275403923296087432532813924489275962636999746081980307612158694436812543464760058234517098658868757896434602270548007083790041330514172192659415761568791150191340297485850517148608173156097398981871178896399754385938514812712285659202786935286076096100145004686282143308100288003423799080316038850406082976294182308278380860352272498102367705906046463477309524024902511871798642433919025304589573203908585078719522550177703765216266421852819817405073400266637251528093405208116710112696986779372259856933495194326932012590242307651827771352718844725327780205511448358644478230115471184418352293251149325726988617491226032840207277788433002018243512889526264348504018011766921894003013846230392559573128981537243816953077315894785564602548901233598445260305842110783664177049843804227277561814636149708220529789404684196421051959529763442794493800876237527458736540436860323925681203968153978062031844117517340635496464494688643129005659923971039802605527191344412176493157670125023282158682913399170943472186019906149947270419372232448113657773647843342022599969627985529882348358134519821814256759243498863133157643554985220161874700944848624572901415455918948887077304374958672079248383857434010982500628961660799710944183699874784439567679292388862416024436902715465276002249393490369054716744829657708307392421001528327233796093569239903388244656012980079191764303142021942373993964374442508813987203110473304468399440629881969793719757735325419364999703329803095057301944905176813411652445359329905152911986147095703537452655787424518568889601351304465467027075880994609033018356953660132791718794449541015603436922864802222470447675869609032209684225636134056348368297174343949134503501545627121130706912819682638673322131840444414977037384509444617548305453689936068205803889877247411952389292421637467845624985427985031449329953315855430027667154026296265166958091460788101747143069917441998658473290401655356658576263080502414955884775334898523646722389341636565324794364510059025225863213646412584998467961618435523403523247211105212266360915736027130213294482089766141037807091936558026221817849571220758511904228780008745928677362763323009690437803137089525207666717572718299861439365551183716692237254194667980821666681110395660439337503728075545148480681660436746789432640453711566586375053151208127132754920530682220005256929850143088587918383385888272261667756834554600420387321665037563085408359999738344203187925351510988383385390032909658740548739885297296837997229366012923123071602055097339309360503459039551443505307799861679247161443270747624508513019789738699270993325789524645547506763668264645271525522543338805354836273916262392529667664587548946734475772733560138382737290053938966565922305985710484827743980497205838211155382009892096613694689317719911147471703733748269810596270612913139960608821877214852557889824960571511974099550713992866920154565838343101426030808586884932719229841589509264357183140924710470518451287586998841092873590287431203934376279851641103244122629263110011096914955445030945335769214098033156765480642125772776756252536621018085063681829579287160839823402147203536259820636455200852312805800326716866834481511046373704849973483990721027211903580088432422211643344450800225977952817971722699732374386451794698445764806394894918334385251804287869326327529024478904759379404285984527499222779721000238911215489383823913828729899317311947617390611504478279287691102376475502522571732194818147370630130884178898195981629995410833902444106927067375959569971195359309384961102865740765063676944908930185586498703728972723433457224927891532609223247702287726296424917698080302782362172393798854005036257155488753610089011456864982824376781505124828205504920676147252714652189663004968857959976775225939740603051102898580396262188197128217051926322308951746815864772494006634762523998541731960261610369241957159776019716949023993287274397465880436565936496880168528639775155224759997649418595026804050064096984351130737971104411979180057464654930780215212529810087314060469473565906468924181483912636000073624710556481982589380887457645362774299376813587654191797357229612700089296847136964936836789635251823038913103992633758596525796164964499089095524355086589025530278599077553259012730600235531124137228833954640486577783316157682986151786509241374742372088701308805439522592788530239430921659564909840770609594261296282479677881113353326295287479754098788355667879004291954515767441486784044823639223350956600727547939140169710723185824412798923388200237794063975753657251625013351636726443591597747506119257130162300909373451004745276180163807096773700943768059667142294135896008247553832459748039320607960449050176920705851236726198458956830937968062543402509574621659518879755057796549195504949286712332513375567387160573563800289429902488512188012405686792361892475560482487495532826387314646416420598853851477433433172591297317119740004264987222438106142110327499241363713375474324062966725181565791386437025620243039647904890050442985262446575662362188208540949423685057327273776228365529386421319461785260626049990625479688474585304413059373947277930775350781935576273441069215589407275736285969449663889092158513270610171061497976205385708528120957527632949857667771947593521524216768778681734370556742374024365096351799715330205714311146401358640282902451517326107671692022525006337624310741617874762431101802901331809722311238240044665270255791343338648233847824083641509142630321466554736617596256169665943312066598512767046145043556505676323192723803451402535421280961853640658606595686500900542984050046093548530620626770476584564323035557962139704012841450715513295891545516692865827838940339152992238823329025388857260584924330742050480774965818966106091810585454197932480203796556828039992614596920546380587713649031487744048091127428165482419174572111024497423161561692475479084730751663266098195237956764638767882534315088220817956674771470680163510596475683188983249712046092085569971337574144650469347830224327100384214768793221424857135656462834010324241282632765420816089448070169154954190788990858389973870706701541666533841958350716971451934192037445743820510407777297327360839324163745628589224133765386367495504954305663770843450836517700464664638153286744482262904960184686050368834407760844823970025677621323572137726913923930959252379422056676983704392607890348267373475452833285765991776101256955535019262055179939802157103124143114530230698589870103035894212885231515064441420652849534936220244215603285094454454628741407401845085733373435077630594261225019252553251299186342147658214038307979527387376105273026392418224264154215090646009883184415256430726001468614601161949130240366938247501714189422592020806707745491575953845423781388608702178664247860286824553825706070078528273322265105633445664908743615822952264506909608316956172605265253491502070413802190340057017883118312374199817868723882510105974751202349065416840157335014317837335248193861982871799710861170481956079258642819561977024967004211000953800473880392004724546787309062927968600542682022838886684029083133520768865052779186562901289213124031511478404650007571261779711587696003625917889958455320352877641847839786316650707375096690883613167391476683106804830017611360594125583902618497547666962172853403585921903452376715116431337260067105594143593321358059343196515463231783380908185782331957168023225636454354657396538915851269617268356652954529933665361650739802987340183886461244163651746666698938924827378264542631427203865011755309707615587334543102676089168151624212648705807750635927882007357177805690888160798433456597061009242403609841782625417202152788307191579766742885145058773813376144840008391264395689171356932276133528160479732561164800243647813394194939199814446345033897730483079017221897876114152675849137827671364048145222417009763802459275416672698590142034111588045151837936470769448992165195823326382816833363255130234263516944400844577342648919320741277155095643226103868910385700958521921628484184898827326865547042366752750752984312290873054198395044089420214166780821968098279767077492898497124238809335414495108294256297327826692300410116180647868542163393012745589223242478674916076157695411688302134542171596584609084801971964948722854229249133226957718991065219268235209734285293627988609211679170762948584749614997835983430872007004771021856897441261723109103558622624994683902497802482310610773890804303172905984770452243032100330495756965955759098089718773551327482963398864571877846910640355644896125273514486823105300277818843106768143634883686881519793591948058645183785865973102712078058781768283476422045804174854652725579259321275422093550670915217460741863450104795444847280432287590427853279892586453224298523386332572078549434410071304918160075095719817838095600028747582755714595912142379824103442011990429800083484667984779173667633916755981233073604499817833000271462079471539626074240190517782696828793073342737263554559682051321475779688516552157856382150610037574421068786981759087972310547187859794509341635317309713427557368480465493684608589327951938780548353518384579551278889710753852648125918197952271446731488978306681441294809043876475417203288367931539487319278428206140837821111238551859257372026423446466169852063384534060085526687169998825468531836845011643354224246766319745613460084963085605745373590303320585846047421171983158007289300135611575620717423148933047964474680649638129316429235235811390296699494680014506883857295049880031742947556236767437649942436129590188781636342231949340725849731738971847387427493550985064726969684412652067805021942042876107362888938588503873245685564388165788462809886618203203578230333800993059130072333413234509602597374605200435709986002981455095784628320015135735925460273515967564416365301122647127864032448240077379969176466506023873396656356793403983565680722196540488511932248820542798091297110077004500227754612066171669155913980976565982271696317371323802330818946438128134866452495995445735996027340374953198103413735458599614954983609176126285395307873845707594632930371488225193038171751154383500267089958265452638110372525488774392601354060252214549198169957987371645351325509905208796779944078225308077581699560271112775854486844027605293945142888002909538028485411012261577841491581407749998414962922401988913083178596669153882290099469474502478449025713673569726397928304032860634546819859014808677414089210890401057657503110419221614941874314587847613671477391830535314383226695453832992239404561336060178214118865092922079294966409121600359051153880564921627054464191236518908206532775891997389222939012002682322223697736723300393821723674653052650743914068309474732126032088400989901480267801994826858553514806570539140057693454713673203875772451306975960605679539003726584611384511323064583372505805316793447259943055217500853177863633981947217743849839416646214485505188770661689027887474197775072785946167848196488792383924297012302195264384876917116929419136764539897530221318944274689864451195233611358086995256573849951322723448589323113867978311951784387713506482307870482998034471550701418820531041426682294816008160950246823597889332394676950155947575022359260204247226384941003113670440974536586103080120593089275276107285263942575292843621863776425354278189930648006656963672751616971819907226019375711689259479744761248762888217986501367475075006383234798839649774004884123575666865716142158311084736091393450002732005130798128157022256169065526833030836656381413470070819422166484822104159343491908204056408595224038800378073492616503002317179993148259291180037747446595015659399813862386928690626523820612336236745964072098350770110829907902806903410917509635731456182319044477049548661871606922803035013735952241233169641834879908074808040868998221727551316195878096775216539898309620348940936838565394211961230810211034710517424164346551719207792771385295060267518642439692655367233447841006814559511490367828388175705353800389460027690705631270232301414130663168017467973350972541462609599578815941072780659665422853016083098094827980877799541513306341851977872303012663922539995594139496211004195460782520674425080328818050339389218756524445169955413764778416716373075584797233865939263522401822608031692767084682690712884061919749117656286999690849707308233756477976874846675305269192985079280366818214376796073050873808083014464297598254170078643973049610834186196966195963220184035916356341184358185982051413631915309125174406624049390924513588519076270688936627099055946468937668006920468283630462501640210274379178544802485128618216125121145700035734674069253679036890950259239891548171622541825245208060039060040615540589290773206873095800617499719203647120978841924466670920444974987482408865905266935889487752575164013543674237920145307220235357683454468120686595139327263559276996599573777441103790910715683586584656220858621071395493545391225673280629527519007549409048963943888064254557072622115936312439491645972564910184257540822004722888846634512803044831901784007401167647739561543647139523558199976935901084177521973362030832625761659684119366145853311420753211952927669717042067051859842499762834604123163908122790890056023914727625472304465613738919348291198454930609446294509615911536755252862610591271212204144684177497818630501112974003941119350818908357333290551144074304444675853303908198677458587064667531058733204448664381954737084809840190145711080151111444662950746065233051734594525772575893078637007195767928495422023913726568259931838496357371745540503873578054083223542866825098340742461917212410659284052811166200923282960301721363849285104773585298392087098926316984358857422063744579956105414437052488223358026756746099254402277684009359318177750785767334532073118530837973695738202460474500960452405560064156835540468641810641559159869257448903034714608636868420714152951953996888639944162985012621982654789950631292147960564718499931339244495297288337833552253066560811391115575999790713828924183735740905193241180832753210575834434078628766429488113359530078115142595782796409283781276316746885253232980285679247320453209385421015807147401809479461160486277678673437757511437592333049254994572062768423364394693270173361084440187565356931607880312701567743292110954603746698646305896432996195799083916388510735836553973586858039475629404022863520963472170394504703852571085313362447545420010525967121783578746333594165923235625703933128018819799348769808508853873790156788859249599338041045070956681978068909791304753127014469119908171380579382353672715797874399564789154906407693819236783667232181905821363990349731439811967421740486606919650658688315134834018768134679042643955738590065483758071528181289510741440960450170439654853590538278043481358307724451600378609737374314721794026495307729429552473216428585864193133904622555731428767902253344787868856379770932207047543824471370721081728072621619220345167663856985421460029371066131784467434949460342745909707794025711988737531399123813260009563206368236285830789874153227446212759179354631214921585631006889095807780605937282837406604517338147569406689687907446437289032404571746893162279915260767008749579463655298108006056320535932346149132211508186917115500655666554774549787559290607422761924901312867775801342108401628830872921226157765095221015080446637440329782265047958483949290880913783491105270189158666597815395224336302038194307797221007492952919014175775251699297714793500137189964488911520647362966761218218393084899260246004189915466997385219675672930964342169889806341929533111660152026890675526392510810172592947411597057246702083623791445765730763105504694796613415062949874761664184570782385557437047474057201870953392723123250003365765441821501626602351718472672153312107509640158510189813774914265452998666920870889036949102304930463034175089835146799025697287651150445102675835608349627733345414395387961968611228627183777026264999954378975661863845224244739492492150548510122167075552405102103873300284593613184584427867338231426176973563642708421202831884367381928347131950871731221910120316721141109395899922884674801741656760993787819687707634475970187870115363507042680620343222196248189679109056279926872063157344359507897852923069671951104333055667838495384096125277958389105487968484862086797174930084521443594253462001124108426656675868978082776276840134698294192958020330574004749139789710591226422104073255789131404774670952163373109546710714788243474697322536208971843414016895152093293728957961799009745313228076318182899433189695689530472370399538905839657483550150819470100336494607541568093909482754499811810031151431124371620602850821167716052901503038399817787498619635004890805220896906827949155038157223974665114420407121328005606536244601968573857325813809450794347406603605435911681038547455413901005210856826964174364592697573011123142761569164064382930414419125809700150147626045084302994739777044340602558483155183709862104371824449093244999094123969680727355749909747543929025579847970934821903280850591023318505659588569341036975217879661677104230494235235108630072812871321479327804020664614262300785614084032598348925571208511898538223851362097287919518774650641861010501100015239214019881155010333190671539149661273638135349062018988011860626488814169435292751302012074448506939497156569637005281044364579654008558044162484257185448372086643338665752522858109482892172578391581914769136460326844762022558337884307066268201365625670604291660967399373963337255981754023690188353530079901593967249287745723100178133888506294267768452361064262085472070806053673762684766876846210436566255254577155820968489551256042709483869900453706023638867136791042491149199630147564672600279406939362920852680415939165569428310137017215002461341255538803212017480246619940571602598114205384973309909585864771311219005778516821354656769254369586839553959226979119815105678624278738635596963515965257801008877751613948594765302893365917624022970657836985360711004953475675722840793387469639698205275488541386380912804655679578673802477962455807493572388749181720103008919889932379533927562492951430639175417565236205655375337478403547514349918016962421277305751753172714089928417997105437997664693048399857656970388916180268894828664983964738224030523683857879176549873616284716015227511055535642270930341290634121405037470653876110440576312776776879558283969360687974929924730557570145071286487760372167136663996479516812181508956359322145080853486264524413804231937636533552748353332155834128888664778013962249460243584302230591757415527544778471665151580601596831434699386022411670339610331434441421523781212705290041529683283581427457205480763417399768540321142787027099465821456696142049358600517832030749599849994536775963901544332983729598770215879840453042417236885395654311324912800166886143213359018145988153451156496930872268799815440163790362584744940276762231405838302463232783555897049122876375516099352286387594826470923454896604043955282969349632732961945392634125404435830649127279699414425771537866021215962838480080776486006844211951284281111860656338162758796685046790939303024381941471345044461099623814170804588938597963438244761200943147501391451102903534584642339866533775034032887511784456217019070082687537123489425484526795290596728991141621687172072527895413036625313121616871840029084914010882474192903310039585332809030568981619595841464035008818383544776616176408343356576282916036527855053342920173444239999129821560656392330968312326061134984745904753481757247935228998935009434950753963734828911547110172984407907116384882298841792185428317498575601644356222646122594640283086477663873594598842450470990867877167500913930038211751981118425649944996192501939380472533739945933377312525246306404342992510063627726440425221293353639838887125586502821483935195378291219232513295504794270774798175730690981398175836426749156756380340241635030089974588466445595105263773038875334873440217725854816570326003356204904177355790973475984394759958454297654636741210753515070138512126171017094388163868180032534456078011389315457232587631687591414183933656822296246600914620551459783379115646479266635436278233025485821978207099747310916035110647009748740007315222876647396291277862184468355500202043071914200728462790183186397870257027722687823910369724454864110588891669111059220294449329436270354133098805268800879346170956304846028827660119070894073002820066435986694309912883866952379298666281788984272697048886044737676094202615377177917909677512787197471044080915599067919077234172080808599042860045454567514227713847378234110053118244306323887152844086268756605069723478477362196202376584411033721590438118946982931306928611598564531398931399489998334044009242283791251755521746218912876051394689884726771874665047852706643625748319169084915371258805414540363267478695396491037240057461302202931995031019877506028802379750025521574996446424533498859159093695439580845280450049366398305637822541056262416832173011323746636508183215513904980193919962514820348523360352029798922437731111500916585701032600353644447517742469891589357347056587514976256326803969581696949039759946106397634323054227213087624668573467046062234937841991983801309939280236522741919860542642497117922820503705375874271366672714855309460807796290809358385465468349840363555216845703430350063410235028534877663530471250688440872326675905655793347845911332126078901928698099359636775783128957269704288379935513039269512405891998449060463192776299056460394768756527761889878075082021154853642537919707547290711263442813605992811917357099215255551980276056037180905189020718577350555232713913962501594272539302371864450176617835950053674245283533462966004008468072728533180835272486343316020649687387392161609559277707472091863836191285755719394844572279339098413065940599965126384799973332898272447135236300117319458797298546955749664148606783193641212157264534076580706689602531854014782487479728063120191667380722377639208723247542101321740219317052468831195661303656707030521912378617793925690762722384770505239270622228374942381430610344037798238210887741439631390151070820312754566079546433713534599280628719694697255592487623405608599760254233805356029198699095607613736827707044286670464122474056996749209859838361282936506774498024522167809570099379281101073932308678935464775565148775074794665008756926950491325561264280600598839499515516257640827798160572755744396120181474978004513217821297863743751099747673376313134440669322169897906481415224596057960363749293853905804580982603556819528939522166957415642204303664372299146967604386441942130136759001693242269349130492467027077824818455231134611034534892733150600012302853833423036382471550255513687456321669366560444146424555698182319274119450827968870469417670296601950745024985165298061868054638134752514384332789919960927108581220089357662225697993598699221499254647176821012765199595978247005014221747545861942960392394590928828418146877484191361418987382812648355343241016964934655262953455634617083351095016806940228675056776344571474132177751673062077821877064922444475208280009834255704577849191916884176771786886303321268954919764573940753700988371400487025429260329638779287543770695604373399901002948526381500326289972855113010369858193267448850522284219180545540822774752760746538989050643747981698347177749076103760062828906194576396781299288020027596729449861547706520473219541890296708583780605695026885991520228616831779318138111337008466482823164294019403501667489299392408705756479425131999586127833097352653843359384167524753096842469778191862434377111559925282827313295136978782140742545163126864523275780821743915421468894359097731815658022057964044194212253701479918927885379033777432873409551174137835201919791527965001393868848556937474821612927167295727856384738632469385840529246749040224134389518832380107931460183429162163319657370015979427390045000638416513145176559085970026470032213022198522497413915779529879290963497289851176018113744692209425310313138344961355993181788354416471450387855471665976982467247974403116606061989122504156909044764662457128363820616674275647027759689746278418105147670135804259038575306203657293784016491669482713592856927354306769178867000492202732316264040702550279562093496216227338619486811060844935895601787085883133844172887638909315374072400072802532562764284026486565019686979744304259225849580474179227925340055252474495023408392656172390930942300609366303234802021086788680896591816847927368330143271469568445704936542127385236419762748941760376029752016153593894487622023573913546834272594628295090576514319420959551607261274135359833191841235784196421342887256687389708438311410465856003768822032463086565154107992964690465777065237950534596024614940206156054484306437872994525822626360919700634234569581210810188042948513682867398521325345198519868065279201617538965618411825224252968934634983238786265738322488214671822123921614521633252756700170428939905246548258778512412518561257886894555316654975464304753503190355902321438128581792753398401246082389071705460583596058677199021834652830571868277510762506653709452988830211962730293185889270847570148568998529665057338471038620599638943209413359577964476992214153786551124648537943925407362192752468482382849973125718645765551508695824151349798157017437827336637993430650906064980929838630333539425021822566381273209743546622445887643499407355388635877067206336811113229422983654052688215612702459628857235482642183145461433191254583311812559791473648401291468622198673758189771951882327852080933278280528503438813801952845546505139324690269115602676843585443935076285667261266508394535898309320803700107893243658291550801322381298871464809135644029247125244100245252544508023246157822063586871671105569328543801624683461967492375522775131051001267760576438799157199485970651760213891464063173502233846434583948354350279819027287973032028508468840198759498703781461796686462875466703998963042483342254904924467013293924725832362315311997123989446217658842719338254666216103821400699023027742644385714175745879439789795948158049729059777726218748279191542139015671040424987960383839873080715504253039320113817262336691434188476626755032586344926729416355440616416058126006897850489024654095367384485080441994812315226437778358928010770528723579813191764225440790262977522329943162440568228240489795858620420959030167530770098412550414395173705772057555508175512601790181200735133417723724762208120008604407951239514265989643403764245060829599666156088903857106846402914127173765715134887944642689107694108953101190999299956309309050352227772332629147014017864451463531187383784955438825008569273087839474528749201768864473117831041101991600631498818929990610152778168708421621381839557079184051198067597769599875313775772688789108864591654468983133474235479298051910921514683071632385535103872718754467670829529749053459537652593192516594514793368506381679734786636883270789543959667729832709668006279053959998294577731682383260738801806541025146172162886788358706619093677297966422255933690824586710321214530157614065638488320462046551157310033106271776366327253551051140113729479742423417996595373489421421400236584408113388319761752550589009245453137756058842247628652387606272469903021267047078094512414716294955702704018998666632017984230055070084407533279625699917718765426525703312549513970864944719145272944883050946018415295562514740409525798009901463383797769021293940853102488561567350606338634923684489507528233401007520258283062071137190594267815521410921860570542096103071329372555368225794735587462567776516453310929822876028379225930251318516581337706052092108657561743012334289084699223497351511631421745254267139789248050025172232090821245741107761163535916860465237641185208310455600513909589498730970708723111425470231216733203810854809201787391487934488837268545689214877830390016547741762281260580728355415331369007931396300063769702007625350507261233441510111428070936819402236989991308247424654012701940113222999932048332874671355383494579635836899288623290439722584493817107725905803949716259506636916042428812825483869715966530554742543545597343320165017471694261408641380380466595322388060995968930493981398914417781080440177680412631187307038032840781365152378659505510087403583849737817232100166230527219947879907436057423140992833458661530302659108802848943882627192860592688546252611811506554314391860473863832014952014199240165101739767409226043254842945659258581776899771652026749864198907493364258824303008229914088423037033492000321094764235749370825153883596128554028571511999684121309513297601060622384467853304303605283324594771517521109132184692968901359920399067517466637717540893162635269159223166758528381513309573351829442340194857599928875715896113735250073352994468645177277810729355506620011166278640684583474212201535461842745627781395631003503800901852220399726275905468272699143753600658655126345316534223994033256987619903270018293229045380216469805315530988295337618967309534457130377128599254581802272613746556905822595786920989804611674009391732335754451424181559427904164840501217527511162224841376487939528948768911062083467875763236881995065081723493681850049201395396931150450840631833169795650011516330083782711074977286046415193311497771862005817211835717658891646355701844887330656741216711045991852850612219680110732254829518774076669979602303847200725332760059467869526790514319525735477141111573062837948717238799010110737197033795111387902442285766119513470938240551686729869870945885528098965550905005839479776816362135995896454669367741167952365593301962543171459828163763773483041585352887106282009286734513178670579055862422877697703803358671896644007604521050778010902637401436327800462862893243121698489569692681269965570096116297810488083332264011584449865788691989155116498775950082011654710794954761627253597443140698950143479155214870180524406888053182445054861510557508245833483060153051527141034013461587176204932737682281179363822377263676950899606005764576074349083808672495330340119364736422164031877350174262838309181603371305308194700548145666334229294394379129613611797429979597898222018382043393751513900818795675780849881967116995779814800468611110202998559769628419388687612327451524627733080446573369546365493840400819777609706639132376542539186868203566854276619326843902885919967881472483502319505887747564159106418991240691253094163125619541095435308814642343408331609704950449309811673539831293735539341187320088670867106762928026623131366609838364307561568243371003247612866087421391893567521305950626336204982646550082066501877463331840481096537269399354992508460932223638918187900587249238610783215779790260035562226643917254444606289329459454295831001567300550754372474262118465163712077024599682774758902127077460823281087774656437622050892211762862594923337322306799176150246435991356381620607408584397425133159389863383102724114385075320805389733801159125087956234072913945303862707068178014681947724028939617221644175848630204516488795837610929850676053716776401041227878179550018233197260574617611883779468454732039891838117019778662208080181016483471431403292545031424952200821114330744664013624225319259875091575121739132432965349401209539286534708463158821504955168014428706494848315638437272630481694795792035566844577863829722889535344118520610069545041770445474492597086698863609934470061993886472734499279127222316585283623292536482593421073552499528548442312732204674710780642436699584238528637432273244201828343973400032241859019238030590058722292896105514993883061413500649369104739021291543977494536051080648720801311904902231107072307706242833919528937220911487783908790449596315222989682708220530489656016395945586075535222221595738349596092864920413661120498768165209416326912589404845282229036070277275509104234760715102608470372049953307356616520160803158835638796224312089007094192173450477878774094071468706792259425905227518180949282295331821489040420843933377285890253665084263277258143948601959376487549244711520859661665883085955336160717058520424797750579059521204948991346273733393517973537490955401805020862425294715561008799154147069653545729992240709325803842553897467763514808951876988364635894254942842207312036451005027160780398336131700022763357322058050472099901287776893533759857416645852007639216878048573675392949503384098229397970658314255553928295919229698068777227966397293907779082178517324761087355641896708494182323029269132494491340375769778800008521206899488519501187042430819704776776564770516660073820649884857171048322723457119259180652711670489692290985807515362751709550528429039224365004824880744813185743646566984452180536664675483798735679164220132961903517086414797337157754106151617424044495799580315561115791030873134720990353018949994658219299219647710568822829861410142019463905423285844381712408363322656243251238385947763567301206764410850147539814463428593104949686936382640046416259646951490319611104854477591917065843927067602400311452127176470833320094175688738759477706324099809206846305347743324194522002176300046622820238082778041977949338939188985224408550686669098726150999343275594219513614894603275485400282474638185574303867224848145712041289402200141526884770962461222114999228876439191910899400076450042673636033595644644270818978527417707745133958409576044621143276559892571212464070497606068894752177888846753657731308884831704130847083028117792594667012087718412865941990187787509632002811023755143635612304865546153298828299904617451774858147760123133434173138771090557709367065736550203175790043067229303144502419919774280967622124251992863274025837040075297281743548041063934506373267506843468818388748332354112166341880424123303403490967577941653779084125868798288610323527885733215533815198830588045853153469043130898096369406641813704154859314966671159813089944082545715355230065250822849617287239674650825190045324558235748687720066747949712163602820852354302783865361171124532148648794241321331700852315433727746076806637669961889512288049108911176595515736498473886069524716684752375144641521336548924672761225853936148416514385818691738416754348278131766314291169378556461817166096634029127205365302544476383065335504511464152247086512121312900999001968151695921524303910229496964390635521990651394321630365345397471515735014459156097003147953738250722286432679118022285454450510066868382649729074813258480871020887495051426964293739258136771841690654521561087615737802053527958004468491361369174682537172803536784350361890124577775833864677004871875515418115037141294549114272696877208861952903110006521480604793894304261211250474636222567539347681922221920063516876682582150682798801607357061108055578616867049474864042027000614400977944187614785497645823956249805444955125709106402708323908144600925117778765206380393713571176447632922162141265648373947107451322905073720554233262086352301211192300993282164753643692379063250335682531355433034789629153304492311538091995755532944987052801903351167407527636655981472206121804385730030729787921735685000125623318067425988724010996896981385239730619195592833694861190323949253594415836595816138391218541195151992655070437222451106336712668962567275866773882387907913364509386511722013962859447865442962183266784517002027818841924009364903662723574437287448563310872878958458482352508201562742207923922033920450828194622615291844607061975822852133877969632367864013313041099556453747740645777576849035137916732532182650044015006462416364046311782779660535756676037161374420266916172189142991639230484973825428942219985454786894825670545771208306069664015175470113984382899319336352288857298115482869135960324285116362192220766798190063884048427152608659071553704971859335226057118104150457934735396327639988723256063689608410315441364214878261192854183849957430442768683851459149189187424006619028314479859226445963347995310286302780183115008930007657628088707768885566711361061861689962499638799370291136195006215509591002663942980584231778964965066275652978344151497338825523633644652036220132162803213500493619597507026917278323701383715764323028881013296332873938245738746245096895082238330844176192408476051027246860191447430391510803777481923871052911279590551749882293907551274408036416932829212553780088491928702854675425466697357397053653624540072223989562013067604811339156349727760567144964090640451148094824868511796216404428068971957629753562236181688850027285694336528800131844121214112389838519527851194814679016652840688382186958683066129590397745990561487036122898098411382006158591424712862298600417189064530100820327940885803857608905122698760086424606482694850486186296517221848751835565288146631275237687067466752691724416729735456956733166771849284394313859957738504850610973138057829209449944463239430606875958119003860261904921098398719699336474633114066294511147152055694804027987358243091859738263977134041141601662377526935772236147756347905552752166482414609981486281328766311875241074174329874362753850457777425420575766273931569840438567729143837835901823517368770880480343742863236659074522885395228357786813472195376605008468619896263300503309360409978222914815147525771837952813848915680491921812383604122713582961164972471080261254592059524865114227833911564975466627448671852187561816294711964713806687771536085417869418386146607485365395525809016966237780000655836818847197698244458732298445308869902993378877952657197280899159793941934367522718663437829079368244403206246396018669904972319031502436250408130553533830653161092378952733391436979259369072869740426234042475870337917002214925834352410157186453983478454517589224123613673529136260171215544108493033216442300759697110588546958695711726320379851371929401448711950153715879163321253830793896944127468922739861011837208514286931971502864690987328481720738738152015911637945123010101966662036445412956291903554810519125343871316001524124785504522454804170858009744164360840375963801883860748953526626950353281648096816794488017615939929356306431457111483516674756546277594216725378229613379520048290422881659995670507607348704290859084996849095294910463268517636522463170134879989376887798420929485129627852301598830153361268342991776614639254947705193020500310556054936776339163283953895578869977697143135446101324961890191705701201820667021165776654146051368534345117330284374109752675183557592471851518890916898948657604164533212417028081148467590773013272547946094155097286789671879618012204433502968796219644048327886379960409838825362938230395839698373949610171235821842177439742703646911258107515945266355464675143678868797822902295599477157643067126525971855615110357476610420964178412476830158403397936011211878112008231745037140757004092710837435401089199345949837567061274097176992139541109521012508398136549562045150243668431133989738587361130651247452423215425715091709831141400860264890539370712774412440669076831670854240573003611786905243232054426823568650032703030650150774804738700240267292414480020515306773270191114548987396349292489206289712904783044926853800283148753581059970561483806927373009686610988863789029557324737732183929682372659640999994766795576053071821618693945992778164452536969658122450093564589944321917279168676398557892539969660988248722705869024920017849027121486353955328059468288469933578566896852991438034105283369383898081065416312507494946094474088864690836521657106852902937901140010171041875820439261982433726156111356858417307628652063100312749714469978191038819926090166461797540691029725658474690450719252449465833527641746399517886169056732659316334124585451782580824490071885017851428871766720831159955592926726211782561190445950693489617572283250711475204412767765750508689367098033666867867986680958545163564504567000982821304671244237580255335849496783455027631075616185676110242006229086221786801124345915647756613627310796173252346814090700110500979458634572441902662005773671790461232744208537976097262686877009464227258685007163645957236063816338474943499752065431904882687582535051569107427134586841794569558271770980275281686202031319544359749164686549228763080466621431318534173986503522645190258054517242379319713354798944313018430240118980856828428763561151135925450517590066090293175341972370373166267631045526770572841082661953953967680235004676392322381988953904099269167859156689219764620537138695769799990888413176891511374346270237557613560235953212929513393306880410662258095597530152275907114307261209980406112049595447025290224582981032604603666107907846145624771807212209453782243796089208478369881533998578438358476233111145529449931635895654517074349410086456375682365245225528902797171999867299638162137834713253882980766128714625534783529714630139379788432298529584543951967680386477081199962158170809443989580382507071135827079833478098566103008092483633401066437851717050086728560572566582490063038166592502760359401420724325335032907153406437209910495544172192961728518931878766754091358771099753068394228329617084806583434971118140092278253026159348139475517360355840894266447493309584619986206812924842999006904953095601991673592700342277058077772579429891924835075000262535753826874832363422767248087114413930325764451626363014157737299135855264761831061547505505435003978879153453277021596044566357030677066100192017932140171479697167384697333397070560585989228309253129526494279536183676079287994017708601760847530393479112478861239694532982336275032741764624321782050586312100328081025353090522811213357690673482789377192908366864035028279947062486247688670440208595385347241370469282593722752895964155974991677578726870096143793390912193869911363019731897109456037301611109766624424400181780650555724623398592568655386116826127043340700951800886897139894921319480765456160954465122643149669349697436169839616874112409269250879164951012251867524836356160571234863846892796456667649848464767165046561266990865485403705281050282325415823196482458286149790041803457596958657165789359912026924047544686256265670714416277114320705726232045705864254864853864287183259235882721005017819259103218621025254290610641964932197384822924672145088027677363100251061465898752818456725920500790060992633179350293026339149754789980559159838740722820121116031847446073130926422360572014068318740741436847356693028138596844963678163554669045752531854826599116179188647506992213268388078880217815079875262709591652828076767314368740762605540277158332846667905622524415031604568648941811259999795035307072839954188004062183769040528604637822068355374436554856947783615062635989936347870279090309974627721842411001764821590127056711820876687822757646769942854113054242846979677129365563719081124347524991889410442389988765581490981631338283443986788305614220699486564370563456816951020971434238126537052902311489174162697598468906754938151368823125531785534937461150504580356678194431847685134829172679530465154959807564116899823793686265452254476823193821655598816897565449898472233608040236215212637898570027320479709835073384755880885265600460111363664106953579734490868621432857776929771388386687549173683553591485305782457191099830298313951375705252562095809540178976954139461517202617649660795210633054864581189033232775355608042092880795481310443083142541175646937964493700880517884390646505986995299345622884978136790056842469066898234803767228391414146393834419705052555274566152430703116893995864095218468006890113619130090893426827828837570563951953301251801823500492931069727258057031966431977564341418649195709519441152022579601579421743329987124953984816432158840168231801567682205889033443405769062383726206054194708302698868088319400151779250677571751745937223847177220508209307041593117362202000388130607888400911177396641888367333204465296464459344197685964281262445125625778863231538319095654286792308345124027616888359652510288292547017458850877854674323354131435813989005234227038800607714317834252668029966525159580526739682566297578541127324599996348271937105702177276790883005849073633640131647993683787809427547616082779063539802635477089489921777344518972910084616490569126445840049207083085260645566055418879410176891602772833725715292633912480905600028233792017752640689351180449779199732378020380548451534642144112157409261171753177525342523126565278956547994952499966134186685611371726575357616124675639363634658529021988359358313921924913934186424541359344281660384057943034058583059516125841208664179704045005570901510314279790145799585671974561364535372447573259717624162216656098154776510792433284597303502214180191043778487240617468128371996146283916642534803096672402411784837905118698833839179026793076495649132796657819771695645747593331331342626077489713671970058790516411057560868039039268658263487063454055157631398616763810774144512259412855075449421595294857398986305684715535148771193322794310386006628760697072692238839211010422054182314187838700284748888389056675063312220920514807870613610842837440600890446146679737158262720291116842293247482478917896858777805977609418186443163400288502645364455135506712134011886907855574994102050120205843693594383384314211879849669579667123182969419117181580494352579524060183758509979343711308802640215428816443443067202863030612449853715671809096783674127520201113454134998391711172535385170214243067321000314413728871055440789582470237649047523203097059606207612027423317301765690320036774926942273303227577627517007941506913023523382295229380423742991955311001375700873574048960493014910013105148285638699842929417364755785529415333794939202440231719427160290231271594369364613047780157046975102606154335602353227271325523781649405525365188946498390345178857443963543580134349760271473843855119847810892866822945772575359784295454349909526907761869805012609732425756673965166418609433503841496183873703509380703801016953663046160924072943622113373553722563179924520868182716706419610045069000178351726815392178658474812406988299439446928475392120476967040089175169800447350134011378005521056304988254349320679964173418381132082260661908719833602171482565623937107277080044260302578643754691414064673799881333062749804340488444339372858514209290714069313278515053469681273452320463635666300917026335976323886142443801882404910085101582522932565567279300996617151675711037022790900577243226451934853958153367620180430790663469385952282763485280737392669541534068128659434699569118047243766089383156219243865641031313405891150807219328673916883238149447760719920810354753884234538967326548496844080635106715752371203075032887685369166123886017735354040091088039589275121002549716693707978718664292201401455882456234241446703132303501281032442016321630576537713870990527259684940878298118615258884925272186032895221824026282983232700817634556129971457746583785472429674618246643849029786530077631593791964425478394882826806550176331623401014632709472597201882333538813353025456539046348310517300849704261537367640620330137906478738737121464525553365835582825312986908539600263668907255056827141000417352289848217175999402680746491418887030638147115329646789559318086512230266369972047113174786349052776694142734227232795808700025982805258013785387832003118087215098462322707431627761529412804042731738766997695548191538084277357093281373760561766937072880612119558068900815993982648764512003321785648698432090637602562999928889730761247741228383269616110751648915228250644546268306417227180338343173765819712463951447878320009351333318655222338955660251647081019002244674779398750108774616269889409502813107485697512863709006577191414377029675485623143832515950385251731366442655028598105764183707048240607320787117705529545309698183519729294115418251958353083363474955997898763199425104174380877385642307717332540519763611239063521989491743905255002477559239394461077761413186765509240689222302864431715623756205532535947588834188411031832605661608570780124121329727491660000489927474140215834370124815741912988770947116933111041130464645731987871069570113548766016847239555580887290897174691220369251189724680591711257457394391145651806106080563786530895784773539118878095224396978001845823644395448244656556278922902372298460832554705494068221878803473178991834160540268599674872180081320778855338243052788952528970977080260850788175268441974747503008944242700277303247293819695799127666762690253597622952462332687883138948400393681704468721851013957132476754082232304378228175049812122184923811060720044101737240292002257194762803149945154783344703033464531637313152749162692772871965807579765624902962412134273947494949960580458288719222182437360162808616446829421784486643308194165490980503506193935373441844498848185595049650263222645086225208709839417951613729261563166641163790862599661958483269538206406102682517040494898838579192421686509829170475839529326011944310572999700948820006462825064142980885784611984385093174349933158754056846184430872481690382849694454914912112838991744269803554425667205923759401508528758412056238186705431189016681809717891902212293518874279092195515518088868903134477084577771454928357845296172487465733320431666064130222407809409924086148619661646179157317812411352085815169918245541054412567621643344107017351203236836922470239475223198646809466576700844147762711278182037067394773027252712992031143845135201994634708981058146681732870787756102442048074753084204104430163487263326788345044502448423109177551673670760528410517521452293493248028426483884846900209944528626464184203472216570956864347798111036622042605284032034121534186240396136792653976305723917678082394197387937396993118579045446878731500279916476825885174078440005612703428031312415940062560080603168967960775267805585158444773757320409868661508956832617959871934719108242562218826890023341053971891760363056471342188593599166100404311956899866854709529630760786863475180887668213990046769273709484748663262578526322996526490290475572655642628171067361227793268188511621382424146385141980061848256020216207964774601224999669672286852450602851380061764826341859670837636160177178787584787211352425712748345276492317626462574367092266211307733555205683386054307054158740244929003575611165555716998579313100068193328538001828777472325091411581985057695450951287072005765226634271771499575351994237585201083275572559101341983066117809208403270159630241973591496606810901929538788649629120915479131840927623462313114441025278015853644351302631195924384614550783343687132109051148727123095875779712220718360713602361416279336302762006615130143175584243644725271284482860833476749411206799900184731931904696130141786043225526710083095029661516123391400723248127406943374848131945857018441948519546090713962540695926556536231923829498572212861264509463919495411072692219061756817721293282395098163294236973124724084346206764151658372429522369301743268413874102094132231590431123090085591780898098639811472423431259772730725874965450798846085036494035563606421360246367250297582588214239709069638947515852196010056708757617434222006881840186782896407971342119879894242005426232263910916080832822172062383218156600956376613115070352539431370438476406712570736598637047057472995577056332924928706676715784263974841648189874644206273262918091863456951408211126211183077842318805504839023018238559619868972586637538368548518808900275672391487967574758714477044963905966647638840555139832085110518086946733442146964388936519874292945007963579336776306583547913440943749848749178110525952934946088696039617923756363527056828663233569387547828496049149559435581123376296279491108962728456306695903129237389498739064645482345265301124597093691663681984294019757039611050180939637076776957461341673659491868407159799409774921295144753643557051040490718226804775346892192192239665598892640138338542564942877508240456558180339798752807500932132516595562648968432647209508457269426761962032465242536113808128554108098613889932317527610005936827481891930572687927052706681650947384411241352252246216405896697737766266947223060479259376589040545108908727196692960261564605692234708307765972494222517344900495881032587117349851293340748288962822868451406587059582208854635662223796926845772708006242862470839100012713227466932910775957841160555232539427550960060760837053344808069613574798661003456942905048742886541585205718247493430292664502012901522850857613745521097273911088254049019546790225373255943701093302223343533679247915548650890561031509201053297700331149099331914415825403937671038561512589708413151515283217981162509440783844635992698248514779982623836715422818506966671626620176160970567094861125093594209257672502737040835833893160975056783035442840000397002028642333353238003083672757694716706320727156328814513540266545280537056163375657565561560456839735821127233493026657137376157808881484169546069518924508977614582773056447115603672340137375123911334222135099520103561776430770908044730482689991779764687600344803644414864134634689995078455510203029888633384832818107269920008898285719368413891539811167635237013599604776794327352194624941833983034177275287197321653523974783666159883000187013548007254996779481564122250731982077737494936934051592615121472524091331243285352266095099178862420621470761814443651682059066937026972848443035060252191404977551261450446572569712315957976429582179683132072049766762865704713117146597168994141419415585527921329165534108035864539423604397634616953352898463390144370977103171885263352978600986693086698435263934184369703188574390628654710685190800238247922659706695796912922827797760081119896191705187657704715480407623420146901474701230072367200637479414652488488002186972544546370568600472326742201969808221422778472139305509963930666588351205734209536232706833519053743235096424169280243492463752913196824007038389209946820797082050855302650608417290646789432924890422666237149391487185204533360509281927220026678354509006721929344835718740048645258436195009455202553385301501936082754550814836776294317346668701839896632736870667173889783817058514355616626575305893492837995688371566190511746934019853587525067274615771754279297665411243066168857921466304826537623629178636344787320604811685644513319633775974521089142064262107733716871629057910904737837639993403176101329586566017868615084132025994391846880266009194120701567367052752104460254246476622255379685622112998222213661949692780512346135893880093787006445888955300930967808022056712229117324496219466633608501509594916809119443188318875572728807260492048422572695023477727362566817426430792407273243055492388314054863945929521673461205934733108122670744358544306390513548612458469235277295559595081633912403448808461557483165110280565969126047382200962429878618959522873019383292859627993498447285095834161821543866108691365440642590891158969812989744271470860637344088950811207925632434391216048670980372692982232485582499570894311086376548403737521383697754037253509308684024083186592189475434254656819933192028697364168763807805594272649094054318608688358706239930380932489377606395880881692788217232840100800778744685528493009535616813369878218813198796091570780060658751204136810551501389914072160545407320984244571124078690275295563717649969227320973453390327493842246971775604291219637940043929139399369638343123810572712316016546238186080341693779232360806484166851670088458007079905399019138986928867886850125467916825295729795090778140077583729195952592307789852900953749693144648856042018307248366816453488890061641848721314017619792067384253885282960239842855401308933923814117570120808301554188871910117122035439604125881368880489293940966294766794056226564819392253637168630106007982286989053718470719552486361442452983986054972266738139927123232697913526781947508154247515825957071821517477933308380538542252593586879001120176971506948468723239775696021905302772913441798953328457172256959513939845008081855050284617312093463323897674396686784116298253664412222350542063236389978613011604606427642524721199538797765254709899138757333709587544460688181033307915923351694002680509969009201681369502875893937714949331121572415902123622515497269878580423624412748789986559314593826975693143055498179506531441866832732881951302751995672175382370571522522917889973898390630173991729947859647328824514805731576623972746812720692835468599720491582006549321426373785365377765776310542564915637728001898109944412679472769211509560728023628284880601982030177055736035503431347690741276028424070278562450186760493680921796666305062857919256903216092155038298157384365049568333881991420375632076289437684602476610394352022944810101404116840963522222446526698404296402530017006407037233171935220761783135003574256845231020154486184741129462404963288983640551545380230006576243147668415333980526779819872375955284634559435087597530812254078311528564591382669854061989075985920268537279230084147530346162184574848815554875180280750087011486020566300511079526262181650999704624609382003056246103553110403422874336687869698965895714605263601339474029550277428860048235899761603260749857047122184558667132271410069788469581712627149938589828585921462536869196078653561335684500757664674333108632471158007102508635704220042755102796922229828867950516039032784227388738111830329773296824160426832369253343439480561513027747565564224353863128341393926559729662026384969453375872939469025962873887401488070946338065979969831651119290880251192560285817304991084121641799684325236402041202666033906135644140131389322120287306294453261319831333565412520582119529293214940536488230033713781306993375262675257342720547182598519343971228475497423228254040766261730855917977487126298870022667410474706114686980287027351481988793306907804051852169828722319131755837755538329306419343327670587118572766871456496475004679237066771990706913870008711630394429748229895181509410741915838284983000890515633749970923445812684118905572039013809374492672632599147334552216665140583847415931793774701388310929207297257480726892748636254501022618036545799496941836305185203348583061388608915374757681450689048305047432310417567254445678677540565353246244263845011254015881133762879227914457699932454902071005719389024332315818067744447266723176645607682348386279213909238724304151108883374048260207564476757768523134578578434649845829336240746480141597946452143509285544414656623672600705710744294714808993054625246150539546672945745477522309885938349227321181401218199372897274783639130242229542283226581272993978869758174293364400546233397984792366191852240226254562010126296227425623817530051776328637553954276860419576758487868293565801648475164681085067253073869350186544318606782117480706710238606132897325712447823979443239268514685587071759326786933587685471603448961677611716341299667336450589792110754601830123633360691144964188387934121842194935378749966523797515391763059159646103471521214656427472391853965021316325911230816528350294868195657135887476772396290191693199167768645873058755288747597090159188858413402314944535163715820461193929538650063090196878114872520024632500585955097326566975940880924885276626744424667263984945494096333588544944385507082778660432637669558899094233921334532437458692369553584084415785410486788230887659149925858776134937893933817239566126732645860588609983313023881770669293348340480489448144118284346563752808166560294729887698489519112897279950597630327730517769376782997599259573447528148628394441893629920990024135806002423326855203253436464935897752706903435988090388776483528114172898522061576657718974599693126904994274595857748900715017710280050510218508746333748028182672386637611059367212151178910066446038280924572444314173858083144173658768637249757501724180505564815645888269442413625697379292255945902050613210392317227946862868956199674192340073901316879381804182128317285099359198047059989085315255060611129029607455276541605554323462610167088128515203185163523305468450163097876868862516095539218201938430432208578808474078482365115168524579205376362858300472488949906232202771501038935424792067272180390323180854549352300215703224048303575168346141950451837704613129450220640492325433720823309566895789820800186133500506875378551738982296086457926134601229336427894129347237377241183471056719947498813255663024174855112544613530731382508017759590020575525688293535410332940582476334595489119148002630594112285629020991982970892267520245118222001125571579240733650574612758838238123948024110404490718897939017921349177985750287517112124497071036628890526745050625093926019965399546707668561456593004672173104967569904556248663389377247350889687245530867838193979741498390808700712484440614848824896131026973307385912498790374187062600105142158390408876123703653713520292948787650548885182853428248410038398553662313376457670923704477054434480282490886232209658664498591943363119205831620545310144578482233739950955681727341450850356502805930648292718529747212853238817532400077625654889901114846834623218046070717582378163621157379393336563514361265578824300183870597868274534862241033127098248694442254632051824297733063193782880524736277279010236575158387770445736380232431010591330252239746032544228425304763924993687412259412525344274571914357904261985598032355410755517179602225731007940379296322417785536177805088049496315873832128675554297068865951555521682850849181846715119760879072356978603646204109197206493004123150188837770458311397629187009238052681820978751665089521199378270494551399204447989433788484231222487627259892997895482574664348575579264603758622423085401606220231239583793967906186082020738486233385006386037167953946412827981719113119614782167000830808950785445813266954818166386256950925231648219178221346241417591335437979028341423778353888920595668461979810523192825766529383288091196687610481858896454424402205427489691120693335345523517307201395279545216123690563455727025608582660648538391808817916070760661386419533907534631042316314346145514954683921525457176523017627907134670298964119348104686248731091290588286930561548550109865716994317948320400204615028922428325398720403509193836454205680657981934923777973992361643392328441222912416131023681238412309400859555943921238902610148002411843673257218566928685211711743895773556713694403655341882663032196737122047784613967242423934382065575710146521083904110580254990574309270936597181213253729453276129255716033811599327295120079560078112053314636112722208931150147192517953524282097046383536281323733050395799214257143099602033906880057835187398188931411813030607371891553698731169760498551140763775109513049911398393241826775067861293093343419446004710929787141898483801103110274188437832920482839062201145924541976522126891453178721214513312677987845560445615959524975452985753522215468171489841451113842508141055013085489623424362849791041944000953541984782940988043650418337571950530816933625465486685067659486021084403208883697917857456235888145994833927128325817566478148930763018318845031751877025433815121721747380864741836917805118542713928305925515203696154426557927433409517408790292846894847675128182899369369638005209662580963095224478411416233470638867515420150413175353850008132877162808104700188346896555554432576568037656735020267265299682668844678106657495635099985961788943244307515831054977176345323806390582047731811620890740012401492008019238695449202136793024258024646517698310567148501978569587399755567875029661732867079490827566132163830257936527271172357649371977298818387650160046960198076260717297338719586498709909968724717494761114101478259018801182453610215220422049819761816353003398859997872605603757975986803073314752247564007571518792201644858905540902200692157100677635924985723995527632014441216849154357780055265954849998512479780901999090881425545314201117411693915483314820573828041454362718046468662629137358234966482875220896995836290036596212940685485088790079706097153615049303070971447935664014903112055308082409502443841987582416470860586489907394068754413110174450351946487233176746260249006611578886109716268850323904256421665793019714233077714453553878628432514336021250189909452614454005268521377177876674943223919259355906514401227995323657387859633667188679821005112248481754029247501366950050475967084418012637345880106622530400185066981810971904908813022918728763660112598163407302581325662620787942939377308834058169822940480343932468067552000853043214053837036811967449736426643299033781535255022524682542776448272604906490826977213886983755924420723772857806701948407548250245903136671777876794582809712007470914103345397923040702124704789597241630631679390426246365331538246802784629998492955829706777036736178091274486510961319478375542147347260977852214220697744173339302375889154517446218414658881740633219251066399862636936880015612905397748917869227522718660000064868860694384334169568976191047931550407379069948054142393140342772120564176101918465198316227552484709378875008888303178635730728291876730356327135387492718627847836880270457848570870734728184365507652351170625675594045614751081746288865138894890196169187358664401789113965033124828628212773234149566257038143667039496496422017426965254125031386671549257792425824718393040622119315529395247295659610883491077311846506610853782237227650723300729864336816764066348271265966113355194054621502427959882603393437778513689665892077747703809123061987976754485388849348861517902298951335515131781694479389844805510160447538729346020810564239999565313294381811817949168206643422986141748888624688910910401578383578904647033850624225450915261785817209601549590419019808172498633323653239962035299833581288184440031231668441282092157103650031779327671655485926788764291194438852182338965094495108299292607756543518139988333500316594418749015738251515349117302529210911907594922425748307159707103394639477290177111179548387532454308219195710971163136558511133616779926745002254567461727026192658228096930167652635367978562181504406855242502063277431207892459280730831609544932281990578760422714125469899220372255809419313290739795298469074966884973028286127683424450940254197334278386371332162982718868028770488590398165426651312217466506883903438805406628761324151473649801132256835245396445917788087746545702095388905755986962043372578858288766430401486028813478566777522316770085281567031351708699368722839597977614270430443387536740461034096265981400795953733803766082066807101929880983464611253521726264746148090624508435609183266233286147657178873670704326449642375583111810861353206304527313550133893258469803965075894599527870986867736616656527294096627095361899238083435232506453540653636670081238084314212916084893926064757504243607733700769780104862268669732720613130877124288380795136823259604935462698754785069760870906213944467098705043539971706828557773245561833859672584152958438809541003637976907483263922322696763108630399810679689234160825946605411965782508337910051764307196006691422677808031086358949549126660196821689848727980997365188267877731053285059191230360839038340639111365752938473873273964758695119039096129214465780096562782308548525764983192372138419858188049149140812202983666476256389535915309542442102381140094220105435873360217656075153784198983618305840809509579232887231314482568811590029308704194884195222515577142536019696000711634744743935005684563443769003357417602825549108885215323925060878448597881672789669026317200106720647207404594248900508076282339720351383460410116855895150189454592283258699909935831848388833334959057125432197139992855669836826270542692759878814989388955532775219571619884675840926692371227242945252439825238364176386688950239364876702931815150767258597678484923374584494308923193531065125047084459459822932339044945520691951947530503597462788335698461320222129938974906934284023355296263560276993322927250894302020639727851055890584430078972050488044129234894746728867838915026228885291287429527504355650209629422473679346403525512695447933149314320123748438652466578663381046029077025167406752254703544717816861485292245879861896172324465895281971514061410121927327569484710478372857694609245181691687995355804049841241104919757439292511009593142809765921915887014638655140297759601295358470076861168292264437488830903589618611266068498281807295600945732186507395063439570125354825915035368957714669165095764450433626512511991682040885348821839921490374688320638921958396771807212607327885619513135576575243413453665708486593415984435464537694535909031407965508106604946822472145183834665013178906741103928036189001441926004517726990294651912262530275450380603248851883604793646322499054825804957760197408544823830902887041597312047031639348365489265472302515290804077270773036185182519612016624249355133908758669104232950252196222742624256671592982893040431190067957041201008409478265978836503276031030284843132564211053477207583503146038617532938273761710329521381275669939737444185337163250635583905004764405043184655505073040899038926993628862046940269584431506310889786433825298791700659552819878337554177791762887619777502524906729638062184794501401437110271575943654040883382581796441943083330859984775988917685225290274578421689690036843713892403690325632174580396528818827581867775090350407785677282152803744178285539246393030179355759946961952814180998160358562272455412759745369637536195570980535234513266574644682623554839759342756845834543058091598382508947389287692102976887429987118954151732043580651915856132717351681114909835419221182834703657288674488155998026216334728734343000146176038786590013688025581277660263460014492081709590733726661036073624230859884385252469347359660993796975691783492560369338961564602465312090800867027278477415610360008789753367663944924562295092340663833583613251463932391220211410475837363815388273912015906594748848180494898363656362234854214689440077525080023077786376424808628191028182034711831743730349334426177975436953771948128215642985465056109643559380311477664303551338888294851698137863875130749910740463176728759532365533291265947640487356284411750797139047400551332393896195551285697859802047769760052520606805483520547158124294736280121908831151208169368170922796178050408945578359913093476322808015149969889135696881361110514023419878417059507765640482463118885901480833776111552376819383063571431940964257422671435498184739540779481350877889548854413001331746125100043073325401075314242536243267779801060578340073046225673594886885619126692356012329843557726500006474319751470222670528280388950057002152053908057026851688179096653597758126368885914769419797482970011325857658785726696799680032089677189952205029203490718021401691020056286547729600869263802729111469401471195506772843968772487327158127480428597810302450513289974410757541535707520610369102909431370692300027584895321251197846884642301068044903732891922605837738861309121071177058775287031874653045525558154038878565241732495736977488760767011950492894183245918218070770062249502878998405996609728435314033200749819370748032083424556361863165997415001581892543723584147565843571193494334859756354649191752511745608308191804386335764683071924141075004094886850106059961850142045861653689695511475873960660607619517162625250236781435059299927432365421787159533803175923627889878294913269018960179615887369958353631530305030483258619209352221459420820741303977987383790906406212477970343951141630488008217868194136392839249637892044245671039999528975670486179028806273423845473978447281935512811607338126327917421992832097218939696111281497697228426437027540750347640790134533313313245649630288115713553811281549952388263090680098257040325222482141895457311947105049339274555935132042065621536892949366468640905631095853659861276550296528504908502547745982156692951273711332174559075315718029099432588340538699481640996723253122460832108993175248992344381194820664316769432057280142533520526218782872148908350656108741927216443745740883270167599430945650145995388325564824040661128333322934694473822981475820213179753550555457762429632551222563613964468549978940344397493681610165919412356501732770121225749665266463117307115734836669975131418259115846143281085787581342173761329838207675195559755419571723966422267645474652002119862782287820240364525990263546177059646470411832300096579549024871371179156318995621081675428352688809117989183270015100894309335022655098804172681489088122912870829521097664154447618330981136912789774771229802021332127465898526346719266245553883192771449991408341010595248725690306547673218555781410028384420588904146821096690543375552065329134232041114944410077245985564152890121622584263525511470785955532136098809328950696448376187763252594271087013146790767502763259873257667911904342826270514752453649423116904215703592269758532102311719445897478681723215611444092844987448122559723161679444150344586844820617812142689172348256874778766278361683677432494087732449489886910631126003804788658181342462107208455447364215184728768745937138298428035092082752117689938459491096246243754536774918274654184673474592704974484254733962575419899408081139888096178870114520143244990958695292621402193397300316065173591893933235875413795465408213880912747306543545173566449093275849006172638897645842184591345904519770084034522599909618879193398402889543235627906082493689415463236116775294038268346235551942863309956512636968001156488804892946266193646523184340988345860273058541333874462705453538350203975715425221285252128218301302993326617904122269238706146828426457480684458555758248668872135025417309371260417969124276481319974611402653413800502024718139556939770266513648400947926201458975913818166904817723165938055052706907683977461845530991260231230083999798410760478293851415988787247984223909143764543073187654518909532650231094774263686363967956510279954330455019629951028984142909911558001888557617770337346744546784876147552509669944506590337393015003131608383205997298445703580164953993575687340656022199212181567045592086580305446081036536888051972130577603369779128213097605368580630079515176056476299641062473983496958999491685187097498944409345983593523263468128802598854253196513163595894431454200681572435605398018596809437149428655669441490034911155697973461530423686606894504700045389192164359456291222042045415548339781836115512898331262102507696743692985516832037854186774223763371695145553084726091429391925640068094877398787536390431328452109577870245721680367654253697556693376916893721596826427575374494974180054169944270856774686279433457412781934597508929237014499253445514353396620616846162869463188341163816873263566096684426618168508783583022017268272795159491962988946547141503006699417879085694450273240803777842715034138537355605050774296153837658200559422209594072775101931880464424558912948593645383784405015959209169180992093220851226729247492051440151722161097921221026915723023656934985512430923066030593657798502968717352913344997241629647348256737640787833029427750736521959651753951173284253848099934666697011854131164051894952655495008143931482664881444646402094078323539342361234953898624815016462628725140684415403232410303812921202843427583407715871458381042016886254561952959225028937503794382926040209740029765913066860659527553275106987944541433996555161949869209406591523820117276786661628344383124816662520388365762541266998454645663056269563005241453508164490795914799096477820024481302876707249446871007039715991137593470149710862440766515214719893306301860213050480860703451838006279564187122853624232806654123242592970910977002929721219947444262285433086841273379116269847520854823004156905721012202655469803567154815773525190469140430937889334079783576638924079458310538093398617146133213150026795797258189622905766151199162409991932632150599824681596120350861961621851409553835077370973816551296513520263189529392435623951453903175442236331306573901918412314589429905606842925375989779182457369869473304239369233735211154133584762038181426924586220681605170577372233329961192988887052130039696680004463367180969237088530503608758432040275575677296700500709344562921987559009851741611710104989587970844695219578481169471998915071084496263525467031605791774211693822077220932352600571823423623934394111679245840915260616864130025591430568111117797082777361518323078893856675090928097083693313274270041040190294614437259108134835491707410473230297562216932801692770491932893191411149088697243890420492218758259799706756439265596940213811426712898167295742804076468583369870354233990641206190892587349011664057030824007649122612850101872935100246046182225683153238261980699821183840107194822899896073720109075703401473266785003056258389980498071984977342319019174724659837227207421085576954325059034070334050482242261430876280888342016729941844956162886958921347234185767972108198054618158397333178314797813928850648258250881896576169717918714150170609154500399663989704484130921254691232004758442453751004184464771049347738441125798496196654994341689026437129512680562302820852708780439998811778775264384182314057616524661931188606904051324232395317331395144937095686946093074693141642761616609318597058895663525960237753074830431316525457281206579123672849821857534745553875476826027002266247481546710531782539114273717207458271650962764009915847504336343182654635440264040597328437116507225403265136655394981890509934793798198580697821865502181327039315360049815369763298650553658774363415217958775612451858034830994833708860254890915258282377983668348739557098706627632980572519218791453602855717737671378299615779605186852177462472797744589456125497437428319048153508095360334517620186222460126046248802268144890302086995405340681415438518493965990384591117458690409573581466833603032345644628063430524441222099497111347024145602396931181520775528928748789363961892837294870079331117133257969760228398317745577545861299311051810723969487657942820375588446207770717323413389041519555404647557632702765338010792659045019913999111486319557132221245993272985911849735013224173775276724983321615737118005690929970080181244718689665787726800545551153681979719882684807894522754243348703672318842103520350485308724115445938475496586200922220756979932033803693719701186206867854194952555633246609115865504217061767650666487720230673352128712295728646285932926867706130769255514137249340019276522485394327005956196410907039162084403283279898661939875924646768939114950318280834793998604665837250695021325692175649023887656152401852170122116212746858948178985028647447787288052235235682285203593722441279936637967428244839643780680849492301720946887777425186607959324537172908026139941096976765466340943127143436880658920699238896633992377814747893502809437366027590036462416130091873498595963428047847369567350496512427843588542222945033800113262003971584611455196041542091202354470533820147803874100072252486231838881937801921658210374416709758573537411340839395522857874706821842943745044891824751438878123345558634507762627021771657630862420917470500401708664012755923070392599025709615495474257433275765180189688338285495571322884859164029072281974743908432916254992336031309377259116244716487414226815761994432461605729560600777557271214775550282195708859876103086165269974345677368493453307531078550952036834215382026867636799048087551299768255483326900052195031300284825693688810115009007083340100905416054397050104488012412314251727926697809424662461608953113615416805309768800790622553127495864955698799918885362553006113245833548285750636948822557373040371925279780093240196575453942601949749977794696391673674187369879878250594371175061368451255835800714655979918322786715428353719341954906222489359562248723500159655159582036027828741745205135745484097432753825755521956807347778912724295252854753774163105437122739220305406631653946079295428011949722859868862620959705771365767457694642298585674040854993161468923354856786331441819221221368862997065403171115279792138934362829963788413277829395098920549556847867473011837384550561314781570541630118146051812583181526609932668565644749486427236111006399020153193412882598321073694949529160862702977939042236362515914082470343247036819246398275189526910227950314933730899837799279245439411604715911973315412320997178133722888601536303280053212834939228219427985955455416679258510853206403209848850627815661621488128466767270416201689843688069485991007452575301982376453842056047226797984563260150554934161892553326356677175294303411190187870568223554712015982950289360956336836118560837692702315069334026594230419562045967244077011364731694969106130497283217640846953353920648150058350182558510308549034880383374818319442188130958477422037695226471444172459939593411907054416363079721417685593828641120947165620194101307656939546975599640082976005354188661788231110201727155730225505952903350137402586928542771974669844636030298141183451832193293466211910497206119736836295670334194277916762383415463921665589720671002110390859686683905281737196527813921345015475687862913183328433454758072201247546748768289818923468803249712157862218584652381817916033876220544502610535277301691773664780882417390884452589138524041891705393013605620502532289090913146599752230465464962648727050504279856355249995689435484656290533528389052407476828234694425124220524321460496911515995027451192115682913619877757442997508199457149787740475436646671218367186399859386477584804973795743103135561069226488933237941886210343030099671295756250603303590322176674941553563372391168890323669273923796055594782223183502575769569048499578355341992708004537102909673080487193192187349050957832790929334097901123050953551778787974257302591266151473309719502128366443945796395942721434847918265638596525320195043897241592694683925242421860380728712661664237383521768393446568942250005575813151840308505972561946962356965072584850934813782928372217068228979426416542578445420092847486454285138283727783813351358194082795357922839889739911377359314873156434126855773893828279744037394038580890547585376469202656818166100037622459230782536902831976059742661345582628952000747175198661393484522858606709892291398600737672164274502184189906875128210516407142066063895878028324319775810884437261383554629612460612810338131101281474830649250015655123906492637605631557241505944464475789719349309910266809570814842381048841857925500513676842913511411251757939022262587400884536416338712775753025819623722715907425554757340119363083529254662769457148113386654846390212303691690580495406784173105594659185983035030658313990683169764838761011995193662536138889762266165084667337594784663042039384465890384648834728228452379531706994116136410819446969967244407469283923641305679339230152919108360753578089544072265784231508405883419547823568799736621842186804968764307531395163670366263754439135185429397386393035047322416695286543843954922710470012092173801038357609531156944974648759568577239395946125495083017942186451249760690958553284814130398283321957441569941230839326637951758977091254917797311845939926153452213996141098349106184057736741482444413357246529150310050804462575025374527545985515392948604233021458280713117375319139408935171215518043017046220554479737669667478931730962714817804320524153739850169540905116883068125314868090439523232437602316225250438836689868570661653066181904568527474665587161772658516507341550659451756136678425907159518526492326611989419927697833028837779411117501447410422908089023660833919406521113932372676135978853892342828890089773054733631268033251710912983926148497000542686160299429609638488644406004910294550396652917023423634660650422229602109878588006944215698577053669844841086867310506963029609061934231606638748990018828949512561559110240446282053159377096842656480346033781731481405384504499075920355090644590990909144525972567149530282726452152739661221826041346147501028649224457265765754529032405471437060123443121775206577764552719001153953342505418075391219150598379852615733705162295441197030788874317399891457948253499871589694378773437376751615663954647624352081865315975103666897077758328386505752358050171402323620418208538777467983029508442338331103745806536419079447497062847706547679482962188669259068217600673139160665816078583284251386246833062603366795467912492230323889295687728947612151536396030940627653119766901091138048740549377875158608275732363545668580674906271659721599029921867086138968951373706831731568009195548277920465055777750668885211866929765211039077863184433695906723520283999964323963876867320361379164668679503112179126791204942268631969522649415260318384601653704509259257880042440594434946762285550854525566020694226877321894633390276715358202225470331223479856682702825245988012346839537763551746891225367881238189199546378441270332418737376332561304223327118444507497424223782661970461040111226532758895572384985057636480494092480401111627708715552798840790361257278835912414460810333685676978349582569733383995616923989000850293535342999657406963779502140851903006449547774735484116840551028776110864198567266226787228785939335839702878835954512635880762654146340514808297800269911581141860547629512881994308386653204842674055555102533227461342219931036194777204952433882117850322504622922142456955550033137758428571026505201688448712793185637412607277411417869893971542267276322865848616967758187395294670929434525373350650056960134607318025776790991551345034841583984675265057374239747147481254009357819535459734584707650074470973254939310359524408780242766698463084264446386736380162865119392598513341956303926559571167112304497992321173606848975917558263162239022622489846228657935727962491037640382310408048197494285927024632127390069050749887731732188546893642438942096492856644246175264232707272793308155715588664841631953161411736909081320190273895284251549967224303489023763280543729161398227252990836908892497388522995923775450126780887326119546163620900490104565727238121860734029185447799535289959211945518805213829562617740804127330379420903678075311256760080426049507406190564878080502343735589161553899274656330762008009969129076100632053732312693727962007390543343746221025899572139788919097031755019735593786924046361116027206338338409032239894189167224940658460386883599127252142008927927430986616350795728379051438551387295271129836678961619181394864073685794226166711785990514038234729140090097922491302499787040038054145640642906637903922523044921716095890520281781615990117043582891340913588943930495096599605113324294482509836510749851489015128230584721525802518501199967290923019534159104663497514809765758541954441938660301023932894081909479278480783045240452965721750860347225859417577247107124427077986907209955806822251978998647932984732830779343237408852481802412599360762807499552231046321991068299808118204157702024037867235236304158690964281330364662533949494024268686257659183352224135410200488785056997471685240672865751943425706257347366754736503125572083747217077731732426112803077590654692395022906758282061276734984710635197644664427167209384615607255682037913752094903953881686272030842192749330119689065021855424299174257922262045088519366428928772287755130094773646300064241099299000459324667735313744405486684875877715788647542882513257102499583552305099040681646341314573144849393869833134777427352150116669767950323492087026670633342677121526488087953659299373518992420672251194807313265923343577207964529777754867438424768926160681733916928124635913549460964501115658857292538244691171975572851078655298454278716583023412111155300074663525550482452345410485731877910034762330588407257833498442549880584587627134845326920402256838316423222370976454714050912364134406361959220500003871490019578335980781008598886055972848479116532070874593435630802187162111489589626800897330821420606706376919309905812237161050163381359939183593187130304492618018971089282042610031614996598585966795900943374721233344389517882139213168961373456008847211834055370417390886550221553897742480597895417234353658614901584283694749006043088952560611138755438584962726915091086239755480590136238040358262600530735745124871077414263477512509773977309390725282336321002648028822972706410952010528838078676946203715639576047661145005808047717642728780013131277413244302723408851298968560383152465747436798237046012790757806089242271283222644030799006153231410207971238005338205305121911738709301983853679081734700155973475132833216025461225027248671258349531573900562069353295402359717153946924644274388027596148649412924752773374134950714878033537786636311856230615348675776706325490186829580038258788485176455630870877721920831838898622536779155140403649128193327234646410410420881109312609839618401855846370235435946724857491530908048594183126096729940667484419440084259832175480334598617400200431378508286183299756817765710311963158186599504906723797917873672190751564065343776447630621705766985670874922707502808767246204225353894474142413436311016643663969988087857335045346724540669218104268811566954384513391960569769130745213394121929508769111217525555025022707891471738006854236503032373748677870255838905989363050210087166469785711805166173156702947958588442627198410355094621510005467265326668617442935116210475673902419773096614724220870452411170743338851786662622838975950520312887201895235448217394782194244399758999835006078041238792193065679325724872870197685892465232506696114739730088004771044338654372268843956825008857164813094684461270956543139557547580507935142675631381936217024229731878481227768318957407048462335383621659586843308579628537616031367647478472565866092667662925760874527312462223550441586597063699892768170434994116812797928212969226927665070866724480088023309789282035593082888597853534119785021182140046842505467402549771417333366895230491683144437629773482720505996184279601382438264090054050050543899562203257694031141072966938554123861845341651357163376862041548822631196037539535157965115615791687520081674536224127084386082271549504444160687673507152786736164990684079102050438446012308262194961869244003083142930447840925631186320777512643059419959491771706413089068677746385439177938197576164468111066389323583618409159532116359788090633295173261028171014866694864396113101717553654033227890444701001976312123410764636362458309773268932593277419195714992449855964697617304672915269924740555769815934966307737547040710403479749755177108493121353924293299736757220293459757588025764039177569051215528023145210293130499653339373023200920505409685661504058680341637934252197386129365897185693312537414578482782700860598921654039560817318742975871919106932757121799520873208269818635984600672764338764820681561136791228409737944035561387140597390368679930474236923503106534214666419163614019702393423257526942990274693396440815930157918795154429053346261410491553156884501255855500091332206111270101844350069521746173065959864168810938163042497608770615457839544937918719179778214050225790496722122077816023801492381294008546323714040529727769335214212268461859782117443585242059109702894198462468999523242239816555904667713228763619601838487431946537298122963352740628643961041759162471820635419743568571300716754368106285383585873611414883279233104600613445141308647000247195647216798552823676900196362140435649853331976888064888620020461779025580227094968342346108349257247535445213392688736939312898504859588223281475103811888094604514397803692352923365109003413934584678504122917413504943706196058666194826656431821665662964560637334750932895534325174972737913622427082393564558244327306600773155471301780840169319607522344183992270011897688984844635055266072691642378379008047941617684334383228458537684138118251167756383889258394020120613567446919670757527804706934458182769157795686023249588411602895983784051152559797838818410290147847623450896702896672888896476579778230699798819270883513493304458981708646817971112838182002044197499117721541034205165427027031999846634914695207615986506848852203163287322590381506483550100084517784375450743614505922194240241872628249035634126526431192655030406320257536605315091862694230400933310248298609192470044115776935057387004285904866973642307055861273564020540482677643880903258027885087690994809257329017331171653054678392387839859920844949442823545511110755671417941567061971198641995640898197469650383598560001537763197865942684706532072913018346587824492507819878301123504261299130804129377867117144174364941704130959984277496152385231195216354157162041855426172577328975427489642524558369008052069719897834053279524962832641569341561399857286730987422621402885181286001908460323175013330780748312361641782613805117793371447041481211899591909802237467877728128904530357995934005672043056440449354780269634646397191566000926368642173474117619390641454023179390631738285189036523986290070998309862522489234371226060985810304095763885109243895097633649477485841674766441412104426996776851984981650675379539545328708054990529826809162734102724026108419569462737591630570306936049304955176029167714525673235033671309570781769610890255690131338374511581734260872080919768962376158247232799696762659491769689035000181087114738574349836409909279336945471815629034528700893317786462600184845835027509394656574351979662469396278967133275300103362167058028060203271745531773549327571281289722301694317565952958213137736407650325824120958394227661748987572818484763028751860746198159530914517767537614228781538324691582039685564713187068248641469435543418642408986534022652979350425310530745564744585987765188270858920942199651867033066055402432358530574124988971883964658269498141403272968040098567409447220294441441026819291341109421874151328287331079823292514506610782792101218010311197042776907694303544975283057095089336353333318510969023890698062935716343038815074851498982790171065936441270747611298518681777313704723445403745600286219167913221365782707024079509967914180334821962558626695197436112488465946582728765644989771594444211823492755174989682744838464215544522543357771015711153126469088386801039213792718885796109842454401760358927360092579861974341024609362898969559726019190217380700975580237538083550621119923314740908846814351990335032977622554102622476650244698571713535726528821856861123930221223530219051627735697412863498354083903277354810508071163896557294476684579217411209448401996556143553068983086120849486986451710667370769181572544604668202820526485233586992499908059551927828814586941368229897692946966657523038260343104885807605511708300919710119849253648072836156976781877422150711037399536927661524524496535091003452889597770297427788541533978588106607156894926213082779492654943621073456967878550687385561133352065110009516722384444353315866717983535953576451196680957452740004243401544004906266613796295747065274075783714609400233265567720783707945010252698047934975995363121472488812065999504473245405295694916113543765127592357126014280388914399713206284195468196885884175292922668864426214340633843235449035871836990505347094758449581539405452988391465186318150939736233214054509690894535311623502316264542428788803218861917253625798092179692510697663155348667212890255353427663211799541889440802311171241078910639117913801116908415614710432641203243520194668781977732716307048851095190043634508471386726771537892816556212509319933084617355227009185624196261048152846404552681817698323603329448717990508744856244052584667057078202967384386993693546543645644472300445362273752665314529921962230988117645680676713978543791658473209504694430438488370771865018432569270115171349496173698078242694080406450092250682393379568371761215390570823858548291004571562854052309447709233679921158488718861524422945904780396105235477529451843291821776470401267419025562578477103968755033652996221448817935264058678133326215920913490441894123125521539959779526570682574624076495486611392481467006572277196024957345080584087022130787994543507255603602188951099248370331300766185308525391274076920389698099676917560701484757577914252713802209415938774884940496468312025721533555806488881999490244912487443870269648190456178567151821532142145868896572634255779575626527006292978459645061748964253000210922479818088894625167573273500296771470503279987579899629127928746607578196479484752392035222645594063126283248417539754817457010657092602259317232087409327491400979781869702601437421478631793853130815571167180161841988500770608288114464967535146217195521385239251104198410816414048220442494178279538017357430963694436495063518748203960509107089209844314167840644619109367713615057721430047516429278462760612587932649555864471865902984818220160210049977198361803778211895956516892253934182635010371363211577812146023709366910632191188391695270536319994253584490860239808314298724363262584106915366179150117100345827398845023001900255774774312143342156091021425630047292952168051282215647987913148361230334611027752033829796984764875107530862096284647678635312023068605098718087512822655052819891699944505458252874274597063402296033568538869497993828280147109986008705956848412151964733434766337627435135600524136353719011479120299222531533188660251537706833101548890999536990171736942984470666770482793224482341820656742587914678111518974774907255848915546647004332922203989506494527707553293229942626743329882814282556896573326678657561933719593908066429191475031113284467514873963577287934298975641336042658143050921348136798528882925725159524636866705264718983961963598492113415695319863804558148479071780907869529272791840452294301029428367110839506348425063820855586539232765452862272664883418507487413938549307417630279555031029081367706943028970120253177018494182091497923829631656022298361980348204057952319381326654609721358839304485216628721435257511372368450592929824956114742268292183057942653346922593252263720317019199984476757154104896916082005560929388043856153939388610800038893141551425198807281346757093933154300525690378371445159973023442914505699864146759503031812715272789425023834667263317333745588099435443950036775670310919094071611411540557340884834283353599319214437106006859366026469934657200936031623444263821514244283917159614658131742473170515632534823793147494492006979548016468218988433275915280709539882126839893642318106548904480489276848921854710676978861350333524498113861637395731026802516423133941154981062670497502013612853271679450641310008468510052112136399583903140226191080728990981630702063541311154226660786954871773820214105474014024032631964563930096218551712914326524427459441441827560214455153440454002874324957770584494080984033027258180963179652491735070149484668415725465928994947623637005980489039657631382402769423666262269015147894711690498025494902525878222068537260457330359730907758353931703088870854234953122303180229287959906405017737334421306274314312861522090518089923909090287912051223118684602413327860975002467507917126057740457529256436482325915999316644509890191461480286002548234387196903373987053600376311002385030885515627394262315739071459324738698502972134778226071168099600604407499093418534005721719934091308208823412305076123526962124545508422240149861662157316029979040149669949172746237826730178940942495960688437738947431540589473271470169619858250912821571405308578466191861322806103650342003901308140379286128430225378811284489468830537103303123570043462316590768763089808395415916852054588094762371192788990746785753669928142352470441171665252891003605377559735588435425423746517694185144707314525476876928997005954613496803973823293623899801986205650562460668131022520368054832484334969568965310038523754667587856799400946425372666150546757091298762361926700835987626785550302863066879939226509937739884608390668208206623012461299730378011574829644982605247059002013885624414633410581453363132825605320520059292648083031321203507877662958464544189169537342428139035162929142250483903626144425573581074868348925185396565314981963055712419995035132382195118696723815145833934908285975599196697217045343043273161935718967626863978978868443886119041809441858258695796026345630375524775831115431147620359386985073776707427651082481928976810133859699786143424430006768439420759554957407609325016782399296004574035775833310658604115555081469085084839959586167662512905315303224394011724448874034522407180535221879714738531321688962602853125348758585567251370781868635211696331105720317223706046781195086114266665602658062908484881723155659726462424913746676244614371952845693522156184400208981301595486002990251885850735730715293231231813184991789363734145399134110220355654105101077243598605563174827784724013798347463097245382607007851025263816602743671093497686779609742645392324196337989768248442209801913305485964528681424629087353705341164347696964729667525830078693093079849842711687904408338186326775973380325268242243329680739506418067156560271426821123031234294855165365321526945761064682470070767932911101196016546877992087415062186924352558605660814350070546365728251289908986529882762656823007437703610580622266454799657003762714425715772581268682546629468723995640650972832407761438918770424976762342214513091793687746062916851839024680313643989741696135882918597365538906457751308119345519829181491284576515229964072629833896418739380246322470736392768595129132896252267569031289898208892471349570142944686822655595752774582282842997280977738321273253051416992465522506661465591357598655474894260157123808779428472791143722367111530382747753341424240717948860202834057759385860474399509433265113648775432422147266313648590577719435372785810437183379009517981796311350895996055705684217532144079895592318480852487808367550068345948393424783285656352476418949336492249297708858162423150204913980435904498100431493233010594490247471847639893163168444347404750568117237464392161343183812685470940210927957187993693138600003846851436845821166800218282012999174809263989098956653940582958886002827448026999169801064240492426581075921272469063099245607421661169418389720402845531707331523151114205678509496575612039007683156747627210704573566171878402962624872115917692632706359138767846553619998598318230451455400969742685037750120083213320695886019730512187085418438806108838143347134325666897926277024434199218076863100164857338404082407585399136557908117839085420629330681229472933559716393679462033539152709063720694673423381513834269471410243982243883086676898962441571506447479056693233180852464295629231016005111864095688006805225939654913797813563666278658482540460687315167516856587130530521158705592738375347868908081484472246840335277000011912546712330388861562966960158721813302472824787916219784911643328606722244635288310532085836045805147849852094422354984713141131881735244076916983817007803170683363615105313355153309584662365539260080212583362096679555444629622348692244319084746391935174960159592862044537991279244395476191279923041584432891273052169124081319234088661680918543382424029454461017088275160881042747219249209453946970268602852630794031070690991309220431159645042981910857994426090015245142428334158154882276758200364152510502790358004805342809230236998208941459463316935938990700155598350644690822444986197170443076286932014459515648487770125948501151405397979633930100438405319067907436471299584718332138871109099823566722126380548683874189401010754001378810183931591488087478658787950015155396440761625775081863582179310117261440466688848182194560440513792488319715457124384193438967247551444236658936471851822607188363875070459294519811236411780972307434095521941405244642200902221666865483560810185144317155508745203070668135820388435215498794496039494729606547080639824562739470639744064051378929533572858668999008599086906703943434870800817607140504325690320088153694716707609996780837875260810732992479498173332139531838778328235916737012583124289064735474215088782551498414142350130167267508217911100255797251742760073937319214210392603297081076981905898803891618138257991444343221052915690578788474582111038266054989466937643057282009457407529253361163657509360063673498502843887265817107259941078493030813011758648611583290660573274270603069996948240058608640332505107457077136203520688649462344119056316806989240695412565563981942471888922035224322609723175488853172826677391037572371010673933766380898151584267604685203620367240789149018792735561807661755878181538307145722038817729718759389566296149750567853450813459765928283718236719243140097410543729784451016257543958762457903820890293493150148104836451353888928030438603690164265892316220721896665193559162749795504800925551595190461860679188081872269702979622020888002487787177912581021178942507276131979543109624664019772097232261002686374553001861908859825656562652793660854078228115251551182617048217569561541627851396377824799523943593124697524369059218677942638333073373920923189034739655757396649098205261877727084616955873614559295219812689331644338239731423847261594530885254088718865776402238510510879731017225228452997694761737582499526324714118173016020183311191811222813508856982100481816114616760485187369995611471710489695145284969675812583453612978034773231329653596522390633574214202049904797794971403687215328070643579877121283723586718612328481014289386688570376207234844796759291442195386422012108207798876551102503115293716932919965153887804251625602574632408504228844997762389469269631528657293741343016936007603532936970641782778773779306501056973945611621924033667640309078354145513831643488944997923755781587501445520648693471308649833007389808805689434606520734875952488738145285633118869663717726065392901299624512136216182124975855109246086067032927819860265252326322826483572273239183834925820212759389405715304112736281883610271502536481549937009962498261244882629179867282497649487437523772188232702328607878674144646760756001820948906734657407576764552556364224302120916796372613211785524325445167266178454961087379037460663294176926463458502392755446300306386677951156431097661700950080536746629214903192289315461344795220517567305078224066541216430977472513044952288499254238165437964069910930372676864436987715967455838788178236999390729136295113565859212624706051237992070984453068067510219235976258038209179599403622932241600021449483069498884798402571157588664260148826172477609227552782493180061245468044327036949428051996932474056765621398689679454104577806793818986787438960315493080875448508708413969377697387704317742865816964018711318755551398374341494804367385069109968928340845548658831507829804444292178135196816520654596288592489947217333292060737007254838521659865898890770988354659504458514681125195787272983135614348787393577890165063107586440694448397384650888544124079935717189272387604339267541421182404624139090542938706128239046744918290461763858177673659738693310685073570068839226144004967522441094393867947431047301757352214306870791138992751983374317080328301799688937442731252158213563170635121945802432086185211252156360948410862749282768825625016862899405981589304199588164286788710762011095607597412872305221317126050716005368280281377723429999177300500943273641748740893193172289404803345998552264108929822154491181471363488518083295243711560960510757651097870387631281243959587830946173490398347583369466057915452205895914405691865609642765085245895705877482881204132612392858948735235603381043140003572891237856274325025046365007438900955727406369494461883652866605437261524541722058298308509659364828419586961691157259324198273583245853831440167068161487347508612648751989780776187917496827001171248189184661389879780761149572613782398415346224573473913376690617788060546347492480215010001624112121713945435621200002729273788090686389119833516081162870910443237307015978376805284281909521539008995468145604809347727238999210771270883119994083118190220414788829239645428650979881116428598216955662881290310706500009320237365625675484437417993110218176231008020140461666848991344989424122449701917555764928542399239724820650415253703922881058863411919720344394148701657599845533847868765677734770917667146803823673134016398284078802053495468329590014417804615539401292235930446998544589414974439097524012233423549654251547589721418489379143502778941401688528164981439552982955401128307290595547761225000882002512272561369373743769265949008737460443447568747917170247900735627167818337666364901040589004908919037464562017867738315369910284000822875981974853524725020143724210479284879675997055778633111140447469807882752130953990808031170918739221378473632263320076649516350510825897887220534451471505163639234558623587477446622427362128110925795828761191662541536846573185406772626628180746456123652705702613999291616530551980465265030554548499179403755411083989139053949669149956241308657657440203839651663557873061789061420797246175671478853580693617001984457984350911655102002273651984534847982496446187446258304767464826173612333863217678883125049127792009266884842381818548089727394461806922746549046732109474947459117309631426559931051181446498491646573488929909562360569180745378234301662743162359500345076371867998693071862950698331108755676876752095740314348590022881123782362422610194674169308424929581882290971159753012490415058393440528022350651030862184459727403529392769896469538546962372842851718870062273433716976454998828682355302327643503763520442330312191859473589456042668354496126899092401308998337870135124523948795384596903934247060924693398335944514283381668768390601454197079224731086282168592765472336421218078738429972932575872522741969211008889948349564227696402311427539124474432419589510468682513841571172266308178034083469444691605476793293889420433966208647272271340585034694769837848111659256157715352284042764824972916255731478640882004014719734509654777030128475568141016328618137324409859068562663716058890707199676569693695577718697000834782679846572398312806248566411958355946686463368241014706634969054555589265162962210076841661897345442324855875315765411575235082441977440508940990094515586829666106709670902421885672635130220769461647419610124835004883243990996858554186876677309613636285574990531672834279055520874941700667820958305569962494777334336350713831665009160994458603070199120636209472616281628154305055797300197875513378835228335930191701502437749238293956379358962954953801061735070050621153794116136924540177933110673136807906291585771153435290634174027337465251218836939159355205715254803914101411607607349325512865322420066828708349329470271123823044819108063670170555516816605161708525775389709427072966869302260064896574146620726150470861373723724645325437825575900925675384226193084201930141705544579737519753004704168611858973324224553893793995888972573965585786621204211377058501004153632473380634849308781705566061533411288607376743432071404068751768453010249189447882289246709247645453578114727268341198125157937479385901365363192228537725907459494891650089063531037329346048208127547665544803346897509941733772273008008835138661216396087695080332774463275202112383366389075701736586883407143249573763761318902317957201193318346840757130035560035891019144267179484864097507034891571557880121672194813174243874698484019368355064257538885953635406457845952580263489405368485245661207135202821836091210728244860357098485986214991107205603824591948598298235436647477244318744362593852443193498859769508476998303011442779166402353624406948893643366651912063300227069643142891417815651576241366067940864427739315087645327820000514311441693845021360245385952735824128082284051480072499505950421581980220321191170380602272622853152778225079828160184848044638845423818778217104534761659376260729708884217699804406003609507163059379235337276032567908429663771490318446980759242293061592887578809375455664416098881032273324326116095521520558655728808412282000087549230838283980249303701852920622387709877042781012562268286458258207489374506573468058957357127024469933040752354544863848261179497749065229880663969154916194567573417174146656667761558913022851724937498914231544042036008376023193268910997554626585144244130691699988162808907485969048306877241500910924822607221195366278356268888066691714551472040654698672446134183927546666394924222757872605386194266203793909264926951308081431676592825048764721048635839380560930913730692084838813775627306414915510911084412526884282244779976582804516708878961001559623254578416946031392298780545287215559674980408504622708262598609921560665677605919647866196535011861033873012068186269889831755538563493334962036254588905835397049964181414344002208060299886141346858423913934015356423247214253014285912056576385693562776247087717263782078595318143314668428861440577879484394185441455390118963375663753705902427878782986981491497904899821810205290687974249099428432273239292737922935894937563460447117413461811876377556755317135332869446788663368525299779133888406252053557672745226875909425026988026230290295919800718727154390507570920489474278808112161753705708177786065723273944368967597196132409349773380717748506768066110002497094831775850489613168171047157601328115997979669711796489374936580182829314688532667068635647384591938163006141247385388455900458292731183045319492375073949535971393532734157355851621085639294721898095939341482083584956933469183118947980144332181463352839107766288844960868696378265107375503636164492166918087904910333994848244220747450873791935474569615644102072323320090426503949670459479467217232231410461977817923227968911516033387085969994751284280501000750793666686448833626725037759025211026258813348489287313666404959347028020629670055707734062202975577334989184277808485032949241500065621022687299216940843023786907112148745940890504767609155597377014065431151364199391015322169319775060536264632456293786010408510259722532517309265096592347969499224833117681165948060880008261892370405949807704001739674582189242954895071687713310010397851533534531471068595709445060537335919536586171963149700601821601511678164458777993723274548437021671969832403521589516853551392478205591282796153491663015145805178884114809718670698427226473253962785688562186013575514802584119125786169815402760912705074195114039656379289828828522740860145039535211265389538838677939951729586292709478412739115243311292594640007261346492499726818109451514403360630052871288117634557474400496852423343398859029913064236650173092311725493223569364627082647365396147019361465648808236638568712743118146280242967084161021875899860964969235031298244682022862410158118338086958732157760182237896180157677998926335274840895731040846106853771869639844131858461150414828730502311806695986341793389531746981770668663525117787844575853111495225289209150428157492245559138471133042715891355341114234956673240438530735724622868469222840837937344847060291693601399304095065459619003081838025272825630822093726975275298952076633889581100393467050195502721525407078422203158690015995130826384841974877768499169239221965372316654475744076410100996506171262795901780988192588847792708101654593733253528412802007575104825911652513757834010089518476852491018622117355534863696984157401995560286512422361874058340908447687897154212595303559132707207606150897381979948118563835674506257294695134369167891826306650795243115582636437199760377444620187910161354244770062736476565491962676164446807721909229290808662281129598849247811486715342571553676031195245475615652369677038537047688660469802138524803056117638206875750675813641286287801377651406190726700233097845877669182283339165129078707608669375171168917416276908095517572796980520168210271626213606970604160915617887053054072097976849302663763896866273605011398898836733591351396031547428897471385416969392931830868002123289632959938127165372211852951450167108432074694204902097667007422827466722215683386341302328609110460240156123049845591409523921046097565436483444615085503749970595533666022134626048399601227327364191069494399224652457000523913622733338328497275573933564959431552309012332305634341523510569628228677882109308461215686611444387076095828406715187534980897143310274396702320728683010530558547406112071090359352224531897377489287212239388744316548020903900810810885266922772461931438252909725863112461577955027598220706166870804876950054241987556204669927466398863934848684014223352872821444039547842289174547658271945439737217167460006085368620665973430515242833272893912510779922817171405917223602073852789264208037379292786435578021158357573583590602073781354710814495049045918321175530154501983683585986992326799363224360435624602028470500658345386692633431478982991467853814916433293733770647285611977754717802105720656241678062049249605068101450554440008369158538639919640558302728633212102715925478049198906708906687151219434944169901581812162969164529656672888226173464699874380606663650125491935299515634267061483686297879194828582851812784137702694022167558068283567621527125100272253217550117539167618570824410005697863552015457177509609839035001282512873029138851759746097154637478515816291219002842149372840941016515570616862064622207366895549393145435182266250177371479799689206120653252754184139144761139221521346140692864193558216544796702536944885444171239433349986029802709850271418159541678025432450545151692226883222768070584168571088248940081080598243638806930494014003605405882514727455882582328529765554366006097614188174543950683518994306440767709734158274975433460741103268881973632510295986891271391832732394065467765205701268560215837385465875625128673719730520083545205711511563796715242285437561231936717685670090063735425030945510191851196229951403259743792093543742091184315511683498513254915865438192839955738312594536724825067114738962967299087888584888259970107422725250403548180496285225705208236348512269383156280672836714743505598392797326066842950726351382751041974688976767259136901730651236573171953243101286956107258052833631589009582669841735396384872016520049064906403549854492372294274183784110330807773869403934504663332200174222405363394075275059829357491086988185410522731299102223339766125332469073008027004902589119786609546141221334121389196263882666178655614634421081326330771760786638063634243190918325419432274732411523770487756138092796048357649969536874851130880706247612732575037665910783165878576855066198839794583026908602701964112202257366058640739291438772259890740735987644733155270684661916708199094210860851403328060178785143014996799473634236622229182069032445301525015578576015228847367151823494492654828857179769926316352753845576557644067754489066824899661345595218009781422086726886305642915401382965346857348996719724201717604145629991302514144475248848788595219222684372364532964338807885110699339769612778269162546309732353545146226413765213929750680992477659734726126909397872213928074558564709998158942966851556270403366058762305340310983459322900126983226920502201581434302808000223658015463288255290470682507363006307811895687198094076715851261033440193829627188086008611697072396703943181261309742471117179019857430123990754035471650628805126492009560551345333620292630664980915408758176340212996001619491110349375157655887524827214237679726425642697736819889088217226992655530498724790479810006504684342655193059548646351596583419325601995394272542463731715151763524395140380742442385772476565961524567466993162860282648550406859122463407696639769427013669388291856076758200866943833756314593294171455199666977282218147062090620349763171208646603060567561493310916735968692629980336515985213008880240461816833186087792966500277922134760116174813520006025989515021896326415385131177521071464107072577934971822527267900599337018659615793278006617691118316761471579646487410695224537611456887923115088630362384071769195998900356580754727010719916644775922773065889611193942758602466572916464778295951779252172840786074432951131565811663618629044736315551565582337341020541097055398105511858777484725531770169456197732740007627466291601557814989384991548006700158802872713964778855533405015257888467196480205246724244939551864372558440999600630630028981857811273531940034448275340042960655950892253518601554222891764294635309728390571552519220067182252044834569572830248581587778354371951268596542670816960798234661679259260735618939895590289542298200690113501199927833705761754071258348058278068123894285619311111413250493316426052802330398141690067988980373760320995164384890586993696068307101231796152669245304649237463228462799082423347983303740344501786448039881275592259020465366084691021379484236888145262969686621356647670201426725320564435031311714441377135146736716972654522654651061440382027435161022546011116219577553769090129814813688328624816036689927739083394051471433848747692011642619481923964494632004463847468847911151704484391938676530311008242387049815245204055739620581831624869450329535091985805645898908744256831229254345074737341519527423647641802819954873173772129012524214467540429458554024239064717022570044642487593638766367067747962024427680943778548257665128437769009314209866607101870293385933104377328530343716889518480254779912733313963366725069762400444399984287154827354002136228003638783578086193032813099949059658918893750753834426925570332089037583246284679499477201616184924480670726066423943232192320717600372523136002600793811788852402504577314925350249739942544051399099724277891851189238955567249088332253210798862708156400032252780315109766866228334677738349417461225894542098000029093296907437726013869091027914062598515250597766818440107816706693400075149348285405556143047553911053314375746422948620974467908447587646836317892773085988511135509579474495421862986677496696159474444092731132006697861138085905453176264945901678196971498613994922697223384527051438093895135046443755122548611170891396680893667779730994384880861933190910435786072084967307382593792396359932847510040727279386262716704475407571920250393419197254518948311727902461404966895517907998691025376489096484598167090171393512067828395799612263119733149133778183433841931852367538662901900463343328532834341824921071916092767308013235369472648489276442979870681125654628061172604607332191763047412150640302017893205795687605102775250530436122270960467584531273866165214241940868340837589140095114133929545770094731748116885364094183528610997103416723558178602823498202031499867940174041719140283936210519480604819018245180081701371042197459212798404024268963005335536854941640086392177456769534458650883286298216584601645078000035989852129012395900704202660744988785062717607762225506063907453194771889250990581009367298919540995766335386583780980447935377991877121429774619764094727212140235326551777236163419660743763915386601945017769140062406841273162958608063506762937751252934367596073427199675135201580087373954838973439901238256568290785911442588285213661692014029900413146213680632352650865411218084749987584411183629097908919834118753766496048093626489329104390597725632955813887767446954618157978704191597558335000377286724607351853508854954642029309715856369497857640483741505558099188402093433335128195514555185733348881649167694427782405554336977311920143722541541927450597601379841443735994202876052555718937804114892612579830361838010771100500423923926441569227790057027947401364942291847933692535432484048780231777445184177958355825754761842549575395878549458343084804417370879849267419528932303148958991600685422879578929481590006873537333333386381390842099487255117261710872944088868447850811634558526921415402996720988693715886232220331485581742682635950689362344813422473786939460923256600754721256741410342184901311896396765473291674247189934243302802909269850752294907970944300923867287743936255111313628761591973832413491672268261228263127793811750807408958943971900254264126649479801764420164541588131760189726596246144139131920678503524638306577640165229732047089201146917133722878630370384531341942644142496649844744048617738513529373108099859472815111736507191398812693074826906140392864227662784943295588285938372148475070778355119896224911955882370450645820056101702053248444902150229456176556185921457439900955482294137515441361329150430469141799412246093381651362627902827884213812207758942403884062294331727989259418366829367925960422418459417706530195486439481703355241028747044731171507034775083432373331163258767276368346858444865625391872394608273247135004489570868031503250386764017353150794003455728550370018456027699615061568291416117061046161740824846267033518915255188248212726007259576567889912567870201497866790847106631074876467309890914719798792598590625733649734982350312609830987346861627393580579073549082468304972840977323811670824915163734680870510521919176205416988262547605445817711179937767786965421699257855772042634424430420744954897033904345072061190076973635174019526563221392825831205282400374669545909280452596879846081408707195342547613883633535119112144143148505520123581380626492313538338767580918892379758551573203658831762424116916752381458859207516403523668437267917590637053921979811265977081139473516719629999705209017090758985691638906642704235700744502775120104903948148329457443809746260351057898195407639870607875817740724911845069788429941383420608124283901488148725998541814802929492278783243561055491564109174887706706782011985910958909838688395117183801349148254992749142698552595177653612624215726624488960961482979703084202105160279671478561594064613638247758902011025199234215321006017523025742122375421074959187286751895521553299453226894251884094228267577442222755282076156072771039471825668024710660677383120630314662847443386204743259568505689287162653290832787843996507167242206138294532916600463808725630595241532881209370099229896006981396279686279567635198741824018562931984922623336431899309017048819952588273388079532658851449393812411543273205891645786422945268411751880818405095690469138134430778489021148797121162839773443054846149807935624354967141294733326664224830500436445454702749172320783995650868018761732703319065657954753952069292520153070643504713068812890320538545563987992101095667298287304794661005431635846234487441555407133814323441311788424196019037028686962422762465024004208137135046401599347205327556795035339067127216177906030216239978041857633481005448388703173071625525647995999986935319681301015629709787116730696494027491665726749434320813231461388692553349492941183163877889903259401093411157274298013318145782816879135142439557873420591561458773689880807917071145511547626616820817775747248427879712981548238520368959165240543730524667287313030192582952498763932098573120916105613572201763927169959868610886760613384364961695186548486046168484824074383811807417342224483947893998278014734222305786541021772926482091409485035013224151559999016307147814852705161443225825478014344010953366023936264249313852294054753641683646704157430055837298470401814557100296962346985059977885573699802182230354923831879762989415697721236384408891789275277528471447762189205742545315103747997770686236242189906303096282211773219708230347745455060238585911403898969166622077876832601239617419997623655063632660169906611689088687741333780919516149770549214171181911014954347869382062098082787895731327899060020863391127847153684304381498150970304770886881635974192534134122191396287457810993424832714109178276317654209631250713669263658821357511998754011579028028507806698333841833826673945536831965657170319462933641092726672742449927473229138009835744509134079930856836048467786653542105866800521154264867497239537936421566535872081855412598194547427516118416936625563241935915856950889053531412183366239987802211504245660015023646910815997419202544378736102267129412282988880533679439503294048049616771107287881031614677303715021835289024146481754309549059448875410425016804069999819671937982082773346485581585910776178828497505468567913990401138456243604035744024619123769440220076042143357338726039253724664089664914714654730072195292737417679613565233067804268200024230741218667486694628058788787382995232780501070661013854028801191385573091138057275589368194030938071886379375821544435162655991203087848205239374935189559715815518280481480783131053509682356716123550963161528665857859019528717754642506412984945105730353324334890979972094572917009587840832214044050147411438170956577125267157798170976763847864206487613679394578442385860356496644631401310486670561346276901749283229004327112081922956415894815282655842219261890253051381591180342310885149122665391794481743390432270050687428881996706196068850067332835361468049859608140287911963112748254664043703847828840079815791344523210166867374112129449681345101223798429402194794691664815031243187396911960215671211422794306820104087675680937389820546842147856014277688201880717174141274936746781751322771090467300153094677730692232909534956944916011690468181827234778161975125727851535569861629220291884745302698301566387491770219476050941748668411972766044408548329750498907825806153902003010352180271792099508178391212339700700278329061937133682183369615408265203927161518022791528640768315032997406092804831050625515722628713132768182478011691549378624832240172383707271608864192942118171856467481185694008705299611314105945829387033052862979188264932474201795512442329476290348834952722928308040122263722761102752038001209375208856240645311250372640153996437123370790374395120320285350254748277980930302021966325093290944881905745102985217283069962242195471016519393297693706545763334324332564331363912210835291355577008126505397931646814945134120751218835054739685955538780919473746566279031868161713641615215540774535438041479845458406344747450856802808623241269693993112296405603273109279384916918793335961485351700181496982616480034402782281398587901486285212867461753848503480683865201680747674402114766556964387396757966442958864095775591541926150719665373410817064974822204191350352239320369277923907369558805779975526019030814355084924759818577979802981264125192698083107565746594693511285627975905780034193234760013696114472901311372932651887731467214107412752210105151558657134939127688557300645655666359352535450945737896883580027707210807546851979021567766355960858995244927220497752998154586253592955688586552190862034885742944354883401766168305532660245835994454330952973620564282947453966410175938780787579040143195672644502565389640520071487068537065627117466761571918106422804643826867806417817017101455799878594929810286748774716790174355039931696835285921164814878612862891163759927684710887436616177623930982949823406413782807112174123783422241440699848632882392406563774389808463170433981419017041770458564678599349411376710185104828834584759112985991132618063116652097710932602545777664047811397981202739627905217807965659334830319638637263605481726175440262684357264514741114361974748853281352543231321040655374753560914051335764484512650315994993984759123386762589988628267424214106563170282684202742775354785278498062554779673095621350107513570108143767120973610656933898112877006439508682263524195798998752445315132684357712526955116568426062497953005641342367940326869432022127715528452294559060131663002332978618427293697054256408957224731479608422799606431211557228988841340690157060791698553970627069498692261315505954581624066542762653609898824692284240221705109208845226419380040506472351410654462939736295006268706918574350346890787025266889903105903073320209977070195562670800784214175004024877643693827049667540691448956340009298523549912969960465402832129951288171829317338025893433608886395618814530549363321022467023712349079740681256872488335280182087968683767489328659515635001584373454271486153424971252261517808647183501990499321781991553538737856234550871431390503843286965138769032905340152384282439639132568672927224870847796968092736560421516904023007501736619499358544714404152214106474972421615230372466125530179653345435408898008690163071891588084555221984311574223129451967037586260587762633366848507527528479034425016537649163317928320735720436314962933262171984120414969390021578987584055068836313189782803270681820620114709707824647760276296351324513522519224278604476601784554635868956418344082595532543340887101615107036746824529220467808485318529560302603933699879125296023073278584693716270374914483889163375005262169733233215240070875809848564628977918098482534272120248127256555150503057004181198951860921678780927093724148047112032092752163821969300536677508468358938654452815223534755755907638023785215194601827245682363954905681259327472895456989344711418098131536495974851541068546097863303248642987770186355313674508110767638604733464029576882115288981356644930949310435890364514131755241478099253505914813095314712262341354064609059803930072954096921369456449857878131484983471061858858025833538008663482207458754757769206741006757177870214802490680993540340497808697475231821368788671920694203441862152990046866853574977871014752845821521535098270986352770357562938493139316042388716899073982395618988722188420611902770942990322757366871860797707077215592326418136016971727774070288413457177320625302988161726406498017801926964155038729328624874511566944009014691037146658952807690750630991658019040282491239634567983926956557159476136694387393330068373830818123094204415929595171871924926797929712950294915811852694465448881606448909108574738497225266256135983373917831949599150654399837939835090051743387881718295516184473257069422937536525515347117857618497747797331677160714994214526381704752272729557050017337440135602978121687188613072957200868270472815099449365576135300683820300724872389186045558234056763187626236258904340796023955291440818688735039163729934716281576586285346544476718977966400943420249016434108486305364084940912887711996506980457880713797795159120425380257091986045596738860190163441482900997297139228277863871263080176692137049349769043808195656188012979091465075440684531805169404962484549525186336324222226145869950092979045626886597039309839695602356438896863299233237659081142486035803545169782067694889248663833068791765942638200926377890316582705029113785729750974004938675358051632321698473633858419735204876339455394642739288524974516748990465145947388497787436575894707717794356270743257228553610149292967565026585100600321814615361292859106934321487868637434297702059825451095805417445562508116488195634432335555091540702287345061766348980049281114848603366735880522429802762450658064166164609330965832277412016870046186470873546075946002355373436366858463000829891159321746543217351175531575551018630965885602744732881743617645365592624617643877740379976886080184145764476430357129839955569156559423117453065948362502060364382217354409655353950904574369386510431293427166581052146477362856041042715237293978124871060598593201780757738436706563113506859305888608362023477806498797585317840167290597876570281387580260323333798832030389685399914520291291252264234896619763397182681060237095975966298091853481901250403158996252047170767663998683531531966086875291254231153750347550051536740686846995676773305775107923504903457787782633964738764290564016443331682245650903957006685680098251827330581904243226112894851849188221425396861310033713722430186839559644173467084178320400757151241680837554131482479240045243081253677296897044406796431797426815935920313582151463967892385331469168480192378561366570636094221329625671822214085376580706834616858349637565564815213278800208251696180798484047486754286481247189232457278488099517849200238132149505597686097804392272136566791432558387293962885557531898513390471237808455940718448328361153361578025705836438593371292347805105809160715792371735883271261645606567945034809907997205084227305474190778110649402160166666295094593246968082788587382689608487744561183798448657304543205368926840349142345088153510167857570666874956376066630729363649798409105284008454623326178181497976141218187286126865346071166509551354778323062741181148207171646652654270991484788077768928234579548611067150494736473997364806652995373677999340235327496480103446000856397697363373222947146973027764094077539628839012582466293969389877015862089379918551693308463815996539591339262924500564406760974231690307802715597007444183278386392005915041926664728752789795492770341508263915478969268833081660479564209112379312512452382628913239114259259248872353135341403716733799306171199648037407664440361082778150937198926678995883750525547609294200184307444389649349681425354244228754826346725993997879597972547224411728760077126088409395048119215967488739555862671065490302132402247707926524977694495520510805641048220680217292763561522377385106360209720313789483890876087730444433910703713871331637490928215492129660943559957654250506597023923980013397192543988353358193260423553346407090728580486521415339035222970604712201304941234553577895471248630004705562889455044608622266485238473107331722303856418653118021793512078836789316324319258064485005114528227697470288129755672304193896966911516840342521912666860561300384520538933691121008120502524108795220346236601390629409586806381048615670349189528899594434218075363312957022412607656628378577631058413324970080210963951349160864205194055137980373826514725989990212475135972827648704803024095769246243692551113922353178694829284218555724374736182657795600351890158768759814426657626582583777353798801168581116118854587199032823772576597479255550151703522520432959456689504597798593133546030580462871210509920026539199902203280298551349905589529620350811851911623933176841545106106551624788219806941469531402163854294846509930575901842547725876857641474091708005076586416337693581466078187224450583794243757628708545403350110537092671021601688974251901726647710911877340196587613192382440167786694473160364332359105304639269254864734057622116648426993833030504817439731193500536761645050844763047325637642166613981817216715311128910245585162073197007003112540505208238290893128757564218754167861569179700970093805014298466685212001591511327205923213373624510092718572734941352894812323115992346158969097896744541306276268725633046823353137159651300040615332005626421384322314827035473586350919884465338356840048416846538351475298726685210475900910516731592462648535707081943035235987550492977333075317220355734702365170793159327874445498164459324739383779436527800310927753543734929701120308885081138511036298562059488346961563623208283108425028737613641284672645036795749821634469459924402320386636095796527312504891201235999628480875170027135590882128244592123659726362362619317174993060278006727038520443869442023962659430717338754484396493573940165446942543891831593959675009932984755318320197095868111474034114643077490787323473238318431697758006951047596253478039290531227897202831710307704415204096202753606616877509538749135648654899352851081375466230230104416440607874337993886594343197397276280988725535964218368862525286842920940766935310174676061436150402241061006575183857818459430973816665274228223595232656315600436346060661799295434268127824698023110783192217548828248443489421559050962496809551681614178408105806817300900263152721796074723457974475343900826623840807048876766201256697542263247684144360299612706320364247672556623958413633466963420183396378254225447430632805351464492080284011693507171925134344917591634464815473816005896456760840579801659025574897671187722539527000178383461807683357425061963779397290718664165775655492239895116050443618102059416850541876584715902962594030767718693860546243793895291773829741484639269221118535479059909509729976074738729626472760521045951128274356312709605950237557318061954525987653198881915837078060946073010461531407967225257577860927309190246919298845173987163150768576635186493797629738066031650319861817206511878673359197652395674431888795336522908865200801404998114956576645013571486997392219460316658901192022613706395492150000809680804936515617904441399365473211942270762716806623267993172218125745760915245516705097654927987579284966167376193685343546860426007927821050502935106026991107729258332233138942398087165405046314658617867219949974969729059791579184648037035187388643820270609804934004556786093076538261926526318112021863859251656925865948327448316434614594036961723580597179588829058381523697885331682301331452292999154059230227405855037406285359045976578596457380652160026315917742888124801830766646377077199854694714324604154308710677882187690707969413136784605770183828392830947916091577622835129330815994526976068402659423392885871105440868306366385810204736320944965349887762757862699053539155327911881192633510691931273397666740914861397456145254527568838051822852660871349632838841836848480136264582895400730650791560741028890834546596253808696255262637115923594826384545608725836860376198170672633744812876372682998877722944540407706789940164381250027554201698302306954511629983134310718899098625410160029355244154862591376159747870918515340256888813019892188445661116491063268883242344830962888049657974271034082237366738282557725076771530518606164830633559801934071098971630988408746725910445988875959605303292488993638521193949096828371086457135234560158043864297103538466830596898796808358734978576267855658883836495162723545207087795334676586720491617208798131491416989137566464545697421666338802887093115965529089096858324662094236872595520958765867639645258106276095395529149176518173767291898766779842511921680755258160046926728928376965028649208798782224421071404646730748519743713976053074322345155253212123587085161628521453800836861246295154803945332968377364248629645702435818923168622649949921863498324681214946737511994819504507449659704327176040133835522236081534000479598193685223092588145754597956696947562389495724732524848660706542882562876735928839761419619059132908399469163841005321889186943256572066776523238247316438079769604445729694465028343061665221698708026175757051241641110920735772620397041168885940376105843313029314448290659556842964872963771613219507321997164144170256546894610127030824597238418283604031166034891537160762328639666165618560009467155491519746730842325586767410973340298461696756421076322315367897998858068319892283085976337509294649038791074370774008463493623624008300849500735581649669167597778658081118230477074246964360473279351820384719889611703590083004556851252805095510667699602373878235376637278226774052051061532018998380611491985952875002662945542273526058148948809979407952381788622443301332364554325741038837042323980921416149632755395663617686752438176556625101337430464808207552851564911671828345413047238795984888999156275919082152195945358943987391987885447878558839301953170347124025007207286819666318891540923756298247737363589629303730274864925136919788906763582461536907572381188900038683408930397937519930653817228736677538511417161821464063005399340793672109509412332835057142652831949674694850212250586274045481109395874053728880966522799491313504114857375818994915227341352040220177174269756103240539002593855895784915494068759108510900445669877902963589995785804399594722284335544039138455157545905101223677094900429072516327250643891141494031439293381604921411482986961512607568119300488516042892565334373068623996218120083759114317308944198998029337723050652250270984972059596353606069301554054235809356222199901761551336947568289739010093518988689102305620334560674781595563737372431505131046388436846166022210580766055016338443951339275390504719811126778937842527429307171428737605543790415357814619485598470604040101633653118930683696593975950084585133272847308800484877403931718396492321212575915598639683100503344056052789887661147243089207390677171334489995904995565286687043138974556386419506525626338200725605325025449791258937286606936652747569545855493793654946690595626482216601109072227166433627147859946459999267490495496151264230852976404043695030783887567665223227853593755677217005441761522757890068849222464725810068548316761687053704714029329379429575971294561345245527545656824943971433138580495097372060753941257415629101102326051852161087629611346623796743611234251779934005960149443294796416460031088377668870592004886201801963376976145058292176891376685475541938116074706436461835509504278367638447274620716138197119177044448797513778892289958847382008296507046223127280621051269910394458936078904429066128912164886732932771245059557649995316456888885393740496576571688091303924234856937644501999120287840027354636310802804883903986446286631594078401029177968777418982862222702853291914550355495243566744611953366897039280307633613422784813008059024523229864536534759379247009771237251485597896223350550371408237388559899963572576815282498573230291020966336552980975186916429280761927498322965219448169604371548847590855272358644048020175814257540052934387946196431967349029347026961869732830560212662858359414291417643270438839971403798486296507440722652641634634289829191540694582238400532287197813012034284651150002141596938756059895846743378832151044581733491029314084926196254430106947558632673613396013154936002702882265375501691319481721677272774887979071308645912517689622702343482671737444762540360443612383426636852909793473026221774344093610047343832594705561796242470147957759938396128282186704046594736713467400380288689067343505606541962915439823233191663415772757772625566712728756776474035878251863240142935123099265241861053652623906898057679590093782672125122055111315834782392514171893266684869674104933862880589331412583648730855968523648709573522735515641731600057043568337512858648679877762687891197017419892629750373901696681145531056396389133491947849112600288727202243629554113302103288831252179038609153411678577623388013856364347123025313312758349214962681684346180565506437686484432169160099329793588697132634594804765801673028762362637540464177371171233375552907616845760984120314814906712654478813087496692652495072837633958248312795542416998444914156090821234201446635611514398786928367644038199996073613035658764068334110290878236852304517716218148049432624678420340375691218100204857133468386031640918904933187028256511334225965139518362851792326534003162530311776858304390585530314347000949954042899310620069093842985984946257642436427475502009295982199705371385675402423995822493614688183578390529256276625781476282549052153118845167267925851062996411218904742903268982903001953919556490734818124668433899387652291244231198145746620093780807965110820809202500372217656466226546285167806975616512298469040287638196536023135636136497663890221979236172338854918198095735229701423204549139476002030983118265134708319579082742177973229110014981104209291997270793913105416884305647668068288143263931229248475280351556328279527326560834108816169796102396306652310043702682309153399901101851784085347966645769639956438623259072566307560394705513589758512702593763532523454546071157876567775171323140719849308707274172599038347990837752226623850161890001369665331022529573865193690993625896333791041177586051878192070877765609994109805155176052433838149857884415802148300377380729422205761142218734191201738097419160390896945708128691961868771823441333977805975939917040852574024595279535895516836710461224141484882350704209894946405334610298148181498384962874854695004074324843010042370237702693594977809093900955516428125416837951222634081034024006017318562283671178791286350576512210523464875470892286547579799198663491343367457317808000101592280324580415606204058814973369054688383056831118856426927446668256282605693182711497110790802221674273725205608523980970519287617281829491707968108495634209221568005222657659050270810105964689600419159413971344320797487520061970362143653107681949231466574683330194256177258029656287105746356679361964293350904175915476056437228482315205448832642676308711147460636034732834323009419042086748123219633559808929813901374321723190294403380213835037846658247849282371602845709018509399863087689746361213922287446437282223068981442710808767398474519868597356568324758502379022904387433865650163543092049497513946517120423996380485152404382714004998736609221595167943665520971624671902878497234306879414622093306540351514653335343817621214097499529081334366887421960854630056294187185719897965490389226099400645813457698989029375252603159479352051728738371667007215479619563757407012855926075633358043611785695703271510860973326600211008827123199163759340997123032026138109889964222097317552741425536341306159729484372048567305363345356618321960256972367743766404198553908458665477313344243061721260086297605296720785932256229235584626284633318929283198361000259218711370399715055774932048759783197671362863201844282336539347163637945712771588409841768777705511446946524042208853820282498929639508467046570193475974601082109002237981389393889173661995870235322219629414991396048429927934116586704877857111337265349285665368928875089626084058604973081180779650060100681097962304559548011897685661967624238931275652416559831945661471675822057205150733187438649959207729217154115270702515737429327406030388997018176392492844496144989211996008741455920119711061917813560083117939437002185678808012611811579946414717303547906767039162644803691523001638097509549864785771530193320758707672807382416272997985657219816684445193115121472153946260624154747884492531474522234289814443935668965208172835201849104468501236353466594439101771286059078923203698177814414065765795314169342756627442756479249572256177112244150820590572608481471404592395307959706042717245927521655060051371539677724263182593431649599940848813489629443980192805044699030743329586964202347799440608555298026016876274594816524700132047509569931582510565956554511246812167410441892014971291705911320464869299521893607872571989543326870276421120797111258063437179070285365686818813064931529035864912313662571902811608044992533173093318861973891372118396348879203809214817739751512155506071421237847824951464949328585000899517323133417944919571954937381022516204335585096404429995065494821817491829820980285016135764697993067913222478498512958741989762340204826428706202051130484543207456436305468298589979035884055646100674589972300286489589524145330379221860767572196030001998405346104236967394846598198903322644713641778288583186156410899810633325669588014908754891185529444754877770703325428165404870114529025916253519801238741401043603630920528139960818578217505919920444071679901533844586401542054227660394950985253171464765665886681458842246276815471774897706020161939694773855297795179206393425938196355238038842483958103927567056400517745841545364779201707342682078953784241931871811251340019135490752230188536642456151886403026504152062258752697464483059606000866480846739758746940310044305071100803285756185260033706833217834100697307370364032129825039545915664516251801635854889250188649041767130862347416451200097805267165914094586669529719432662613627554666276397479883132420766002470825655516863465415732273037984633497435417605339118055495848517100306504714657091740008220220333420842716210255069982951669623227920520679012499910597901723864217585369064213618772371091338814995600185227362965360920637316839784737149841162314047954571631028508309649294656142890777360309568914137573724220084319536767372075167234021174327264670777570720566446538170861043049130199330474798596351648879646194492952890582573097904095062772066683569442798805496198375127327465076018212152053349220808519176266170836135723334251006968310417820797186065027973257761157165072402736511990861376703898866503275577438942275815661730769721836436801942195847681141757576578022594122936937628548376150113712094447772678839072637650618932744947410926405869319895905855996960097204635671095586425942225071342281083161078785456208386552686224968775589567428400965170789743998364521940287896992967688552250992454811316798119609584499945128301743956586455425349246733192769929221149864428842742821896234377707149143857760805808485642730371713537642453067937869457905752335076438815218106566079270751572528839918515710526005618833910853622127568842615368679981807360170875673642170133324263530619346354543601726038855255677458062131463820548899779437994865925280732477127701533566724305128745511130522707692262151065261479813961301205482595539849829038221658540002787182817945275934575981606268256693535910919702531758789585078642512381690228684408855504623386176809374387125500306276779114460427175023690482605349682200346806279793975282372351973107085666232473255481566912018466156539344860475403574057353264973565944918990736160811763133524918574724029491422191055346694230286637390630837957952652291658230260997650740918733400133052343101030377785078752063516583462778448353683665590270558349479612983505612394339024757396930505229513081104670913249882048315378942261322355663430981141830986684768102825715502868274838339757192587347401153664671682629370155268224421277110523909179693192391277379771768801542246883496201400997322757593293917724086463489283646444353876181138341439888235343530623717836037727092220679014913157494612352486498036806094484885719893841191968471524836899608147222418754317335333742369490081762643689316367885345454285713963603275099228957125803241463056342872931869971175945658363103616835157351924115291745856865483974709206998158899997133603670512517832216587046941565206271294188303672861697327759547489832700933761709103805515938607797518316479113151091832801275251593651504886079398848586099308119349380127789670910847840847094315489455770550455036182181154602650233359866262119075457284333340654655923652677967900972402255903766627701571787453010678368459746242411941460927025518165357449640803707635921820480703170780049503051527919804684148029262375914410938821175845422300258710509897434053801960809670600172944613159435393190215524986391770306032510939596603820623564441379417884276524064389978721528985487390825419481126849740034138058770293316002349752331437832506834683239029486296128917710704498770623085845558300725385819369995627494731655208956179446276477688277511157614704990194822843238680273470746738628147526753337201210107164668619616006337713521378211388572121554773972169330440194716653483026828509805531003676041798533591083991213560094604211825482838260805945116333374599933098540090956755312822504067646007341266354406248261660563576912527998130161592594268648699500472477533277064999384644411392955896914652204299081224390628600046503573812695217022563921682177336732020915867504500478898168703646096151846004855741439881726097384472127464419545019833559323176882955783064580208982952763154907355005465411111371947630436261732978590284651319161466655167663506411933457586671378181098415646592962365769083627160722338147885085506388631774907872349191987679896746362545471260440954168197799220710427640251548433196477390558104961000164705989515785294399191798519780608939567864719736389009852422340005442237631164031518642793802179526568429978142883832138959824393958877015579907839448920670917065520349676998605415590210576514771578737867513712547304466033499423963787796271176836236896244596776440199697869302789570435167443150980228986501287745403934073972426716050025587854988889409938420910016817387489835845628935275170791170549000543621962170642940432780627987378667673022285201837041592135242242759628375037299734959143125112923968531901297535611629672308486174323176389298817540247039152280625468479103097962829343042133940228841293104759404346083566834323249561364754257986254455449889635167136444593793573500702773176734884517488709966825081043899155677099848874017882990749484423316788301806059737151889964295032419913988064778214020010411177747896883955510807421116480422750798779310315115110843383177288725255853668013231927523396907869301592580852419159088376804536260897508342110444191172855632146461237202911674061466035739643190133267351138318086854427530611568220064205077627624316309076339574680273152917799081012535494361259147198875238666399374852539797888793077692813208745702729612199390812546255462541090083430520403871083838572264217675630290493017692951152885790854789541342729679084551526624977107434221537656995492169311900356755887971969593608944405602798532282974592300572929022501918690499605151963466587384576628616558370926229549052558715098878019153598544171672135730700635697462366450699943859586530458169557668141518863751672958285519470256814867521612134585393262425217446952550700769270083280535053695163837024826205634521190864360945508786374555688416514747774466068680273209052745681753951571320375462170698262614847590710692505568871840363000530513868109575388748063346329994876955374348108245413109810837369070751045263814615713736203505637412061154369839564311367318509717496343405832290723583401618290608716587101601304215919171390236458970590273481568107228986719530257968376456398971876922517593315586797334077373304321675565391075575423891616070212271737592070056307136843747821213528898979866821776283257253334518323039274761865403919208796565258928608193070403573964208098932108943220085199416761171752735397888202661874456228202205315283142784830338686027996517517975581988333102562543823041601894233917038633783579210320377866821806189086326486741966200834537726721380300483534966960106622413864272529253000537291773706116234865438736033357315122713930047525770309217990269105683369868147007004668071319009006387690689420354186765107497339382475859863862891901184985160567627206356818364125792244982802899653618617776686778141029039884734762717902348638353671988418153776428435790683635879056700585812134278486017342992731149852582942638130658497932171960271888398888136721030252937373068728428425267681849503279329574707045375230320864088918820469202578114374706774210439314645278658963807040853074482407805394314796823543620540986524254461309609568972992532000469372276519264525234710438680616284415026327290612571927257767631402242018562351489059030613122440819438963471259810672223080736248740388234464280483917599711890693049486869311881573358946333731378306463075822060360727221651203940831736077127229108945530997277130413106141567730248755030303311974593678235696920692900868406551784355069909796130120859134208252365383197216400257843865315526851804559506527621829780729270016262380753984531787493214571767442842240498063048733634559557141921655599069316011685456804757856944582581465254105690942130415186078742436405050757001169784515992851436363314191985622039283636376980736964248023175052955013733589796035987444259036369071724627520840312123803089261318802320710301404611955903967347832214727621039428519154515034699239286860608789482720401315517854889242118587503260120766227587948661078061994316694602312466700366406945698803378941916927909305638007712556961113855111068230718626350878130165915966571995616639269524013281937122686738399710231302371860614424028167500027852370132974280057314123377107673052630029188543218495203772625172519665489858630275201985805552865567017412424781398441147945614036133723592910024028800169542825276370017260558174084453430805114569010709200685375107498005622995679393703609421655852401268260862013989663997981826683814642688762945498686986956018358721332468705175195617160408503607021926593490727025109947572522191084244559520783085143427489795831409061138136873218656247805199733098940110047570718189852293784438141434541275082709849791964579292080235503643635350960125171771680565549982788366872030579533233548922735814390956051222929425451105961566598998015880640054229431876949270762221110284761808261596446602704309729054929180957757759026962478243427196842521066737089539128792695710391317015524198956659379628884094286905195234919075493968337433851086788683112974840774256142888024202545647075085740339539876746447064724122440508415745987731692742806579384510808293347136974573171707801215046556077308798757870502442018251306625132845793796693426746591767544732128729799255322939565415828683586256392962270161695814361047964633701681690383700255736494401395819022902590430291793301413198519600605393959301511803485506302148638173900592786593779628397460050166002456192425055935165239389938578583292259171164760183315867395892269179867719926426770722804451657455450128217130748500736779344547024871488371884766882437818598556832300391829250722212472339543814508124959205727385821638671741214554440720007746256677999930338858143839522468418606099465055117494931262474754541149008992988802447511714394147171562048431661614834901904600119092962556851628776043685120922176537252030663261027926045712112346384308976910057607603820506269489451831336812975700849465036278304450342429885580336356198454450541852394839890825148086679715953087237187329524617526196498905920546969084045225197466547763406553670508396129526943779829719822550740087246757960737559298851192270040140899223099769250729082437252930253655458496293343701951694483160099816953821753975089393183088183490256194526897726401106041349080453131450107139376971054634766542938733278849650778891157044338998759686206776694117023532572196970063355980127679632173540570173738734560027884615557553918888819015793780554417315212471104852527959766608726189792991456157552097970404808675605446942831227454025633219115710445542963152252304360826363084422103356833710034748286461973431203220247244393229338029788392731660966573419664813971173290576318607759419141898287478329113668433025352925249647921101964649065217824280216584448011941483756087062646822170527885558666093973084921172488988070552950041388669076368399430081887793480377554118045469519337436930740150043869156290274693614588145704566372976279494406160931199311174180452044928354561469971287682350175144537389283837680072041680696395364925057869308093258643237958397918508366785268709394339609878348151314236645262541524927558779906532561633208127186353644050491018131486487972806483608496665024892073569753621719047572055407926966384435426213099435243251883097135308234078731415494809665748791962070429813217624378108179660000362780596168645858331102483433125102935266385776539714735100522118161656726351353841367755589213883356137546166901506117537764963729764127572979618546006530588154337466463750246766187368286013593899796610488703732129989880771893034558284247986325865083297164788136878369340431586994415840560731051700807409062423229834214836459375406668988799024529677503806308864246235400067920501694025766842267333776234700738508610419471106994358045344557048916857268425464900093712562476105936696388997312784658624437991441399515694668108392632522318191172864007455876341045628857512550568081525229392792597814861747545269477638044769959550506070304057230748023470574234467241031229653495050651701165431324285219759223250396349180246543163466129180222569771408902123393287886041739410135263115203691114539200387541090012174008003707640680658246278050875572041054258157045731547930958472208291904617945375395547055895534904623810081663731945502358481019922271929120161775202444668605900966401426557247684365331867035220655801458913652142148842795655866270593388749187863939123109498561212629941292195705509821590414591386112526656218794569178586414084184662918123127717018560764298414034759248597953641392957002953996000447652417411806360908910703299357601235674502894896672436831132348273563813700784818092204544487869713639440714068381085375023790679254919907435453911187544169787977445880706127946791026105972678506875496861910266428987266041554000355937062096146877748021195590129744347561903690150322987650744211659407494846421163583607742142679643983102756815554612105716791531072217779302545732287453729298919495464444302147434944339915261997646175605004468761414451971378481762117897724143554673546702425073478364221897884302406489528463143881634350752965333347820743987447844243948343786215800052959412016958449975956621953145946385170657449406445413770883853227475395462267472178164107859715062639482911743733169123087794755840162452434673160765279230383361084033932278592304370696142336185151202016300371064733923601594093487614139315780147375520999305714396909361417808686920081272999501268940633815459426180425248707055293695120120933850061826700896112557402629284289397798199536585334676890135251331654478486211389757939533763847704378960005437463152679226126554035001329447959332038995044036912341008956512641833327189635116513065117671202257937290610148423524674378547404696125822110639983260451581254754677929322160100396891835166867336830393136298532998872877313365140099200771811594958529964781866067889568730412979681933386864036542998250248976083898727879968322479948612906215381195278117506535007681270346380699853213452396070408503822031138373124673544085400354980559889762848218255029841751924213819952951835534403125784310766698198236289049859569939761472019504074153418288497163679555729981157692899029453651754415265328609725311247060977431006428102157231991439287247182840939967413832697591370192060393452424462818209416205366883589174586151994610289297586116332625393634857916508954974755610887043082657833533954872060436193138168742118417529818004502462401321388921541354063163302382161565464533991219188665880282830367309947128978081654878897206258768190147486576432647455435864796605054419314007833058157665753933917660149690172511013519303276412543790817246689999810787074329882860632105428729230684618965421625785755601612552340300580197329431255534421488652069980970043014298345079053809234458243679438749162814834015294287829919084621132239087623502463789187701226754763087919453241491141091253487734704529022285676973757021670272351520368322814498653030193362473582464002265301781786230613182673475745562719183138593703869423224060783415856173750148103203795100191326222685916207583999928414258360755023703675143734725006108456521231782069026932327170717018071750076671070243830088213495621142096666279257629475353656122311963034872979923961295610014411768430991443598065566847331837711114898251668605288243158296681577367429301750530961966351587675538641288368646401680329010209836414539013618201231060000077579660767714453237449036664538190330356596405377484863770568919521436067964328702651141982058714099621884954127590552896627174371637870154631182349958080516726387898690116970574332525233066881141023090637160965393382917542474057228131824852865622014084294835890305433176866938862725299013743012988285332041492596472487084288708681215621556590555201187669920995349288586951293492562058852997594598147350552550331514573498130249635666005715621294128820162299984814529158027274529433671346133989549925197261429546713411065508748687356789905052618418649467003626154556517859007474346830220335306212633198282054810388329437727848015435298542340690991512207114081916532842162868282636635610834323566621845834965842435114082527134184467043885460564089153311183112391186053987811676276761370365842848180731392005624904716232823299108066060664706264035428591900796973473018870585654299212914106508310502492118115256100637422924329390473242858590436910997808736870161271565760862527256304137946186853271590894846828027643878196883034690139863099353489043993961413138596462884385448545178614698948363593025023338886138660578825349382042975420534819660539437264347797913552987090440975167142565491734186574028331056378689930376561815662351820475549941943497152154891214252064707929043762128454036356540042644388587991544652650458844150220834818998082523762637834939192990877418633119502333553507950955019850442946460037920770326472316538371677976322551046150834470572786498431040691955211902908981909550664375400366598915712966903738260586886220943158567621416946277003446146558837096145418383678165326467179887047516242002769841056810499347974174742755566238344821872394925598724808179028869791780821130782667388227175699536815810068349441770141103531411070982796796045742155734677372931318357429009881725107070010270568161059092561977387252629549670643826974876315270996332315389780214195846283702358552280297758021406191250393900095497206896922935154870995796216818651729414300236510071410275558943126234999452621742518340731495182266541367071120543595047705298405516414408231604009414859322767183356104103195233484846079523646610699869631765885028193317090927754380975029691292829028718271868676560565601038836259747689933191815086846351020204443191415907723646830255391680889137742672332139947128849775979539773479229678936219309925112006630115661739065757368376763659371892114223684991202147557197223055741005725452572453855565056864605371122682267950192963103945844174558065212238893467377781174877110853585636510480400702351384140839434491495873363170337452474420769031046589402807065204049010261018063071440950890118365282910010426311261217230160730391427829982605482593748719707894559086334217056537691155991337169641525291258655071927483459371130756268223314419307505994006735363650372935500767980421512143519725325605622643945414113167472987783687140996758965630701996956082462801450491199124071218574805370693964038921234646978712255066960696516150681300606294107400804707570130916173507733475564877254736912252150981350331929933833438210788554383323618735690716080545580984367005743508507531994097659653368721043493322280618834992004827873811252750304920888817484642831901653960063046650291562089053229473199966789104299917745341287689103090997671881480309327162698123657206043315964964934205359309749955463534159984382386204942506939320142666378368948120219976141798608305898382939006739514551757354999717075389248031529410901185149261408759447372115939328926370506958329918100862084041028648992346326034564237042482425706390912938080170465965363072414492818375533047948623350633663637588656105890660335316291117659790023653012172857536620189010164981597772472905402267078626833877730111700943185140357762194548167620643753196878414851842589344814052958399638497025395976212635978594566911063706013322795334191053037954042597830413766751674976878746529964917834233642700074547548194947135986680691566664585329149030823205989028120587812681576743093072101761358226318999288797323093201014923212637326715179649554896892477661184315456716175749393840161652290784408942315087668705466527579323880554912666169377759895392556108040693811822480005135080937204668602003905500914116539448199594173218719034097188255907262958428371977008581794185070102392475998828961357377875643588549634256114678078334051871095131257599993180519092190226656156950392826194790160170231224330575443126065446462500868662274804386674419442015394260381155782754000040402071218190131574640109342733574833610146940368545125644320347075284483893175456176463157220928781027991202902189223828247035054633830941944779746913088292457205029220624985552355105654164304576298864176806201741134808923422728834745432011980726606895692588229327024544775347217655283908061743002542828159828767471359831392486775453184684460838048150815663541946256581329635955059482907633010681564496651788032837772344264957347620939757595579306386710047774393400649834055072362181198948448212717277785138995684904476270086131269781577572295464760335927355634301851525659582920138209150226200880031749728538998215039065355933128282835302291042484991010409600808129227371345158145829596251438171754663416763065800124676193027393974968282716096494372311355756290781019612424029811176798261867140483954668523855807275940560932973124055553730447992932564932798114831833202137311156232404092544419362171293573215519555826930703620869391030956262579288494465718175291633610508440138556367920711571888579885134962980427561385500828166953039086989620802903035538006255632140366817790818021164843877948278512937817115195312920602534993978761754640800188549112650947737794033808138516582177365474212231932820826980804014905348395503964389278202924723734827169643746781354156230792934930724033675169925218892240566961469968147387885186031428976353797624324269819101596656181862939220488095891535233677225687364384668169767417735744924027732442718521724582490379444028830673844564001853656074654175605371082546817925693646964418020722076795015297467508384135231135616254995291763514168838458188793842769207700363308166744134057171504307644550557086201962187509021388493215588493146361185166819219333310687104157219222584513623221990026708380222348732157579711911396826803848840402814592695923283959641886626796149305159820371186283109450197691335579388158951141532725042249535888645052952518856976647677540641989646125632782259701702333755852088622218260028535928144630861090706741716126123002253062294326943978032683573008816248684496380618338129063172066698253927339740049475856958735139345476951134818732264175263119057768859219802373209352298817249598232180205141646542331746026771047957385695174672602807096815250437335898205504740080301330175581522716953096751972016120092056623087754287106964586347137428066751678319373513256522148383317367230811981653422398026247437655894767569216343687766915649479989449089533354826086379823253949166726899416749983477046990214640899683758249505829081453314220062263702658890856758926305062177250459027499099932791976237866665291918639558768793566387776474276695160789608393162352529278325036415584678024618159880514292691440698965247194819339632313685463418650909284138271725216953836200632300921099620624942506081118148675129816086548637849168389142024407461253734991180744446800456578072347621011306844607797942213204417518481616010190843118577837369230285339399275611116062550093838015931151113590785216256048538691432381224590429977294696432227371518952580297336604535600707534380412669670586791436932809218304113925179378607725904330105369386056453122825753943173722335852211681543044363584974277208363422787961783015362502801858578484425971986713283424851276948108214828989987454317220977924036083261987325361585956014193841365176258823231664971366187149882091304281551016224391160452496338425654078620540396847598413729509315814877737124018717977838047898994943654297767325701570538126378522274697246787424130079364232849781847838418709500092027232765464981769718563115946830120997154727353173557025264097429486253814814007859420937562638394686737163244650066947567053159947268781125617046006407444558074290199970126210536944280714092216615182130793486989728370011952930810736667285487985787148223531687967478735752661938542362400071391130567555033885290142377185416489229415567163845886141110633338312041108527645828402610255558454722593759618723463643099396380123444892556529898272029900367843915104186874958244295462621261555251986745094446529022196496329554000070385210563219676582484226507331253620546260268684522660968880438380474372623233161666015912793688199594050257199993291767339310271001259536094694379663859680832664319316496584963397729194414518373166757368853645182023023814826377065301139112891369134624913279126032535345919916323452775814247666027954795407043305095730585710512198291209443165335943240846813807488753872970853754416828066098849350666996372897944316567926876367066059226649550352104308343571403351838775617420963086662250481525113784858825700250405158386183616450763591975664564712150619898520627461072077885340900897413337888452905606432467837237844238116245396078973114333370609605259730199650937439545624668662812432752778817857645097868654913892339614539387201609954727731688759973321677118441995894848614261038915187575363531390084472167159313610565905523068822701639006046465423719340430985082507735015485199317471835737304491506949757248007908426935982914383093138985548754942322744949162792191174416817622585153292309062702886262732717271373674728853638621232215215659814014346174420864122382487018421762113798480012891846115029134072351040099682816355155884962593470228424529656446314581220877964148139740521318982878542842696578224348921862124534021422918738248798312836552083881102235045871328965119752972393956001142529640219606769679575814793597999314184981204111154282216513239255907098748163233710191611397919813113343628756085191368235626377581119520159283010980245617011022257367211180753783939970561978347858998010395864273294684313310109468796463429787772268219444805699924553685460167533539940861811762259294277647153412400002769010274117619239922487172129321988282132145815583308103276766568215762232861023578888664955757065519767142309504205762010616009270364200234045097208356485771816682415119269448506815186293519056117128036592678213698507508774982207319334861979007258977582664142806319759559863145370970654776647680072587850063099401087894554709720638038948369303697002697458292541889356827697675923286776710169803509732769360272883121039870404729507335731757223271391288682308969775881257914549379342985359447300616559315055902450692901802949396531937276413075979435030186195182849400682794556592773381062149016449883428475015304083572143224589265200027521484688613520268320201235650451901911872323559167037232979034597875506946927721571147182379966807463907229451229908534653261746797338216839409164611176212107568264733826146148780221208854610941607249501461647180175574523157572564916552016964627970618347370461961194707193166112753777075198944648689161124640677993406222196506865913705310362339187592819657416107839829879513864770740645142244930292524076236866433594986611393309682004315015611717440284570589293425048899723028035902438855797151315458832846190466314888130054461650106191633925396324995668918855812076832961375023195402633096304694051247986849565872764528769709915657361774733919053124868449462587226912095502070721707162187967918776070558048101519229507432633782002791831155368264376788757991198116796887396317781452995442566577309275671432912484702302278647522453354025140790949182546253529101439352289666482429845599342557559177758575824235233897374748446334004725931357292624483984877701765481318806697061502288930961065688203005792824776845650575916401812945586968803264581170511288126050608222011029481378867623478883248252825039466886560479147243495936240857533931494128559506580257628000890635688149232095192164003188097299919802546703286321856744877047667974008052444941230192577061686079333377261667952372310225603045607349457206356031317070375962721464901942508795425966836567349678477964017862775009417083925965179211371888502696058085928715465641853891151124482809575136933274382978784025912924252701523801839428277642307786599800714990011271862672569779749355858588276207844192101150122755574177976386270585270654598893783329649518770115264414216448752086329424108541931861114096827628512901437848023439124804724666828152772743115489646255670802912294104703665441279619458724516005911000089599347648268573468246049695113680191131432130230724663416373425090192136199058793486103011684913670312515932112231432891632315514863903892049073046753790603338481462237904763363720223176833541143297333311418939424737931987551333659519236920605564181536292745717249538204457474709743381119982520693905592573907077743606915448349546454394555065175130465938835163084824746341099051994962367971035899271356201097850561624995231890502155814684467724636155469783168324827569631357175583147078970917287783371804851989545984382859669977686925059438280995311638096443817997760350113087073944851928516254905890311087233296314882559207427401434402388147125455959070011936654709673891258727027356852730777519396886203870643053734199636785940852157897724435609553832097371222349936362340929899012531960339947214295787475147685543217321671274622768033233000563823270722754529494217257519412510539167218643358594453492687692208238733143003926135466300572963673315564909795980489924726693864564374620224968338000050557898268566769671142801876726217786557664915770035246110093279468256367716153962437927712948381379723447290968522053123318201578958447957484049665426250203956746823547335325896674648211886220773024416413964005743958993445124070810023107666728342986005755493637474986490855563048804573498089745784926319775144735958577735630772546785298233325468702009571974896190023249744687725350453317273092423088905788306207272855498567467904848611804926653657381113003182547299877874226322450523541721830132563417954396498386793829456411967522772180797079505564445083804357892004410159910087105620865457535861988133754425521273028942416530758030330807963603979606664242815793244860528724956074874090361813640624302017652262395586836828920962749246091188942919022126987681974610643447889946335490493675843048514349980646095449673288773001522154402956812345344894693259234979855786079219347904248738644206792284192513273004963905388381579374791162995933734710442586573721918359134231189246812151005641755378356731275277203394208457733093229393377414746291204143364237584532278001041819917548416469079889666380349031404208579751276702343697309017820412023120163323706816098096193762383531664281467808566072208949378140585082658256120641566908039133014503787374700861916342078689658413132733633143633823725986924785670108198872061494310116009326430205345194366867309888936587361852746283046848650865893166284417428158134399120583431847933143825136125768653093775747737196608082413879789095686319242787821365341453517151201241563214557726125717115423757523043561118558919663144423086936670511991381534032262106215943974271207654652317651989664244752620471519096989174455118437433125604112060004810628341774495189990610221341264453400653485761580063364046688273922022619214475711159414547570565243538867082174995562889089016770823973102051948388718354983432880888607110361769033231078137963055727389811291277038682799321659040531468963259863919429152076441218374053356689581994265209152060722347870111507849459926379425827381004560937340373847005260432400476515103397442629158978594216190276546124371007314153313395606701209923570558935555864373324662393682733813766609885613860817560855257518818229823656205930398480268468925648315727203819634275024490538138712272836538138174118903818629370668796552740183516011067772154427487631866938516652689190966932412414576525175477138616790707468769050286308364149318965595623542786245515875993374048688880593635094764046404226690237394346938131980945539830596379527850040281880171518968731583106825414735475048320937668798878682016249772079654622965998697092863444271187840432634846582416724416037900486290633522739626326436896952186374585547737927708108320998006560378549786179281682380184437377739659675829132206012553928697061311830757497364982101473139995137801195836304657845862188194414978493700984027560068549802633573502769035013349159994106340615470787332906037072311612403418705507883790008981769470259740812636634023320523475949462864772027962521136864483778421277547089060751025530145464807254596276113743167930832271444495182515532025306889930585319483180619097628180166772303612166067813695171764875979064176720782749004474566711439030261848117098822188891664963938685131934691125989498624773419222103929318565373462824471898957875867961128151109965937010037834603669908366054995393142099942349260195172005600349859404096353991054727739469799041357870226320692025454984165726774279463961297439136852179485034061807728509874281227690114136816402846752887542766483471728545123898591571606211062103861150414532497879130121380688937808878574113569402360108611727474907686345867962597361001991170298696396753605633035859850590240448570523144308227985585804210667606978466858561399205325248703555458537010107735008864951963541191453995475570655262775843576574584612584156310747495367701904508846045178961035630096449832567980305263711009034833683273800925855783963976978875745504097761666099027954291885893089179509868123115630538921168142337958131082941913018538766498384326660489096880186078698996946395195235541223544449510914904279326593168916538452464761210297732380494910269720631973144576872230188864547231035203360880327345189251460428378272357373813799044513964614587724157800991829452769114892564495544578208112585497462991227232646490397507964230600261945260981238603894172852569764474274292893781644102259782780808093811884898286656450750469903550368236404570287861926400784608310625668967210515107875998062605331021001223580899087864525527739274544838949424609773097681032881810483775584905357543698547824872097962396028564633703672244472560265313928132432260277494460178011800643538046561772418288441537932797330316564262549644575247852251514033329218029943636689200450280879301458362655927453036932085819923685824058244928679704700489293410367432496807871678052871557152697953873176161393561325930030985187458526074604280714530295334442483635278630915145811167703384349810903471380868798951289092704710360333677107781408348446246860614725498836547671435078971650144527699386002279228873124616118886865145487571245875831948668196071351297809734289009348299609161372171840805688912848320307378043990298011977674459526087245017878848275822031416079664684533840137300363393522391326174642283971469201272934108032240148629789074135636204355195830151240608782357990545993705598339963964272542888444321935083739604441268034988549867801424120139847994694742672513457504328416115283189343362578255557624860446989208108295158121308074724848831737971440657552370929620468722922975057390432552935848119802663290934039894973580929027356502652096862827876692654166187793651464999633518918591982811237177058085129088914798950229698022775369781832643658030659460809240080176890723258414412971928242472038004865907624832984326661253026851033499026576578579963305728578158044815065341472910340118651075275759146213859575557984653317465242124797035629657648497169968778459841432813641506265880323735372672051002039187208654889404916333923844805717563887250930123137906973034464028369489145321874796890368908009191076964875226793196883973083136328551644284854543895511923516267055241661011619193956232121540447458844931776033264586483326999953276131156081986730317987770968854732069736111069687352300866613257328235545132889270735840381580895934095400477668633738822098999477588872525139289471025761158113058137307925695089111060363374714300481807454470712358569670187616304402485928102941244816533043001976781251848873242914654653747653084078562990904537378476391634106971349483164149431772592573598987741410425852565064699225753338667022937999299024833844979636165826017703760240428543525146892938266773788401005040778149801065156552974765023025304818482902235166349070894498768111961215106508070884528940298303191343694788607197230910879065454559290442696210241265089620800237754863792190058221375417994513677375502934421394783438454088249683005596980722742714752346186384496330037201105848844426282284718356695105783641807090871181197634134679230482799919294233444343374526571185195827581724295569753655476535585715371587886731558237317912035819433685902461168954935845484381021820980564566711522781111528663148797912241046715034541226359174023105072675781565169079497535456954661023435063517892628200738767157841844853233126474816964104500932952639391072551402638097234507421452663467912487992195042495063983505756316700242220978888450142354933264477085420732956420064799904567282882730897363424016355981512716558570876026319347603574797113673228442544954614124103144112136532959073184466267811106274019900800574085133602171132919101914817238581103597632336215944590686068858174582721066360783247211055398822853111623083077224932071876031428355497239999095438674791190412064095816350306921536539525593982910836444057789476865590642695907855588927801481153129605282973963783052239656879793291341582956231550105619750057478825843506838948027201316800544924176554134155367229678186722629752193572967621597457292998278457699958185701247041065275523470931676021088746201894983099905626803547323919174388035285239451968559022629912340556236681684202614065946016614268981636489632267056714545276155208403199775521811222283069464028275458309078800952553826700117480894400858244223448409014439309950760458749929609291944867872842446552942603550401536630485727845750678903342063754856518026058646545350492315463660672149559792319961283892566068624538219662137909561418094819626802348373704864453909857960411713107012433147227706943816242616077917473589306040322161173190236290108124146346823909101474784534812647369393780345086690201178540922691890721139084273626400840225609527953662226878036310749929518963349372478078424620773854564629746985678187794641332775595949591985874191668447830186688758259850633580953047305926279587882662813566957418566351836629677963353661625690006588345284789326123079425333212093431309861700139402245159398630153300275885744826155520116321655830540110902479913174431860947888944247191765658573938336152938916463157877752069260989922377842721076226754713629677265283382604580315488184291834579056205585231384674868809874757418299514360895275711489696984659133055157182490172640634694738316224845702956882134783218600502197579493279575371401946919871033919215034601174895493500576483118480038321070455100031972994606266908170328465232638024224858174035422985108136931116248203781568240267054026506092762957413003945906744527919799664729933275003238785344552182030969527725411833131949298374542996743450834945692079455833089572194166974255446825338646561066514161947402732330689180554887144239701482488141302433322116028228928803159132754604063931447565045102470784782700310083062398337903505920853878236743848746907159107166138352709755851584349132103501222558659285742960510769146892529022359382791271100717798787378979020601040537927126554260278572353850665444666703866631450870991655715371206920784426287258032345585653143785432590390181683860053275496579257260690379957598881347306888807474475471119322401485057132580064528148510649450621787971736653675812418556178181865092565915089678588385373460069351497669402008541424119586157738199026180199575558106225483616404106207630901758560745738847326450713338575654604173253371130280137894079385793643399533627809231210839700233028364694233862029910331376974507251928193044810605361488981272372755345364515179843869973757297234479617541226385432501523178083972557268785022568712168135342539028347810191915420343242593460913311364251073193994337038432388613758805682715616485493653802378509039348336224822731820740996845329664200662680372687820264867057829851192845030221581505303564175689377542106313879430081690861925874286987546755092349447396156707592501916836911293037748049551990970398233638263648913505843039964819572362115740772576823369907023744639354292702053460448038310231444811459137953847492391572943127807412044060803097587296697310718198441066933408260496984151577165929551948655816486757794233936898827759003578942127616047047342116721879204887694233196384054499475111593254796176239384985382401964770818520948648559242287732496687300301024626104466769085254560976052527675426097221758042315321576735329075348153641113756403344937644773157010744177623582318651700354720537594043178245991335983391817819096329898151391257543191389833725440528150815457031022896802995772275083312116597704221998268965832469412245112832949898729700252886927820088561271599497751356215241446212011857260152524697229091514046407531921992817342803276185996457025802115601746209063589075186175753000042491967200921485676401596976159704057369425903568270576217269808261258458059616706188663328402633856482864261038593074900732614647683459041578797930499820505904321300238863933029787387361962755332185958012662216325846640775464765793633808544964957096554919468161205115569439108079681353938460597500671795063102561224795271996046570862538431272191945200310509319123694795458561223792958467448322080383851926631532382845070622235541635575201604845859578772796435664079289773151778925432460163741951653324854866212599811797246357628056178491675839232577223668439231390463625063640230283172300137855383978440596035683326842799266546160672110959606388342429504300233636510873394591424660824687867914224109725995512135343919323395208857001590380446982663110695458536384642995474068040679609633400896596476123350118154718221565202593800562590621502729012224260404147261584034278162605459873385724563714777921604748274433441112967312376761198629786698630802417950047309905486807868392900997525783605684232527345124938846464261174378459017654469540965159470872997650711276266611757869601903289742862638348064602583518365195914728710254160903417107626677581504651694625449579938289961786666098572735726068550669586903757230549955720906262171394703968503952363129448708741524764225060652166970795528304128108686049739229536592431541725993932707486079566741459387068412327500416690860257614875887987623593673475462930459683470578182433923747399924993182137763038375299038515104921386268559486228289802909860409840116650732228999532240562234847784269088277733330025209570716387891375728361113161508282405867748061283780997658812245009750709847914399252401416224053285985178406026775338192282678495278866724568933375945160731956862168560635120350246309928374185078076042047738430532548387635924125575316364522931635117865222823289644483191026924741636339992805353093665926179864424954948846174813289956813731394830959499581124735554883738711252190337005154680402367783261544240656690622404363579199589191618731985304828006197422232098836693647084018123214174762767322394733060040517262859354854118824613991225459936046289697141341652030935025735593612611451396476466490210627544573749771447155080588826860313596615759788880825134084175124084231421887595702639616666768421788501511665029595597861841596054792017855481164654185831131412091278284596904448081819980631438903805220749709996445926804268473445415578103344932059501563201963053976214180739908627084806430321780024760901439771564231200722635434932737991573155185911006524727748519971019847797665568944919671648616867079037571706648356280803259648676734045842056865018193702426952536481695581459090936590780768681243863993425655353304650567850655486555712821183817396599836335767803088710405729720638481947048233307935220906084398628018386708952979494559033980397505682344935367837444146988538880452810081360625583295193112119347517762845206651922225273866969263002566560571379874677472263219110395446393846121845585775692692112744696565407157141418197949229614464039021523936521713197016823791016253905630796286769037036699987201010551972758839049026661939716483481149742391173870422714295049803918440920353535056464826470908831627172704391412142384229216009271291236006701029524904826889528581360849432035380413569645159309243382773010698290740036378191072142201091906924187216027755580459326490152150594142335313528627788269126850570087709441767082111178033916132310778845476958923562860626769063681154808619448865059856349824207852248210273557171168286043742793001905324214732698076035933663485592468191202394714809212332841860500625853791085553950069351432572141821734241696582891687104773831105970509981349409693995533517245346454725301945250021970423672563394199259591390300437260389765339723331018927319980366786966546139807538001500749940589639656960444463410488891018772540175813648299270189893187435147571951190164326245651420062310747654521955306220940907622656396770318223285959360902816252306279768529106713880771274641902570560244612378307890264854860064900878587772245828110243449387066147744535679373207145334080832496103686003164871160455763852964000928899056590388078720153816868605784536026239537615843658764131568954201845166804253112509061280575860518512612612637270196042362190166991290755289148425500020316639433680320405711411604237579803585659563124749946956984951358676171716148613421187649219985740236045258155314008760929919647446288133829073216882269131573555149018421727816778521303836603763561290076854453156388109058718069408177819078957451433595938390351399592322158154787478672620334227303779525481013433488701126988252706945729704429254738586395894031625241817680103388373892597828563795133490722566439821360408060769512299054794220774558697799330344439044199973576079750280203525292863656227166375301043481541454332706533916509959467358711349333821669894856705573807822002173120939153007826526128684514242907265999057095825486043035452329999651555781461768952857780536654894859263172911706262038297980160841215931881886962902828715797871793688490402576691969478911970166423079447116300479691660296336654116567141292665838641676558425834662650669041699510798199041563897096165783606780345803858875490439836681107946259228094843989003473574576572212780205076636124247453027283277919753687094602692110264128505204647715113195909759784752009540677372174118439959013507272930599636253552751836512584260472280813050170163645829887952963874735239442289840412742307669265753891912937927022735871589067800740485921648396309083923403988400951287322298306185307149444124552897445431895856118740001809527520962851371172568457262195438787859256273722400118928592109735917744530909913760185710513365526899609798279669130166471364566970732370814846534938788898100994832982220454610020172043612751203153811658299101511869430491144759374415119921482776988466723909198092150851582445610520088718546069873013725536346329956445546387264452326955782438168955311089653134069842041218638500690537990290112965560297304964605482196018497714995871601601863218792857765551482609868891466417867435548639885767216407980993078464470041589252981212008077546940444869022853477093950868213234073387381521176404447604834555293052999589302071650213184557608516378241629071597940866179526322650908706250000978529459880341211082557760720141887727490710128389363243734475532766109946298202924784572795959958669060460001018255384867456565827575071585872968677167511148726521220658930514702981699114593575970624052382042720167609089719364403104714270189011229197278328160211355975632554869999224338850451985828262910381822612265599259159708291978623319316688106297525410684117108625987030714408608388908161734018394521786761691021784000705721511533181834639810904855059841908065379840393196765261825490144962826381313686830190537277629022140822825320503157581449110521496934008005917184288674742328188920822109870751009609422271796061186875231086513054879407303247558551585727129568516671150265857537215249702073566554287480481883816894380929471939249707834269119816210471308309570279144044887529446522288091642693221208914373532634347018941418654987580854438978375427611160482194498573399194641634510588275964150749708686870653330876746855170863672200413355069089822703363808724832477362384276712729982790004723750336569135964850589487117971773589537523517270453298808976870603717168938131149261179907638681757227782503037994810530997141332106791117693908249785759501734734327486335668431549974255543428798138728885884082866555063031169230342624006519246182085129405138410943833830994337323561184083415610952547445426678744153945274380854781574817180554292301725770825421551455231168981598415763033104102486785934451395633720568858890690571190839996979952133448395228759228397786569316970545027552498603759381380065895257056548715399259424999717317167976251830780718006517305152956338263279321271806269594806341649691021116023646432358904772434776651725043701882621158437644226666204751278252351887021789802726728027711822773152103035872642082452898843316831579166649925682161144990342466951532463913570478076852689899848932052533721012467448559451168698251650863150655902335060894613325964758574047430716451021988964666857650930833004568187275724168076705921604355468100929255939564895332950279715672189202732570815062770907173871031323842496009919676665726212488713499205697235869332407381117705573234609021579847223452138277157958034722054025896644153905341213744700508903387153834939078365114580792027210147906297989923573034032499697624060788973218431088244930826619080262204999011285974929556277217464611468993929401059494209733817594382878025044409968753401903886017717012459122767688467571523696552122005772424503653973769690285178582720108433598339845445681784062574904319170877438241040318671414204172036811429895036772565460710501286018318843305902670413591446899968847178334704082914681241547430930099815384258505632760473908768904927932249240953499190341621154460821389836454362734525542137157891521320603765643461287733464232652794907883819238644475577059500911944414225760474872733464246079592462981704641534606513308409571476487155212860865784707352955176812758232095338163731442904741798402689359511383623361903652219368694895392929861056065435057970271551124260864308592728205732038245286337536004053715977663220991349122262298215524644134152945655157701519189869240729862580527069848312895480796254353197417128584257661140282009534969180216778750906409638893891048450466408657503729405221041128000954731966004650043944216848594220901445242927222558490593663824402773328362645030305335399309698777034309071233257624941496016107924287316685263884527512670603005707641095261429896648818120396063873408498555009417321987796675327499620118697725690414469020624776565535065664237591469173330727489154340583008070722148098316774819302173684537002122864915199448086439186071365067385266280290156868007386584826956762542105298641165933869248253833787875213492229698895497703342047861740980716210184415161772214819110043733371169367430877326697308599010371973977949610284291618684127575699139864921142478781435310883070128710377476645242406304328370837731525611944730557552379109846177353129064424104470894516690488069509146073182689449278788849309395000995070229035343539213325589476525032807105285424124294687830663108279951403992648538194334618029560143112432856484696531717017391253878974666097145394227727410114423938795895987891054566410426814789116268572803599678303987097866634444047449502378053749408916979173853720974707345273979460572492759082492782583350682569083780835456936366817395591500548911712294589342501939702089639872042336081310929952781885040277128738574435470581971449057130415919250755715118568712451386170846137621994813881555082938848375691452590235639700631112601221180043703847770706721578829144725047038571195085880934755063748382935317775380885589411741926329374954300085072224839222875439442262626959819118969563052527909934629461536093616354944787917503777137415907062317596724558368532599842155881031625624442765549902532750176313629431277960119164305097169595321129920452717744965463360265153656582884193638793377535522100075233062499389170886030551349824542033286014988225189244497897136543887876073258396869412398388082043346266117220437998133074235136784990845864816666286201110167877285493227258973179629008389380937836886224309281603626918073213564653715350504886916477877918584277379081886131475435737043839641610866845447786051856988364354553941467448836225690758229765668051777774848742973152174071722240899625202713446380289384331452516983638073117992146783653334217478880597728426160203584308289244514390795487419205994670310937677692734600115726354786533037870508825586261691695475273604262765242628038247711129035653109206137550104153516350029477360280304265156068704450345658653273748883138871363601280833913126850405697305826236750606618539761570417421742759409404777662958560993046444536969357131235331390184473101670285366894180350236163261932678725773121497249824508730303420476258522565871384417192798648134969900336823663592588206010751421305993540511823982213935958424212886801556949601316342658839229035170296385493143120268575172092434167716759536738545958915630415154340888500416067053346654082813070083289776148824969628924016042114161510361797779321029713476265799794021546997803877847940159881608521421353530414979434853189195283011575006555852642361877164423608307897345825052329324364026437592459180056329087230507629703648435508696762133108287701771634937764001574077061929099773118327157053720920536540297077678672665327793308599658001092217362389041358427951933508882214543651911343401434280942893214788848307387257704974253324646609483535166578176707446537836480284709692610131864502931229616599437355582029288202344507282771381373531087386815666846805841655395240631511573679215491126324775012652980708686532078718046128679242880775557065292782594194300758842780120959101663775041401431445651609392042139955072749878724457109413555504501572289709470592871547857842375495555306882771627860681824647647199972980036733287720747522653591039754964088642547652414313788619066227139203374830355538284344476445982436340653278136319578083438991840207295633122742404063291136976226856540001062389860478166862977778403127948999170739672306752216295096528789631503782846767916109674558488735934754910866919617224603794332653671753266796427575943996049976680661204001653302850494997286070427542509372077385863700415441026059524493707585003637841381860779567606680646172342950075239776514594329489671900183945085350711525082628454534527375779691224833371923427615820308014628017675628250240714602509716056309317672459307604868824879005384715805207507448203052649668981999402515794942321159027841043254258353371777888992395174636657432613728518110052927573466418481851815699443404088180376875351974066363047833728440558181929943124928206995745614238266530509813446643009698835798899933364824964722667678660948382182006917644779951541006483149509234023132985550207601297659765482514322142772658066657557824521143511835733723773049243714259570295855158711563888077995670992404167839450785418474597908981580413082967546815203466039698784393830818392374771627897713828444340513409511684277340921769072524763108922444664789116879432513222007365153456231185501387421523354450308938853986101461106907489109566359662948150468546756229289415108923729431931956149182318256112906025836428781721949291753453882352799362858896363679518066994355394737960678838639432992182785568412558677995497954613302878621464651571399165914028458734870270526106981706256806358660128164497972466681641619698798867736847470963519634967576772411719388989116184101675724906528123016396816931500308252014897457973889001526824023777983097240046310850649974105912095015707758414148918052832467306183514095174913707885125975348247692650042368546235843601597072961828044309168026370057859215113722012165857223365413744447659413954964395531325161609658018099208779083525790375772675062232251858830607569323189563374733180715366869988498638691437039379137969021750962586928425716912905420020815546977772690884691552481174499936570726048504395080918943285304474939896300603185187727458210524655774108122548587461398410245523154697286056159900491973013387453043160232464499265125017042598959818255652388758779542910909672190883553577724986861366152804958762154417326193041179249699714236480394563630993072083516922495396202008388151191837244452275263668892099295766770956673835188966195961605375350086023233648287212672794571825927178717732484309582827357398194107946656428415373520978922889002103731720275866429011838350240103826226941855451746236005539053368444799037802314935009104335155598361186501260495696025913457693658762226557706320751802591029709744929517888542021192971691266310414209140107864252386132081347634547297753174408567322103225460739301677418956020272992031624797537686278078459710521326857264537362422553192509518617187601345112433762990535554619591752548043038904417376179131696274344878531155019525369978077934471263842488993435819171956729612216520534622308553410454617535160285303531706014088121363733345863747449007128683413621307466431499196264587662383247945685549526493664650173730252699119087348893838082204903139990505627544398890446347223256585859879118866887408069701032026820399164596539398276313976757586756306611912485289248569949554527475825958380592669805669093152791187730205978970631378708933883220709508976733530085556152945784936406639124522960126695960096262492362354350067173565750932462110097876387859400037811122554818628659191302654661216074980353256023443563676312411815896469738561508295193180065715412630622899429863180944708829996977823600837319327593124537302930803197083916792112382203775938691282057040125772444861579782897032372098243141995219135693399070137648657237940901897310267731464770491543124633531492311649828461191223204432979879886545504885502817224127196412962142552440814338331848355485316489156555947284549415951832993178851797857233334982197167452209398227947038948309387006888095009500176018651075682619018212259879110673576574102371886627246993510757585531487585060688926530110183871898352111721543535127593826432969022233949380459763785580907317163495687503270898657045091638820524807942352227535687082560260318281292577270037991853012635237990106194259570352197978694603793409090768169039374240329422244856490624292406904135555797817628099397846780875087378892721735054157216861062524353129717528701700217138926526862619668687123822200180819981055671128721788669286651408685730731420302602941758006147543396996144541957801734713074532518466502487391866312265912601566023637862665201617416091315672128370430238318580118360359563761144021963419885177735871538027980839239623069592894450288127077113265979220538364752490063865053846735265471279601392705742533572399284392566821190075920761228272723860856213827653499339217228831328929444455418559118523325131830035127913792520760388229329076831775728434767105684327997447620079687854596090230370601547443724261146739763761410250891819342787823041883115567958045412431192103441351490269095501799996042072322609942749361962125944584701579942673840826916807034200373342817358824220480345776191805538441867061092786475446871109042765649096133678966932061865099048116796598605503404920596174158403183736624449878891035047061650009254994233945662165624604863627523675719584621270971010358678373762859455190356948078418442046116427432686078748084405425187122732222002621434798954295282674932403815009818480465700784161918386349257477692646056917675531836754822789203318027266531093127116436793381962280095954133047870684275861578398159667863531221264910741628340363758489867323878266137690359301362324296156031166345795033480696041468095999851416733156416636610638135933370291055809518610025965969335853813370266720930385742574216786429063642546277737124516142500896386538595275801322289186537906079328441153123957194433305971116746266490238943266717961130794582310441191900797838817152230006700944002400638759226943622851083989082522875583396750453543274241265645394801066480187933702647796786435630154195928502562439369802444070041489810128503847612557665321967998949975116516655256803543642604731499806941576711495717908706191447997252271479529327963073535876112075829068056459270752877176117312662945676036633571335348362257492316090884997339500082390802270834018442186023971562268946975901121116417635281961788002013550898606998035550395507696017523557173491367658050366348098917662374727779443889209867951693893615953250815761042649807718788583191666025875455855802071249602035690143602411606765094417511639955251176046355458354558683733327378353855866576517556532384665889863983862957934979865807839120288373221654180551015045183910468920950564429261871307271889759719852246213142951936737845472512841913917280843195020814872144868180912262141950796248583678725120084959052492536635255753971301282522666319312674727117087401687401981820530095690121079949369324046386341005226062833597847775099361974110216099153341241745632227291428984531546044679324631658508205990084443044529235683561305958572769849765100357637380948890437898149713389441121553404782853834102515862734522092981378958015125267959050168838110797793737852314075453642383267753725911397231685879268790411956752555832558943262474631695959323793280773972152341316510233269555100425671347816568789443259010203076129931870611713111472446847380987616613298215895237336732356716715456141755516238807971200015234531119945417833872460867591965315696494597543435262414717377027351623521869084588169433264954360963069032786367827217343378723421220127791453073615284429176459375754527665511736166249377625834123266947038661801099526416141446943686665541214653557251088231326044430205947829570646964208405066397206393173650735131730038804452622596036548486365969426951483721919405374886648224695513800141661753441310943976696304892594972320831753099626143078452993318016508452080323635826442101627431013661298558705422918469185853580002596570936106888670740836870849076125799471641309963888597728060572543836777759459494879039592655876319211032276505838730439987043541540772170815337122816972534708480460678481530339827425354606736133106255364807823517193731976382923197606879318639973939709329235846525925254878475606695873672602507496468659320534760333026702258789399715593846707346382221087165431159871108323635901506917046254335142205615002339931636212269316141645163467224870089085755978428672090870503505953911028556125649913517596449387846853627188016450215023465660857544006212932808424563547806671370456568519259335922474643444968138939640957288030077415667409023826142450163971489926715058806214047363887717765209161257743011347519545220374908961631221049043534651801900090993521519640471458864773560214651224794178059004235182076679650785800263851082616667884855895074915864512661930983830583482629690713170673107171972808077684848057965875444137992944910704747182972801787259017034033300092303925380610416754846698895731350680386861742639924436900050778323469824069242703312234425338168695545685424131743688576721218523392455145195436629288774904004394559466550740842702513881542258012779936249482761255301095759410701557524570174019788509769995259561720868943409159725896349283592949176418770735118875573352390975338613904611744197549108582378945359488173409788639450617009227355835690040585622723780649116217992575263587677173378254508192811081021590238831184952959703028904546355239277603766971804645500936638939527129375661836498772135574322758352117961769740289374567771171020960197086099888919748227818340645149632401913419859546667518630438217822980536476808596413487848827651335906070316166008073856450236740863265104795655555239056932413659061767319157743940613838008162286942147836605812279660137868810364223934492899015582775604767214528875269651849840975725311412696979996835831311163623016679676374068208473522076481987519882298630528018228873740084633583983983511917977005782448199586712374407288542554258820673303865935123488499797026231342809325846120618731449057393342952618555683158647234650823356311168990392980746237301858961751274620110241350253016504735987391299668773165788793314681146209300688222308872061583309685836479381171758723221188044075636045626651016083443677231341484618712669394355809447299222058095400341747711692494857224976113166687150949060130424278786117002180954723913179444184167702457630140229750183193804488448160477701404081374189395454759655273539614603519113393012231332991332925650798965230809059858574069510691920327933473397266149554170561661608154295217879242085018926158908427708999081541020516351796459815754559688069426018001303557855470271598760068073314518161940783672212238517331773178365856999962215938487588392248992911068712777416931374725695651334300630652273792455105626692188080781183258673136960112090771466579443662883300144081586309863172641906333044044508058228112815488916198322932731818799958851273783872938509699050069095815055996862377712942317619729404081394181360272405148208207379513631484335422793933427765368610352540772583999654861874606811085441599378263442183839384485848529035304569715109912504423138252492529540089600277653873866357415638827431411023599533922274661428089503023576301847389969569687857964761481338527462600017284007661035335997001107429588617909344856882386140221202628100987841947785566957670602082972972849321728359478850747856268835413960452050327339001159768997592348823789600370474350944012621810109481571513305005269673475051595793024141924677188377990789709674198562062060336577626066200393475145895121231388967680521585832148587562100493982743377929100085634596084787274433460556184821630338722910556433093467219264786656314689814420038187211093438973898630381721295790929911274307671977729157837674854628928521808203967143785079336373695007727664266755854199958856972588894171885473245704126545387279293835554230412841370132131163168616764950318207812335280786703605753169261111141319274287790446455907453108303045956119947788929764950706463971681451462945312429436355548868636124882656124006440932704627209919380249935389605974433512849065936304283010405817460612320439445967861994375881821078870552909724031508851804469767207049321932642732747494746573527063140084600227060695596769687699358161220808761428908243828225082716265451015076507112254877678312710489858125890314808011532348223548575625016361343244575548970840185256248785584116155906291570640018619382678719167145422978427013185563530075923391743715042252368714308028697389723065940874726155832002885605643054367547301269759923912140930782051634730568394435766080505495391291458645641895198421266755703261404016526464718191682556178050004366263986812632605156770373757632282557237224033732656343992610107277749134762717616978002420241745421963354236834210899820509839969309009668335172915560518003291237502797413833634655705452783485374761577072978602826423169895661621536415061191691186958507630088773984133144332352216108648075376275627953573261927680750591791975382208050553608592143706425588204079499456805320998452161952903487471729158788043378980271991757552841249516455389736690366797745851060492373164749334851389131076704781689315092800565250807400336026255879746587338958865045549105944187115107898947642772391413200859027313482305147114710862568442443055612645731317975946690830413403496984189526412808130392379535423395514516436858329717672703387996607050275380884466661324952084705956236035132887635692831040423514230736898302257618939822104514711649750864957931331023051640070274041872292552531255505075196263090141904288158378608018722688533033426032418874199474309487098090077968962215212782040363871849869115568928526788514369208111989669919917593944222765985852960731611027277193039228750373527674603136498728601485908780108902769648101784192505137683639443277985897834996707510645916080799781498674621295942992949510345561239528518996648389315134166342562538722904207857003100505766723878249942293043318762933107599216334103488185307894578621304384469902259715109537842483964045195613952649940910541934802783338141050549750386325213441665253257834624105431372420513436561007097502647497506018793298970049526351080384880012217081134423115923301825065523290008053296095052967476178277649903380464927564246078440062247751022984090446457608828400843839653757251633090869365950113166805903176065399413046783186045006298095464117932227606439454509746403119000404610136363756652514763392205640853948811565665156414499546999798961551708519238964173504861644019602822837023105319549445571577791956758859753036660988220249688649624023737697414908962278262671716470905454589643425135810721550993127870018109479337800194288116971384559781303437591174498305039727200508838510020486452766917597291317151669041458699094829963978857884712415821518191513119364659265502246995225206586123710861707775297248009628557381117264350439772399159135333727943712149397486397926247924574630926880601612683328108013730760678963885303524762479577296233036320607975313117003215631577396114141726709684579198896782331749802500904092769839889486946584061970883711871716267895059803799281868790835967674438673941108953719698618297673845895439244112174432607281434415683337783965800933241626531197588638631457596991628226060779033373953780686154995433439666253404137239336058376135713663148496022846567534731883339597694060242585033382282696716025148826483767031393661503046556944035909979588086530647752720761812141539410681855315173588005631797895081069982071232635714671453116275825250080620098353029985987653456158772655905776777052350680073472116044980648839123443149699456629688381099231793759615151983265012059878144161793289005863320956390449673274096775615657921695125695757343065011177279446769975484639636764740951978746985740500256663043049693037828646730889074067621720816291000927084108802198036646903200660489829526544197361650808708999139972680652562279641804946454156448767012800583944430038777135570780465643299132187060632208151427506224046357396332303341712920530795518615942218913417439346426986003963040050800204287041572959373530995771667761525162452409290068764840944524487082963723479466340834676788924290451598405086071695341689272768570261007189617528775251605114575792348758289688272500582964348325725019488704916732932741441469386161100821207301489450942209156113531966015060095153004215187968005009256702774616975269173663358847895310487516279254152291573647418488012937076008264200657418502417040705431717287584945349675596925605810680009173553233924655397658056115062668571458886231368778250270750779389298522128983767573394440612389601946254801496866953716675692027945004146572845670685309943119591039872370249270901043532552598050115712122632847074507459034059643855282087291911849839551668044048721547532339125619945930281059752503341685465676518494539988852432775783503720834777412746381874054586392925447115055543227998182086818796986470104656134118680053965131346723238124944140474145964713110072333552028123385221405072386153693166089460593075675862667907505370161104070340909262826748877502859752375102385452677962055306027527774367819405779533840765937191233904161229938965877540504209331657806959653412589292769002105835347234056106514555429320091707450439470199566983662770224702288304266506904551219438370568467083823573011816322854340018430494979858262176841561991791993512415309491580100793747740403927636888269384149937580571751713447558159310327457741875763711877571322468922722424933777711395755848434693143205619352281759976456338446352366793269416636529382929947315541602622781043404597128258224267019760969254233568002538348946563112495170146899400464009118807408707732996430309440435818340841417580184789950262473895690754781926652219934967405417288191105033252790021585459431757345887327695863977413383026542251574881272858188927328497769691108525938565217239184042582582314470310647604648145020222102865333086563744022595880471321869450144366817538530731589200519065754801582344915484431777081767125204611964939450188625676374145376864560060142151261292424645967306428464885104976111918846720498664547599992680177566433790034005684703754475628782493489840871400770236296504170750104540300696831123531729340302631722131708617620296043445482095434867636952493941538476675380957735512146374990805038295646709020523046739855643558238071200134051795358177592661179297460148692132026306003931799564849444447316119372536942062347563745047826759397321270337280578134312662111738722249280633363983451930368038925930968899520925203527857198099238057623612284960652327697097076479039139423140213336869039480868768474330801226886994620347082371630972470472502810603314164701447412054213824030812834719100930862026974909153607225275128659774951950701446835957034266146025302815338482727764497900776889807445830108058076258028265253984671218499044394258918802188062975995631428163848511209471349952422729096625621310572002786025213027165243573020132199505317112041933385624321811596853531436428098866010958543685260108529344637841188537182627216507454141542909241257634281683464248035818333998660735773094094986065706615844070167350646845510834483041034071433068861350648161231335008442336241417442522038471620685815778003440744224089977379525077227224252216325270798286483423936031993600770157814548549973279149571524204777183259862557471172176000475918686134657668007479138823888252605950369614563755509483645524943318493757958344708256511202977130548905985889360490419843661556802806391016931507941239844261414631452720749063421674666562208207338740544102755527732642572666260325434141645180646462013591074636904814091394881734915019090588786588657560805463319115395795199226915101752611355353654804491538052352430920956839133923664186021848657405653138658589180388829010049544105395042819085217095689709852226604914977034425634152011335435956016208048334570567858284751828869432645728470941550706639004202184742841481507293211425552538487682398405964036946755855870650778052888118437054370766853940204366790879472757699767427174390824114225151702319553260149292053248523316443033614105813480812118784454016800498418637195377507912250981688395943984374349050092769074304972197321668269078681894298865543260393479960279152866631674245204993576832197598296140906096002775007541161182341365951954364768265974353872503433557560760309426459371768443525658456189413304362658549333964488136678141899403537812518636180986143109380468608423894176571709198375302735294605318217748498067641007278068935394877856208076607646288643497578138491675496948013336164585535923421874443904872822023274827900043809743722240905566579827925407920182719176407315686878899086982344333242984617134807794157926078943786937879321819276238320885621982562620537061570533650998666043733527800430297853858257772582081434930689509974690284212321480543625214410992658451320869835695037934121927877015483766846258848514803532821005762259531238439549984559771836617746969487713373602949024320140089369543524642846703906282961292533317560905458015241533626970463341560947714703878331140804553272026698516916550545808852623472270091856838115291325160755751473298310481745116901185447389050027079662813573733289152194735131715071421181962239506403606625079376610114109097571987519506279076719920841561838312623278705367794958720934808531033700370796769814433398653194730055395503613737169035404412274418482508972554341132914140992101050279406078134345274545748910397870395925576771973032662920585002184124305611014711726658858875858110980136224271917836015056300845061260958035114622186897039265600676775227127811508691824093126398323889514330730920806181836705332722219967122138243924941338450308553742913951006061214064015277299204721624746906019968753616129309594435319670213870262242747134252951983464115021525852171907334352876050896948985966187372464714844575400426321116913066108000759019927685277231229433845375373445561927073184207700352518881985100009105886970246361413394637364036291676485024313959222610891431245843108024918533766365473795428101980063946754916567388220937206795502245397495279360432187604167371252941868904167875605071581918462839749951776189847012014172849225316599764249139615534630455967370036698271392447461722405377563884525060573831172206330995224613827515438426248418305454616142397679580757579289295535823158379105998810001363558358025381930496087484840623244213019673128572797569638089158911415106268293671325339044322044393512256271342583571937580755554709952805865092748914856061501490586722186301814539552715433774411574843014604542104723710659093745894556018507470655512504962079763495262962858574191061198684337435959902767513512428421627873827040736179018226421161905654523559821346500984434684749893425519419061256853947121550938357783997339853597992080440914014013019692058848162416577920743850616592988429542875926765325764612786581365386930230643249514872291568341948933977325772383110186072859921382743995531670717977869463102412096562992515636907070979765746223022481118369933795400372890400355281383879166964514630501744667830267733915658485131337332213455591201694281994463558691199010467025724886303914313189269027234278807655956714355081008523328736761888331433062584028544613817909164915113898688610204244109694930399461881564346922592382271542373255618657637319111383935082984473757876309088819066974875034626160773620105614764919585888952617573029866000284492088330986935638966693573658315432198051146302918030353282391251226514579604511291362048141607426348368904872534774146049792896866547180431109637020693661800381564926460176322823546752577251006348108332460496397458189485625071592798514006882345658766432861696499447028761727860740162787937600313403053653720016336106731197354021657427455266137724641467970163423221094839273520539921618466844316578051485787487389956117356157422927107997893783041174634233172312368706298879939563796932343814093077303166738558758336589487921922929917029253219531310631375169956489555627920773263344399560699134012345566186600272386440912957768174567455620426969663979149248546317615555834788491120313298081093820200166708214261953839391351949433245587415772583694811634921404847335467048525276266990959144485709083160423866343355234799524193321743127082642757150153738114470464896147792343239188365976041732760691839647606786632267492919332316113187767391913271315644913056937058551533950582292262979366928009889012737440110729913075848391948372516387525152681209356155068966128156527850437743856737065968657129040745040213967864098050162871632426642267337613821529562365220402118843091692449620167039837724022900775191199017338872565494516702488423144667330169795649313895385861239811166830825720223337246985737787251767301674688527011564277582005939357098122586901258892772753477512459695452503898261166802128775738056368563156444219945818740281065680175318556456529558228861695528627420028196403061439105900321537979539693021851942326880794685279140725877194846904117641691522747211068243909658349368174072439125672601413920553750443877850971869061283089542144509045453485238152261213609136327962561871364143164942213935544220600533827345153079867230668801356293013165017655537704716300915062479212373919370575413872603778440942173025911250492386154938190070397322698270844593309383716314806112834117948631308461995943078968496411168708433793344057007952647802553242998827021223958907157262154491883119891179649225568725795187376437265210419618862359708076370825191601974822344820994433323650040151033080334509873420821279214120042048018050107979856172321647350440136981148554105881197260873953942549086287378390374680988320817221479683074313026938154363684537845761557520199479117741233670859357176920959284028880000629172087162737977415351295805029709944241913807628723085063578557022002901343270927772987375157616624748404739285155086316421530282083526501557563119590836823073403043927151810500275265003370868949842881323568496500724939884740105694734338056373384023824360725388733091113738840764500037734478470910018648045541171100256140540878369928869527413926193790851385229297895810628398059044992413872737639857194829128448347659740140414325981885024539106705917683246226948397361157181489852877065023792132178926953611637930446467710253991656844314443202029811685936616659255206559795684826916762997773403173737803087482081178487672545868373342463345241994141078015369212415987783399746699739542951868182009064969761036782152809895298760699571035690960283710085997898989463348720957080217923366574870714677736736097246399221575321940236988042560150000758404117573195749841674033303526039480973788565390288665909901358403196480373293898604594203986896616222754894365507600023458141070896150939469264527739423511469401112771914913692543785853948352726485755216020872048124916910185271799518375607328442667718476795407111621801535398791824774981618583564645228030863239977138499283592092705553078665155645276895916218692034701564555734028766926384132577036016059645969040322551231020295599709891641809071291457489862443029770711389414628364848487157678567794878143125124329355024768726846894693387893096861937217245242168739271859503264117183198135708927075601079299185145627502866219243697984178114140454031960916424784392143902783386837264171155494396304194058880675238187742910855178800207881176791477877311363880277285669694011827275547502000935927404948376919641741747437643099358828114902415856717211865451819540327446308508490018672136527178874236275133685438258435726097657633985935364879062020368888102701585005808302800529052500592040995400955993382815605515780805692775037640593242285382169458924730837269334803451554408908180300009713590313876036950646295255811932331910420173976968511078545102058841174742956674264086276226066772160763338326092443117163266104428145958606250699868607477542904124446463286078462792080416316171887736540720514693121214325169234294535433247282417296043324790290635405744264355101657618868875755289249058307322668857940636107263471314512803909679409368497933681487571329869781321192473059949601402778186483195060983999490292484822645196907669493668091852924654025480077219908917729196093156605486780271484478376604390600314714645229672337382101872503917315524586995542388613649792989340573091186898229687569221987835267888481656201217993235571811933947899729411316250382377160747601225078909139136007369816164496155077115624751848671864274187522209836992625110794587674427102605491018377141493953846017308993344936047697330192877913802703135070732109818820990421774795824467599020083571168178448830478739147534493519381401175208813705984398465495570550101894746331785135447806050024532228986959561098127445372003405068433161951983630318170374789862663270724406537943927775061173843773910037015604508542441718294622323098741599261379231030639797519629062149549367514934829553425573267340573662545638782087724780170125191080613807632941910483768620615503990171057754937943719814986022745743276873586654721193724736483688847386369550472304586168757789926241799192428880868466327656215489453775846426936601705490410696791396585650472314269792668892085692962878423316515400879707948404460626602059142071572641491184272577254451851792252299228998925524179313295561629333876104160849199666317442308779405887350839478730728309916977398349794368477463448015790691042083874953549261759171854122935975189900892226217219144593067886197603562218812780638813224563555606806941525529789749690521025558711666880394625316581559026470171799000399024833401918474186111779142508795783220037431338999438878790174932178328570913622593452398799211941358296486042387182406741709862281219018573336815685703235943091990841310032742416308560704018396764542197565982152583422886796490617533288038337592518802135578893511916333635912565307619634468859555567903193134267533833066316434060769725033746120456578575427494456057731809473490446364211529985330435369838466098461376693430846170005490836101239165487402155201807438320463746783904999935185678107922897258746903677495791338535035133607550732132560029191031551310728317711625077255153125730496232722086022521464840220284279859329283668879907714081923988378503562205294533615680282037531395403317643158940563253112358682394728921042814777090452957049128759352412051358687603284514258273469448854564319334456061039277195821292194131087466667665924574913853915794463552398869067679969535565940340083926630948915637051551833293940005032264170884889946017449665907668684722866810183423473358074816786082569926361457941434157737969727619536251481604750464457139352852592175783952785644120276963185951519925370647385437507348419804585231099524566402639452567114830535968678311138004081619234069234032609897041045680379348360105449292069273132391092894894161225287725417258807157698002902327692992653967222231259542378978187961729736923126986290413294069304779269034079608593696955308287063349885358980631703790655102345550359811047226307843243788750268086652866619701235843107548719344699613511024653823076326385989468574353065605827530017359129830695156395419433781212111804407015361531438457987316667203618404665922914000728615704709231838888371259011377511015467281568312617313584544495556934040160625159122144520263040073167862421234739841566360615700229575795125960678909491807148721992011513386033420124903343269019031524711111770537674903792507047710800078072437972199974867805127054386580977383660845571415922313112507699438505749572084470616176464289701673424853130726531131411329692244997325898693793362053823104304688116727029678179353151479252622771508731784134720117508291991814002438516518729332192236713933021839371801828431923462068612248771248161446437262384667227387169270434322667628213359572086575925299335704693016713770629372316184028128146654033939299764799450835563529313404481499746082157314367827706020903620002365614794817961669533898203303643151976058938824031310458646245390394575637688705927941914463513165656385303413805511607383011523496501602628983311752665408951427645487394364290003104649756341864670633839370264043271999344450176536211941839809140543543120466110710229491479572822300488815098928800520298222195603137155531918072367580873515739494158638634659242649298271246874287378871072117796093428528221850751761203163287865050956785978469694397066857436394417334190563835044072943862175261006067399446571445256508218511081123473497709235330607315603438336668128028972835529497834686120793065366622984886844589730236869505731807170927104880209369886005259423468558242146632371483603347088790508346751416318599787318213771136093379679226713048084006357127404476190169902128050362495514649375628572555347220155291627360048420717450788079507618459136069577882486187479496027948214683255363696480557947519580422659618175754553725757800638500788289428801540451472866450769363642926165614640923760991944230253071776066476460974890130071283206700958344414867959642884426565334806269850089001435859793432049547007397901976240218318645022518735576819538466957130700628882926375616032787642159655931252924924221613295745040653822016726239861866164858143429888315192031590579600733663059264478017682428057937751925499116138740816555196180080619144877294851166256997724515082137146328190365180877334737532213901795694554698558946099509944819766231605827389739243085310494440787084726990640317835935290461384822406081401306739211940359265892291196901683043436227971530484459807315903713539908523055541358503033059942630753008447497312132922813900414937292573158103903671573439298137236609677070372399756471131383650360610405488716098619039618499361053903230560359089527165216882441207600029377720542005493450599593284765791445138948041792035850852529938744500649077050320426246039291347918605296418151407354308345877036201626136356475367166760597478008590314293613337929331917500848550960438971811040988775200492122237069558581249625713314476066506933678827688873103244542439828907735107267733266784393233220192621936564466322054855219636285988698212459059484145389835524317193424912990061814639592356382859406169029756476311262291466746536626582357583297221661709968921215263224954097253009276090968909298153985477810475460397048056409701943861124378321613301721735201695386677893805184729999611330175309536392020079729438433442713241962980107195951189408020760785422475347076597267957086043738013371561484930232571019813287494389614948548783732970942781633625443633308269399055796881049489203758750785453764050536575757195557194024139210826876090887690522636865403018708227018835475847239992289403407907951367963796350726344224554191280957705903158772555892207789691111868653692807238302403892362710498072888312875535071751133424809692876972015866751891421714342557639048959469858075006092798100439092494524081766250952741727415601614543159451852217185574955268475277271673891390290147202350598954961574173169890428553994402830278383776236501085909369192015402769486814408826839215934253185968629688677073556817836034197051841911679193966183372970001938229801502724830835080109717730911105870894894672305428927151182464154409106645329532393545051930527899093172811499649272530603470215987196134565002063107133613651786165441649703573682097625837494386303922487734357175596671101166931279192046208898287538871071536313688155466795901553145462365337277109419292748404169131454197001775401916619419279523260188825373033775233601219617116125553889783561767083773878526075631342058656819701929804205050345095013583730270205832447069646396922369063859331108112201396771000674772455361451739824657873343641455185212468580407288018781059764871776307978933254645800932156135484194842177917559330935785967194699195056191293167993441194597294243460001028579758994049694365666190975793295668054246701383744999094886569721752978624999444038632564887331676004076776907176911021713324616671369335776775179668748237981197416413893296651098321913188912306128832130617534730645943263123690219424876504426568006403723735652001243194823731911164158611994016234561070555880366626031622166878471348964997725714436357031875007532986006333082899705127914581977792060780694205054949268204440463425629715753409492743557972516015720797972660701996918700986122241889692247833122306988351930268001333515823480974691137836974486763207815466488126392408284186516024914954979864427209866051820357176456894993560204307104892958158650639519173056385593822175143013143480759866933265048747990380564683509565616398416023155104796598859316847452297845327115630225679638245805708738335984861594269992353031747205620220372615270897606684602608874471195186752852500561782972888719675246604895413107910513002573103926269088847423715651830991635467374572399438350009251653919181018423706418278446319964905528885699393252826562628242869076046959122933888826367890525889629799260043658351292859166016816271158503859509920045023828805257871607999148577951174107145878927892859445542297574892663914906061225590184674242048983069603260992416053731980399309580318458741875611965516941030258842746132677152860416756259971668900919744620570788760619382471443068200786999515821869152348094620599473367284161874380183762446843114622719971835404199085721267006752205570817790802076422387700830231459632437697248430228137474801499459678297652451111647562844948823911265802232072339396724873534837968347090372172780718219930457961708748466832260754831194646363162955046142891818703440255160661099604396822797600851051090393629109199421193882665513643110459377398233754702234897098938238334960622241445881815717448698580076801768098313544889080730980104598298840671012861381855597791311265857946279763440209325404642565232144878549983704521267864862959677235993867028758906282699279492148880889025975297177478906720299367123678763451986595708011874771798648451089825195533914045264040275752862201560983909743678839234336869029379490238806297699255692023125042770510894350978320237026090787722102888386917306520297074268705923543037688984749133115084572724089272768529320256830382290269854983092664279816962154826437896461283683804207320924463481062482376286784819581085473378891721650337093171623008278354460953550001570873258537182960697550817043583499220434782397372708582326963623701760976748450030410906040116877481312364157224925413673506596999974351468311300047904376338946838115075044798362249775689187063312159825736569343060981010581075128320284644444466922583587764541076542454461602377782788423014324148376077527228666458631768687572843620346387264647033781045580384086990018470013294906720162910673208665601527200357037700877236393370846191528320488231140350582535412867184976918987401837011197112474081661540189701457760230237450381123110997102646614140418572610895636960583124466251033442176986955312306918353300561885184871146756537471284253783753602700254047815267696386800281490670826847143662704493834208868297956055915309143195923053793897090912350168317523156938922081723667794771797136271924145558888086019038040749460151095181573219926316308153672778639533982650376935093196217493071036054682746385192384010858938048215379605703755413634194531791021440277244002285950510525078853005636254879620396305141675053890281548398938260561846059692543092305011844820244405735333994864623246986164271525520414183945458833906450700211202816269037643723678632709238480835704928556654225657004171664346794270566931694659035590025009811020461599706922269604303931341501123852020843307834927685212802322911525197379137517432840567171957865482009683483949354987063341045109115580239978965553728671671998063562188229089859713594565995658390071990841135290070321279848681737876376919750159650347621049267928002979882816144262470454993187358737961144612207504177376803842330889951248927382171911705995177134534299457297252152140383430460734029321292971835990233671675519020483679889348578542813074091711212749135188966503880595036488660019305177479737720060385947944314665010410771923517224472581698761357315539473606361022608171954947748733465753076976238292997066593811303556669828383083276695476109668865318112204113255088889820627979806480301121722792334181960798412999720720088418393872211390347247310851532774836698378248679654485396054673324517828218373712906848843226097503190635530179412648238953511473878639950548602246000335769136031838256952239304394162767786502263671590542608217941626062786534137817872842038156593007446364067398966754926876493957184903132121136562023902615229840628730956481281693035018696850371310954723293767472224785729641708198589405216965981052533788923350319872584948893728640768329664533840034139733684656642998129620745325565166107548253738167396922771695636536682581378539295928048639346240680045612897367776564992644452755616222399431748911099786814130034087861609640689091934466010685781739964966919294071519797706196735563278083037486762428189532993799350174377033041267846394107423900040751986059181564659477586096999941255968962286988157890242657789777920452894572685978801512039187864497160499936222646124958687721434771817782721540331579087438333180945029353819157281454183268211248197232597214322349402628954695747621010807874258476571478016088334049625546506324147444237115967899237058982776656858977194579259926929040833893272332479302542032741208279443693635479139795797203963663957821049584163144039654240938604752833259243435007813065949179499077038816705671448564759014708193628846063438708308730139992537252983668910410331359439434771325452511125521110927987277859513827089163665909520741709275251299026204554103080348103227000462081993134977410339699357052008134906942080378722037904643828902499024012213804633979802421821068393468508849301679182896621304254933387996548743861093208514910533275877322690267241292966256736459068755914896312050174243945263893979024423237032649035968525782137809651504544989318660685590975663239442261822295196564215725418090320998044966138139531209853479671146993426949382451496674751598529004751805276612260071977572249670815150580391434618240125218092935634426976907759366545209082025060278046714933632677872058168159702504818400764542843654950033719423356553170611002844230300420530529529330867637602864565461103827537415474849100931287259564420569761099930208810403531866948926239609953565722335747574315878618459048319664295632227261052716481983985463379437083657296409394888203974869606943333151457916397207480723433442706976286568508894730949815971906831106120010286752309520111063997859704188194278438731917954837460367190355693038399401548373818626248926181581754672309466283620556512169174703278872845703153454448585223696069798688922493453282096934356761679260108472382625897599052637923259164150327636255946077462741704332544934574448894772168762718277270729479679929407037256821061295089993702462171998898944678766862734579413522640334981775308339939067029665213380346983727289053247600661939254582065928970141526129507274262922793246579170438371626932075365011196015575259469406191818184873777134268344442405293066005733445888690588803931774845117741023973587752822843859586720282398743743529592115562432243892896300272910568728872681616117730356952723169774369592914248446211898945750116903129574251482845174419871337174865767463539747457615954160878152194938038219063171978546364806877248861810391894489750730538558049092079632148308935231848037909066681345271782335322466125219499267652914275908909226211751081746705000595680931351952840080439007572617866577512574528843305355317484142917533742487750948993354373583595545788270603739739129226937030124396568971237739451673185967041931739307423102053944927937255669514349788055457033059083401130455242088377453018234714836854057038398030083490146661575627829724543844947365389473998534287543282274785381373116324699293836702958321529676293169015770163764597073115455682766349019482504203271623554376160628961010317789208130071331349683386548654072526999424381887465482728672722781054698999243638538389171009159271708230490667276596162378168640441085875745479366675438596986709554749996591202364718630251342342866031230832887254261484650491333914084557134897421213326279563751415885938343702328836763614272109109163264381199307118058137053205218187168903404084228331495613971410009101715099373550162504986980212807755241862004587089684443830634459894955514400987651922004434826887012701983039406922428539144344376925256906037856331636359169597563628551168556316245250277545376196294289043661945896802391851580679143860655457630666538550897916719672277397520763582919057664796718038856453881886603506454316833551245320523828327827721092596297947436508273341906948411747713586694162355151541897665027365243778292737501090510930825867898462418684947221879450928673056564729372657210556932497375301720300342984629399035760405532694801975212600306698038435039953622458649675717353644866229608676650221147619719066836700078786195257277249607749530158270401915630348962763155359129352170209298150999571189777124690854467614485083505413333978482613439531495371915024132149252570114576270103268359197885516410361473764759625097622302881118895404713480424617911538541632328400543710846426909503621868337287756445555844513212607093650888968996261040660972714901582592651684776350623657335276719538329789200090672985653235452227481654101948007407498391882302793263914494236957352889952770410995339475528270108194335733697184319508165751817731361789203722200462320225025710195997579524022444777321462083760083485538773062739020918868352510196397670784185032783930345616401418765456938000416667218785983018332497804306684137087899778060970875131224537331792104776532196322692920624441186024038239395826938487694386479921582750767801607506536356019247816328848950673931704750819664627195118968792595048559814225373534918820225223225452706403110045058649340196268324399675027094197725799996211263154981806629354071558361027497190651842740656593725451257474213565274061255142087368319535891534018300564376147556000590188755943248998734235441853629889772464142911298518495310609053070368529095174747046621759278212702844272027632422188650036282932734481277819082473719717873312282624529339033105661231369437672159701905627862510231496508385051784954746257928633548467647505619389560487127247631535427130602573246197073058891449957628661080519401608773839935947596879342063061649761016289384743787627083980936528689093624135397422309740440123377345283506225830076819495350573727124729146302429342011820559428587540967299824774332995253289388910288262385002918686066223060076954145344014154378027435465277981124805950108815688653909581055179251789261685947619890185128854853300197191365805093430865137339156714425310693345585359369068057311121352209014898432261639643263077611402495957275755180179589419401319774573422892233099739196245423781531637399205324766455348061014367306832579576051667436473662023462120548832579620677794658961534666628496225125599883736635615457380994239822341397785731811852669450921933340027839566052219043439079521876952862953625834511428833741880138976683348345199235437275950997248847549985348212875416021214200071674252732281865847130243740380124721275771551735438068693217817098469304772138693436239351851772094380919024767919123501634197498300194349251439227328399895275284543098006139755700791417081678257933982580345053035043559971630184552816829264227963795173998262569721393103488869523650338876723534591792138831157879766244044458568626611876186607785442345782556217513915151217506997028267121482353761675339029972479438694009843980337239260825759149712252496999091625168224188302770648315381122368712756122608584023252177282389919754616966871004680666839513940546830147066324372809717308526175004054058463579964387130602504665324509851371135047840666967408120622808495247082736778489675066868066569520461593590640327826022810236552083797774909998813393057249306686654387869383628943125351751613853047656960848342689216379531764454189162730517522167897208041102237228388620965663043269375053812605807435715564425203015360659827372446319420027263684000729039135232160978068208980025039711541356380741843338384377559456889934327573287635899539343330132152259001208386005125201093186688267356726049987995351226586460768784544884183383413662542219697146325189211728250097412198388943799647742461118287564927400801095806810716319090555440663768419924830303824453861204763918078777478409553293677312666506230463491542094550301318699283858704049776949876230868160119822506037840778293313714869319557690412480960028942859014715630035995211875113496092846464388277636681644429087235423656262418491311097071158811075995684882418627659429311553264355336578107862493660680973525672832824388047149533651630446322041993562377636592354694982486122240436933050644547086698381945613271731670628721129223308827822876856611293670404310973668158215665253095319273576065755366338130811412615041827425919791584686097566171115535926504724528901397973074836568456676376607503000803886827448092560195250182287786775116835185139009239907351059703270669619154073287289116846607505209092006071456463839356591565542668711062586079996634045775888276982303474499177127874165892377979611704433066549908819497037199281218530920424550101018728097074432904339482702886320072929682300716061300967267295626979183862541923927466039000712109973496105323355847256759415833536503896957888361222771610209908180784994235623092109652020074968190970233682046479621093852321055876215088656767684835432116346982157387655083783203733814319900742026349784281011684895754010218975450709832665427621469333908039904675311152024150248320056656158063597923618193230076288272946688783790788539740489695339314700311313244930932277053261300288505434290778900634031910022855993741995905453419829483886576419108382166429914611419105410407217183757715506151351539277140087755200122840978187258166270893127396454647725980889490463874441203383403984705474826484342166015060409787038719760453329681594560397417927703866116917540306056042759474927373175806087531129660798807172302188309181631035546996789996768141132238405848721504511097775413092733480856139943138919564591791374612961227432649028945058286960183976632667681848636729784429610824575327353237855810127991695760753661632844571547967757002225920394790124564718859527332353801320498670716155091587828895672746134396154959024810526757899163956156292280024734147290929456542414423842797513489457306058339555466206627021001410276707945843521164890881686243697965682341977082233313015802821876841167102851911373496255504415650032201321878072083632156727583289411942930094201762773431074932221630169690371102119681781459611298508035678247175572259523376464040239924499411713322706481409220890393406774165907933582247961761271957579062321607533348044259252472166376532812491737879135545453182838865387075647639734081624444987933614312318569653401386442209305743912872763381581387125506737122428830099858186321015635349402278310563117033107671249904005132001293489702721309952154923915078590421402689313004609865615236140525303927254313140978670372367159813508704144415568474093424285806826691887058701331464632050819150562484760044352070807540878211494946211509279233564167673683350164228427865293392832792845332151528920409430120008170861858410750441576216810260608335682836973843197136510829362124680025797679911553999076484038049928171803756534595183845950993400933926031105087975376413354905293957087659913428997297701816142947608013283728437159059062879686640047061491784659514338089797901747228882213053141514526750479695173436233472615330300093049742656539457947474078856366781947087581203460486212211973268398503198398806751235560721231422483976820693357970254541142678568828685762181461668246755029523775266140894926217941023421516354117757026907294430769570908960644149658816717421216683181149637091447791393408677917203636047183375907382009969094501230844029782431989830742991247475096595054024321134629833441563938684666384511304171688046800828350179909695445574285813277440301400336368378712361162753223918520093151086954785404060385142967533705144922858168231754675785993324897043319474811631365687622442092119616398478074939906325506586104726499462785709118482930764005230239571694045302297748433753449693479104278804649755091689284811027335593809440469348957848319661916191568767866474420917676961460159614300711876371159818435709487634197399138085628617818195168335660513197809453225854265525165340525641898360419180987756475470093335456463863745881837071930899277747477765194007121001602129242904288437751885569693798413746195948786640495288517970299440341709225712698364347792342000445089724019564277684357400046918068857882963825556857695524334810592353696323776654121361365941658964893601269083039121890796693463878269946256898943238426947900195449176490799259672833320150204055056395822883229865421520127390385712551158338946014788267961307059368446271407317663585074877351536087854710599450815737503768721757586689747637142045085859347552037159289414490384555188824778224888605676817948448850542482711765602041275625108169873029478991692904177807320820294539123872885057804711502794340678197206798706677346899175968570170964221498843862131723330140364840906229633661397312051267854801975140106876149786782238295155301447754388009420919581119084559317284191284475424593024043441560468496036522322070391819795473902374792889430628755879895504346332729229426581981899384964339039017485919007454985194324377468897151635061784044765817263836980897975093316068670902736290679673652827703154632011642375553779929847464033232739853551610977778107521262296894986051351716560241028710377241294082780755589199253507584971547702149091468336554322310865474877713862288757608100792717858979025987591886351963060456666333631921740794453033459277301240490432328916988631072549085903950130666659273011702603766298106832918880154007740068222930213859576454235684172436497530339103424759546679776970800273759435800647152486835066819946207850017810354281282583528653403952123279660353632408223180898254477105204750370425226479722869915914522430007083320007429597732272579503765299376768720265918931466788798396187665084089721207162147080505329655306838233758647809970173621775251826622594488975554791079002943280737776954120378881938575336245355575553862151372157904856451955247827238390439225555860854598378324204224899605866221584236888878281887503287720578409778708991012397962235928130415428146206709469072943044276373570795194638240638535397538932514553204039865813187666506718012855292092902813884649449913148962151109657353827367110519461256070483211206288125968749690533254651660985515328470502072184489791513038599618270755253508309417881533073713333483247287774790518106099400650621846957914160902586333765370269503363251590124006107726551850408574372050402869641903450601543414825874821359489668051697162204129218909013651942661633491015177709354187823411594434257301845846047967497734112396736746076937584906354299939745453007174309149674014521858837580790841009395282512399394188780009800085298325011797155246966298052393594260533425668348417106596468996024067593181873007607716569646002749184784539283759773956101054362297228330796712427595819133817907834096214082773026094598302411681339242540210247908295842719227209123104987777436008228204047939823835763173244317194831569713300108285253401780917584652294174735919734937221873348650377566376945451734805841274192964806237884746960032363296456071875008561994006290196361814327696107910102484774499481774730369751899228135576935750144684547038179643560419274820296641148426475538846160928431736673260951171414551466420877593721160664005713187183194037824930356602642114555465509638156171759883263066063541502910121381757407054603475894377765734334744331361457069549958552068159687192079552646702350322893258869265521158374045717679269786983093658441605217539839796914164692130528871247348215268404863354416036667164545205728789206539039689657009883303927822831246398832259368184889730076202950191392217469639190081298224475781030178407124137118133347420691538063731963420372270013531282315612820927307873336065731882243303526775361685144012848142160469279280062614904237264752955289806723868980112463526170892236094195142983185054938776422055983978423549606838430804446309187389828110323261749424902459296870542909598932771886727881814902205185942496497864372201915084587252415137733086590163437389903690961839418466048047641285774857339602432888485615948165391309950784326152761242743730419813219131097138233235365219625656568413210099779346586712530980916312369454565524086709902579573737869073570795762333041520457760151388345584741962374792667316394317081104616149280635883891893012927765043664289222295248659619647425015639365130455542218413698115505602264569224268844270921908249138797460468842621535222232159695297204600356284480180514309235146490648315581470733739099094033063516284763645243070399022890691032269063357760364860551940902782680315937808826592838678858928333981443121074324210574440779725530487580754382718089738160582946051048302938386321120440632379853101812009680047840131210419317231158801989412899950944905182352028550174784547276205986369707009621505367367800710401866180814138596278076915303308597359792227429779680644323689308438222161613445029092444424134286820459892391441005864948555982060284922716247787026995589742281427014367258362020191046924111432481136567823885316616782305910130295772373949421822062853229253296628105627894293746615051753207102325403956069542024998214315397713255432975868552527248013252592049623639186428240229505652917173498207387727486453474499266638334680804728431021137809271950366939837088898079287353281533984742606450074080844329450210486602352792585313312965313224536877330895416706614836311068277941901052865443855254758821389430878387554697438926764549662138072288425723934505208345421566445773935903272319758171765916091499223005364777283812733416662253384147224262994241192462240097854472979829127844039263998169698249831998810282024020189496060671263656610074693970892064689403357049238092701070510535093856117942730216979882535416280152727203897968351604236902381883598872104029201907105608751001679037111105179391713754662368383254144717859386530297056462626094815960597311128207255718281113324607610421774775964548391117971361887347487868253984586689749210617703503217366706570821698555986605315272702364292962106033276295129349217521429748836174989730538729795231771376516956560760094102572096526413672280471890194845365773052324718457685643453133418091260257540139039411638861092776307356147710429820371485588099882807701182076886043581805556974289513493920850270360998529136566724200040934068156266480004775036926701006718756549830267840394977902849840804112864904273731878732357492335157779266546405875527019733174152553436934333587817743947667698653410903424182885600468244271735589195629962507979082737456067765384902422624243413944410514766832862609811698696299573291894803130938365787720305440635688808739217336431685630197495882407785656469110058448506322174856027869870825449234350094624287811424792557092875881603713337049894447935541357861767774259300350199487881893546457069989802388428594340235293957359036387799554858018444355982316908424883535500656784002486228853977905919021010083266439140423785834714153921125211966441271967985001403777378161139546945562639343963722916983970344316180226380185350772747903835838776038137578386470121363152065502850438209268547160480494467248770511152956399198461966070480199092254387591936048994177642432378782451275097624575285549009194966343005632504215824785039438656573470302650698002722496538162275541258123830022466850559270192809527663208055323913607488598549525769899507927614076643457646429097181815270408434116864875195291524250698686972091219727276416639989480352938155720610365285429980422793399098463092628786791888447458228183849154137902575761730557372190989173358087060952118139139228370173304768818085099171090504440130249073627223745299812479422165881185896380881296789286027173502479061364226666970965563306010179050522655425750442591979884309629281030657817347163705682133316954675385257041275570407558625868324966666399960771750714245424347638073499350925572652501928764086492761849717304589762514871648859159895125537522822295535780927551577177349425449406463653286438873433421753070279721078884393578408051947775698254173932129280352819043283042266081152776150337280932222161462728022551727594025891404956780402766853683560064837512119565560379290890174970568828924953768000551170445147090402764770952661261789116435270849476633363303750476266818134938316846983860367178618075709038409994416681888508857156733750859452381605828850594971914115773519469163826632910009363196937626265633997143885908306240500221068562483937545166453897795264550145438489917421968312193140137299511841009750979419923746884095425013212364767075328956871649059351028968444317033151388148484475429115655149549323986047347014309945309592965732996406961790565718915571395922522237799661633492924092690021217235135430809375801321612313775451234872903356146091481642758104995200236087135985496480127596933372611487822048271416542861097287385314981069732753696855913268893124658863973778605279647314577443870375512914383631014808801025549750185056343837423264942884038079814325557800163924992969085284589836391329251793706254015022668173596465759859416332244151575736726621923042569556660186221382619088019258120372388154600776003859044903886176642120015712766244087630529283978600293770835310900439186588120008743195074102899806565937988870123097310069701795579926044738696361160786515983764865016794328593343196281286555160845291905914267792049399041189678877878667430392997576167646554681342473563258183134122662690037483369850318720011746032135725115548751022769220143344417041475936503892095454997699002142804930356954589200600890881228980848054976146423981241706535745430437630406316824995543589767797872906794047694811267909513557437820175241646753461329758000981295779099727071190393638094497139562962587268238358947185416563847329242758695098427673777219233217527653968660617728237159657082113035581036381518279132569446119309158813353194273406654288407415997081949240291838849762574831533937525466736508284396554011389663016763904630178354753694786523936554798320943468147633789840657847245614207599449897741287517449458145346573837899796025595862692807395026992775699077608492022155897434673926377917530366643870530714852519470220957089282863695049358558489320909558686670233457554319254514425181288007849915141850033013801828358291916795101513506325891573568794876741918382330615913768592234983322508319995527848625505908486745504695160242052152523566763826664320624401134624618483553823191903078979048915649288167569495129760602261851595750909144277224633135683572235099411255280916228242406941132232568995320003903020219696821738613098796980072131163862039032729719199555770591894651777093108673343597019086754637507774941816421366245871228362571309690425221424092741444428629467641111573339026068992839959142073445918210129878938271304750373833166795787273900628348817212343279316790078017927782057627942474196395117775094573952744389586335334736796607055052701214254429947908049134644735738109236893078603566236646115074415941923079912263580537526359624935883885499453578608882349064790166624557209478823103870099917210865162700174127764789314306360703172683961166817967359974052437218012062348194046773515110115013575303935536135039838765404636303172924040044393454222886650437559521679638559904741481073663576222693266433064224662251361964755994793944751674283039388495387860866631365660876086740168682542438595093098390095082474146115182797151479253878236323116039101597908370532676133565305010892559736947825669352228981542080144662048550197653232102181616621953034657184128801650264483177753037857572107572167270373519222403141487053328125560252379096528551710604474479118067319707100206860334909523369289943517346016999107184507049095286957774131794120530566393158259808009454159456847401673376199344464418595248458578067918467182672145793302716286484233254970208681474069158570524830142625134913013179318973838245254931717540343510630594415185851799332289184639856876612867808298214112906685003925620774769600566532434851625148542827048561423339710633961326931405248211840228020876493282460070792951867118770746416457364563422226184718124284383548826605654175590498795369362959566497254118371933569798469939982669708232831209910934125599480819873220386864574976150073150130803594050406734056012325709787469629188299464967009553229932888316237622770234460841617862958418100330595177229060066089581303058313139558858804827622596251755183942649806312004512718100192221949705766974884459659269299769162079726642341433969809608501454529911686784527877225801508574285976431805040716225494651215268950797614098356924309417467654518171956674720444984286032696803718410825938273355849743868558051359522845528759636138602758981945310017076089442733247468724295891164782188536209845829468303040751100830546676612131694944656386623369731490536304878907883287404207267338339692583482813533324626119663972767295769874440365471360016591674771423861819916453062722898155773566229226610897177977150083462794644093605843157320637834761951700001658106021009287840443568206520194527028568264322176071358160175222197346722332778027439894359711559780381276278065260467038575085560255608105166677818382636916211202759547635750927356103375651797699465779495961144911621311679160046072342568134822109174704161025408424839924042350962196912636812091643490379266934922254635101740341015465437528316207061053908212266935397141446701638713391957245620135139204050918614732321829361951891236454920882390497224882879142572991339778222478186521013391414371601077808100071612966209368046726337703019405918478585965573088936450785793600087862868663380797636890280780619857010023224477251403933032211957205696718642388023218633477611259943548649924474751661178360316695263754160436006356632387105927935792175687119998228111108914246461015465535659621270420999440319758735153439833319560989417309386547454651409993893976935539224586430358876231576156258615874628728187813371123513458788378558042169776439852599278904996242906538896215821222189788781162583829659073632484969779876120071306818833725190037037740348722504297349609934766072848640001631992960669543707142711831921409924423946958256654205419145120455361423648841481602605377486614986411028375951629099962209123298192167833923964256139072775365707736393725119822973696786924689151371652648697596513443576712282685837531440126280418404622869358897358246373787848447481641210733816758775922822307915498221080479590434831933876343307339949925194243372136321191536581087255275493903497011795310565274368888944085474666472727078090980804699730940520281612958244606562916550769680235614513978599953561449185685794960899022815409931896227352107475824485672452619510048267256152701723009343943029068805301926455353042977099978289188712729775673122508012156908989210462061030326541953558830843463311842324326679350246989405747391049323557387286249786807514404987381434351183852558258596508486197653483051655774653548492518470623584636112896123106347561348782919620808029021541889567169547057841263606512805097004486533945692126761074648902182601513600217640420759343042515496047121656063826907266881060328142047412200888667349415179972464443148785230281956677300924345252780354723713324981121114475271960517285263909324000741008504101353495340437750708682692909589645056777697550518169976547742490749871376897080542223103073699862144213444970480833388629036192462099417006595275523499456084088835277119951256411788748775542690695378901665837170505976068817790849116185702187460703920041121012738663425845845123645938488104904988917124685739269622180648113410347799910285334504336352935599469991079748386073093832224185655436504976494583857095754758924181079549377643168962607343645891301527446565211457861415577099210493343713276548550207819757756130190263162731243972242674146601694043536211266476206689557181471499791222039059360453171295309555401228551081121210265729697565469723178282753589325263383311106965765815561173594867954759424190295582012445750907537337046035362261549710395443112933407783239085701809046135796288485527163402699650631291909942696959662255894979756287212877571985424196734753015874634707330507378457961453545425206442308782408414080784627967368738878895852044709279081010712119877987278359242339335575561937132499795938760984147798982138182650343224013063857454488549358970704862514278724296521006566497870701568388386453995903650801711143641042662786967241419983265473341112848793309343958086678907543407020267937847743455352656651292901343372346289780107820115522188723937312016093709704068632553677092619190039894188411459261537011666865895636731505221633041077984886772114941600466211065860524850410795479483814251404996368249707396894144246667174873674631685170456357754242310515058098647646417391062874599047379248881072743081426295248909319854957628983241719089619983841001815466443780823753328402254416041489599319087300847247285574881837697581895347939088019845806289421123611333546325400404665357173166732386520784503080166195770809027132411891654620198070895546091872385437261138749662997666582523147148188003237950038066701185989421959948218404892260458854876888023375940142157915429528712356822719394165950006243911835934267816404835416238496792420808770996375733873397271385700510172163901028140061996402955555109205148237278889395862250635820057623558604606700333545148883088032069907961231844923797333900331150588294838020687671024091648595888839443246563446675746335849532241416518803282548820899182410294068318220651171221056358109508052676082430037550648338281503658350774394016308024374809798482956648727702134170055891139662180093523043539548882559026670900065711885335952330130700876190428286557679076216907339408560706158893619301348780259524996703159143624421997785198300437984441454865516590828204141139376731810408771959657893608900600929857187848245431621802453861168378585862345107828491821691458643309724767711314959030827346185247892215957636176194158034130313191841607759441012157439417745313000107950564422525109306737523223688543242791213530557592621003112211862038297502753817842541731173375517119681652409284367663014028433123610329234523189183702230344454974141886397398650837286068616943625131655980642940415960955828152794744894079600670401560663542330566088822410924622558187358804282793469664206274112459752152202761318262096736092737034186306804296209480151901121564632335461994960497408344435453142115006726825166877950667254182169648683330823372445854924129216731909818022915171702763953907659608450159458745976073782236371820491172490303721728475214768189382828585241866401407091409917788371395692161707697901006019230526629784219510099218401232206291400604821781949015619479026466313128750290832444837155466248494038615248535327366354838102400072695037536724813331564958131952983295824894569947015409838635883751052744503875423741635053454843905912980101603370240650914196544064089309928745635036122491584860237513287337313061777643833491141679742795635358264326565093438974387697125404890995439761030944701223017049596779161345460240920721494649710448748038255096475579233784085015704696540926099375292975065756324454786401781820868997603550120460528987523722840965641540104304874662760719959290035181390822646562780069174993818897575504124552628118769537357505250127280159222927782677371946137192165164001807111032606654657645725683990411126551032698984776200494525732076336611879466854680756555778816168336505980479975289388593446218272748276975735348116703851100088120600268451219316134987292279735435145251620662644675504351300995887599865911443487330276057832738606108196032567833536252139853721463271371437336685259428978409279847787866474664495788358966808204514776727190703126288077107717808759446592879491058281275131784511939021920436217399927104174817473553005514968071374613766826102458229788902686407062087169184080590668402107117975507316360971232104299798331921659946411876739047383582397271020669138686758222340768371402512878602433601375456956121012111866856952757609838762420131806009730015109487704186475014603471909560016445913258160110887003424095108600659668246618613700340454030565015603210896111956432794011332320624412968527189733900293043875268264132523728118187341837726683170798223668198492551731114048429226360049729836646471747032035892511190314552637820369748273764447465796347034362774521095560749209997068596631083188119705267540760841852099074526412683090143476734298550655555049583671068719038492443885017162418959241597064389551791976124801051183266210839518091919316864715007622854915463321002949231384348040570977701398274451934839221971306082370165463372568013935034810121226605114976878294628586232064347412112626633527821577473245248312413542866044140191905637144561933616734099663782714960097805768754169534454405994793961814891494772883934449386237854457107150266682904961403798499699799041773145349852052515468029679746264819668702286164231214776292412429658312763661501321599568755630321383495785041950236693928204408381491115068656842809603044852969738253800241726769870945805588238766750880469991238113646498178032327138862753999814306474612404775417177869633386139656178859648317563519023653894286098798132431059641075020220490603935987091595477942138098641791325093915143022918235919452911502943449313412362151981821583120320294860039402766901266322070662570651654600527475224010199238734690299750611631661928185097677922609310051354456493611645965660284911284552622478572687470611594626032730492603873190984272702230227936371756711926858364718578151551335203402009425573257024135674979298326066168923747723790923156448369939822190622395983512927748740492188486514861800676468364747663490435468522704418150329473466880598025997045147190867269754209092714637247939872429080014659603061266441660222860405072133181508294609888507098056622798154998927924314053239903486173808021493341026331550511037223388751481620439881629614499371184147306543972563580373206053741937671572155162520262879124347517695662745040518338716088598437046467204976925718626306817461111789650712733894134312640042190022842688463221924960269928537680961589319489023042583390128608529021358552535228729369277257311248398058709622089306846646263634164743178986700047406156685763785710758427494742964857966762548769795941069449268116576569257910637391280917433293427660082347445122646817244791345411283289744575514650786956589905282466534990938715111169679515364328261511982789866889710931016959104178450248828735231923844862422636297349757684392822631120200047132187201701783710975756685537139382475853381189805680552456175892532901241044606138626252972014495518845924861076157532019523792106931822465517728586422660477869383984421519139188494771204012480322261461711385947975656859117457472444182755643667550318617371053128406159154882124971937173021267439200820411175498546836398413567746088381673386741710047033045122372699632967533503556837425593278850528484397099534151765903293840285069219964260910899068429037128452934549490793498403703950159436563446313995129824581333531389648303954685377742386758238799595073127916663391213576229300823813749950880424143677063411867945790202225251977023599544884292304632875492349672208730074226185326239441584686508261531865605778576997292533518074404638289730436121312487416649557732058303198526492284003382122961982940003572188960922276076892173732137561281714012789476808601846173476133583047799555570110846589918465264716029062432682309721379199995026002007677928428128010218904655036864494068516374694740097967052287174665334653476683285299305839175291925684229461333033502992661474903553099705929443017566334383432230441543437034764664049273950265810912648824151780638495584732129259848639143378040535637602806068612781688892152483564543619165845905112065370194484792425462055879015583333543255865910183915327556343253047913740702466588858551732641557851082711621409191150201876161758170251311700794414086348631483190552961554113186777476030955399998608079384374976227303703716974916229200218300013533918129991829604023592948162240375734996478981565262268246922466182266003346563155444069190919446133592294764761753098401445696494985417874172123136077955700462315757407016476128273409638979769774019876160194157601529109109253122761838347867951852419370607979165590705751518051295428310185359173186365292029130842057807392675741156313456410600481485906597772775589233973047601761186109466683938317051367676598060864546532753844171933248210350034614387006425749998217425218212189204246983459694601714541080967173547847902896490057093695658507360279962669616846431118237198194995401755550793724878019693376504513474123702327858171705272875406768086778657331919180654146507023469304107602604380764983984187762433538838135818313963322978304519273542000124434770143914102028058351376152486834654009224148555589073720292194609496783093804725225427153971564461393207175620510574794738255630340449984090551893122525815170644691359945494107897660528393799502191260261204772051458836877277420393934927466174231696612724488814202863914202278124193533297421694509467954520673956977382806280091534195572092962087021781623595731539858049405991309645978436746168803327624713133218716363946718093667473440335755526219772548442024999633931748616681168580024161019357181587639139371591531076342504338406774911006239888597954611355539755839653053924251133851519729571507256719493159144543886748094127009297425772211701976780777554115314644415888813546404610034367546339543813657379417552022983704633781240452763115958787429154142041620662489126162385007770392863484726233343506441746226554888964328960847169212331084463333505337147173330331901721153077481815975318740320652065466630383402472404436419295851566207720195731935194885916298153300551052799525400109233465679859706454051429106571050430262847937593593880541200846812071657259589682779436299311192290462874989338151616124180754183887659727170003193889665336565273596570472983705556510026802792385167950336520665309178435468005322211811784568324368004432665902546285945991038547579652091234389503251059583028451450194530989232771984892807878455467496436275646169662618364866620367155784981383986825287619563857360852041933202576410865853082078346093735426744174587917981650977606748034235879437881661119989595666794464838215477158445223575130963086132598323044566468192097250293449035786589888840520552887864065938982709410986621527371617524492691264722285626744317906706605132503314572067834404637951426017333495920626461812732873779400130153571573662376126852832110391120166194811558779550403940865122360419497579357189797408115563734672074274241577377404441091238485558451967364835048886830993138982344212485495620233919819006035489851804406713580331408724132658155808563355292356505562434062217386358710059109166690201106008519210620615217298898708361337945882584198929728135937846386408146209732157488764585454529056485693476254092899106691922560246425452910014982009451475388690585078215749901642383258266123330308423601713313301974026436592810516974600611297413499543611415077890155231616362758211607345219385511127230089600339937108736340084744585828116929172840147159292712719738225355396398764592473836932611280374299401387580817617506936047380882591607654996602854941583979429130441789374134981285129943317567582440767341769510242443311732080541981225031554764825787016508657667023097852712134326096082828084722273551612798021794324863898906029251915448088529449249132385753214896412844565058336515343983943537063223690868184748916340829302685671978579660416012152288340986449503006136379847527887901953417743484446727480043634827618082339916100874051122351659677445178308192167027512514354946996687266873708278491919916820259037114776598260684642971682887151964827056579379456630484995342582827100202874575142531348788698880801239182527547486293592025797500281821975100994629178378511034667160915765076894240576434882324541062551714557685235574081545523266017767432094790156452054668753256510525147976320111226602675248332139550899312683263493013685192428403094260238790532320478767938488157817991207588399895118242016254924399375292502926833808912965124723281499026982302378886144353189879921507200178726947659321610518524050768636489123517516719370737742162435885629406235947704312005266062569762509684217812114888298800266160440592223293316241761229087433790222878045617013577237506195216034268628062905378649688713933857125624169640793244758313698859182729992757829492957513048250436660285323714020549644733807382457755582570927007591535821362248787395198064475365092283387321973789450989488122243166650106987396166729899209644205968175696192318398661917934084742578681546159414589386406022961329500381200383897674502086338557826679881065690369990815678277851637829345993619433669806529792215221536662888399402680386218387841389549979200722893711695077570617240023448728986838088894693258218633782343569120740289568718856687096061273862193498732632240960659606991760200545360381658966021438717712875530983709902071330847123039179755744838100506832809511893292721912316549409066402145683598744632162655757397928373087028606129397723683858149199392584157425491463351548204141285052561164143847386215794850259095916940167019222271520515924463847867368440341019760225485058596203745202103401958672160817127019264607046079599287131210748035118825068233530449698126552095670808845419410225351991313683529115972228197796519175109141257490667527198799284399037274106458867169811835091012056834981767731009548469910066421703751012964027952668079262013464908265708373127308877034985381688301804159107350878027897814445251654077081274884737965503318298936026105151709009201102220710016694799486064988416099255778210332925422202382431616937945524450771166127819572028994905923717876307137916207732805190043595063027837205242860716863197568319944953596546175823793319549221835571406382172621701189906243630164683498799430673248974840299006267563686639344986687029574632955927635822741739047673664683270987254008256582740793730134212501578722469359336023202788021334475471169254724427882347885720204784810966824957325946506938183932899440856293295484523469547324707209576815500031362868183058735976655244562923337098003920244653970819808809751677590008294523393382538737975166366848481990619171892305302932752820522887389977798577574644330667384284668342381977782239415152243638987424951701065667853026766643708546240614507510982382650823292192311694659360552162437012743002394924600084644191371345373908817105432971996259217859583689002275354693441992705635449944646484635692114739545423420930350956191259629427603323140283815641958123992168435705926115521864367293908114049884299540135030458261668561511919247042480677787488387131898718967382619247397490892216965648998157671704289017449666205968008681990919566483987127996000606600983366508501317267050667807381053625332404361561098011084767554948774942365851637194652793284979905770184510490917015335686136324438948796590343675903495600216642655815244439282787227173594594830789387202484734203222900521336068460531292940974975988932013490501554663997880699917008737158891759567768947270618115030196472891325767848161909193884597730528881739137963419101391228288186895766691581750664019066425759118576388754829343629921171912710549773853730155778381018844418606578305924104527243196692276439468819023029366036893929143527900678345492052288961178860518754083104918089177592609625711828832708643634672781816274725571485025357509356019445337057042972793165183243697073638748560927282169570755935217982829317630403988543895057250179465534119664384061183281712258058093138653669016323415504235539488039771007125070410567877416202585990840071768209894144867462299227628920255085808162173150838975538840534942791905673448766048309707910866592252931017597478538255714719464529629087845195651740959478943963376856887841336334073539072743766372205280224459160534573754066183716958052421718003218602285837532259788835018804231788756894023197519743744461335259745789740055466244243249759344049537626823640150573472695398011010025658251311957538915849382125129679967725362127646076391067226918441110591666718231748120661947722805350257938618987107329311431962195583590075732545492654405344858762379970486963982129062304652602371545697463982185040240616064721224738628536914542275828158930325786719200381523130703012314500162038355855970846362887285686618295880381514125979242712228006580721753759956097530281681324319088267581121397864589779915670771233413006140507207378747754227133477723187913877806041160283389280732294629861094389948042687763090413828200824932764378445694666855969135097280929656029683784248319063766489758940229747652337370707590295732296764107444779028542205710833186416062834832840393767133814809415308100383634620986740923141625772592601642413107683838536096774393896453881219871847087835760284657585006626430131835637759834394232563195673889217864742511539146483061056176185226614849862117352993003941962679783511543247197921009990235995010185045226336213662954175879041155291163005950929887093720511199532095191976119111178565685631458237425273363487442621789437342555944388272109955258344048078153363012318172504761120985862139119503812768576842227060228808579228022789927013545026898289812867084694808586907736873104882413520925337799281517828072247304329560570662234561899656929407990430103180055883851549560037101536288339329630838861183757251344292962374362569028623990818089667478407215416482153646698525111835609376953883824779268205403556229310339823461721774992876114310711261869817671651010213281748432268604928999621374426489178747080052177899145979368325769082544704995573654607383329544550376054556169384629935269555982548143695227451351596350128443816576238782190283447784194348491675433220898865725107216380125745592050062613832353331001746356326967882997952231221335922955987771478425621528196600958248039796074188068648146222184673502384649962094829002372167471513017616183486648569009580445271292413610774485501645401658821009469531851670949653202836855634394275525867623093990262646880252100234839881081031395915672216752103640311682769802044708468275102160076529128596181232892391998983761546540152884764023895640080091117077716866325847151888652134181009630978924681427776744424909848194620720991186061783788272560602774892025077565496092241537218489819139994930435616869362159642917710952569509706990063231006108564855544823176816949189203353825938397977955201780600261504538466022348058428066808005409727242488709889918140301721083740851971684465550686866825957621317618534741443776409811689746202037121131861503180534816370992805100579393958183960538157279905317356462047256467564657337523249604428666275422833411947710115861482251329057472336964545935077863028139703502693355867202542065320191136456842785222711304993084740155083205534502207111518292503782458415159542385729092055909315552709371573043650713919706627072083660506535925780753879966242782962602719086367858420342617942729278387207422703925864789969888520172854373296389141798564954987123131742107811174584783471481011302200669188117139063322377463914427871350133910136146547582354731321638779785942292590928732660398061705145105189352613846356490075823486329152025865510311034138140491015735161788607576439646188341017565444148747743969587125931820683929218116808835597127226537119526746391354728890901025277774299066816800531987062324755696316479419943187728998958907371744791382210691683031443021088327187369372236371598248511277737658543952206649876302769812346134536976210473975484439806649685515001824287241396293002078423904077017175308740062110388698127516133110767104226560953420656279648030919591712222568605086606974919587195285117201863014572231112559580580300595904517801620915600339271581356193961524505829409423830675223104876027568331931395370615940569008254671634076885187380620283937649414169522478976448274159243938907385870336831106474829591656363194075978797738936856825365656798119405558294689075620974863970515862806160495538019929879010726988526406869489610033232728420340618845421289794321886897072738273627785013727011496387088466407860794265555255548566482536726238855301957008990944181411968192782252147436730237577264790630213627009294351935375202448246504450281774735303130558784042890529565361669557574603044684002013025834728578786034796429662285633839093850405959963382052013134597759495495915282491367582655773708630985343103165699186477493523558769856167640256943679496508265951649361856390677613408634494961092308528159575947324469299784378750695779652340662703489343992200393314202215964047530798772485471928990319033113606753874099262658761458295245462962744782530607137086100932565610910629015937032345784651094254156584863367597171410368246906821364595022593823586898034205214584241562109771259419886051741846098105218023309134915930553236402118013539938273907609601881270857002216149942023522853011978515148254092669518565676534104044454854881776606291533342393558830409770803826294318944385077023904084750171040932368683097904497849323892155985002143587007713428715847006930247167663122853028391120296158483322876218731270254402750988697775241867197258039845678345286723372626819425913768922373279869636995719475082805749299080160929638564887577436681305993300301065165671686433116003817843318094769824924266082639256472210856302821228584359129114203603272060182523237946293109254102512454170051664917496978501765868001286325445737872529326712774516243343601273403978593022215996177517361486667939676563322195149342983767903749308251701618528493383442425041832303026410055781883185442893640874032039660088923438710023409268523884967322844566873657042343156698938113117085498055633424110903902940206987883668650096416369170528156585835647747550488319116484306459899663270339800109706271431548717437048112170062091860841624596321962758189168759471508236368927617174851631458451807054356379707232789574505387584471007564558747372456716260758755826316241638301758948123727346583284264334984211990679033276995061878866730634490328278376485909168680653984403931713825696659592365734822356876095046002069573673695394353734489287894541429944924229654199206870717179908202751123228830206374093324308284076802365996223074507239548291325100146231522838566996364648161993061080350119340985512877308159545015497909832610070008435163220914097131668390509307770678257938489159213209928659807516647762740421022870695803169101976906658492941163014490417552415284079855841920459422247224085795452489966149963129567459931787449783413501974760024855830935569788153697313632144525114082928418128045024919929598456172978864983652967173740653502757578465341870784213098057357585098708923218338602766809687867445876739370425061052945593448000033794844118691034384898199272178004569840882561800277402469715569634535370581771324966543170795487952577664211206856943407407369416521104530170777514495029664201508567341856133087936907990859888819541774261880314414174869352930128628687697963497164412421773800196909748627996089460936425306791041745935712831904029831131550593038611206192754003474299601297698456728568007574786825685265588805504465028247234062122672309876509524679555116757607551897367108186648733913555473038717714825992498209065563624636888744281635475973802009270337279723575620585201948873117573641520856887998396255395067204576563708667868496167399289905166395473480646884163216126962321404300430349787937658955255912612733494431374931875585152203504887715420612832321554250103695842011777060581131085740672176884473924121518906742976799528434604620851042298929559015388617177785962596590245374799644805737542590339557173690179397516001998758369909403534602006006114570812972728649244155588597502427490101997527856958345334494325002578020434444086828907507743961736705538376157878638538700095357333590259466811975123738983872665368795543001841504480720527649445702579946868034994929416867471047452363136504711526982781055205996265002245440734287139919498025383338505885393649941733636964318998036953211463174617170203880708663490647863404224584691355904242451402814259720943368039404264695762203519760525374669196864684057485227322214112634682007326809912835968043371248986512484713338659995815570362412843119237138052069855463052239628600169326092476187523212570099594164545017597913048315852269009244055311865815319784593140513549679750197159130563640796787427438869743181215963320242453695090810854010748674532233669488741744758456018977639584490217493459710477031541979472175590310489551507130337509226428947436615011461711285404898362878232177554033558151308900860023111908928317197946152733963981475579561048165472182282092824126224408661731611829531462701196213661995941087935835643209329641893562895075218341609495628660547608202339439036938294410706907378421593711008435508099349512584805561426027948881173577823141092156309775563343568928090624014704304068096745414285001053129110144071931810600556195293759944098161264543744367739789284558236168065730568681889329055524837773886978833848212690033855255772963294850362572416179456068806250567439834358406885865279847132056820332680158401186122537107299459297219831403982495464301364141209379446478463296730804124031579167146810717215465797595084379065463926894416436702026717333321428687279300067525680895947246054007739214366237747036693706479892806834363066623573549188363067408969053454196254921859594829635299144250681242195784939762493626997668432011717830947897645342821592110544192539567389068025874295234702462536272058624452991614257874992015478349251604342385349243843410303807273770776570147437343580798451121498902138772611307493125184849712899174590950039321906256807723932545455469176735002114278251591537139224752151026195751812555899192237756055625186257778715204024235643008015440647378686471774548533756851330395773050554298410274520848824563801811743244115088666941720292251387140525933292189039302348495217837323533446532626937774732504109205508276270136010762688057349283410615014321179125841093281226749115294969194414057983354038200794920527262073123858332785887564779056721104165441661470761288361000624384130531050140081010798755577315225042463587242081346517078196813266473052652668700975390102354840054319103030585050732848566621892307361016097987301096045787862725969718214977745931912172420855203832230977437336272600910791708541590654006954047576946452693527389589089465660935532169427129426114018933681755821233660928809368683610841295931368976682546341618079733799311434919945061976741403836739591043325083789609765463216344296844750471808775387966011594691058469856934631546715196731054018943472532735101233055566492446253089798552598896344445382941448838257096712360533891982931364903499133212284219660873657571369432863633838749656941544771070613803436739395432994554889460443286211704228102975764901084613036258098852044456528892538656183554374669050757948211069811160943622727817194688442239013643555822522433014093711548401136621388410824798090054297249286908770786394338356975808913448554837537677719658959365875154327502949340116362862841933060481710939239987919008842034872943437214946123970170343033707916983162457660506136245905491835880524520307312984242588018709607849181635833763214177655264846608626744947775131163374609853261567716821601314781904456057708920308018521540881268882246108542068433312797584809219544443889667113144461789314741293665128198790259329194565273687344836398893389984361211680689865797567488516548886337690035375291987757693081057355173951443795272703800447049007285730925262631673099074000684904599758787132093533481479980729780306859252749215403250806206296793680290963657119655454749832657557609467247229240892061371056217009793399279320665670945892120839049846047586480114455232781360281453445795438733659918540295506010018789625823206446714509639808919967566146598237014128736646880385940326652224087508860528841067197999140854487007293022017220260304786380710886172631415313923748994778191781040775452555369360545903637816192863942002266964803975868226345375812853550796206064636202276341001562539119946325786788360870252437252628303301021044894326226275322073667652910916281998887191616786697698617210689500902364059291757218594584763068921247043650275363283506500433461831897030508283915358506052517223442293318962943725776163152226873950058135915637995009070457200726096898837387536982426218631495121398835716735638806300562903254751451996618172677820789627279916563774802991022509472440941980146869018862528510042336659066430765016710023678735189804175086476038055608827119847886391169660571257581116143322031623986195399608106448911512990383218924496711518198579850277044697851841628073295318752217073754278078367450606084368877693049830230414364689139837008269396406069456288164169529166544373908475728196961464119571580663688131248487829600519236538166969144131643782128080377458223191425066537273186601585557631000545881914608634151201340660568618305399109284222097222772766642007099875823159076294391295156349672083809897247230420387327835086014741160482852042007439596077939676657454574157343814376292956109531158482092000199683492227462223320349229787977209325937345893185303632200218523329226604326327773869929525440037460654804476294982724042291465600529045986614905305330341184232774713475287632417746860051035196802595048933541617738765023893191084066521380466746652964357719605228927287905823336267171801047870741509786532744155522815509790153143256991410913299525027699164121847989035341734180288807859437047470037468716698072913698781051913482317431997181756973247169341124042193238323758158340750503251210242327215999762255953608171639659554592152006263493832779387174509876695534287878977466443638551706502650448577147587895166390526126187671738754045938775924493697246870221984680515191826034341463515337517354398346584036650078008251337619581112539605958941718804721787463604668507755956087664614979975907257254669309501812266059756338320451208463864464994775567471104882581862451811482160241731135115533763941801619860829325848285029721564124935435493701472218371490931352746516140422988403472587358480471003049710367861996903966400318902701410218747143973930479667127146967452485821961590443588575047471161083558276186011598867992523277670077913488062706784305823037684432240837285577758508216273267775521575385493139188944331137097187976549309906304370838121079727316041468874104427329403072777436378288442397759487234629173289643236489504230303395254772328529225182097863294127922776106997648396446154980303910368747636700744207201348680420978344656707808500851248926091270815723789681795389714716653163541792741324937455510490677088305382910466098618013354927364715788231751702295292557476729438071843235282789387873058507172169878408709360848912758296731845035233009100824500894600016837289698553478156770898606637024379918187127137483594244296364320947275727110418044334601305107022177824729198840954442915592472967931476641686467990945637704603699887007961285734670508717635799267264190775864829795801509614971798643932311870590230974516834357125233587442571650251307838439678124895410287899686721555835181821976729237267508827191325928904570539216996231573413598101626063438419741115955987121948557079154040991260843153449472936182597146663520940304301794361263079707780953877079498286453666763263533422068945343030626974857296018808465649020974995525667340133802823078862980681870520541252040119990430428919912401546306489607552348001929454875288055706505545235487917895598744025091300741641918093997294682210357018981186767215490449502844625996837678251688727079295334993551398511723804911695566612441880493518211954231454579329549732901154976327970042572529288516760556706957888189166689264962782660684281788855135682201059864864426897310404206420388620214159313343356506079776483728611747854101318195388209632637397818675015670201035161382762235549907816708176258006326519090723097311326126453948061274615763974697290381991575806307458753851733483346860760889646227012140401657955979081551364317926971432781160003950929530530156640538544014468195674168914395005060129899532520624256402569997354056335685117062631293788209655763055783267561616292217039451858995939277954633373520501688984643648882073146139928560157646190608827005218388294490528350185640650433641753501393498570510063500442327755328051663250155536001685586063216180167882288985927773980708234430121876498298821950764879374527324977571646794376825978653807770909315826869893218567541022181137066289150507191692405571751537297985467954771694404608728583402007168255878503502580689802794309461846725801862557176999143666925677662478882563671023905089297579824895222709418467443414664411911976248630886752269173795608464341636763558830851295486537112507449037322882719925727151996600021666938956050382795190662337107102964526112535482018081623405931612383383278721545090905442719803200644225323600124989344843636759371914232277851596265768452530758485537358308416515247778499835560996791452905537128993380417358033223313804348260191619102805347598662385415120389560611327005564966892813167555129799676336653554047090793988866895306857810173302660568853689560211807721622589219199243117304892522497125531228211758822528265092358229122520413837008286387959940875331422920255378831925901788817597894307727113160489156785086783738812236288755855266118657336744602261173633288022556206861495846722660537793575255583609340989163829636599800730784500136994588212051974271662951889363661788724519387988391498507463670116146235590918089146487824769832377597870963455931545706800552820706294643107638481718364124284488322241634530641777649280600316789700191373441459952908181300827357120244541781460612372671440187538225274535151552424500790797536879918711567102845303187326563112819187358142050423077462972254036963523357483065620485610864093427383318334634327351271592642393900491279730288837834637442360464419658158438405319108290323239391500637052537770106594292190766393180810878765575969070784073173239732355063441358556746002928122819448262638691858136721604139546331879072561693081540996943760021476848236668959583386445843391397341957739544589473799649939650197318018758215438818580492440153865707188767878906058943439705724396806766233077750215424777082377904412690412076066171751458329065681240190888065205921445972236876022617302455546374056207480813993774670094125222153273448841706368152443582561186966261363834029286644970066037996750179376316763918069437678433862149089623561820105640614012377885098835667084731143716888913942684794853876466509841171954337028921584835072586019765152460415435606762746411781037958055110585275094244729655712945889544502046822567201062098620677182166748688559677813336730489413888303965661219189330587140477845513287672803014322099270529021061771392127737590526124680357832336122316724513143018328278987695299046550698848503343483983359922741648106833596317970504048017163575811696110898875265050394554508189045782033398880552733617405890660762567887602344899655818219507130679827984374701471305670367804002790888262609687517984330621616836497577339489618134418824168865022899678081627975625692274980874020887688103594369299203957265613050681288387614411959186240022364452480039479994244058253172682465135209489596658726936634884015099283759846464753424030561559065105449169124218607878117680038993076090690483506727951214030034045948829208453567271632950120071121468376544941407069259621433285678745746838018539304546243136985598732642070733736209526825330022465956542110218831635555322102232583541986992666491353192963187823490149158700147749921910894650128017261865842411995774784463808881792358967236549615822753535499698413029394932056796213757769896654209615618393575485106101873663140267325061995658143840958843545927104275247448553201536290028879027363715117097611575104474448575002325858148560788985128350955612212441353238781623331816561192925762099918516879242862423080170586007655853464509921222138629193200629166710405344413253099405031484201600328999231910328401724803603264117395877373643931580547563446116674421959053416946656368004997460891763261639369972680056711919008111646000296009990629766649508010850800515867038581971813055231732463017352876930349789853304607612670691519805210418792169386199911313682841025843874830863102275566524082814123688895195062447293752240366903159218186432340269192932376887151770807674952389899214924574176299185804334862960608936311062581001413806306012314943627930687332687687714744549611824196603717301173226721154889414471580764346364476457590703340858879379388551175194674235340453941225240645707121446590466567348092426153884175026364996764039796403950645360330584671065916086949364276706384187525076396896156031731192926863383238674463351811330830743913035433722790714103079528227165884110344434857882180908028208295544281220038019526602186359524610566606314957612702515823033352249470789046610507885186132600708705312521009241881403331109803432544721875356433943220404659540269285044885564614251052654795847216630572994563578827156077280214821750447870011247793657070567309892113872193059290580864978398631943466325792242834020275207962010766746046940717056095351333399376074927130117650602222407844780821493839639881200547789380056657803599043114871016372770352144947284480659802102462962863743293337500534210984024858609771594603462650708927576848032018361905498852289280953768213151504355825172037286016959609587642513950138220984049612226242281734043402808939972622577393303661029868199221337757916373560345378075501813255961569355010328329942384997475152433810011519501213178050138796465628491543324891943371832694701926816767596061591878897636526032086512658522642452411995901898187884508287694437676631849223848799241374007672294068073105280395354023660352099842055043059212038827556559304808391165973062450177252527879079885468508425855517383838338519943442889159122536441186696441712424001358879607219106134942308330297896634430882711074670005236299743261023180271422662226187505725439690773814742635221552448324008043756966990710294726405178030151618910268009263587698184180130345266471055199507316064326755040487453177281647974984931681635188811325461499640318314012084999975450565440566511483583871743810710444468199573634628689300271371764306960414783227327567890305080957691434783086703540161620281849114412320084399928213181848433228813425512488866865448527084230428400988313855490100379402648447623636375364651105500810294066099152481479263173087744064207095391999167556393167624758908322427072948295443281512295290316475060981071517094932166168130222008489990733519284840900143323698869379175997792387280564485863635604716964436602044525970486822151441978159123227475787721639865752760984089988937377750893740406584561154045344889826356794496286422470716132658749959558344008024494005256475311275829458245552383399388616021670954090395096229843697536057944381677828156635171719015608678501022971066937877214909889193684543867259730079749381103429453581189213029104857204996735622116733366350076432627405882954486157569614320478963305917252500296559546804876536262815497576765802778755902367873481625042453157027418353906499723714308623953642833379852588093656358087875872114167358200023785857917146541612112026034272557384221551801587463057767793952936789125329777005082262500819374164511416847373657252267778908745799682373452773273606299464292416996715508622928060803167877150190204161663020493507588377690661867461629647016770563441830896762661887440329705177881452434012512226794104121776172182888508159721642083847933339829566994034959379072820339780087960497013780702940145706183227529603485302837192226100593956449912415092778754613668231461289469981672588247118985447614664135974724040011672646403383299904015026352712185799138187518382154225304799215388902846165379294723637963334793127084664272273704354107685379121319034331192450634520767333438091681290392671092987571771480282227330708585902259139290525897400243757102169955326576133351851876638602761997003980523930527428933709016910236752074517701696404723753863828765431904302903579819304468286320454301891421607505169966851233644518831394315814046520685035597675284062096864840014632988026383254956272132582757344853558300022255133185962288649772494481966641528190407028797109505677755838364707508929280129921465508984652700726965716889740132432879571982172311902810990922494210691151942704477358752026602177872997393804329178321634672128872843369790316934859245577217598633216922910131299649345656945683126728480958429250935515615358682033736722013612851719579917906788879489778741557950785828040051987951437931024097351375424452291066587300786546251418820808073071926898391350492537754374420265701651485490390378491533578352391950918422941007958179462613046216881844121746806220722871046251493876491783338925853594154399135800585902429854085572504489429103113066841061052521529436405894282256195150902988534967011852089646433204187932153336684750090937947458624405009441979525930580847057304417142280778565703712794758093456290877047988346971693235516960591551290394654649194697695658010447721221152971788542420630144935999036470488168696394545987395664956844680082797406485939762888615420634495952047787647960222248140451871122057621282895120964242624397691077791875989150916967488496901404178146248821899204721539789701004100445191637463548493777672404896305617608574901906641992085649882441665925913641149797211057092004834635621911259205315949520772857285350227717869113431709507474177404611259771054406639288875718393323600024450260387599951742135949797649404000414409398680931932864233231380731072605234702226995502975336413333363768383076991222391147770558599778428742569645259730458979891618440091187547381046980438055951700629630329433750112437691659207229530151254321394054433778916278191406215516820884736345341979998879516117261028410632336985345662271408982502069128670444116902582047965765068060833893544908621143873825659946434978803232721758292694516998631267358751095484558784631407597172019624337085219967792883082041708362821886710429402426005844004377358753310704188814221920924607149133502963690584664488320319474101734611287867351794220941454660418534030155181556232143165747332666107989803109068170082688732101936459561785851734505472858980078728721154172567402441979028843225315410192140135091238671110323213731459405115614706721289593263819675803769072313032161582473040701388589334636633597677154707019773249548814517149561588915972704031644349512185974704146717150973113294738480850210707300489521237484215403899818595132249014418572919357094375241592155456929631150144938470339489307624355383423543950785791770587588732868726361377231317957631881191749399736458295599559616847144784415189854307741455943009162727770640067845262221886063381067248472690244026426741339072193530058424406225946425394836856547845053434905296743058974864956438929352506968728255730738865347979569737963739416312512211357236612420140264683198752349137532591965158061938726661939160510493592652713216922096224639699245339494168148769759450227569316017372978252259321139227972644699078707972112927010072893164141328975540511298607130045424497219982559230173355939919666258862848902801610297741472814721799607430468636839435837620966370592178003581516991294767315483262434722529800380095958755554513635248529233660366613345215784920268506151949203452902146178514203242331042284863520896879742184540038734941728320117627378226479639784677713658735111930207072225600375074940781039463389519984544166314322973160808440498281354303038336316353145405299148316425601251068208565690016030297291658467891832210586994891004078010769247782572806721865866449357592377066019997260659525543327336425038947983366014319930730848093451615088048076463666752908667169362062492873981488799043653338716396911672736970273126537428408609734869729325527885419930190416842823213958579660248737540654392608495318634134694686789235833606803394455761856487011325964277558202631925680997158944893454073545166932384492149911855493382824457707668823052546979612822440415996689237159295093923732119547894507408067744489003806244345752246115557238942268385930515277549765454318083490238729198467486931626088717921512482924761589351414914158904235105073534967969487491863344304793625203651055672156988823952034980523015312238521251326166449473704612481860990143956546372710175562161122110472247926506088187921878564564770201918708174098274263885178517823195293419048193157156404001782600804746415453642585796882213147120219506870737039312153332239429647101433881763991811507421555422604821990245008205203155158803107676568812198575038451204473602796923884894398504077669391919178038513117904637264578728005664995015957625302767342474903557787303206946697620679371095314087874660907190900547871502275738615622840311999793601481740181407268559346424708186513726761279734277641240894070241225057591283320448767508382482335490062243196257292826480566009677509285325730388834182425044101944383749082928907704415181513432790126318627093441028058333197183938084511247877577905287996142480968537580976667637015694843487431747574899146388916335043383627398851102955909972689955904715112917945559126983594293067385743048698989855944326198964253434921711717619498688138115373601192528376348122187771094392593220573709562698164645264593052541308176804768491799670945909756270994574641668731299851777131558862076554331510263023608492235320184002464426949822200938856198141742352942110120448887865176204772310072355773711756964540267737869878293238488465868548243072513224599718195176378206516770173496390729119732315211045083889636900343634564977138841805680298414053230978368787887332357458437167785962319311821299654426422746033116562189958073857091407481709077707206012582553725598818255400017096790909741338551791505034624136279629433752798039212161244942285734805540929961742218675526706638715401971649592580419828457272339435872738491298062505229908230414417964201863239335975640856264721140987102756842328471054420476927372279586934325516237287061306248948317683005950316273539272221555960371912609270563209001688446422399745990762836038614515601146790867195227442253415373563043636807658209294481681575624407583542094450414818369400724787199371608074714370480527241227205762001482655673842585276152042257561677566344890835515904034755970552781149851302508741216556160585427292302899331654735499079156121786647178134339282499415905014092363201698408680599677236463118003230917231449065960183944335732467994721363667143093322687259227699597866342198486047640383312151598246334815753891362137470506267760949391565434449665030715756019052561493434123986500863349768772582014261603587642188657530917405182417491784121530322238300418806639385455889178762006878814048766927605976263885084187671723906882151375344690742052796875938629657498654417762942518703009114961352844389205145007155110873094664959499070899793052340129573493866881785927244230815215906606499607550272376081272387058512137274552888617735445449593851589568775195180268779856482520266240944486188286727054207475043536799845846802118161245119179164083882209778864182756810585076775657286484828360370249328715819806043555879980375757476331720000544959849872516688565706303352876068093081590181410593721378560788103151292531750411050960975165425371030855174854899280792792165082670247752463749983785047234114872240388787796856216589184157356593968703031935075029813828952996830357304306071207546629980584795107732290419143068162870295090071881413421458284156116327645897977943185244670333572201518300806773009843428145985559436573897199032628610071674691150902659464279237556249374235121744508031213499874102105040262541157631141230640337384023024844739361327771431778326487227872000031324379911584541073200832547176553357788419738811198783081161282533435001379109732645804567535626928483455102531756976137831443682524778543069370631432550964076224942709697276210616798163074586477313621029169131901935053917363387720959307728802113849522530852335642009147582113215081416345593732766381646209964150418142792614784856112250969744180739940121864957617087742985390839419901188858773363731131301710135777903347562044395262607677976568538504151780028622026017398315357894904544427165705596492052223188354474283111934696037119412186093964743696835216300841130921221376123619315550911877534644560429373792151668962024254716803778182746385907968207356409342994334271792080288752211254331790114149116004796389603318772204714551925930589486933504992233576520706393366578610808592005775957357706056346934576038849108050669551609381069436621287588273316132286483143147176721157046192356146500377405387217627411136601782358558451731002982077899936468177687598057719690442932656414928889506161743273954534823316663997917484984027478354053591200222609439905312070766019667274321466731325059919615374919120610926487819537779061425351892234661396095319606252617842571586992437826609161717464971634720477389613148671942948249029198941916758308889233973117415554172680947533102737797997098175650450547360227678621069754045059261438837781516179253790106064022916738026962573434304645300421104252766230305520724757393067927263937131887228801269585549042486632283070227740155528034220557317260915929275132872044337772363815466022426272279552426404790691285346647439567039015366644825118623402780402537808866611353566441069137697238823654053705720326485133071180018862177768059795321806543675321022250428000439940618518128895361407337239506631151707000571386315302132936855380184898696963028510893012021795064707248775032099948367568717247002905581456984051446746945071887173763680287347355619685317530756612015693057034430987614972306895286644415640748345880898652566166437972028958684422039218194317151275641117761475637140593686400010358802638912596923817062276371676287480628381602275941051146269228880912943302776649594724973844730933763274600371084359078599766718005586870287301832296672925665119592610059415810036508929062603999789107646931019522717446451994436169991555641564121510871438208088680752297850814802286234135318439205666397115246089048131844519231492910632815402792248937822825154576827162459611763956688646174239537158657446266439961554789051637325218257833325356445898929059519260586597986713448274478262666789841919627360593520221496681570436556904167082575274458817572811609561481857224369546475050830284430753170779235571329348761178390813029105991835522622374686711575705937749093797579381952473316322662359826956998047343344026168796547513042934616242661346074732526957031148814696916429336907194815454817908292910720694297318759719731015426199335646153283618228701515590331070614653042170066882533797013234495060714168352686098813122722054090309466460661858579999141539781448477415640822589035406449064635106154337194004013861603507145597360142786234514865734796217978467570218989951333364438192919053008577399504523493495718968461271137688957597933234953320895381453984677028512410913999962409428615356154952015641889962125930051264420968659725289941843503668188048075291059723360083654823570191986855092603500487657378829516292374183271323676865849464000596709506778345361003674425949188581955959269025123931107259512121156338241589606737480071832468778413078096938241482915189560427550175420651744208813401454360707135560267634995975759600410361609612137736218202235639801014559249360156897148979333658549918634973041034950079055097103732948921976405886995320189664933508204310048852305942984868017855565645389715296386871398239389278862831305388987044163387485323665505625430238286131768314743993446156093107653849475846489316215158358898933919567329443347903909096450020152545297422360933487377485709060186480705169912575593325182030441205733891169249497937444418172101800486952748158248607577122172413829852529767035268850421330346370320590111276927084231224737403990344676189570010259178589661470456118869055431800013574114545384809162384560193982145769801540367447309332421416472755521908773969174173735064145951846078512401813774545883762985179066094251799695036587235132911540694118558004057561078043579191051543895293017860705688578117217421391550953207211970898415221542531647919304616049811760099940434131909911892155136512261155018131107351940674896418609402848692830550221199243438663096612299837616589812747306690040713313153258193032028149674557028927119805023083429490724610549109579955078936602634698465662818805549010438789895744093141529641433776902605064364098326821763362870988262723974302300550638516752892264837509508861372198333534606984890685568590244467888633643960437818236493160750697952536617770448078628521046820932682668289722071591098008197780192649525383047246360795893917370036932896635802205065980285338702996809222867542712913386999402663357736086375404720211499273339955963867139414159950635550381622713179928761432989245958663210228050727201766328290281395136246392598794084119774242147849748879285348132922617580429695360568496416333588361246477604717663033985377267173732323243519297973342376460670072590569784778225901022471861849551087004140155276349224305850649791746999412247016670031010443276265309930152842068424685952359105309696810584311855103760808536810333170953490813488313117223593774387414621839265017156090327940281899356126944963967143320782904731916666780851825519771728800627735453991592789034010786288963661157080757926371251575321256434587976758227986056217853904634438782602247698316447309116773137698654394413974813448003818298103754950588539835429146322753291226062391782931996213986918817711118424419627718789923057350447245775383119433851793221285766035212168779011404776589767784356963513653291514930963803910475450116996758780279997955389558550059045533297935637026407703334811205596791096608804654458199117569673353817940202977420844671405547625380016657961957199126200807816682028859158624857236155994016255477707914111600676407826080771078947343728991156761306850732249631591231634197588462764728819202367627163751947669533254204908916102491648373349659172708001471152710129089029612110404724620656228209632836266708889728464849194505485241475581339237736269212766280901070396032994626272509471411769121429133539751301514317746716858402905968622217080111036660714630206206422073967367402754445111531868035737119706126321435523468555443824565325519496223092442226276161810763532712184867110387486332416707890468852233292111150197900987237667401554791675344748589116281268686736042229943560768269783317351763941137568187311853109391473316134714642957480258866120984333362644789232779921718938110490257508983329575231138511638411810192449913293008778472536273658801679273239119566773773460292311671472527543877323954096440741744930881033569016899447326506293568124074685916892546509211091423164339664349653553999052260304711487117501951086036214378879284074498252703324251691779534323933805375341542863344920057275796819187421842721885884666266028133915912265087032955629743121006084764623824061202097408858510971345024453456269674845217493795199836601359599598044210553393057994635412156592603739545481307090026816164735807530907005794698595121857669282043359313336580210439358016107908279426644878203528015749847777187536663886871469284922335979702018592163752637064707239232807117749755236536241706263154632700590266304024739804533530204093931304973971307917181514886323851603514091871517272596320603977518189877379429833548962149298830651687972617323342951860291979123542091466176185808120657850975540518126245478535871423498722824507628021855541643937355728734131770795331826410695802318126782729262172479047867331323026028790147648543358099932443723491884995859948625830676000122047336344668680030217744283089567321206573109092985212685308293535203316260961238719270474910316941151648388474797456771234335574429812684461432753371060377023811587306886288969394132363006060504289965200451060374867696136491725117214171045397236983765748250928625319917610379605050700474527519870692438307972081336510745808625339870452950365773947943751943255366001421055646414822436061646770791716585117656108592356346094854976447796211655113187009699029140731514839039089918159185783326502779539578418251970561524675181074563304570829594428891506667159297604128033547451551004399493399113574003681082145201003716633376952121337532395906445150652333790747504285781596952756961817847042381784203159924171121572817531382552899083172227080319334018499746246615068641371786793594805932728519643357368802741431586900765208723454663736398318691202096562075413488741155043517945705202192086628621570465012959513127937440724676204192266556744533344472968171487354493873384801665428264237833848317565438333617440873218792199714309719390756152899799193348168456648698943157601438028626335331361857237931672366063675494380052529671399740350994071219337375857120455594960284445640461306033622263621629341224576151165419387916848132809624695244456954621250879118935398322196378999498705755174877188610510452587091200155027181112140083303394599977286587045234191667304068557004717286117263358849682710717450035389033631066658091122161122795352059735631542387862792211740027929927660272309100878896448671977510644852854236760680678328702716021491220890738359867916779079846546847654432886332754592689976471361182191936371970943091897609589330741950915357899815945626817403109118621361123870326632874592512380172218592375964203971780119733013545486303115628764539733301035351993689089171658211844720253940470931783306012396416727093121636937919332391842597730527614792293021230131636529561376233305284546377449667838557241630555328610532755207843894044247233087001494007564853949389708563666247235115549684263707422419853407218843317118086247851099998176232258058120204907270236751559960385584667283973473259596127104496948996928070408723556135501883486098273344942119279511596389142170133713625405959158400657637103362185943540907214950797192642474168788661350962013130319398165644318423191036741420512556863328098552077093239955742204583728924383094811084233008764153663084724168976375194193998480863927695317901643727802977688806162490841933764103645096126040651273694733432136475166867454187542353324904525140012619910255049422060899086534891218519778520803538297935164736163639485284975628497148856270364254376152530348567914218138341546765630362935943271568888511396453417550113555234226609517738178180389386443090830539927386531988392370825144349766957951254066405582132495347608244642379595204674037169104022865060164401188212816887278392342736929260620640964091959614590431451723416161791510706177671741511297009743626357169179809791310760755444007274823165853639170769125919005551128507328081677051347490741450119502481084276777357730810360845003755565026865827089490664096114629969042922698380843496813891492479886224871671281240892627970065093741291428012018819220654215938973633819322591270713038489421629319110049071492253628218620356176446854469959430764190727133878182633847902690514134885240883415970409316671764584851653904600109634729323170245268608078649180077024542605338592009166331507927787324832590160442171566874940579151896771159131892750178044518249937438743299329143554374680946834026083464252681707351360267844117117547680302578284327412712955509267108574023047469600264457118930180581121892575725002417910664730201129469375495333839271076783815855808875670613299964991589394990408749778235503921051363016467163408622693653940345676951865277526856031286808815689169916046013679356000288784865017387036118613661682337006376249017187035483916530088806575237376799068155478888938646233804336788144738626369751444635331513645033652509877954130939941467601122228501278273455755159561984487267288862169113912786444182650107159343331816055288098093137576021954484236689181404876129698357403680117551891330057226994759192287243969471072449770404732967513384853728989198514487912693399562727628630157178270573552384501936652886942503015712886490989930558977451480649740071081376020676606100283353983207243594567205949451216844025305614161150472376796871252693156319309816082329795042589816674800878152648677364144935695842879538795111120900413882435069998882091565554032892502288051416967879299266268622246705254906674953625013269700318245101140735192981527091168287631615254533623132422680452228896149709173971135352554401236086188154541470853204672299469390714881886033268282617228269647851698409755613280910904929942058902099758680270118297143811306166501656069405094174470841365931729460368323148867837834015846665262779381103471856527342901126469689951352204381388359254084508757429340483048052570263674681999971113924994308238094814731925760115285382473572083149105271608169922281418675329911795524477487920246982478357701790581768433766677768902177649062193699589654676599694287218010978136921367446220974783004092718190513763561232548612721452226168051802932568183109314139665924531034423688433970673528726638300045419514644230326230190718975985612470235865005420759825248981990750316538032495026016937230583148173147524304359424989148791890628026340912272673533448537779853276889704761672615852883514060352527088519929217133070578576387493937455594009676153752177828011626903772652898962034412615988106321682532064438164061291711721200955674738391672229623555746124390155990544883226264416256871268704850034492114157576143154878838226244938257190720528224356540306686433949527866391978261966212889029317080915069335476093630695038779648380650097087712584207442114997169855615899897478765137505785362724536521780662897775073271570349854774716789029566639583511119977254308821083008387197030016360375482320318110345196341997195708016263754256069696618343629726907066223061431318636181161133168418495161296479946354081551662886453122010561796238101443846201413252468510264137934116621666604435554339672608390029334249856059230477254301604859689878161532425234889479927499568040575087859615846563996882770505824808037526244409922842655810719653139621474222234153507700313618665229024242427339752232201197300895968910498540544742769756380596262269087884764367655193756819519963044228090247196597798141122997611309966894840654703043061615428405289846055561052774316709454797654256999443256151512704117768402472629905184687393844031749092277867137465048775654003526182336135822096915951653100302994702612137983269955154794300452825040411617899229947911176412173992693774165820202835024261155795357710192869502646054359241180066807823341749833422352511940395786903578680997957355566463481841092353566380532162505873396127301651792091526963077416035393436148765086569589441668759310281972270842130060698903276812481364340882914506935350078426900283389692890036766306519621256911370825149526413073002057234260061434794784184662076337424740196523490639302966223377308206402287040880954039448926023755930275783818672711195559036264381803694410269895609970224026851892905705634115763456634535309178364491270655146521452745160957092696019819351482504230830933240208569382325737324655619783805079823678391489644132121190325383719305126121435120543467213802491720844572406756078389118361442061721960932418878715390653119345624231430505959758138968001459327268036990315314858981784218414086270354132340571406372423344162305201146005372433545440858047849152738356053700832984194419408785772894289429890556411184890127988174242713094173250224649989776184995844482431963338771360641700505758811206260189035461258593451545618175684097314733842014951893758158996012087525756276033295003011831880956429108679299364914087426322667213868491522412990329146293202682373490956625790320642804533851675572566335964328298369067971544894914414428445736613121471652577292832283872251912278185033318457537523118138891046873011202533293433033228176744479092066563250188388749917831245277956878032518570878771082132181754229913702999034634082431982200181814301695015867564772318455173516019353974118068162554986334692974279363836831228620901500847632960271542055409234721977487555773727712535843792997336755041353900962607546017704783200920900004370304772062396931123619969230694519212280751280626109033960808551199393625766456058454748929845661051643776323020476293348833136645533457348047357156744499773471782198157392629435661485332563525738007537342458569627322644329253912185483500847187261537611935992117554494687517220953402171496733230085430312773430084421703922356580523746997811952384744493338373857748511427462252203934675721232785066105269132797730634628873726222419584671667202215168082910005267022364151265227407760046197949668504424149290330375261532475565300931531455774156078548884372041571406008765128076133114000215176092898248986294506264798639727812087334479298478545315123293340514068472557469284862631503547709257191442014221858878025727912833117798221233680779311687586547771399946239543986001782171404451158779337645825217591991088192383005166331028283723613412721407224623795391293388364187931553299328948798748615386139152307468917410066261860777226791348713632214751656850844199178069486195460193408937081923214192638277533759194570326450236304347568717345295839955367097394731137451394332819779112222693972545912493837982312660709638222596701900838145328629046106065868563209780150854223348481105906173852298620528178960495007325704272220203936136382479583103543259855072621403409859627786017216895598750303288281768040946852093886403363652364944285765333810979533420258752306609947377791748340996405620837330431676710875929826666843546700959970485895374841511522145022499454415283865780292853017658562910138814417266938379020705003419101213867913463546522874814071533820290191923514672126838275100017394805179223575910310629411782671583818637819546488431229736302075907294961313226423551084910264998474188701812740398720306793583123154828787803868672076345498495199113445099124424731050522725276683206603485380567348512636931946652992516290262646589416341396091509721872364027550026970108838683249414212571204886964565829636160986536859883788390280207060702963996208929169242011756462921271784144386609444841530713275382741805124756047008456141960786049544859255813071615271768187109610417028646244510638699279903132980239383229230786002461112125625374929920696236055497397793370905509150615995807462647693070614654733657295388010846593077370926439327096173358979875513329851735335805761982037560717396495121026056824215353943220657878065433368166837918392543102962997862558313815084290234604146428506331820780266740857504296549353954494865185275647088143513231959734978991714151693732568833893316283389645184887032263989305568945183919124308293251565402367538500430945522752298621936349993079956068968446618745989474882341366408518853219367311437589463565702142223037174148120127262829105733185783922733479526068004131224044446906957003432657910956173422846551383028777081709280043703275264455762009029489870172647182289327617882346799595389668011402866870526336706006304261299460849499563827559906026477765219702537583064118146128754387609857828996342210595022534150439826096187609835216523165433169772144125177003803902159813797489132029292775543871170339116322480752465724972962312476509351794356748381143152864133302908912377714661246904486455116492679934634155621188228175642302405169489544428168314140490438057886059010737006718298499365040749470278557386272032710842602732695690064120155580946913710129842552905449576450645756003740314945879082105473559113639906727806481459191706433870697147736652477844338630255698388102589879309501971312840708918719696749394002657194057221592958688345786698103181835949381027193116152515301740904031945172383224596330526786264210007457363367972646143529714988846055291907822957213456926463834792175940578051303673488795449473344645606796676912782679904942003628806990026035221665252664880972246721212946167822822474271783410535858490938180843820769671226221556492524464101160066383911818308730856354226721501721889134911144340742316720185801544096839417218455292470306663317439699203209991372307939208706332681495027024183632373935575659483558643427585271530364753467460118162312180861113799324835451482289863062536933279374737264046931267375653401997300907614262122865011585689448208037142836120485831617475039077128760465033612361352243121420491140962045858292255435749009027171143100562027796642732820368408835142189973676612851541741701550559669295433553384988687023249020610644580716922863343391855394434659741831033154532910259130360646226668797794557349045467488232753173759959372322731037104452113311533828930424773972419572744011654184843155648940489213580557085576275584955348891913856437916383424089396022097880195875047614164578733843443198087351575166749682003791537961029734944321094760732700463633436612590711792603829657765048983399682005284642342068544946993038712496466424858116044200046669339857416855517298369829263584910447179338446832504338447175872526993668623375707985863799511764743787742210295932621738817179921125649607665490503647530112846059719986422397278433919677740389582319175573259941937900854928259806607678949854843333553305204429781468642262154639070566780479389131776519220499357616638821963223572241387580488187287554778343055337141624291591814407249101833736072586131305858393796369137316050463865378761619976568352789603916541221197123163706463843508750588046575531967200804810632083118215379561380098353559526093637000645317080644202888377266908268009424750615773653069536999464734442641799088072365856916238996365175780762373186136628030006775952545698303593502093103401066548823876059063096671525803190270180565107741796599641778895066406027884717068077927555703510222371473067950065096075380534263982026154071272137856032274328861680241733894597905050321379748466149030953017402300954957526179588969836097031429140848045838420177059333087278988292106539860854978417702268001994317231256072796693509378461673808145347108132937634521964744163193311786906499824823727616205615024443944723233791069608396885603267436594476132436686239105834352637258702655272723546810973613675379988543402247829732195864738470798498514172853867527792306584091743206050109910223892981893864572160416894923402085594048059798887199075389944836245759181795872647854824368717842805118165701035999489616756458144117743599941557415640541980940777060781817873278088392351665272981172947045182489488694025397849704040125785017085252294800326448553982933954102504934105444614356130453712369616822024270875468032257772246764538690691735846329099659789270857241360685294722841899888111976949257775673473149204541882499353860754485383273493160249445830184005201100597121122488189926014090339058430141050559807188444154763356093389295582703356383918920724411566241363467937554167389089309186860803126378923091291660755009898084043087717386876849306238533350915041060003830601639488536879210612389410574394034606240163718548425217716754516397600255050226439611525994294308693498690746297837599701612950308438036606600589226585293056378866958466784875726002532918393071854726101201435318123008262824539075652638481662843067124140915353230173735777223170545453318573303986361162909280796514000762580295868325211303562521349985400678329057981002626637678051720624754016353702521682187355287204019963596188736069347306728409608128864989228165452185240832827912818493863635272203008598275445998989995835111574368787888127048557173814857403078036294204859420644334157901693839596815335852775087815743971924322779883170605463400533096961159954373203941299551771974092493728193869104247191680745755805413172816833655379652759510402582937660069379484763050243686693087498612911515579029908914751147143616550977810891689159389043228611630980896160154365423970713173398762556138393349278906057471453816915692648820151026214721832503409165624542935311732839683741755506978877246043985562610853373740287709972880476114915778576510475290891138178065469222072171325415946797805559574054495325587792843232475048202572961072119305427203445431119018432651599832951192425499568866292451206155443548518778433760228457318552553020385780679964233347394328325507976814317493529036535523570833622729540297603622459678702246796108729006536915811032977241127196871846317120153108720228291216785136832868288998410063083059699732951240183437928080758668778898496043772754027589522929366853922675139928237161596447373298270175090837568027446669159111149779944667113569108892437919930942472130807308198426259314434796579085670082562885883611446330706901910636068599518538704171062385680432411229940699769765217189489934971880450386432175982864331340232731735034487552793783486413104199496595525770669045671843550215620189672793973426821625686085922488113166647341429891013875712757048305145943663609924661062720112440987239997104207565439150686310201357598460146730265119903429865063967600069668795828289243397825905874856782626926330346837233212406615776029515653722610682290383661336834150499989593428093201865424703607359076560816219599759343820172461807695817834722127150399123937330805981643494623136717495999946304211763818147830191021334473569265625880571016446879845566172037587428149099843393046523931220003564424865028020022103872381508554360806108595381742785324654979231101510181266741384662946267400340729092430677564917857934277516529509846000986282198651935014863141311338234081864181019598887229593585603437224236723960151462789656548533533174007419842426013606673552984075440257317771495402192754876256636632097951348389232398473093428272993909549226286852582803762571040814041407092153377982471219334648252071838785374450072385259360567659576220402194519247929124130758546485918127845559512533948537732743954653252016862250537285001304537240004647444790745978251029444790475972689949375374692808933115543550514205161236368344100734984299470708653487282616826119499544459888850359607914367111963913932091120095413351288550899249339285379476656164159254527588534790680348593042101431778577117245113741846243215533722405654121494232234673410032864092372275714731703809305846661141052866534929215704384371938758254891849894465897489211239804355925364919086589066917390808867500913233054266548207715736402520816248301658987303608659808379615767364117736273466976156665392134829345642399129280785997987881520429221519091416907854973618725169309999132270006749972335155765795143664747023748766149644049261348608299760978362604927823173889497922468520977599508049882697239249576598722306469511876779916054956726996908515258226529522738588543930217342747557439187441137663399412859483123438484881279457601367100667616597439589632554530670816842945121140912212009108666989989150010205569248485237225542131071661391982827657429818829175183372084175238696768280591023151992531280144537722164743682595086088863644346720804079957456104290101965608808393098287160616049121636045869086222897375645574135743071591089367242331664477332829682418831492171649497251401194936905670952961527043291961756410101851405960839542210112530043203244772904509568672868692837978994453347325407832005428354880451308874136319369558168287460790465669459004074428841873812325676996716469267998695588605208063729838321123862468120288170434815581406294988306263459334499888403865260573742230738578664000237741531288590945512575353933694086944429394075221828471001077665809512756702014775408298259436553900777906180300371040301910921852932847824116551890922870290124041600452149317093577536081634208565523320144384538895834220684171388239953227063563872426113302172360887531969248201179065222750848154653606346843208352519510833216068431733436584680591301574087870182295987658228300204252835566932045019819881714582611715984000117232324846223680233784983905719584208339418833025000410026003788342211483673054749609677924297044999837994790440543497108962658967669130028499096038606304624009333797909203575516255166640057112187717239030015039609540518458169993864304498040103991612865934744955827606683482489093373386292669896469705317415608922966624289143819273723567260303050110341597015039075941159915617925116562289244176755772026392710897852605994713153357004590483012453586022457077160582123321852958758220305193728902001773432061942873421475237886083007029979653155681030112879925893918338779647006752027036887724058406643691909028743876338820971458010174951013464584028127801131681398978065090074076746422096389980453326207651496082597745227584239041345026846186168145795337175946226830306366614536599202803008432528514981788177127257386753550285133836792305674324368696202727569049569472142242467988436041192263169155678827648422239119627403671459897414454318006168862933763562397525481610920180628944206508650886517438844517440293615708910665305181913440835241738539089529473312690900228814761735924054727557410087221186024807065527347854646708100332528804948728188464766451387194846470027398366396786911087224906894452544993013613598230210096649662658249790741793302604479616467896121763047354709410590547677874362769811146481959467653953313260216045188056852012381853835993525090558673048169589393126688887107245163758078691852980464437598493901498640886729121561514693505446800392775377162800284446170887283461332016027846935141710371898135928565444047388935336434225299535630671486435758226615070847224212139574905881236472608079566539182107806975919196272996137682505271901680135018259365039043148923742221829972943591050476651019843549677158363903560509027440945473762000866255189537989739869552494420945283689372916225586445881857232200509734021124202427013381380975063870736878622413461626607614186589036757567280494685139294924694749767044828627850379939428327879122033297139754384364472277941952483005331330832659412681654814318367241851907164537118394561885376718611463451009876355610396882403469322743163868563893669207826287866646316230586562320803446703322414896584429086201191797751836078981178470876262961531940034781546405063456598584539593367839204717781619611519781599153348323975611162122210452896830871383545998806585780135485937490426395602017295786811549407988789989527859449531291247582481713710885909691407061933036180030332389191321684024237117855941479381751226153735529282048462011908783557824107679589872826483801883630605162587458132380717021270703116015993195665321105590868446372301121939352882993284356956065971989301484189419246965141950471310036209138468408714367868832381248718738058221779691668726770528694917232969297574129371576503104861498264996394254251535522789265581765932812281351990499862833891769509864987093885286522464162414980091336048094161672069334242500172533359024122452069662742838060791570974610193234327442284279030092197167819796597905954912721055386447240760083100058808181907244787034365745427947504666021168615328207936704228315767741097870656528899580921512079009106248893864651748603366304880883858583654754195906352901696079598667197919515472675399988477621888478510736605567922374551580096127346370372954709964144895440357070050979597124970791498940575042016503073921008375739413281657808571980285113042479613451450427776366605487057390164979963880067492763356999017421424708604276336870153889542554486051966156011457074311012678360618976337654085955844167396998989917146866648409024190014931111734620629582307787057948676463855675872109951364683099777160945465572016812285393776737409942830395155749453169206582037145204582775357833798271161575355475475959880902888250015132690306218375355881522800804994621992631395147590076715044412010286404223234675721465222554333746454076955442963733651832944081148165531123178885685344936256510923382232508875197006402178562624050439203931155127424198127866118045752037903135226382150021077213050240662418300286247765591111413089474976417044276328777473666951415296279729847362290196362231543631914184179969689628035927750615513987557853672663537814008171531831879331479803166307354183824985477461434758212203503303949134626725084373973133134613497187865221548479521132806558974510020324872979223925689275374902704259866856149040537528450466261442642599122957699498459561688661293427415216860453695085827710553806842470639686077813289931062855112879954394336700991915208886144555645744227925330947510327863999828608664778246977669364695968209330630483252302728616288409185402107585750595233549174517563505589431674912911708620738469600487897826391090562573959948749249597901109019161465908020748496263935827926505836476767083830119688555050518615798097218529807820275467907773528459488554864209571848095773550264183796622010560620176724101647596182317714441988100961027947776081962562468208545749937593917557725550439016442709090994033368202101818918809431446872511944883976072610642894763770508381680928472870453085471610727866631012203668875829064624965329442150404260896079559602848376811583310656398188715410222918563637554680861467680606261759125475132626589633416570626511726817054930109406586302669220422989483023764432367142194636490032001891029510553731974203939930380942870786655291476928813856458781496647798082331482664021665548467134062401859714121754244097871277182877853413438373825809953777455566863903097000614928407730247009172019952462062453919858592371345074239998517182249542889513234350318233448378831929595533487901099211718992253652942936533625825953909465529635813744972936997465118753385374870942177080817457017422516040904388461215741244528502023798390369991138969673477880497042088863931284389157986861499535720637694821492093062812513122808049966626255322428383991735202566745252299084099463258646834111304208458988032414287824148608262105774947533003770602151682554216858882552052891371938772498690820253933629404730475050099704407094693589196990053347830446358119649104831638160680743239747518873774504853932080118920921762003254128590019212850780087801080961218699721567278787836037834285050223359104738610037900336819582153479531242033219237911869797381093285010367827880608127452828831039183157044148037271526911195891382735020626616788136738930058943498719262754217586783775861692911564196954978050050271744148214225317716645648976255943758267643094912605529285775355652731149295608791108215961940175702492044626207794680537769554416379023844428627076001335882937229058956135310992448792377397001263801039062103629710054009023326620528685512923889365400766396639839257245082449689892624599243943845087655789090281898568343345109961963840911643767059605484195253505687872305206791620579739800869587500465611961545040162976777009654701852843349776446794960280372242292312092581552380645150731758263978489716595610762944958737945685198459060936913497322702428238293584834762009727957320397390824404902652459373962572954491177296085988591097983191619192371557431477730561327586503018671287922333999409221062679094625850811692827966923817237985512762993523860883177146897285715591047969113529008536773754899551247186890395744660004847954014478028822320824256701845114754583859463997760412123218294512072077908176823315161845542195987497445589015119927062360518963407353934875640953156034070693595825760816676955874920982404806665275624551923220032514529417553964682719023521957637963789759417505215867542019285365596662014504563385527835712567120512822751960929539092457841885540127128286062203184030416252304573349919862033683941854919174431281417027468348053312363654640800952279867998081678614387670229917642042193577030302889240633823371188316668923472566531471542619736924881856774442368306762858080355776670852493943272675918271305802820474498683109238845183965692912826914135802285087920263815575944588577839176304153824777450273630047967685689590574290775328240318388741953284725057582369989841855736097379347926210756480012760660056848562895296270365033407284992457076821660600430851921449939946159274018679067024925091880842549753825000573641152765627882068316837456136116466105945296098764787617810657325699441300696040441275748480590815431525219147593078104140991804367706639566726344353562456193564075135654672716790941187948848086809230938328738225004285130861556467382313448911976530330590349488507090436408551170896815968188535559683677670828759269590012226813063407905218083141753428838750131652921876633335743143710101634779665888361886988349983289811640070259655020476119906884593064118801374335280937951098305220586575519025533132473935518421572608823101683181764097241796642821705539235733182359972105591467580990960157125453625914657358345108084976967080717266943718308124966413928529324205814835226274469375858569571687034502237757777835981585809545667455462729794730797569320508562640503528302556722866775444828408620998138979303709253264259640385349961705463860837230314894810013719990131970126280108496986832790805995250749377542359999787837446577837123753575785267771063814356136789079473724792426181599280191554236358409224109269519498675837014008069125945944555925467047320392800470111600155954170202879503592920177039686011345630444923339774354557165457271495173534529046221587766932103972565405338682391305809660021212324831138704907261634988177752506339880373528304413788504053529141957344862622148033294954488890854507924805426837419406691885551675721662211092089973185266767829352661329042761712071734330023452589195373557475092687431529363428449640771785673995843814894210462851810384964342773551924438540110560036409186090659830023373684591499584014449901293693725893952889834811556455810610307945458047566465048935767852752111834079945987442056755069846162829748169274340319574481121269219891324355031983705466444249609636337484865587143693424000842683069466472686782160543076055555157113010549963694214120145286056715492814503563608857935420449883125571959955870785833653305512108392849984112684790571297220246550138708205244749272341919503603039394603476770851534725433807691354302103233118270994105254373163717918996081338444036735092091110631733765874016000186973042529842024488852703317251469249747539319823503525226176160943848097053512457087513186892673700507442774120709790407346312262052900063918929099033196435333533778277303380095643552023728118934142222131638412466218762656292621316537474409523054540169190591210298332548738443149969008179176662444562571055001406036680013324958090641028348771641935647143040955057638038573852209871616795910485222080708395443816652953500877460681136027308248856626139286677283717030323783233467164064186510599162481767070634565314676407449265899040024929433820347665482730341522657904235101310929756783048481363297639763227467327299098939274496385721441290848706448070466163067183262697301895505226175036704437656063860897547480919952639440353604654399823773561902465026931295891402221059887340881632225625868617445324411589493035550997748247415150737341194757333735565276274185191642451462010498782629453689508844623211763580035118418359267598642971281398538414469096917190799516740467818935875027443503551180799677762498706284759291327261688448884939141128745320572483591623606741616344638801312351161263321415735073587378908986460331910104790495108805327624363438019532053136413435545936470419843997327319281830257600857675302583216967146468343588400391420370724267082601761625339029898671526756221981306035295948446464040396885600648176610903305607906503876896844673169485434389183689353793341689876461040506024109359855532664312999759390263679696925137693692615910228511721654148892157262235977366770146398458552104707476388972254902217955783473853630081933437898874815680276975999495121254415702713764902775150787799491095614895742622739879403322128257532457845619552714971773748923110717580044852610875339714409334236416700073947476053387663802542958635529369130347698689906133362459084735380529991695237406505765703934901547390655652892580819446962840122139245511198760380740566099410523116436019256847220532851072587588370887878354074617797601531730495005829381247505250302170023610957367090784022351162225972381301444079847918133032105443244311027197910059137380934837758636139977194367200655924569938147027619184666121180429617186652831069577660924377161598315124593617280103901636552046619370925251253631396559201177821427680194280476586534858158747031199267709791335049110720516524324623125383157448751295415603552750263679614546109344416853578102731389969995468673435181034432552595169300233005059257279978159048202235890526047920348250750421717345546642531252852594784406842133378979724559983814529024913412772434245097179511864461506281528392865023721292643684081326894231693151888189538526818004763103077803899244121518719858272225449899967787514587916023970766660441333059400177251968288276181389025401421411540322218807522149313873039438948386348804885872573129605440226754011944434427123955690237907150071386106419858388879568805486335172808444644724813277238595610521301309101510626429327631624722285985257102637159462999401322655051880446573989800377544218462997919330400605176161879860265557607689149567962403302092035338230064198575121280549087681264999866296820216008393577425692390014509676551896830011498580395006624633861680225506687075912748319753000145540601541198078411349482946568060170741821944826942029145919311797294425352351393310112186883167800232663769195193898930495655963644304998263623322221317379586337527290159802676243820849089436428312496796216250016352996689304462584580416724907109041427954474322776405586064497993774815979061292220293061983352618004261179665496758054829018106894737221612026571626304363530228212933724508394353437096785432438058312889505278663565717128803698528454871495079856246655577931705079028998685971436459307797350701401522754476693419823926389892945353431902180169387585028778687970204616823197351992807669758651276064682383916960148671115009603845938820051061526646256272708637399471502577181072308962043626415525571521279045835429590591012051850860519983358295202764452425123577351536145132912213357834119671870758566063500029766458721899656846809835422555679769978615295831620657432073721099684406194608527521399720774602837961829406778265980996983586608974386510365624255625084235435456301512197111167328336550705832479172735651427694109849863570666188025284345361197742349000160410913598065825325104777234873758588466697858029999224197366504115511962816004732157650700516628984539963791941447196127536849638484184078353921949516076075298476708413827460440301770757999666767568612536105140039171681725678050138978371865837968976150172098480602272151208763671116355293561961304020927396418528693604726513966875563040087535856868313141286860922825551242269595679930350249011366770936403499037484587419891089018945705198578124784403575786713931970855498938099970654105791690209598897498738447272613724351806561649931638973511197033103939780409280947997343377265021224971434098237823651965892886279223277990394182050685698376711662377215144120227663379491737437342283179727940119374539049057971446171836025673221405521946218628591454389656234024894537981195596496870707302186078051319309467852848444202128432499307154135644230793862725265852084922694843993948530535272706823358639486081705774075169738521202106289594177160792541306991346081438246328669352312659073430366809538595608450167393229096542828854097863778722182590727434195646611659593408713448120299579604000576414684856384192084025832685521237954962489115862600940098765413585870619251136537194814860857107708376020972374659553114403073394942348448615252372266625317209081622694000211227591834255298281689971968761014385191901289880742428052835555332523257154858756144775201194680111550944054296573101936215959187582194822074756153078334803008549943308739821340270700031128588792796739627366092071269711513819537715546410633745558491963169175525559918922408979783312427354538417960278459589864706009528418086646771109464159843150009597494702207595874936960934892351315530879522675319228875193269056992695901124280084378089758022372721112814277158092157861903143823282221584311973638679727227684958136328147018276523616998703831654805714617520177978010749005200986222538671343789879848810445030271773860682106718234856661032815984091857149084770741257737215296236289514281939493449231002475529468768814228268826338199210705003148229690781270685023609679524561563176253784439086838854547176625054868861453885894019065091841015885208833696129877316727526919756238642760951369458384261852183389570518641326320252293139134838082128796433881362984553904237312857385590062328719791590912181710334920882873657259600675103451691730348406647731247285364986970322550580285121031458139716550054021999125846712475229623304794762041748357339651293388462598605466902068727431079892009360086299625852649556926342244349075889871207540557239177888983747400628311035989363975368314316379155350844599499815179035719166459579726405356357962285223232099956252907295659686256664761182174368893655265842097358804838235632703846291741042746340327640442472179196338923330045235292002875730135630382111728971331694363722061750858152029084972463690556676289218426265178197651953852464303642562032129591608958533598154070650245252165708822643889695532003307123860177199426979987427119660353048528358184414608549134506444317130866665673247447943228054733913760627581890428365658659895466488561709859023357189364711022191554480141608108632865265720250373477965869802896975687596956655171572997817414912551945083377949744669806026864318152342292431677632651015505374677709204156476462475124967230114288483953970606056072465314227321889583835501398502247980616382349453661289940409355917809265868236064198494786394927392551467596218556484340287163998424165640792243204992151935270942749255097209837640554799507636962370089615853142082854978064406575694610740124283011677091754088048806266575048744970010064481728170337185716876990520504312691267589423546424263219268161260713525593779984687684876663746373708483091302303187597551925243991782626402799661636709436911253008628435029788667148387735570095408509510925426723708716285087204991001466660693435254396813242277505204120843117783620864259137414037018939058491308853076718033777597798154504060045084281692653954942424173439682579794296332233121321810780129321979360275038885263104587257887904993301724937169929033635452907496514640560912754875288157487485046656478815713364324270157712065088264725709115452935541510645510350947107201788001792464135972138429948710459775527984274506977426564148834068300809230546462603894832672239604062464659457420252210842881282668896752789802434682655789626562663797453689109293468920924841097023571316275330238902076986731432584276094818388124585758734014097068671895618131122294700219784482415815445098198891529424289069346605626079565664394339342799835882357116757511632925562149947095183522331245810913158655773591758470369414848815038632640986605244160899442142372446731857685405261645960803590461604594774723205628789108869923420195755264555491518628810370985562898184920845362817607417557822466638790726046775548345174434818904968805637650325035359262713745149886240548295624736933344962330902739113708105840712372655403944406661654666981279401611743803144254583611313870018005106422250474212674953997075909715271031416553633477320054963549146671949925664377111351964712248442133833448299147401916929709782733048209657023657441662164041385975719940110755054813835675097536770208621480224769057593128457961205201060652722159599745589563929274161013544777148660272222807878919031049330486064234888941265365091980468047266792907970770229050202576713844368458156348290022266587224538924207586781264807425984310372314483507393491632856870879893530898303553843839500797078015089931667721215355785047682448066812060081609252490055065606882005394397529404297779977739095481218233882815997862843934489379186155563845847942592989490543845037369764733322568524240216019590447240163994449258915452220947381972857356081416294420120829692342136751905692105337359237781600665668763641463665790435737824436651668510493519577657907919335490054245374836258264105168437864450295918358983964405685936888263686371050276878385312777705665995603001572358237147154721905671426014336879664684364914394999572722150580428992181009895079934494421419902144689255392867691751039824675824637343805239735083028068718734460641876299320312170407048304612916426319820862850786951729018997001434289682624417807819162644171950445075766685632424567458175518591360435999585745988250355384667413282045253701080509023511484048195305888064160408235523512941281404845448810370856942626000271639230100860372142424842912649571956987321905242756339490162246454625934745670300567283750846724982527983673495617708983651654782788942618610518327692085036036217800339152493371484445501415791162505068909107138275802244650509860986883276779711832579391871621676788356224198867538683931575658977686520163945282738867440651787566006894982173557480744432557759069273637848180513357096270189715205890970811986200522767934991330405828456720358566472410588945530875223646183843964025960112548528766088662848307636012870066672280267000361494230261254165504582961699316384370582967507053229269109161196749361273729163120586368847905250952735154380622219327300289599240793907443857366909352949258689440107342217802437077152816124253190882271732715433823740147454362184333256802959940771301498332370451096996545320274533507021770370706113819105163588030747477081980826531951055240343461890804087728558871026191299109229595088225181920585188744198634862518824566545078032953634810263484330308372418113655627830193910161835174032238450979146875216238771442392232324557636410797470012553983247122601905304886666493332284863290538086835170964354044025686679116884443421694025177269167200542365879524586487291931941963983705910834659556545737455427472252563872049196484680456121634675557800183911458050720291040917746197882965048612355528726975520004238203818320764255364096320893392454496759815230921518947305019785351001529957353054281128364842365947435959609595698016202753023959419953344628208264979236079421886804110602415874150857519458061568880834301854125378195459697414236778741870667215842752231935277070188776280303233740286266042073050523785203542104257724425591404270087490764352482693868107163766930730372723741717542458522477357582702959966498541023115101387432370479915917879029944855016825586545153881254857425414604291201232285561488953271771724012262799441082686913997298743825568158111262387326261042642491914673031393240789967378614329041420844114674153516742689733703219069028747706020088422190321251655289117173856747773113661537343917519627079549216170937800543404578737896895794065840260922267066639747064746191485114465244380741520552128686202006717232636847179672315491533594924534289288748593176642699362096734074977450530705684314101332632877759213057623147008743738450762603058757749787324207140665136179949569456010819284319373673284179893518959542351970228934729769771049753586499567318504695098739662801395315247336067459574653673422509659501098766962373414060683935034819838271821186844060176157656025470113953735726783452694559607917709449717272346947334367803872237757479168689555204136215380142825486737769528370384142793400440013056897835562279860713607059660446853343332247081996051727615220108066710652379501907097493741821633529938651891700778898834763609236188052690600640828079713434978942759592887202610785155541123973730460975923178834688072538351059080021866044902897911896725936755213964729068579735073675718216974036670698961345787450610971203501479565375164166153121647325441678927750724594362819238256233629810375653289132823923222725067941709469131856699622676300847493329492377248202516805506663161990345780050296216095097127831349754974849708075014692861779720539208773557354263446540469175078783629783037122212634499537604587068254665673292775397228603678192473260758753750363960555755152470447904689279007417440809916215353523795515931682503917084115733894721483377058789369541534827316071703023202492909454665531205525012632253174142737294089358232313041403596709104925718383520195357751110303018937387366729568834759002804669015028041569220627941078976828096269661012137488119556311967779804681249306478374053162747606283458684716459438243677534276082695576532344276053399712987080520898985614420659347221575351357313531509643256863269976011816768872330904784738782610883002718765026082629252331944769099404167002640065555971369918146697911356778065745105729647119638264380698960233881135307214985853687086285871789268796297801608941639363012094163552302777342996301526343577512504135198341187362058334547311853807457268433720690522085625501050610093794285614047418455921179339272708597251152880056940280536141144924020924620879487418362248544537016734793590201500699089471119500954771699606451569340980957608723061167985930544742494585592763754265507909850782622745241428056419619579470161814101885939670292884088175071326949126451479245871388347220957012545376287115461358447101311323201495490944640147600030237632857171395365471490013555869633069258112640479200531728092117912870096788138937329594906876916230917822286435333405933967916024289327484446631559457485611320451783064649166224181324629576750918590298833323065514502362940434740549255611764221609388471173418957407199850352736698693386698517025739380660230279106280853525493531661945852938854013476198182979019270269975539762709721332077521428883136382794037795481043639684621695249482298443229689692085335553085317409539710027448732528352757362479458012780445503610606455857803573626252556360647734905686383246005882645729967286706470688197188048995918209538769867241261058123133718832815387305324063517160488373186348319448785524534021310596054326978736278990273623581526866772864841376321754066899897348826118601800293600223626158849590389381838347815021647310891383695373808683164369908798085930128373528762206005362275872876794657916805763581432409253055023886548294925725127609771043084142413271492230145550249153801165157010725991966088910334458778020184201986872557983485892794115791654898418079655981652924400286000892833089959846125154134736412475537056580724960733728968639565510344975858300171880139293408159346577407491687314019903828427712262333244605887567398385935007695131185563168457383865551229294080306842203625672459181138606350480155226167063564964286732345965669379924358729329116688498393642069797039019159319455970361259262706370837171360797222924483897365994926322185943095293445517054009459274870328435199388140267085915289496359507636380732347053462309324415095756918504808919571739191653100024157142935668690970675538485026108040743406457426342832522110207103450374538340721719272860930797090878640274037560341962032609518023331944660470439348005406358691029418314381980766263692292015196267454788905487300853342208815974032892535678247804572344855566388429936517859381542871473470540776250407980710868325712720965952470280931298490597903061967508059944421798850698316109638043185757349320897027921443393913428290098389029276009981034971675340055350266575485135820698171894317365218737272703866524342059269683995858771658075362930491745821027533012670236222733052137092747575492754032248665363239284288788071811943447754439431574633737742190514462638401483845223060132636502788451471704790583180583489408569494249944151554838633423772040699601933580313753449760284449951541090113815606641323294310535403566334982500900534136214959747529802823984619728367006210584613977815827467657982601784729657646395894187742496331695884228391191590565640228193496801758163840139429208142088204546902994637652059988197831754480127119965562213173244271608021931664460718450670245160461201179763827239211348339438798962905840179686360943255300650628889732392513616327023907523959826534893994680658059487686462751410940649931153419873217299143125910097771886869455712444493582861381259764637551134279845737620234356256898312253042059021490709996741603215467075388165029658639915531513429055133316532483088503470195490556744841010321876589956758394558238286883108141862835473194755252747115754025434804661774803878685983787156949134278530829472887354120431902320905952954328610661326976076266926611352114662527698412773408524191382685828095507583757875182944195381669964759338058109744197040887688325257374385618259110897501964314793725720708094058960553970982858004455630785998611082978451980399882309416250986802635162822807560816507048348964416836183659463297691973326645044332702652964407332608359487129720563680362999226922055550219361313094392925616898258938095311543481328951849165428725462863519781030237300349037991793076886122045326513181013816898791956784667866144331058014381259912791415887667170290675999071222928172745278544319176377518648854469055214182947546075537345606085563464203961766709575287454949012046603519646368735772929742823475054967865445927360627608989246978241890713669103009266781913030559195116956931783197540796240338421104664465240458186863932609646353033471129213154369571442206723727019032161283163660683535359140279885260953147441976705764010907530604721386570676654997265613995625908185085303045559284076141246522180996543530716318507488647893313715980401910580102425541713566189612060110697612033871217695362774814702404628795944796568929166656151629117736946184946177683166359452851171641400879610965586719421163816545789355943747416596019104026506996537608910884905409088076624223624452531328521785687211710750728725802437027495835664624563513977205964778734767213709697787437222222854441505162581475900160010349873421642873794152091728087438528706874529967585063462361565683806568468586659128839299398749192804509759935762191530345339640241628163756457337985969012829274187962762503806403057998223939350958921995278510291646380478329362091927804077150418730068917857381782537931265322695642984805750570433859369934339345604496232593724330435766714771166426205667161937773757701820493615978206551775960445574271401595850624208614320221027947003286440974985311949339722052560172438067839808063019803303871401082373702021780239991965948474208100416246313999893872678129698371396533436978063946676428600241528248737856394129279353836077076083007500854688366849683447381380001948099946392793972548092617557123230722879914729499627829318121179995311913933682914217080039171083920399625324657124267114807621873238886630273263260510227485587685824829962737856303750205262948831696089490129163137263488580498192487545535248873262394393675045016547689340206821458565566171050775119437380589413425696041313947581919706682302632423409024450540958834108768898805836001905800856199491033238845013313960419454688283590614806279170274255056983630386819040807698607465088442367761705462260845439722219403554202652033104455269007046882774582145696636674469994288417347114807023479517943077836152757400116754238104978226516996793270179099132535969256413102120317675960263679551086925989193605152931611639993790605221621826257344736334202630750572642522552550069625037213380532448446537714971705777121738555021403641091178389721417976354731764860997323702087657166232862736406666652522444844237047431260270194052932539203881245611678392260714780011957184750455611615250384482208269186674529500194547955474267031195338846336750475341192430517289055830639606427300931789903397134393158405916100858639382213820227170819247577821001503916384866601709081390913595334061901462690424095680526240107056477766184073651996598312015914861912479104532820849003769623579045204928147481448465817268742916011125678009811772691222090702378514866112437144591984668576309473751209424335200446505329739125167083018255429713022606746609800526039196275579838950906924319004737564018360745493485910179447557716286315055488761028672918186758647664447865962782729403999320990533549691384757430422035802668200501835248565151703420994311072603747508216434958854143210457355741980118294006516384590778313094730099299395418271818059977319955225376562352261687988048284720314958906256968944242784076171974785212111708675294460367053355570333619526994064352330819095743708046560784123500619341564951004973317383620400422734437891578965349586115919181358972444956070703223227828015791485580886632670092404234203139271646896301370562218550399034622946791769783297015241275735845801308975952586398550215463677050900703329079755832652569733099251994233523426743245262878343487803932099014786974131728112549644590427779736912668770753379381052959792195600945196472452145664478112940888425973995022893156732048900359565314881818133524884486986948006125364742775500050420404621034425555880866214425237932464586130867091526143968878163367734969512409007739167264140941242164561853646208583805219480898873774634285140004397923506702424670667069730792355322976556684570476290256322597831961833397249154695255251435143479730725058985393503441430103727693308287010755526122132379489153242485015478457009774568367395706462453231678342716059951325335038447646180452988910089257614236456892093712162335777919010169852746507433133940386055838356051252991146475251049740083923818804095246656978219067500774512734041374694859890324303842177375760809258836398494285249166123974213403066399683994573153145921895618542973694163929127458660214919325606290835478894538705890991028776842634490924275819538227715445507550828207848836009388575040713380643144643510663577254200107215128214873801278325521947726666964351963995138809766453243327235576842641531380978229804632131537746252354042906035801705619274468848477598491780867455498329658519534616200108125422426766724465919850037372467000945314183285138022443386726425015956759211414749624518491204720646756094059335988791797905900136748853864506869620656149908349682257856811345564839572728890376856473485870278747092443784170154003374569827482324692217767073805998507558616687137871868309680967655837021661114077220785221064026826988873072896051684378352036740225003301294220879972807335520332084982518794763661742905528375912856416497413728193651143325413215966544797508896637844058341384482455733859312236750877569174580777066637614313837033604334586746501571999949357092631498313539476010997460000053765814494573326745861063304932150297383939354427370993864150604817313381076058253094394198785753236572332304795924957505802346554857601740783004076489467682586409510388043743992695534150692609552099668496362196097541990256689273001830398841155263548758410191862585651958949917543670137752629621235562608907598144724510634531684374203926963412512254942553244660392238541492180254748828765753640669566568544990494814915280503825352855646720044252289431463574597056054132111347761834591435006804097516578939671178548516522920677835710752551395314528231222460774326485780214710696712582490549532520029801187432980385609820847498781051624257385362174946834560794401386804272597372177995976134849268369259049454472854534855547672855092626966333515439531919926209022290117916503540532053541557323962865877885010012105094483643693554565652987025104273373112703686432701853930462298639018498497790852704663810074106064199346768348792149018237926231535776760045253983094883499531297315673811035767138095060268988103260660443176435502995330743512178353637422630730894118909833411963860551522024968443939425305314272823845197724460166040399583547279137257994876905630996389204706293760505652182054213457997735548935383680336528207608125148943624690017425014836948910324978639419114600540230621618556990861024673154864609880202781073473737770491883439815296069606171715477091558045391472137944886307027510625910079537399951394861744903022978921815233955882101576496402094591940900160611658741111198073433510338190204012029929324031443298771647219418758925676345923219909229015572393372888607136940617761645093456715228049982747509278302635993198163991685562604495679935194832038447039650098998538011265861333379477552130328891619787933732768447413283162153821350502232982479519855842530644062732756704048542157953717334383013657922716976581525422725319026917215835634790655014339322211845457743373186545271855941021062294882520434730878381222298316872357783733734451559948232923392695789294479982420094939266427073943232747132009716034757074410728503079630390757270283805020959161755070005016627792429318124505238672399685851931779590388404675565133255758214943153517959498790175939954018699586162066971538933325756001809207795785012715852501324370267983815321683151058802737455893982251650796556806740552933580416458692852316528925062441034507254751746696957664759912065568479831778838624441646954191913411663831359509426984078970554946580729459831838654621775210631145510433633536617757305037406342920891277502236209418309382037942049430183256488151462174731495312272496651940332666946548174825341725229124749705114616160054281880540354198947234572559079014198518298148145990271405143266071026229634919481259342145337898724583097604861888669585130390729173392077225689609836520912793114821797475064465597613403875759224022396034735708491833781121498925829532335444378531833361017437217127075561619143805327266024494866847503438075251839224592395717830234714190223503503807941127277487289504002308047407224556001247620731599212504578861913386499033912685147243309106085594366056248486764753301033636598577489631546413465281763741261581100781736701249544796541160122490093946034993309994023927494381350400802944899168793936676108675503546923865708941470394616477845589307011895036016968430078158866532913562055689169725157812754395541621519521053001313362218719381457197443546784636798831874133330551292210015747304782227473543623380608200983366453685586892563315746920243151683123406729773141705079853683002114655362735781206338697324687906485958758167228676488743765465044904838056518022973211179540565437944615042021563406645608062174908344929657888829537930350472608621682320154984933606588503695960666607613634125466771426576696693825333353829686677801855476375874137561497408516836293864444543728252821275965733418806978040386375624321359353338276914364031872205194448826998998678043790503172651953332428847616800651629802990750232478834434240656782881288607696374064960256307156567675052037053083913616628392164184509828446743051228444239833464130153027392175042011926614572750828139037673363576392544605297160176537577389894691397706717184212302966812872049713645325528993086401233052322605408161138788925319487861723276315274802047699701084142223997929110102895691963294280332770835352538903514318588286319374292654222129276285260042254539799810059553667839998923929180915038777361400928153081940786066474842382259576352851784924147444843684342520668215659669197697288057366703621563551249944361226689330580394804546277509788735672716123758257138391394108724319551951605337651555589253551826979714756066893173531053191521229835917302302675839274164931422439389744310087449119622244807371585249475527582841371687338856845139719357174351376651048952390290170630927122646840669278348399886285959423967936456417355871840199018757254634606762070626278962322034805371836351794691087763851991107837936690226478961426528198994989440958364692651443165658212471792078920335140593667828494017798965297981505475435803177585622558690610123023401093612955353576358432997463079288408167023366788970128145958847428199428749866143771185970104607861183122285674946913190044825643028262007248787525394397901252203517990670108864444173332942703850477762959484381499099891262534888002247011268538660594376622270365082672212322235157255037650385409525310175758687338353119969360241660039650928072743807137547048484456886848919687212310981990987307479532054140103959736196967523052442164056190052674275993979137268686278535430551791257504715766018492371822393484939196929539449988380196572662503651757494033119695979411721257623713831651147962605579178440278188122553834089639827049789072574304430334117910810905995054171220773737974775030368125820309958441194867999857940111713933242395262703619927063772417033978111333238271568277342014790547261654340193226714421801961053370502633374273190455187948713485249862668222211111318914455762210422898347390349981259778110809013186425670889103674298030491363651421324982033989238262331145775400763163825126866684850315841111141155886426790721346040922170507459824720702455243140352011956531392458331009142536349587897907439371365970955272555666600702420283910074594624663130745446751130599377751204119280556497291512349150553278102298643060840537644098917444310769987172760038151634428606521830692100917992794170931936294247745806817335335970175989328603148532015687697915652124189670040309591727757081603018694597140799824436333287543192214073599695262683038565958452089565549778101327453943408643865269541406604205250151308378086645729974925690376170930028161622503187003032737144860512516407239007008823823906811473995804355590351241221823298274366777890385385862391814781588353258137893191305164723901590515007329258274620428914392667534952154942924092785612941425869372951468931427054442270009324161093344478176261888491644169256081359077579447386206015924040120633749989542529116340952448531423182474586867921351026966287517052106460784704974666154518814151035167349815783088805062902524727849132883585857196877031633009755390490488456644897468888248422504227410769069154782415861985184219579094591392694553934970741708260129913613729331990899612447611270277043889271701723488617631963685024672082669876084819752651511784683974330831726048785403033294278644360911489762879741302033675392689318594580161832917944010095832498058750645836641276952928598265770333006234582654955532316653230563737351219528492148963929423810595598227092759973032994737505687449872812934702606624477615834666170491626975717975872429291141879750748782171533419974526805573225600314170463422031897578207730237386246978504165097975844527164585220435513975928752950895465228066269694344990148802004181186420397742204042702669554460329909254959435202527964887345800543458468494529753539158379291130570376177366337579523977108739337954733211854879061926854224008395361036877899152210452106502003800518083477093161510544129726850899664228246448977642323194767560243809769463100168877605725679893692800865024874467608245459575013283810001229747305653999137661127606785834512958030384050253041663117398222113792207474393966300340704960764328821987339877333802859793609821535465591007243170971570609710596868869066479067951508101151970513635751636112075963738637573858499983786453057903044394301295041097437837274732158210702226767570396614186087744396909624777614298268125725518207382106291429179289825779700233074929888582353993193563942526806194864206708332451046817067040554213418765164192197761886802958921872436739129792967021700260470795407599880696538294706826294750079920917805450108721318367103021403412399398867410140472913176444209080110919803524432113336535828527182843262367250370024116259482255974488083176067370154856289118665446550456305213779045057328185120197966540943027004974463254612122414112832936643794032198447927665610927170763559401220553590244673070737840681089160484022631613165378822613062347649322815522919522340925183960171495570625339301919067459718990077654358539453730570858767339377522556188759086266557260714813602684304809463378108948705332533469315286522818485015039938003366387897338934112884345773523321999762575438761947829060841049231708697927266856501771784535760144406871716869009528068034318933563042709727787065088633337297031001593202232479700410181494676461336968844790945361149017446298974932300375802531917695505241625006552842611437307622654208268221345946753703366218421816566443477572096300136885151459679472036012139399463261145414446827526486615867566816023239217047451257013486590616430860058855687920847833606246304195846417470830336606533005342062042836863188883242668160351752140074640269007587610894794635150844959617000501827708966824263274755293913446482687560096276222425072962721883787469558539680869873126892374812698135012870259485298709385372271299505563015937166285821886591605207403805726033045131972167929147718675630529355727688239029226621973058048731140117530813389217011861801173372514366353087565734208941704807219335988747973642686198794102854212952941043654806166646656095350681267986083772342685220615877477450454408597241235728136293950248772132291814474603528240905004010177366269864170218167035181897467051204279605436662794521749414856486403423375959054906013609693091684106291636794689232189120912740195170618038721228430708796077311372544130605417298995054837882772704666386419113779886974063277679996081032755656287090677016148581185167152557206731092594326602485559388718412430422561677461510838972883424225891485050847290517606189977758300706565252084740820884217337391076739811488077333220165889114100515854223884063672865672508971288503845294031629188371445378786613054000917050111154718543635583103320721198133485863115342360192029371830435261690844019550048145065893768715238471241858207056441353048742051561451208666809688655364730701451711555839964583567800349094903932744514411779916379631033825445061267296629820768928347383482756376171383960793925089382875193889083742482839533422566401300588877665791783597740406707501771087193911457846825425001211040115678138129566257255109176460365967780579961308628200115012516792484947604849884203733393954346866859023545752309540738153041167591919640339500823221212203194858219244347552933753017393518181466920530067683549832608976267360301178458554875270307322003532412239102967066481671955925453221347824974025002702748059981683762141181833876083487925809813815166160414642080752020537454958013051355297538783179556066095345275028999528430525995863149779903125995926852386759975764413602257604706511987193235262649108130193591599676247754200546833291360809332318453091032664269570273636886158684198635589869662161263694234626987065295164603659088977630943695328921497180259712631079198634234336833798542781592437536105952313676705884251472686692596225562333882544491533895148078035316009623627236262932109383812134429259616897760712961096532858126385635284069187072690950871990848758805976806154343849833078622373299505385954465287258009173848216395247618669194284409202032528586359734273652108417792406533769948709190400653628400265799102780858816942811241986780321267661190821206876943902568983185502950735813628332588132934978756119965706477032335460135933015737186998527595278840155231304466646700704457016737473029447784258379713395798102341927430114166335631047200206230346672004347363362091860740637938741083779837265910226226628166836817461450888105867940209169623707026722707855670246696621523592324890655654114232165300123066831581370950117516497474177077104786711442312703082596497028065230972652259535026093760320464181040128257029715290996630179728749671607818738643460436560312600913080199055913449698243059810448121422323919883233051748761776106038024224869336078269834879905318712019365657188113798828547000366180337646164180800562110656657135445738035572162702066987066596116302669281335128597234227347404355045030184366157059758602591897297176293782075851521436630058441375435301528736386393755920249401991229614783120533902040215249571623751771392074048121632069561687837440675142766118193570409262254428125724467479356699022400016162793569997737936222932889951096671881472547244744233245083281611358850626177813475226377416689306796189069817385426207116834520208661722554021513152030142615363529241762488724019384328470314533568553211634603241191096900498066163653704830044010118129186561089746980695576919135851555938337915890679818785736968733491665317029348327448262349678936713440726772268408403907850447337091690161948341749284476857660558238949976266570726095917281026112370882204240489674179817610597121652434189876973254051835763906896752464304945981403996019833681862821705860733720146993569728500023185154135769994130028979845463872060925991656750042574557721385582160662381881843260855908648842305772902458375483327194659221890608225577193031024428450880238041182458745459540599118793898665243467776067162411186100101040907349130306713696907321594348481297454532146506161170158707923782677675224366356639191960427312642890214401873475928547074256703449969176752335984781388655657058999833186012346150364759381711586038569704789249935904441279760418898209130348330214953067826196903024060825099184094962411171475019366825471966844473398515303878500511069790200649735354559385757078833367688924611079346271444198027290305966709465426946680003655724825053853726570034645529843754856057664365484689591987032555090859093742098048624130992674323728635611761809716368736588525875429289986840706674091310523331169139017590611779084055504104097301267508771676860043264047173173087489445795368280651668288418809763876877516772254015070039336937988371358231367550158528752403375539868709478397561579463085259914621207238560952292201024194226436550096437281621236592956492120341931085580480579252070560970733110036108725733655124436397417268775153220654225639339142498791922029924304015135326183042516398217599879940327177063065296019659466033166091932252139785174202756045328225580091107055701608519778065710143163012118809125580649860309480491466761077207455026345069561581532830704419644626444019789530416738083329238465451537251333168403315256389658947110087988118295323646800461339453767014912177042821942828505066221884630508804097835701153266549162552495263850962757967494757716034923473596280176155626743906233034700445381194095286975509385806797026611456848448463089914943151524881780244169740998906039084394418502530473572469373056161853793406882946014254022114233731397240857449458623776193225518556891103646376840705160036061406435708118477977704059956412001046014130008907880893775952957450476550390531835991468545540757025419445358817282302171840873401560659477066982172966386591321277165192516662912421600260824045564181828242071555930414128479212381485951448399656715057646027136104073454888170722718008329681401203966223752409176259305011964574375389928646189021874107501694155173074879655579434122134018619457111141451434767911050873858437954322814623925103215251780610220029850611715115229246844062336709270892264532410781786234930020364861529930701368469705066369587621303871918496736262861287731353077213166220888069011784522319949365322724431774790440805210124268282757760576852072110323533635517332228465853855790725929976584978688690119345292746422752555850487824174159627743927269508630037391972324328096423320985806746974551157236703879559324457584531226002395645186342413700109861502651950965012763338281967365976435594000089837050721922683756253424579642152081415381403528342327457452821886539984540277441222545229422654145010246288388525706463919904127385863747237719701816615015593065525804024490929824495350132778095325642634262634327989951686692296919787694623076382134287918534016638265861389810556650674010634208285394781800204536422696790163479917796814269701962431418370179332392082069639114568653435751789370246642695952596006543260916042709032773341248793762208978545694318474194345106203974665551472056170610194612226866815969048383942904309928316773541444293722192576392177792342237733971484881819101699820182786211318128453632639843862156550967765319885417831855867415823900430534511707373728672801882335457853069599677880674179643009793841325405448123808319030586540851532278542313542837423537587216882363220550706527064952513569636752121046320641843223935637795209989654547200169683510743077019398841978707094769498748642008554707457267060217127409566926654314383377690240131427899977567787241795713572230606323052385635147631325572644675977337769862841750940339381216921426735638646235434020669430635075139402744288976582370030756493010657345186982126947578850411919613610460934316440741533743957724358852565023137809475431957730545187852072098638611622730433453295875474855127338327972219185035047871897884249287106896182108994171586776120838015161888651454001285859716463013644965160551493822792834449083767432819892114291043106111086869216552792079820164932937458134215076551187848927673825487935117832351611208551784108376211752815007851854778186076794286414843233233191097266850032934128914045858204431557610778785762577423838489931572373959838110607812467786358556899652736884524094252870459643592076057934668432414532559635624874882117912081839703478464175492914224861988169835836819129231902407171295700076874633450585460536189741365291148748788266701276631750412100720315781088924376640367730911755309040928171196136210539234138733422593767876852625713512243413482449243786331885276827537431049035445524214357136931385640290400065699362536817799187855871844730770582529743505748664127084654426038472744533183529848936838988978082890186230744840470844908528494030394342955463852740854759015268816000374772522811781161157423713981950740674175343184146350544342438357451924861158088003960668343940190898737819244040021983228452076515479211369255074787416583660242218546219464307751521861355815198875404635517614095905437385700525013580939048596721620216069844161569078771684068127414376614091118139631085599151661481079544515324959921366825499632712373562568414745414312312060488195654935028235797994376777571835665900690204179933690917282410490623132712442494160142851609628077906360383358414199270915422768425817749922199305725803259512377120129944248407012279686794447341806792582657934958914767888378915440932631656700608894731093256105619880308605486520877456454524748535315405011168124284749579043721594155394367029071257786536897542289496401161850244371314084346303543580647721271143504313625484386609243615500319651085500509071583370415025568891024584004181933520252124498457167679255682218023266396231570964589079686994941373432621181495473897856248821720105582789845333331365484894508887856751904044595926531952158119244898113529022134550383565982719369493176565781867600470077316918164550341947667743801815903330993025665956668060102509265301151501606224686163897193090214321417040021914577268584078652097221680980634034097430869072988223097519519831002986126704890817788276877579611783302232901846001907160874768423152240507743607793306997142082661884079404692580632742472750415657425467147233099626039572865385905528880059112225774689762192823890406555213719749452232127683384515514576846611277668820788347588586006488657357631652755699941191083466144561867068127494633928642736615115589122408685970789270075033942198758365359734300410695592267610355330599310591763127935116297140796065012532936194013665063079415700502111880435814945337913208587325484304636596357544534702368957640754770441557149317686793022777531198821848373019117862893069401115893599512748299120530681295519298249382721477955410129443773451756425117165262161669991858356468746493579240977245513328023629366757099076978525142266411911935854345013740960793760050865528342280657264780220420613079516996395332476166228915466846940969145152525634154269767270965428923669684031925350949067384509020297243180912312701825519513834600293788217620776766147017910569870953277066003084161810592065874865600514839521848249925432548561325085851974364170725538031964069280715632213221733454518766155755263903183393965684200294607011191290037403223439767010625918954941108166177756219216231211370903139719951093000601030071533334529015978893587985958847841800525379600879834711092657875489541907538610662201899597895405934378739470638423676775021833692887286605278345445220240580571136296007597466519777111126309694695034238465105314336670951107606862905878290788220871334642003643903663329809885008513378149631661885771080663125580443242076986475122165823616208346814841408315252753960506270666965263019025938487440341266063574737719247252151652293940669552453422481299918326565944237591205598820047286420420670742228727590740971398215723796321454991672967308028648644840683221903368490269899297102009204118657870251785918357505527033476887756385854627396075099761474005721928981829667262012031145826081585538269222510138256110254294430679624364008997810054400678021342767076425499259367101022846748662259411752940516675558186269417505939971153767539966509833016157369709227005573096959556492723851825757875534178887526397885559646244749232640748216285423380363359493748995268060167541421978835090237310576875032819182590521253318493183061007022026785805278515630243241955539385657113306225224623414797114479325789937362652202228457992303460117710415744094124681972950029114139867615503525998194807352391545285811182229818156494479275635533223506290496237602188857729408189351450563943338935339776554563408665552826581360008164633345254494845059555667051631077088725052066260225605736292144516747211388601691629300542051242064155552724019455873595097526255337290938999075288085242342552687896232612745355757808171530910245963535539481476277196916419842611182758862589058043661548756206816374340800476001644198438029373414682867771761604142854126064256415809374396159129242713631367317761244589933859177730611332988466552457482834925231194587069989123810600838202270265985625763339190336729400012642906996683842381794361274698665931896190453222232936031663296014943687182809327430491523893225625519111473007531481288072064268422269811361855201544798087601072876094502692494540614879525977809863600696691013778141234900206869198389264153767225517687495152040148830312041130202278064596458948058713779967688734939187037982143916720645908696518972256916985099903102030966573633018772157910787814264457256174115841858776996356352915766115171611755619121463772138011365226362712785035214533306584240427193465708056180564286269988319327273724685080806372534586774314356471343299136108458711456701768060241563987452403858336379398356339349445950307144276942139216593351516100280682600186217108027589909163454624602269858671745423109772973060195045575021217866729268633665125807105050017472133692072698071927790633012919033429182201301171302068612463736153617639480556112267903595998345820736803032156050836640166915464026087260506651984907574962129633119204608642470105996627520406799085211118873939526222171718394567435843662502594075677874552068831770210182263928929333199461895562143393987537774182334907763855993540087193532155781063434926469216680197306958779347172225448079118111196392639276480012351772571927478830578397113669060645525433191903222891936095497184324910090454066272923850274056338385485901882681494358436458439802626111161717658428160979576525067876117951163239926351700326195341509297500553404886640965835191659794919350863488219261598144843692437545565112204194805526823075332476974088472778743545235927210880405262583536868919931984460989716084467426367359168005528478634062691271721731717560616771714634755616198078843903113584777164260510474745766361438320854993672197457399797866522775035398061891408888385909321374375272033623025787795610472928563860851309157784649600087363339203104897781691990454837211576932614722101693733956770865691376111086915327835405568948605071082295424809180558080958528406673528781480386538021466467571438965475808604345129553935513095869321108629931110605839939424965760106574952402644946365524442407305990365284908966648040467945517605689027631717191876872772574890336567177856382321653056921291150503264128157327075011383551978930940891074880342610908827414137119409123094371678696136360724776571046234861504060685470464577187891660382140143475097305369103110844079695504562377538119827552159521365018775633970735439580120471966019512882510545033173051621634109051819226052554631226435532259295747572882001626270808236042444590358136199045960449167540375537272061819889995147771614932760797999354053231793037435275849954268171872137473000259335615361921111292616389162184695669562033564970596509332371688551878420333041807503066505560625174160505262331664091925223825887095521890288129575052171165597917130825340460843307977465476881666919681447689732848391792177677642710321517452447950735880763289054167316031811926102417003817756596118256541525180967987602616343017278370327961732925081347047654857656059010727673521385459827689298733297583299446853656599192720272312841968966632593594772667223500113719502646730844926286095985262052240952182235920031470698269779266722504236559291924920543503544423909408805762010504653092697731349410857279976380113049279739865584198988765833201593343961046875079635201784729873173044084272669658406096180546546563193025050149598884019250855963188092332801473038791291957958251012920437765334741089180758072471272402761666296862622222316607044875229214715071461596077335123827216691545527291307887613670400334477105207700594289972711773659192429913212080970648963125588439119442642483455502072746152267209925644565283467989949066034174136847615577313440734698003798042141226713203724653210732173573760491932062755646766549039130286899780152779120272475105329245955273986420662452957180086809157335553970196512931004832314704135049429359651182657240498204431397567031470537098506131461559915459679080382063327112705397643894613068335246691567644480584790531856264957839354546836297097508864072557823669299065081270643207674253904368857138109407458556596741811348102672978012876597705816267284575615932812660645753286983567541694373351718691544942980395328095625329671764742784192171054963853414283219862148618952679148304004542302437244624942769588188513047879480515092402218472726874326028962048598568318074375214862909921339139921806953807443634711062302102023990801664283121979039310889890286812774491398778160123696349353837904833738861649739886424085640388600121735603712566302824193284413937152603550255365006846913799512533015708816931761980595766096113281453624863814374708137609973392793407138710218356044379465595763210859726380561131738627799618662828106580006360605669651605002754632000642838339900470686106215897801359187080238837576895579111713270218719138612446092285094662178800912356646714252845813168832334386170263454531063573268617141732682521099271958324907832321928980485122982303379378592697226931958950333541260677636845192027990112943513290085258960490613481768461244818586345267324944123950337024289552856674557637765483130391544907241744699033348963010326960851264053688782221214621521942382509078188940264353675156891044885683292128360258157480099845832054876530840824256135089359722960318588388580383581856644121538670876760124831010463084474432188014479093367474688447856414817445909124539810323008859206371015635875651643095961127396401586176978131408795073714288317760436689819626413475006971940565195045505167742397940196899862527890085237445807328867069741773963572545060985423456789852042507322860709420263948418286692566061665444072045775683939323122654078124783166688018030184225045200535518686848505584530852538497542612057943053533080747750826496088529445572785003441395589379335051184030225298706162915059642259996005856489572336531798691366969944278665789125256846260414798110865685571739072133078933108525903333113718587728703492627902715673291686627166749081993182583166832828500157570780161193169221931514754937755159804654092839991094937420103717085608605881785449005704104136040435137642468998152680609255401123465329504349180537477356166667104692983095678920316482063931739221248405512034780632111316813373224063216455415588237846091942738088502838312362266549744300558099898299574258432353764298631465635055283560477090757473282636770439630979234656297949344566413960851464371303932136774212470904452721540687921542630642597260292018994655298115142612604900763867141730235727276839041559723450666693866460588292012471144178831782234821533891876058363276181819433227695553112581904847517462905620013468996440716198232054347184611020511315550930226825107491990149608178562605108859036584745150376384915134000329516399106219240557283008103521761979616832213981692408357639556211657126112192905087163255258558649616638254193591482181876195923292056995506376458182685575221152787011802994335467415362762077497854054133303136335423682410108464763749063885279841490076464697648540094796358954975461448137636970591635699836811987525054793069353207570766780148447701424716241908166822490074207111864881547728917186535967765395799335033427282146054169649600984706979585592643042870363664713071314782330611576419913222420646099898830762685836055527409904784676107604241784215062851755735299964786255295428367429870664579433758010140740211618614484329765744263428528704778556308309631435278783041945019702946575777732816746858087453931603937253315899280579434631408735860861778826334927746151184911655130681846713677348823341085136403947939208876886336339461382358344794081569610914293877347138934237736191096460564244474779082076049660271356168954106444832136598082938909729618912118342914906163896386106937520895346883983344467189821243478072387407457697554507436846747135024858818399665568196344528811941833172636825050611864900394125520574571203603557802514190435267183721921384829905803224695842432315898443251039654435350535432292167470407786146848597625574461535118800314305699549278471674544972697612839332518381972223283607075227812928130106569412629487306342688373381817421706086475482763942423914027532180429519034116351704698074233515560578575624509992532017874996366404734770389855873065076038709977318431281098978988208543559550943253902371895216820233442455725753078792633985509016455942373396625223351648750589556942172972448959988250892321120347958941546546030378786175915716613988693268737496847305496532937821475648105793808285300532447080506569294223400109593482946145390788906616264021501307353300331920745637263770770999399922886212243248802062634850888530360107234368901360642758142528398785949179979611219637975765192452186709608809213711197750008781593043072934488393095757415924137528597779729189345385050803831986774590025186579172370808574164297153807884060713068680361982419715774763895072534684045691927595319372237022290155800656076047385473599044779967487499697694271376686955331951253377640985870966838632639261649456086841403745684207194059507017430354691821509004664939985517413893851975731215682616228622318810967297476060130283311937161140874727067625585677751199566674861519649129701933180849941096181392964927893609021253544332737506426062429941203273625582441749834509473094534366159072841631936830757197980682315357371555718161221567879364250138871170232755557793022667858031999308108305763076523320507400139390958079016377176292592837648747901772741256781905555621805048767469911408399779193765423206233747173247033697633579258915152603156140333212728491944184371506965520875424505989567879613033116462839963464604220901061057794581513092756283208453158465200102779723561292301260586353601164920990258745552140396979115340224158981324505722923233213104539246998366112750916134187797227187025774473612438851408346593203124872819298983075689239949381959832188510322875468017653126534895937994644103925671627137376567097619003782417795264140347759263663742390124885381837859047291046931988921561079247143327560002901718628542513963400457589817466555211460707993228399619364911473121269194530146775562326188225474217492593988176676151278888782979077553435112170839901883452233219690347465794550944768920757930691195466900825957171675926318703758916638893288894184538070029531880984810299724248092559155043938279808620169832057636310256488683733367556867575147223393786399927043705993835058859055605183654797144313221595382879327829489096701746076716010803728041034848152265656486364842824541104899413015270893607882480630118099269149851590541025574787021536788477842551734686357723334383406417589014470201880422018406000125079287353436837527969339058758306889900098667627566062713589954294693088070900005823695779302110886752430263587825512056311581937384231274168022851932522399589298184480445579580075384356355445305492378712540563814234364925039176227873471242189196891382630673102852200967908645711771653120221399623743134479085504502900733349918425261109687613808162888580112718834115417494136345138868088956782270581343850521480437693859925257885006784709339973262960295107668375552308155704844481375821327099188170402812193272260910760537489356705632522648960781514355497738488557175348316464621651930420895107806278954949083214378973758334005355895342545737118085623018544341094185289551309575967769582402181954345544547652471426683189804236684167240586428806533104869216127255054109244486284236046666396687614710584422726127481196528881151501048066826334780645290621806805655179629838189287150692670342310883360220256883230351700321764395616340505104257122581609931547519104362633875885509204845150672483875544944792855578632597746636727624655764572031942833404210303615883393384420146786723327798492220915205224772751087797360418348658333643140276396939107072379676387708089075460319191520078841614957763735486468184411038424165823969936822816403630388781648321432715341952500755157175292986336936738766945832516519119546578393646022340789867123877088666110461362640957639919655620296225771822659622911817677173943273852488446362636125648422069299840509967656664801226976925863148887795490060138494246298656870524908014301382883362081809730884634146320228781445746837567593989299292090446482599656139592628407710419921392541826216743024256480573535503181260755295068162462657195556551934687475933671778795880849638571301299366702600290205028254401101143186684718579896608518549500279117400554966044449177560972123161383279759528681651460606165070491001329550775907480344644581792257388849467331106987374086277300755104364314322382840286428932814628494129451646668272570991639671686030409889616806990615100501015735514093945990185335935030611648086858994954553660682200864666546773191947841540987210695710321071144350237223759089818666687000278406816137441506830047470409998812101510850728768591415330163221058539738262003037798199325447725538193050677527529436069455487456670389292835759987060311075354229668678976635265494847514978702374532535551517383788757112670904488589949095301929724724501514160222534727091195469228345289773867084945073165004855246307999859375870927660472521264530313410924227364570617666376401863501013109855883578572234566278902174547966064256155068710432324331746508982741375939327951459666246263106069562338241733531495789667839414023235727687714874249985215878356517177262566127223651628521628785965136544297475171225608743258477955758481001695365239434594250762142849853184462962170639599047765471075471451182450446505583958836715200686860474768340900936386274413389351546504815799444149800395263671280549677377990138107674763256494582446302859073940700718622789615490288327208177365315381210635137386345433885697553871132360789240995274359876785129307423363141747545761075437101737051871802911759656400685830688979190440032054233809779693437041277550484212349571539105619283983807504750755255485891551297546342542805109580980390410456235730027837389659024508210171583404519906243930056102024318330106572246135885972642146233262993589794999799849549745633072618602704025519897695432869756811410269434641010304056914564954930232519590739142410385277418028124115748491682596148011008863334060097212534013737880714710848264355297871752413035971745137412639524466524225018238115325618644350302819368701051570959016350625888560865041911092664880528360019714848523503489436822480163517560279413987818097589446300401450653538036945577926370824999305402545221006941952661391836430619404877711927593858185079847068077663009990756829688945546330458217004081784094780894083402972113713962288296161651896185164941613681271735949944929017961518733151529264767529460607409794594173811984172159510344286369586923779675750718402529991076639883766482320733899862437353314717542551669599935784294622226754895676998738822024221632146788443961752511108071077724880621886793651060690002717599887418465075313017503604312038278079088082811695185612913852844179214562860596143135372578539714232629750984162528567115980264921535266745880387391852260084102754456217098064161581443311752576918530310671409437765521181005597359666620875330887224791694986524648552355121959663223654920953320805703351166273141024824030747071276006637916978027523744847892300743948204720436019582276900790430965465881194864393720769977854684654264504725356659166036168871090841797365879133566522911428043244268137502065357122197363779612286565768688671073551432572912269759841774595521998000246001104706778872984910736346536070703377015669859435331057982819037956216422642878465917145586535915719601634754398134377644375331816548969839780011978276323077328444324145093208212521715641256054005736614995162432034682607678721939643617137419822472579442147975912838651878605480219467726492607814170161764870479947218496410489568406951289628865456704223278939703330931798248392657075353760764908526776373437712717981392786967113257069622246819533936259012742245305381441365930402446894294008222746330739561848127336284910327856850352911385768236402571072208880447669630028357030009924931763852950304089197422291647985562167570676527156627792939307319716435016137952607895059397582935732352215217000108351184752051655261225239868171374162475066366990644839218127067500391619779986318211199510227152971788053425440240321868144584123751856983721699137131344773738909928824119538001706269856834125048865930432090039408943452432203058358047052999655904391642973642698721404293129049015523275958507902692457665096415007774684878886170454869215528316049558407528070920635151616321500593655176396049900364796461220865103092840415758549979551371187993386237846448651382925278342265933077777740990195162092569319948623908262037817707627039551938251780587117737380744242739433265921281363945383004553024179415631399346101913636651017140197155995708024238421303262215084377606114926885700045747197662478919600303333725528659943094199504506862852949106694833172184221157550391183899655884047861198855920911227201441015204849221790571671805141371206884120463932961125485107911976689009881928379448154669960355234923886259845362296456715940103452596065982286081842345856104717930854972475406784284588843704639739065773262867403683941139595862633458467045288738639699574753615306929447850883148449012225003386776121522866927603666764860568529417885090796359363550515585914503371560774038450172429909909215409716738554049379303835475199754438483482505717880819340093560352443327169697271839249352823675641571876861752595644831500401552963859998025886519830126752446868856337502969660706422589532283451727293386862816326267680638377473627517594594272166394703003976640189437210974729981851186907356240362374610461958085377896644842539613121384640425464040441656551124879345387303664724746330332972622659009748985016809265452536662571488220342821394913550028691091819428597728472435263727367816629784338042832095279214573572380011707187593489878936108178108210550127122508877928686600748991502286297027061839006303832673313385695545704483590553500607397050837156990675847554202174995088683426647711569000877853601592482872150280097010703583054044855973882276809065169305050078027523216252935291247475240774191030189363033712341211850839508658846464502285412734117145346290090744153005025854827586445529961278337782026239817117908152983077095812534533178977550733398239202563370742361013090679121025999030109029255848597442405949765949630327899159635309568832894477885552180609165010911782683220674524633216259847011110981416593062754977981733940705730642637473214924215086423336407206723048974642504555441273562690590346067393545480925566444546349939477361093625832630910123467269497392216287863936535112797072643772839452659443278347478579339402241513735483031764972305326810556887912293885879178646094703172691555603802280773868901029919273359757023781925391263659016706270860597884665085997973359348926470382865650861766953741043686806608325493204653176787330980319610512402799309530864701866886033471558324158960416705354475526090702787686609137595871544631630345437726061950903265001028302045761300468293648059977619500346167638970750626882356067252948912202197292015160258683939306779838319012046320885844777216789272669134017242280348558947361341223543578529835077850058122734147005729124934847454189375769264019741048188010668638154063182522305782153384397722864233181458641702277018027065675896757119554399459608242654703576099658266546963955745024446403497040494339924668068603015644136801446892205200655153732393549852661337753241779327791089999312424666263179797388688249690424684731930347930361333305790389216167524210538309678212370574599651080911423894194283512207445528922777586136633496462872490611052391922839947670084309133128854318953174497340631465690791289577985975314863683592475181478646967086071255214110164716774322421637017073816414567873160130208213002403524216883886643133730689677644196348009042199682789555382474557684850693682538124490751997253798308152882516467456119880867522189843254351380069196716387142987462009572720677026654131433285590275966051728074121324068050566299124453439220599112037656661417981958014287203238829143682312224217993058006678197871646605106489623116882957382975717474588343731614066131066156298985430281480459252977597926702560732498815877081783489414466170479551409834544744021994565591418199513785986221562779134746218830994906403758570598705985163540532273090076245417562751118099150469036857167733019227043639386483639279458733663224796864251054674142236187095873299701323198920809703453633286479007451601086416390906198384571553719617881126200131786568115212466004274541507768484061222793439927595038338401460692759306501914427489784699699002780546688163762823447563927009629634961066679637742329728912673421989381443660955889155459213329551855751338311422133071999267567656920417708629764687550926010026345942121704638383710422040665616549277666744833681288312291792299507680647602518626385424657849190232130939803335250429112978110538821606534459525827018464970206032281518676298047592294645238702570573607946728955985925098999458704986204825877016673578894902893301711139452970644916125960683006452113902846696639754817408215506377418553553103594659814405944128757463385787354672152978511984114028846495231421116922552803249379215827474437568927791079859082417138005142170795550403168977800868214183182820315155010558112889184759955556650984183483583522655330960222983154663487857108596983249928858487953394794023246587023245115274630857661323731094587544027120537198663449628531442274586379734586172629582481971345131689666375854676246999562852002254489935311318370040462629647296927727558931352493418702951741145678638804417640819461987796109316460281814911975537932808430738463637721219967812060875682995003776835323903116366789941635652056998758108430345243488631060330124532924969252532635705884486313779352239666851416156618088822717076533627675876051231959738469937303222655355020439912318068940458270029983057378405882337495842095017692633449969163274140254190763850106432525466883251789907187347195860482187437836834287900655771963945772704710472250049357716319040772786887627698018871255126427044315689070736606921960901996974755262980396098316589837892224853638775819415973180685732532925040440220343695819525598443539719928510265556238353507846663937109771280744253504980457025213786921002442190679829114226772094935128270783758720298900774719247041858982800247626657659261072348440562912696647725622446382312426343294594051883237901665236187780583510372240359388023779863501745078438966193784371237751213443763089182604618085382631652494557960037789093831527560635137382694657985185558222708241955776561860106652161800093661292104083839138089477949036598892118516351182583416899076706218369852265532192759420076015795296298293296986682691633370064562901068301033977622048122398380665897878730707374891237646697914888389240624334837479708369348019631614942460919903541808080984407649245156331813487948222402195047315993663159964882972616455407024036227546281633012330228985922183050404965200650877975352553450993564546307683004419600486849906183388364146573464467680594728633919869629476995222452729602165331211840354366475827005849871198414193490961634144943071073274314928717850855429601585535507794917536367162991243271637046649145833851553900330352743306328905863990253157097679530745997736648524345306293310393270391545605728169333725104471303385352707431322529603640875616974440545662520078421531880244715825767179444436722375357740162348947267400943509825306785632127560957419613654338387201465246146812984377349806586757879651233090408013630155530823024802793128959143043092277783447354815277097130583515447367712016119247169612780948851115860272264883129758873879417787792495568703646184017322761125260184114531818596621552344325180682930275225377914471009066303493454000813740536856540918576869360706077323881131674148201474103473907750178571635991301212073894536662619307722842929473344150359429901550812252188871394521194713599582493628501384653402919044958849868585802861104542688748926083190908439009760318739535605343602781683190765653279826589405435276302147279415393062589389160773748930318417692696563210518505668888303721019744256186233938045535590436647376771268893234805751020408862246215191969264234830054794570176945338242483502020022661358954388137450655393359132252718524264059935135481355468902380096799430574863702611804911983708888391482704362384582306065737953535391037733847697273400628515661753652537121039976843311629091005987197110302573731992230716681561572312114744792348605007199975670471049671143723615837017555982179953020238859986098250952229424836760525643276005878785935381630923973710354155707865334511806614587034464955916109730315250449789539998427483079590681882646804739287564778844706121644518518080169176224729433040725939425311897907692232442722294950128161275857598890272398182014479679838538043709093190289132449416557234198813057670375864161389944342422426487718636701431791636989357309134905767395673300452058393687305711136634982627439757139586146679713884204929499539789737619368174455927249397682753535479751218245292573242174827713651885480790233832880823291688170883673238667143882856628943885748129546170230288072999918209460774571489676246693249400449228215115151868290505742008210274360954781959510857147038656240059156670932235030588925520931878652808327170944237249991768137979828968812656503777736220622475856868910917594762865434460357913723354529165852927039831163898363923049205537632229966434927492262968739998344276933633958243634442973619503529566972179865208737617307309262728941385576958194805522059815902738749321712050738754887942407950715053858742276379471600879438692250613695505699682939585565783157458210220095798425287085981770991817865167097265671963040906931159951290646208554201376525787217795314280888832863262430197299854518056180584516978878159547032975273962729233522341924277805653701627728161212179978119957788945489264423904676239405810877394740303140965431122776109530384988304252552128182979476543795187690078058693501650058321150758763927039305945375113849519420811630082091336934806170202552575662297420813631040943956702764209313319710166273613161698554698955360382890495250082568698892906055102788948586087649506944368312208993529495675751976588817385710991078893435230981813272417090490578106541799842839877265802442487310812183795936327116199618652791494508105517362149977408370108566695134516507715788595380972856635215733035814063725850440269939857904807981601403337471462743116712870598640015932437072162381765604680260135150932332523602132227703366099228444127724353366599268489658493631730206627451316944996405276660666694345484223144812146622859943657158421747621533559588216879159912615522883635721667387977936170741854586254809603583884445463515378821984686955215111152170868135924112288741650606085338288113153085845381204330679078911751970046670765120028423131435855989587511991817127988205121159672140141077157577530803688242289340096551769743924600851491747168883670599871978916472545127510871312242010005350616872538771895862772776558431699089693634961559006774544075826016172378859458698933923769521621412852311608689174423149777481640555272331982345712063934673661872923848835107951381492769580912279032831873763369152825683086879017819147948890601779188059638808816209122474231659613908184845542726796590769901476234144312825907057859850612233405490901891500406726609081376143531860726318491517305206515080369271528531513890769460092372452918877272456440124992349092269396652187202523593958374617879268496397249287257256426727832748698988237429771425342541354234602210216031970074234029382600861893556657359097226395836207924903445265953342335592355999953951282032280456455761756612178194889882968143471292831913379286571155216382602551680904885001402021550504770179871286272184808397663411957358014234397959563700428258904425433617837752652741882022106013229138636505819952609962976001317313321755631322392148092072661413738496444259440290221369113205443174059219250748169997594852798879801775713837774404489549278830674768752882151711748616809920822032284890452937127904192910940048914867517161034268144100097560129351235808553256518564252074577665811410116764536494016793879934011284048651754740247879643162908783481379370573994232755408712296872112292899136435412799792126144086283165487384086033573670464862910065693652504538094620514903582675355682124588963160740463620326274613518152333119178570847581649776905874636918068285805084114006836667913062776522901197833121732138652256550041066235065807368581039283301740065879626832073345703976981264545491931452620749462098001842805309198366426207321717785414440982922936910281157519844460869005041752554833630766701592973956020933497847967311243354079164049276640331535902087446076842669070307918122048652616079197161299455082483787739279647728268626580928884448227893751513473662040339272196089581486316281418017695329204929258713305716267802981466810181469979446610956943835995979976100342889021885097984695314974395502398855667588752231720857598584846653407926835751652376313038762240249717789116749730254423699815407497346244749393360600847500476188604335318341692767842131009793812993331277187569781457882970215841662130004881019609983718765055941483644913751930539365702642805268536054975365302983362723189706363980560354217177534529940257309299705741857997770227283063641545750210838693626763909149415089645342337051464968677803801656447835940778911660758926856371998985107822901665612163832904327730664465290748477940925187709676179258246472706258311519924771806893093426708219006163657297598903027435711906129936822086050219092476261517022252542159443101534324228431650050535924209485575625103647689529624834477923050581301084821470089927568260696551363342228554108815058783720613763484138398853403307178971948415076957748166191667027038723373169056471544049716965517413667622661957671586649790203882441061828395871088242653730413344141574077547314806877384789897084363123179598789828622886765731775530964219212946972838337281112926976764764618230918079170782570206800500199864048582284786227427470652888793508067783371921938177701291304857778163257255414866199462844789872352820129946752925557439010560056080380226580612655299536227486584739699852722520515431747381738654724185952981352953565505939994516823941956535993704312865296291306850612614664361677043552084271429136070289829943141857972430787922641785165187498850857284384846060485909618772884260851945775900036061031383545950873340972260366075620517834847395396518668602870003583179418968081431381104317818128435894073624773517133347374317032542787428958173021066248014722124996047399795180035121006868049666405577127837202228557455789319445205490461596722016021793182261814163033427265844580014092433765931409378753156802624673254221210087571381680871798509831307879655098273155225927980952727732868230640459200085966199249947552498655432347843095978585989604655403299011899247038587916811840099873881943865164871542537109858047558392294142244847616624689489615520913620289752363275074378353037386275270862741125268440733053708845149591274746417767863977636695063435452607396911398474158926480816047488882921806335801552580226762835098993069213269296290936028325939091376465952034074994835308906252889710182428327239995420981860640520349849438807197022517879577316171865851253723047622937213192801957429279480941115919166529621860483697273478199048566748426245497904439968570279524141789130117635098665897024654384474973848114570930768707586016434011216902674015510564018796840180377540253587337957329124853489974864873713015615793697037491268862990381565062687554337109725873792388573365711988146488219605280510064279643933202247938942094342471004793850429504837657938680933281903481322129989923243685708257137115992938121452740403047964575365989537537653470914678112471195547529245122999934849431610985591533522652356250815416605057917236602163073086482642165486369856587260988090207522362242852130019753966700225137893048310376682312042374636504437204751969566352449382724291554708261465304208430858554826358902519324832899539063550831478533050080569778375485652616759741435352777571849368475925777145444324365809477317334415287190059938950329322493928986880718899245359633492318339488316846337216256124869298854732330487286194198737665360880265127830767731811039348457665389607012508988950080180934349709144567090137233749556703312349680847945680501295459297786481903569746564154197214598536781121383785970531491640310243774213998434005172008262868695677445055329032295929605996598455524534755463147651661971493498306878551361826037166364682184210114922271969706643943242761043271470132497038101081852028306877507082370288295386367744237976980595884832052612944696598894760270602295762466672626432433463863804263691255245722723694490326104143552956269121789235801370040784797378192592200693038507027901397410780142134272044277793572063176165280890032106678951544338478937126954628030864752199725145040346434429897089211999027743222261271547423494447371428455309818741654118942170425230467119617820832886246690885555834793867149842566786626840675930421161734712744513689712096595078795548425136488285084732451822449948179188901489064314125065880033855172004245987375403362884830102751507637721433595339104689224804741208517092093924828161214011488393208499846594652487335761578197751895296792085690669771122854095831094564568809446452219142954936135522276856511653029116623419131484238653561064359855153148330084635740043331191493078845779359452218911703802327145702097132711662001521484371619589276718060187995612882736776918304959397860829055733590402387512204854549395927460255324742958967089065050382464349611132485824630664665180060092432503430628369220335287282519102783001114914671841588625346834592186938592822403565317892573375500688110713617727210427504809288860665008035739042294500823384694222780197739948566445358200091640884907374929481635238791231019992769300316002213908714682700354025708145919911179279180012935351378034301158179777678266052258257731655291760198109923844196766468236814572617736278462757219231597052177716070361923759012980322407418743112138767399396738028078021279912465676778910056722158641162854880931616902162631007245800727635817104840257105728332161195060104356809425037070310621639869948764968310405147356224229261239587285932254616928121658183337378911535578170128139870381947648895191403928578566676282345902196113475363177764021834594447162138239138395513475544161480202179395389665805070671606076264201577703338779276512173529609876508309675773155358989430902189303817595844880230220993272161420581018044684396972279699951522415583617844823191251019650503914644676931970969283903039221716236542277249310539194159644262728878740256883517802409078002705854444510834517815606768829999535035655671471327637064387167147401108905115052624880281852750812885813477235142159032429072301228545963910744430138685709384655279356626515039931813671546093989127988821136152845835332663219466135001374079077222640672545433813149140560242962853077317830077662551900018906747546153088546777337860541501485799009165116162759160832990839245090949796196210689093044466241468371012131349629064662827249810435884031733745859729955399295512720320931966671178806030692052603905671368900476439555798566203632177362955769858392517227439655452068550800381769831325992823110284822629933768193950424819403122540758315875842310273562271402368087029124188731295130415999506756878275655549018543128687574479657865178843346355016098944330708315653209214034295633699677855735611002787222231718469057225575716518225053906726863606206263851975359462380056806706926152689383883600265084969779580222025854602099614411832832893376667875096411624199856191438710951803204471673007620605469957789248098953795961663759803988228729296581815755505791542807729520863108174926214335865355600171398264958324378306707374783920199010109098489629075873541447850410053356916689712008272789728280533936649264302610307941485967769204481673809232729463067975500609691850926866159518284649751117742096782791321615197684414870579348722797996840085844329404080032639688895312130912882546814077543735818598184894450507307314777877339607336152370940914071103599096532992224592632095246991956327727184347678245923665200440348015576349029603758583786608847827751773726928642492695521543720581757865162178469250694927952569709840361412664771891068805945133322773408525257552604557037085857710736351264866454132886145916847219138619390452655635442730678738701052736298991593460976715693464654858202061663046096768347010384936659969965031803730591102220313071565930752982844373060219323953698062338111481761422965184199183810191335133709709193398578658013007546890781793054616779825031385907036695190661052706885263667964182844578076573018943716162809843369627751696251357301752320855626039116957144089743490386501438355408263880393185502902894490287555444141916759947710384499750097758806727780314871527220038429863934778206073816242863381246151805359944833731503747923438842540365053192065040661944071655780210320107818835399781251505230864601961586105044156384382215636139147921600417212857423605106431547496876642782991204258741329366659116729649333822598931458469630242764815946177635020431329893609111151188594916989225106264850240445377352335843455423877063386896020698943250731042194214479856185542681705411406765140086488452163385736345240434411355736137869753973818223577635732990175783690719991139484911853269802367386071899201701133621421265261872851528824766362395790482723349458393787715037892712822907447099096326404224859708479492382014687521100291150671978423780987713136757403269436182095589775679297354585570002928173494003687111479107485679107511384590334188971314193435370020492370708405273792391000174846763603292397642540995309225249841210767002871033393780985254844211989124171260039925980614212015375586270805247747695541175206907304291479523932277418998607434291335645419155702594787292704449635360238012840854268642754584341668622013040934100959022130092244912873452449734540787774040600390073123239609834103648245450750639695632400518210302946917820093539781944332478548094285779790024719353343660993831766625898872279601753215378064366963593972951125481324760598394140508445260239677876902566830580074746811627168231794357048726613492799726868877385188093643625465511957733556936470294166086810188496976820678326458864395364934026340702803123079091446605778758436416153795075656780240604127470039201064843148216207137179356336221374974692950466881155464146530509660791073414587061024231325255463701056547777301103185050086614598390686290134775939192579122679075500100395428492660257271430972094148516591555280370178875136744927769166745736801310204391363224491837591768341432361277206750559519720156566795122899736576894903437383078381815070703448777731675174618859776761134901608379410976443643621828030537695319227478556556206088713314981214764323966769480921538731479440804009774304955543554291395212079930714097228766924973609678516867212844718828345136835236226452189862327508183911046257234203875447716848760828782158008249181819040423771894063954300711819853865447826369631742563521096659040452235275961390770573305910986801847006150779840922154407492831409466940151519203030265345583071202668370507265261429822310358048000851264950247307711985581597469397520346068241818466257406448256030514167886934511061863492653225671898605063354431200295653155469761421318364142494492682957573716907784444755274742005597432603466697631757495922146723305483427533342090216919200280867133818151765134672724678560180872806985793062516391815900734019178126337720629437217584348434738567376454354936764452021055196413204190903475109089559010733926850768992818767336590183285996077004219611615319892308668841564928732239391933687758631957538828286880243222928574906283469880031800978211278346447369943068589274459351460331554052161323918049602851109420092006810860967113716990163112495777335628881475776751337975001021482842434971314482215556944824425129651731005282933000759688032026971471430557997272702402384556693200309336153400134638822651285849604943374136513620175909550076887257237908399677877104327832361821807928864451298570472294591887639017741016215492529443404466334553796035815259084482716504714210649494339056402967120395788936520858735686384856403823401247326470157568285626763148949096486370878037736537056228632422749199532968099537601176573560706688962334065473634628753017400138289335696564141976244273880653200559357195259929416191825008855942980493562562347576387675325026176810510294378948280038181909401633385362184824477857521114190200115722154891014126574623409409760478059024692915223769207021504308659984976907725846512005462308926730442308399098528361798087488216517501394768839219596197383521902537829218427400267994986835504779867088743493487788426349113577417379378963803266412166087864015102669353853929117586753982070454540099155480994055594771630227826822881996691199207772768569004256445342466159455191246984940917971312767081216355879737550546953960201992891686869013167822532699828311881176520517131424030310361907703448600685769071256829912292289041651418435412215189270926191182789072038647298902831244963716722622607947058907730151579237066505377355736785429749614128323981072567805447784550333802582299900614329006567458113138370620933451382728850951005894284364009347525826153481549343334392320278401906340610398822072400859571454785636314427709357818646870031383115060320239013819367383658231106319423511375220125930221646506772395367401083460724736060018732335957259674257792577875347464847438558336672633057975180627948174154553576632455621990677154365428762769211865397630554166772737118471255681953742987890612319779768238132231036099871107441163778245341555930694652870645143714518255481709386745886225997193200220125679477080345755340685593956471166039497550936890740914114081986740342973089775931954775849403202835925283686826560128537934159295817603428346619281327360098610986205325102030365438914766958145612587052851476579044833126326126127547596737061392946434465502398563499069044171681297793156045424478118151684323997331024904086120232035262599455138091994394242264420730669942230207875737211345397840918929527188365151157728433565072833963266727277365527127783510960648834916111659729647707283397881762071064236965358576000178613345742474716467547956055760431599211599617105310000789312031291659211814559773632128131008845996859651547991596733482069257258694465104840901607254303794793743992494817035408492948271673935387930918914910594027388257563442674029204361297196900355320278074601299701516776456616608662065098314906518399081340365789233077742757928881785397478425345621594851689925631541665380460861937576610115928271916265498459928441380917909345028944622269874606236912491022267635698462472987555305122807730603827231476727333923697147318274650823570649364585741650652752803365758850018679830223336153074856777018962152237772807866297099713846012456411393353523114439413631136412506303170575463867164921917781818872780499865142962369203289752132044164594823111651568070936018232574719615128398118245002857359411366899363002865197086434968015837737896070734050171102922190994235678759852991064219794252888071598268543897365101995698553713435634484449994806623871155983268000913912923052134531871093340605485288052802348009198195206408370146529805875340882775782419719096684509257273542291597339420966772162267503283801683670126832708771819744711341647404233364332417845575142917747955397326301847822378751103346784282157477199771872490788456928785591497880721527621677748783937259466769746628364636432463687008889116960306400801332122554403325990551075960130121782721673509087083036782806953561879824324975854315837024551103822295526928308768789724761517563450710932267048751958354389326726852062510652348642989681785128034625718673657734084030317254417206056261328930674428227072781896951304271369338673253083504352362268066472362036535955152200461086854195601500985180774249137520429031883739076881451106331945943196801603423831429470117790733995188051863224936330373742898766639557300491231154254744563575122821796031493192175536215597517354177149627057866660916604012942064133205601987988647919102808257237334409780655000467608465907721327762048534428873064107521635800858604283381726995542844073600686998025463466014465865058701796662801137504819512746475513441094129754440051736361505323319561402763360504371484993550097933965755693472835807893270151761668707167850521515782422118197723059610271802211376055775650822451073394062340440352245923246713297292472959059660765849167767975817545550062928970945807116984624833363185049505413603244603712252300284036644327050268292912129801325870485545184916693717561170693157529500261180729980457387032803344642240762456575309106117734268436397474238420782493396132435887851143322143968016013555066950049159500712952409714841832052405471308266600028940697737467479235778327956768661822183116453615298104323673965210990128616679765513048336670955819814573016095731952786889761794973866473112581368733198256266722915555934176225089278870215191552231720125761879462211681963125112601512878665933083997287020958944442548385781340346747529570984798348679100952939317706777959528293558693383892840178883126583401820741311305901231787549313260038647439218420243114250271793444984910953826980412133780639573064559498529120754794534337882186036781686916246401860176098950800575704000761361758372686927888940127937087916873132104176749274814698868386693374298945290009532262062343955709036500534702209683672069955991920696231039683488885524679068661710025052273563193162291648015338363440666933061191630652332220967717505076652650692894526710466359629139757041795199540763859269143529727392652585834922600128121059434154609049089666844835347947674018409169344082112143757599184497893588798119998837810439545058220926547815302419243428754966152987275206251242164565241443376998212057577397697925545297927554831102222749780411672329065059364070132683811693711786170936533611466179195889581638008585822727314639881250743188593062854047725219732552010331502112217952060290226150814842798716088771568304889462662811087516571931580348379138047560998119277925819381601346382056761579194768885811197794657373137141289694042585864260846135678036380959030494143601297651108699532755698212004415866804285135148594628009450268028278907836610313319398157005323577370982841962611754631277640017925566336886841014662578726448754017609336249244210556522277284327086563814525893989409528629944912638985150263996892528078971437305271170348287863254931135146856674374550263807933123389098758199744638354698288840886795836147857200410817819526727363079370197316110803551330754342631975832662312587344047184927537855550565974434764146717174934162313996684108407288369123992903681762489783384230492408691604933358572084952341574638999590255592984648416853092093223945009984260935365071296103829391417838405967360131769014219229446882477034330998038266333091076135795356703162032015652994263383638991703155296710115717138660538111098764980914225322121188549785837545267354359706691190758277342716570831105588157820265771905571655522991722592519941711820712747163522022416693262720429458500760267515572236450025357983895144030656708768964025198436204767366947624721322207648935318529813483056615726100467461609021782036809278980358443462833161529680014429438343481325149444783646997109430062787175190158305497526824970668196708424004153293142670724391091926901660270122754997262590066958906364102019680315052141840001461281315143170462928936126045139925563659908703511182217009204878683413815583686000102213931716293817516148142204543976612832848954879245148920391534687356412779380282294561882647003672613810072922278924383414328912195761584682588953224449126237210430995921748569360039307287559776435927825721958517328920328937364969565481001520940677075843319610801919152697035944972820542409921774794885510189257967383219073395543848219021391354610395728756414700979620480167903182327112961691883705586529423202821196777521103042782428532307576585752550180387277231195154073084300710042092231837895251060951014674480230778414332965396911748552637492501813651670165981316934196951682096386488092193002764928908785590657822322196440044244384550344447150271472756615326049843799649104637329877730946655241608174552773118840166081692169472356154594563984247435131073562115161225469673113375472032106663905739594545835788981118617832426123825838762948366419784369345594147388745695455510687953389411349879899059954332882565199318448923391198910242207273250330478044348248263167953831881234536432034397694106763420507402776209925044162859873800854206330940449084087462950118043876819956368097741251214782564145810960546394548353831212074113396709657576117092170156919404670300527883385011960688128543691425910512642937976359638044261446693690374144702409870790060928659145662774737070541847001412606663677725697066185399828183951838693514737030217082914386683491895573957114688224894383476801514731784208843090801465885876918771216564120483834695079910607882425853596296891164799513974190272537850463197216075753299247670201361948799107363098561524347027748328740870746213978975092298947562875731149123181919277777555684302137964362495009385085575130624494616128315806308498594205880457870407878551528971936045628264480468720456617288093146516702875228320465704749684580211198177629707409115942079149302378185841312320755823659980926525352423475698678428971031219337805960489698219075025130443122699831515645095797914381524955732103585350796626064334473398120774844698645352134394299139578401188145901672609468883885592348705503210140467295362906770080220595087382918085265511775631867359546374591584536339139380178892601912605510345935075796753398399082986482242321316517801147047953340095408680342079569541641311313550566611792435082263851486519280295837109462616696734295288820969592714431338276132100762149785566345369759884637652081064039283865914358829710499072424146118996711710346786630616969050373154315338504144144443857751928121208210251952609025698571278291938140301420620261068335039849945835622115915578356079576351529961060405154827333661767738340649685644925242332798264200981421894329173443574786681031630253844207655672219010059280730909007858044919184500382956029191538344890796446157112001822217342752150584642775137451467788523498681830251369238269629517702177269252870094403594057793411291506144947525882363904148618573414183329022012968783615917652399063989099157115955935567645903307681641441984512994186091071552617321947029535925682083110895481748873289159476087459481709888831019006508820422218668822910632737036085447107471080489254733089705230753833338415110897307630203273590578988048210780693086380536188557964576105762301884463372446961159796969993247663508404660592034432171442571277392303411504250570863049572511987677019386637092064561089793815422439773833602862228823647975876174148827770096248951018239771412569302220063135925192248893819373619055403561577008465329752655550304993852573128540382461495987932705655853196932478352187628282774827369394806596156489192534771984055387480442766909259685595602072789830026115520927791042822663101045418886527035316674729290708564254417222330910516356088208610990482062786970103694865589164539921911834540228033104218274841059056715058609153666923256340298863351846443295200776864308741967528093764326432667222311221655688367982646178477379962403004915780306020420261561550694274470775141569961269799188911202001852025753172473166734276301624857810328892558895728653096703227553058365533462514618969957762925211453212110173905650388694972767360938361076016160014032274609601944499959497956058450553246586726815516140992588355962738520707763715297681091064834798071614408727780878972653512490406248166047219772830382787489346632451728611925481994648363841493204896286959830606873356696369058936571003607537183228090046500333254945189545304990432212018851636421767335338049369889835107924273882340111678220436927326789717628905290072279391349130073362136046000471688916628348291645159557537853927061452696511502826866182775895989812266160788175172426701279400382972458090886398058120068469191247304796243335028204994290629868937973461703354981969554593943497347119475737975707560983410318049692165106000970189047905937597361811310649776915452355792944992785046532657926073080767134576586502963519300932386210722533876889237571221047783554618750318007472679810532617285557608628207870615185810860772330218683679671617300793985576003899692837865558302199811983269753707342390390255170953790998177745137354355241077830113771510690835493572449652016388569639382833115088283618501120351219263590546208740091342003290886788457335861032276265480855561382708997750055390733888654381340746798232858362200774302398079124246350949366234744763789945450204946586510514822441848714069247339350462416558573448174399281913823090572108488223592620599568899669148376919321848755288233104568842697180790689720641201125894839641595315591051404000613486368980330041007791371873622903180977508095685924404343654216992957251728419059444327413373395429630322378307319151530070854226444533188657734075277330930081530175651038759856113266496742777940412552645447026661690928363144064666644590242498689709304246137531807473765544945722189625543114736683336654861126194904517302935755676719828412957448058579147102382637354425270741547274675920675380133547184243405866289276239058703150369106957879221561952966173594259669608781940057004485197614980801131357968652929925730726608051316313843375086620182670502661617051748969580745413930536605642897837358310742082571815762564225739488558654194245533327083602167996047708319577234899461303298867240137381561814641741993358288812585185100357345238069008410885167038482259757335845375982433227337124263747907173826587243538321759054841403916134907641222585421374124928450234435778275629309240482921788325918215868391563757819933607813287982324644119532661547668733796742182821495911164148220320691807326874966564762201709783587922791005890089452871529473825093450713957590665636918587361998166800330330883594270454769129563867551664135368546646838728194152449323803213542277056127363776863300154655331217770306109944917816287594149662082174961689145814094010051884137368317977586916111737699818334754819334364389723046683161989409131934437671283300584626814866054607388829484035387397553190231613588903338033066737896418147019279902719767461014687467886922720310232163760367874519869140025879108002535450389491651185177187938996083144651640533089528087593621528336395348210287889193488981684712123644183483644692958782632711217167586681715307503860157496777451051880957913262792314446234496165421048343427391666651103544400513462139155304651500626073964902044466520241453464643518702267238191531198988068850131076796655350041038325418372868887650910198616470041873068301452406472612757902605869355945174103655603045705613822115331670199033035807239072923106121834616879909510815564090362602377793060125127036578182863698145726670498754887007507754589634676019838447558494046947841205782241045799013303911220063754143728009954837944907943869565552839543563007214516732568488366956564042161507114229360244900783628082572460079304945286859888197827807645173161751341605220871727964712829347318818148557535215042532655805446924131028208124974639019013010620842404740269733793931084838337858182508026721904912542394494086555869855708992835325574725204408931833572694104579463866349582424015299966961629576094705809269269183385364189579179843725193468885150103519313123300697356788320164160960937559978190513427884689504438139235894900130757067510738217884996947463610424565818054231358136513432504058116783502677030101841741398867614634767141417854256574913205124820122690689635796027016321289165910400738323087798646224990261039165192404179847929612901441884898578212523500219538250514043447739605546759338317414094099410265409760523700669826143402074950211368732716441124673456486378643719309322933392854697385748435057378149936226690531373175839437543240376419791005028448524774758652852159428694638607929722462280542864421029482597815512365148839285420105043384907013376790449582065461237314170172691998405028691005327774349574637527863131774003094652619616936552669137863413285781168634698644596882463743753620620324329767649513949781544774901170686073413798752474496658297790072809895000353295008103546155816161365305406778262940369556810481939522562420423290431303534381273188422921121849733848808029348918592960621991808985255875889504556407491750405448170133507138970203664351170303417784556628617157261830875759864052978825838969374616183436375651122068492743861068854409311767787660439578688484648034607154319538920918763014542862851921229319939209529603013558355495291958565242609225300859675636717790170084457139114431384310059157681675094581097104696600092625026990015096991869959466590247284103548378823322216720817938074201190433940477425920741931877374968046193309055548928929770822295763200540037271738836494743120898543392350210927915802957370122260708274608641174781364120788430294826006552814565032677027357222474210832190140844993769716739896642085714845597399302025520137522791961684768818728745815443237906112429822004833415967961258481205249381201923489000991212920168330895984108718855848677116453653218245365546996318020032677679992468368277154296439045093330173330201621781928636615717115994056708951389834533996186393970638594528210694906634075061042709130986167300015909615767302501668288426152732375026632084486392149052178070542762641598751393940233088093413195044269065352613033984962843984142833279616914133550276722016089926390267425875620953919360120504649286172177776065596275374216822214679095880056741434725158601217856786612839687866654440983738846615459461313896139435544845543403887339929852878363427481025375249206115264583062354172885502320286227824820725848444055087551327061675270150982618563660013232534817716580290368181800999510900807191530263851058480925832469454898972399654641232164009214268191900709396222118646033241214911916683625944407696235588414392780575364392053070584657431629103517855282588177964202147774815683823425565001999070753042954765390211156096939228041016247490735331709945916374292041545888825153339539458061047439332662015578320737680562791245123903987255079370676631510831805307195747939237025002546536397109416979212944308885232042642105170758802232700591173698649081479993613474727760359052269770401216857661874999802206760931748305734484130860138844731486970500646809194025697107683631555324255168354528006544892938735735676494860168285975410956522720384873512124450311531627712171058369656500961872931803369917020010352646853492507432847597453672047420570359451337511043839592098190427021307771306448768789544430143070667201582190702800349586351509928245767041034955974656959433710946041168074029836103035892402375353327906084326431386805943029160548874815762032286270092767688495736387544338460873690962837101147652836969678836106497175524992320540980982995467425791773337383322086774867955370269450421951155972443507423408091337738806591337525835458003783563356142958996222086388689503006323799465918286945177527550524141149302644977925146317119513290169466788685738714307615115060231558641916899576429811727905964272072944981502475187258378612109015187434019881006991818994823833638377679739239371758027302035314343810327700447415853220274776590939283625419883553120717605484234353392636007477422111061447562265816389058030615122945790205781255482017320716626636056866082223851625813504837094721175316343702397576598089060830312969737599634710545777869091675426959634625115527674538843114668858873050400734446043264800500295051494086449828312927743991599540068782360695029824012812837075073679223892835953394483457975805977428442212859654761078573322955724409943083536749439233828848662203154265534449456042400957370053193811155583027717533284257974453242605347223240517097653988473357855706242020075429409966387470386054390385814845871487804606083865089453322289030505677297582953736175107965791881244183290792732785164859667841672476465482633761893388230500296856063172150643520671310679318116663216306271781347806972050406296173286995006355833913682910205784703573531824084753682056449486529971734105035355734619350359250373305946704092946884688293700272687389888500939502866553466106117725815072042695831982702412951176529798387426625355572852775548023218639119849038441045154404186627727437787826483852943914570910332252329465880267711928339771679388196723121278115173792078368490115200282373759593656173505895324967911388162142759582102190309109349165551014527749896717584164167932121597508498691588548922085616117832286595755906462546473816499766521939503929506276876641351969037146198899116876531046803438246604630793901970568187998493815306484251358313885935892320896594200836592423084627586015272979689454759600701019360519138736967058659017380108090554371675063659543517465355230083569535848062358313786250990073398329546239584735330530344554189935384180294397330349204665142435194859864134893436102080910297208881888776972772892840431743383182176156684154993366331264404902404101529718726530125352514780497544647265911394423091253289207909721358309817779828178149441225688698204166764613953412976526402629672122539180030166281242295198050064750161462851249543965705117789948627961394484093361754571581899755603703080278537943032505013639504733197373662941121564817007508560444806315137063552584291766186712229301990646303053060461487004505358926862382503170497298987957729334235461988049633391377727018145500914967033623084124385409983843705812481020257565506479983551304123987965489691888509216160317664927602140803755057076389894605923933023407565505713052913670577253166875124908920627388438457578135027547891135670714351527289621724023236911075659954418027188436980738649851301547954814726934882726750189151082358637398170132799092918179506454698925152564367720486441769353820704407216185336871092957019213698206551769205679903021627162051936528039387593925174101543365098303255246030127780871882556831611332118009671295095040609324962552761006924175489740127732702522171390539159501556610364978777696810105776455952170042828369560295935006704456505158319330730176565696852999526101660391068654998927129732994023656477573303600630814799137457407399241132359171231362573147321157416109819932467981175650051598274043546299608667739171770734822104143513462023454956722593190917867911538700690403075685062935057087822947167091562009083097045556888624047504799651681090422230823888932091467491286383460594082803337865913190839401068297948614759098801655365202987250982404071967376656623490667681246689477946371129675755192321066434374087000103699485459852810352154720460368442291051996701478786783092671391425223481619622903832668392866058225121737480311378697356044740440702595281983952320379832900446659804139384125474288052111427038713915639198984117716083093382952729758762224144768885209886646123735001084211985268628863430500061416333460071298272047432612534719521191181261259302621870992544122272708181294606068788878773286196175337066278803708702225816653309932801611476704801300656985277195872945727068477480553038181034705425033002101575513297886481119112961690725241550028773214890481294508686553047865675878399093809083316058800040584722985626630205885390311937773434813130492463664681597558360869635025378607307802830800278221805811888970197815268729172999732456356696472338798964264318906236646739877834932824871376125310611133063009979427044221966611241037772994635881040697659542601520633737419951055580393999940135632763889366911620579513145257271126624363342299010025468909376504783904229550509425987150075796909539050867255172618486366427715536048125574443141981545770075853524151532648888046140069038186870720758768482428594020249256414954686806546302981571128528533429523631233727914858367581998107460855878037498792246248755168744870677295966267098874042455648297293968713584561231279164713207880628770856694194651301912053305603207887778964415157744239537979328378393987370158610435981621142318207370319090161718610984976713183378437392062889634230870930229812646226271963279590782256397614730961574199763177350921051269614570498995837792180709986587288248339848096474045561379674574117636005531043736349156010135035371099068591676571911396349388827775146604537547940369177020641427153561437370550083773148721079898081076746001048960870769357221901097398979036348151211374564087776279963933824382434172923718991973216492646552227929357448124746059082662156669183767005326672171321166995582657859002755334331621409878952449240672038083040340682833154895826419071214271357872650235403395214114943971181603401886673248315551678673532823759983821995725206437039189017853576583504764502961234927739165178947544010974963304649229380830988972732551846723084602175292928837788077693739066944888295327382304801918242361174085425331191479315489695923611621736134896097755462576021714450522838847199600916030637103211123680283836687262911332291167007078303195604887154372005742944927755868049321233193709499829889796702321529934376982796377731068152799197381897398356207055973264887223610330114020128877287553344159740418549323963886280943310549281557905194895976214984358081727759600689573910635311125695474405832652782947770923397998719338294627055384485418603344623830936417199796855445582006746937753506616079081862174059847504553718335805443450895671672324800062814715429944590044116572713040427806479247877278194760758849654314586752247208151517914497339350823809954943346349264600722191989629584507965107201006026355339554961294538941133761887015052381806249149447072731948449380860888612812929141395183760369787080165260994517750789963243819675331688213889503564993089194313998226479938053628713514026265603471668781413273559148207649192267343920144588396452043295290160192012145295133555660782743723797114816741820594114970582807162299150977870424906811386758525087683858754117933870769963567398660581231156228610656020457995681876747207878384448366999778634611380684949584137777644661515675269750886549080878147814682093764805638698815206934533941361020369987982555460536440679543281486309876482626769420117065539964191523733451253218217721713783416348784730842683063904144603770307901102796197451354919703166816531463270393631864517019745865362139001810304778978646453768022195298974361903514467632401189134382764067852863681723516016048451928457630535341850418173694084188559428540943640694874728934994983870084633998388396548287149594406039197884687045244387290851137329489284323364222328313829975035242542714781942983912078950109116469092391599626029367376108863195254779020683941919258205936120428460560211951201689315845293577670479620952335819827170656237190853353728348475345257983985473034608374475307962960247777323402269760685388217684170801683037946305168322344515675522291705153451434268191100263283531937375758868555799247824623257481124944019999127402744292576147518968146226426598809950987919344509949223724929337866146551446061739502714322799329784875844833192936446958721672825372378868445715396605664153107119516420921713416931594157237862305629475127637672308197152560576023482678438401561642499878364032127166453302057866991914230085918793237640288728646560971461128945796348558603137945140181145740532564853505595250143273796790417881696948139116434789090156741607874624447677249641634074641440163324584803632113878673713747153793589620012688079639424932106281795881211964712472407864461780363403945933549379824279289921143970402642130502468480320192445988200508187751649026450927003334648383238174928443907381453486218104058584370774226386717866008055947973911132887091774866345367748560957716035092323754030306846788179821042147431437251131292744417409768337743735930817107876615319939906523610842489789540733167518772296274308430005998149326944719566656561496953646158434861242940872164627704045223627058913574711936528850048081721093652891550329827986745123017952017472059149747051638019660899290534212792607354826517966215744144449407238917175962801967234352284014966808465587026445254123316527457845885459014528197037211850280100897125755289168670592339432471368130205258003730044518921545543969798677260260636658171793422330143297948397510697424326081747792932923945546614003070780879704241161231109281301000147460952910720411470588935709026552837315728566999511197694029860626405273606221725601059858356671150332505759490677756268278407429255231355553306435257814663006975712155276875517556949990729215467380369080963561465548692200874846597273843755791136455409943925348318961229052598779021666730263807510100889308520784143290351592816069443385360822273066083089011316985903028065402316288623207329175328419453218759420590971924746180746084635158055392177777868581771318090068527175818175714261954674019458220953331935809364741112659953412727194685267816529461021247856238627448444737933851937744896625300997623375223159202548655606059371034743854178123958228710460022069533242924448249954456349870028630245979688022143360334674530438453935141724089518115089469420161972507517099076810613951366924121132974859959234626628857187868975187315038277786195214626931828432431212223058701680442695101127322986381095813869224281175272739524627277677550218088202160275199965923813659349375883948502465540657961765424972457001339922919711227382008592084594519504851388557151519149454935176963253019285694447221938875087258369391291467580957580794853627361733713443908466921488649398267477599526008825882166419426261930169106282343736847390670090918127654391970270638686350634077109177721694570871519914957368092196265202431740674473983178214889473549312450930013691914503268104202652109276794525466141309794091645381541736647986133666333411809077667520893884947895584972187893422144393747162957992162480973056160260313608566104400335912303847858023074128019965748752804184294080421467142804924648647161553473448007398498817718109434738370122722255290912612659123218771021093588613696037104714101811738997084588382647201604747576924303388228800401345584042831775645276152409974693696915235453467895038985352503631912009806960335426751127303955927631156522108122376250017874104540683202113766826747203884185298680355310987878389756272006764239541763764809709228831290771947571867141364659865282413046126148340618227600083507050171557826566075233122289051425222406958985709407873097265364379319359460760764483446173664191040111595685475790175578476594027618386314558964660890168142081224726511342392558573654392782609735653692242012944026618218869541722470069593504549097094205186690067616894653370813682231667783680737787327567666807531583591119641853753173441807006055068019964919731909982861822483948859034917234508052879998170413703140012384403349691052261155534274320810135874382916809310606105958816179772907479565647173636615435704699231313195632641909713430059340473311519042481889578417709481443331292428232587255578397326851252662636595018850743168243773216309791595371237421125195146378313039912211639846478976699300453660355438141528650759306648580486412327740839414024153028284263149821965539558680277687824662529678958875202465843930995817818289365102223399205582701359336802061113917225681209094083943901829171886425220853728890253458798437064337439871499862394085523984175543072295821225098306026344490547744321484674712675134893958845445506364628929565456346725459577499346296416622460108476755758049648606386668947345574606933683156032858461119802722558189095109925303556204257474067622438127204401294134723034984700076147010007299227136436100782181493746074011626932541902971780159844871448319519304166471924401528090463102537531067589659389122078201806553835903107041873856399826737439932893359790576163032435614774039992603489613797895632975351624965642764637394454062192376080785913663288382002929382210082217956160777236708721156287796601675156293171475955928539155397685791609441389851241768339551572022492516812751988474093987044138616795488612242446032873545326245504454679775762180061693052218876481013796400017590831245297304455706638894649090676530713584803080634724822395987268745922914274049603722817245403064799429003219938885094837636220823075112028994237605985157458311842831765123476876119827576932416080385291733639593022192451721568744554497449103619263951696374716401734611855126612169579151392312015316380309277489557653174966440476789275216048173396331008523902516396633766260793429119204112250653726177875596479001374597798623233539688779457687177997960218095529158123318853839983136140646533460953568948824481483376987078537718244786661980500908509379050218635328207487658087666340703800267700139587635566175858874609561515078786443748942595556453487490499752883185890580315526596153987559851994507421366971823198222799070383716564490752653776784161302044697675318102572904963598102429634334075869305353250388282970080644826307786015067042640210117928398023727916915385859933399460902056909429133097898158039967316913747119170854441502062116128457928597247153512735490838801808601937176318737472098278868355961126232175875140736037115876133894374239074706063102060739554599253230822404385064509373664216874047119072234962812589145762693141785830853457868093582575967751581102014255671019165013428660688914617898659133819168962548761005271755379246977949598300151588209560643594479568726524714783000210508007659190506913687106602757393681962387463696036535618044879233671196361096443590367780386975698700066128600908972763784170681011023878327509556049863437825040729398711012419062681184758871778219575668716391096285613114851310262988018445483983563346369858961601638832451643833773992517561538214192538309284727574179353157974060772489854342438438245355877388064368436434962046220856817708429698234402047119136181368221567731203353161945410545298915549684475400595892053057027081236264377096347119504281136338780474294140106627187176646143400995420670355613336273253448831942522352664609751787167622528333281713424199112922596165413918546758746978960629104560960760869857851640050788361893312892630359673135798811322815470134970321372910569118863527433798746400098719084919810817758424896377131490061087102550736364479908230863220851692910781105822458070098009379303459424803490695549739993764147143292485181574852938571142292149809031778628090584719380515643896723150913789153034847192599958028005079997989768263164180670999083299620957579935579167406966445115054925999483414989795135437644361507387849597023731199324052676472451739825933648791552161619866553880411650567163737374087247037543793903661769519295729546061317761846064750293180187565555503390488255014671129752492960425004469365785497078804890437734786099942612121224691200346572833706086840769917324610697894910664654319506888958520697191426844146713025679690991790816184334395382157635932317359006047601837402827138791231193066521735638255297444185546158376187321568157553594310256684655923832024758835925595156630144833873346802877254115172365180643918454260329006228278003793850868686188460059083710586916494443454565066868331714465469448942349195852048187817858186418665262824511578600700034677796781152810887347307034073809162120623103790706858265263880509896005945715119097798781546198568394022454274371976904824828976886804026243257850407846044648404184535100517018786923619844449612215206290669204913751608729773225419991042818097226240319857219147396750139380296713390537414189131182614878343796938783470719135669128056336016756530683171634021194618120218899847823495815416668240757731976573190032956874158014912822329360992880785532892420528760506201182625119706636279508065975742132626987934092692642888469556595750596232513098453603153230644579255566605573954973491897520788476440195221509337741826110587802776630657532333924041579390120005333074668977049071895535818451067339986761468642176047313407455962664376967689219267908867637870975745856207795103855683781073730486014348324901482925766975098932782717975508731359853653730686601696816513238983215728226617476770978226904675905049465913741386336738639549341760191080938433352488467709654868104070986405750083477919032671162991441576455886397827600040384828742842443861493546515886715731271921762048173857757832194101564681233308274288950519349957729656901780312582712859870819818020018642640529408637594041388185472087488790743835758010221570537512107870535602931211703151602430963131902654075354782687825123052097392092658746103909275330038685505582093918994669470872712894659537011377287835155430845076604187125435510067862704137482915833957450060195340036021564362438881831892340026390924485926815055033472619423899874976692696000120965537578239062105700591978420770505731047856838006931547908520175594417315597347091836581043427091634094224060682571255585501172963104200985667015073854138762860834844109039799490063107686525962628774696949770716328882687828765005727600603993952748683700681151684195423794811440630481162674691432741302191820276372248888866810750918277659893393885687663824914183117800195444084219627070250670833852356365142016292855555970048672825902320987666513355438224769937810979737672240453920162650062559719056002199117493702662636717577719226650714596507252286346418434323171075510855804666217200930802825159436275318302935346278844133152752351594876559887995046170338856095054884305286737286173769996197529663476443792334066140274083722996951510312621131088948995460588905459764060744920276424449342417666313459705955848355249221445267177909721367610794378016308180679199951121423842304886578459372274506778692420555460958393855128817276236761159778217722196789875001301358757350873928790139894027498981343072068437980754584511692459969952372233191619371045058243833104059024950010904180340197077884592138733469393704088242267353424084030024067032946226993995473026833974047436154180927495284009114363678909453527042118687516903973635367951735480552415434804208440853721478355844254783013658611062402218146142924178574076799508197070611795756127606788754413161027026343821720009740730158344216978998138293949416967316934122811432163603049679274613247557915557969402137401412101494166963982452659604063492820645350464763675265001412607488918771742814744030991232704805398789204395876358143955816503170625854907078558585247659698094437772943085908679342481083500866990359292098395114572163532597777036011129571411236488016786586259699346054394980334033708571506370972146606360353792241828319825770046092359480007603647620982048017015967988161174930685991710171368583257142063944662881146946123488022028274665524407979362085232558179666018227016554929919141776451647431129448442602487781478409672150910808239857149545255879757274662510277729255190487290751796470524928818033615454052644380943245238825091022409370569515607954465230238674297272721111523377627644440776562544438331250172414578536718858657399631224181327651514676701406850787332925883997907216233695381942832166042030104179994619404025963881925685065359815852518209832502937546885565055533977562652445147847298695570796867605584726387835882446894472600635742779711502318405949059747631007798430459506571752665210241246578268880009943747311412875854650420236279463485829338049547758470233337787503043049092959451644581399712860323341348581526161789503031017648512903182781551072044616008934673100966253658237673368000816336515813168780819116985299641307152298089926851411881878401835775431710370497487607761587561419320077687451406856009348023898390894845660946915572963531308441873754716066400696433210327170835276144803053913497222203519476885434709404097050376633765763549501615092242429857701617895118827724370753979020310031399436317825013009178738423672220723593036078578096900768339959803816693350007481986001412908850692889696635149670912210555284013929884518337747244442804550130685078335842132240909023183112937309893263224509968084903600924287929173084369688408666907818840812509051401974124025843605812537519492798710532516981340641771380661380117193494478611233079937205839995199869238264477952843846598190424271918660981408426499157746058205263484658647446181594245306607911404908596600872160507442825865427311540597867705964990595159312949083760920247678150808879147302364187228922196644043390395395999381489642669022394088598287035971042776153065200186457889045850067849172792388542153028924745696893457404202830329265521776037609522652754348686338717261615421275480184163072227968865970299063635792994778873978197634395837425395020588545304498756288732523815433715433283372579001894720828519820697346145488541118622190112069898499585929071219059387499150066228027081394790538092328039957683585680348289853702628882548998543588469514688053188175440985077562809243821181791362720550609427419404356531708785619547111006489092905050442576861317703067553925332322054338859533362080300806211134084566507369509673647710526308149037568836023555707825510124247058618487671937304302464034509994963373705507621763253948180925704599463379323379637367036393030264619036219486165542950215451427369006302908360164689918584264311936458743638163947906271225307500609318770694729948526502778488467870332300739109482109419448219563706466818339754840137177488484584509024651959458307752108442458327710439385345290027326669556817399204147698680146028165307210992285249035578237503360757698120301173632024289765228329259111555675497741153798752139325047753087007747424387247210216427850628387163803261943237613560986936969237450051080535913307759833147723018751752934075582215826597470889069839584815965211756789245816503566688335450379788406236977268040720112155415819678417500591907469346485459657820948043704575829006909626242630413028207404839224464228505254583156348487040732015949938241050244004109677570683989228912567495690033024761099880584753666056745904171737415972506569201195823321489155840908233061654823793435902032728934659612878684552969174113406322661407381216586023372345917390591570158073007174200231143248974502010431861172865466955768348903433131847862732929803160322407309556113290476746009671778198731316600479919561011843289348693551484344966509587370851794700194457039656716073371752480592606726448161001872755180711312575273270478548035377198071239226320322969200091235473531544733933837805299484477600858247588640654354884252744910374108677024902432377615594800097569216580901686365383509260928868235259127505342745624494215729250729539149467890887964172376971836175561556454145381931878387995929677541104602034801724033140587641225808722220436063140490615798832761911472898002566335265033391746122368431299301829037454796161352320408146176362410862469054994992389033616031457712780475870724998140946663406198123086396602450554056833110527919491172277212606136441696919556437921236411830788679866587562507445265868556818414699018451613848894967740330295507740705262079572520205221242507031661529560743563531432750029418678546782720093516743220489401651368783038220535168959537497586933080707271892356443567583317004611078381819522558143702121067524633687832076745111963374795519128939138625977645164918624733716977720941085152139953362567560560367886882586549586122093268291393150617024195410858774463906079666948859700420345740546119420970785407422782843557953905665929420080807821081815349747884417949658386185049950095229679950404191888109867644522504129401746103335549859076924175925701506687062770409014751834151854582782442168383831825250869734398854883503199405955070543475996412272843544640125849467943458695569459470986821921765116348782457813722422400920193442703479821250481492858526922346714373200796670761522973844520662160578325726478661429241744561667057331450700503406501738304247105358027932984401820354994633424085445732702649924708635480216702435233490530527193036061995995957784662929164172760713595038243914527851218457131160073407299161287438673026144795490979101613892245091907480499692768591200228344312533648540100634349730472257208362753759543811112370571968613385115333839868255350699757820042714949293594817995662225406269004232947138869471243516182102123324131217532476995517228110351789791401377535387292713686175638390497070454003122118804608965266478825491654799223921628059081531543471130375001983061550611803922185611126408935156347285889070922882940196520281644693895603964130191018086371003374882414864680329428768719914277407068747777157804817648352910051573181056789241314418943892322687067606514776206930431147723058559583390601139896053413463829302573583242655855024448765262122602293980652561777901591531988052226928460264145791787916624734165778160289300448083847866199842536443499638123930151058681418647655729483527373673902458204399340741195374948177657079856724785778030676491736413423225109550094270327905308881768269175643058816279374639217917404440541362086187026808459454984870833721486237812145854930725797415499846205641780679204490787309913811770558801191396878298865936070270236954081970715039151449855412913987699566817856565335626977520758158191595759463037734768265890731337016161319078671097572573610531809634288694633880283771724817353054825233413973596340967462860224748843917719298449138075035988139521257226497019484769602327352468643931018633388151139342473834263485260358067270229626643506717060268043913215713929538204531099775720008810593436156041159524499264786569670282163228712556353422731991505046988511010564664413505873739096724565103184628584039448190119015480344412859102377874992174496980146258689520281324463495933854976722739299982978307597248212444305188038319132026344092623052099897559506809713871249065773086292197662552673211828257593398801017786605901178059770305269188624332347623464396384247899577928476429758050456649169049941913360575923596780379562440215863052249329836527166388097728660373861595082224198976332317637073146651963133506707996302772579877225391242138624578678749165475265816816150912921022318571775316476072022797630181544973841836160073551975965387085959753959032462906029093775411765510633468307573650651907805251169538273558309680357074839108954781343790592414397652176811155110039779587967196131994727764152130035624824392389278376596871845484602321864715044699950175357675231490660530668211077635784053519178967331779856314521308363302462061622556960418507079325604596531841521746854264077397477182040995200761452300322608981764834536773402188673980083718706377930026750587239981215643837859949480948223056484522156705245076336895650722404138463323018577686142041155619239469224850692566990364501150976786733947889326066598156554942258859364756337478020955381173179891688047353782263734688123659272041575810441365379873138441407549360573104507650554522816516598256441712111224778008406730482881668438756166508582633017204979177622941783582755202059209293751671094623562713124622038998962293278310877337205720515030686018712557154972791878611906704335690507451546236165999956276482631187669913193111293782208957566405537537149184335356560477969600753756150101143035465447621143135472539915308504918508835421799210989234671010775545906915682169219957911639896513551485324883339750294971424983298164229797425330986727823398505707075827798267755173856314342678324026716110518894818385047943730726884880261937813074062084497845286413558584082267985348536473146792778038448316271459496664877246278180326073812808648539252857245891559681179999202140140480653427963774451872056433693326331881803736547114562832564506516563100461903293468317705924516764241863691818400281288993225340458910690662560104527369865446472825454019351023332568443703317978556019379061451847088137302813877812153798025893451173912549256534319043307742551012967282350719347483724308032686663585540288837953541235926333347689626597481793565542059996218490310675674030841672663346247274059428112120677721976931630137875245937660734420417290833412190879872725663063428685805693590479279037640279662744267124828205658102416086813554942164066235116384604662209817300921350136225525158791823056210454186099672748476544560650255231774425801378610829881327969050005485893019026542926548553081350353684252764795195785697494947051009716090926608826437850705507313822222718620248813610800118220737419012147559120242655806580002264930689613957503485662245634553540852548124844702562623481790973514405281754492866835636577691851264734417236824763707038973912248419977126973342926611953710958844999163789833125177598687427290815009336166962415535076182939291733807204452224186494228461678177740461420806885972392634722183337682246283460402863443711232179802177041635820116796152178043674091189106279815403845274097594887260578789611507463025524041481366501378333002794240997252400800930253101802786319010558281661574111217183569931867144844795362251270480523412545903999173012339992922673964989552477216384622061738764413198415995328904404051640199837897863239576994563925957084247974033603068885851815661860794075621433200237224395458602102017888616254134283707361080949333052428422599803815192146999840303475758902214811243337777346175849275430836810483497258364097674442177310285324768390956294505320519418613698903521250163650338926428524269311620299291036028649413150608565838475958177978323752328740645555437478686836396165007932215806679273427402474151560055838154135823221546918444973794056450094791488110055750203055041227244807115122295595065250607827588723026802120514180066707431816555973584204361342258549280094030044094165758039819432888816175076166426358829249006756700434667401800518518358812743786696894369865436688434023588449431389118804825962313459158675486000462043323424748744474494014782690390212683876264963867904747127753955354699237739886717194842463586357520094053423813399906119716062204512903354796630031594542513698088110891094011134673824380989409521536606963578610363163213376201738170848003732465032370050846585055600596693099998948523391761745647281006237468291100214707062532445470337824161912633941960116004301925107260922644674790944380090199167173534847928606849064567260047537750890125512469845857307330184572330012895825987073197921021608746910544843041713601115111356318281414666890683128044553091546900067290421002070701583102551196522932573014100820358927914728555324554139346588294176813079657358795231736914802862768366575655904904946300005934482401541523492711964736938168356597255814188952732788953923432116864299795921695965130742817647347362354772151188547186699785357707114319051886079268480999877763950885740089906857064964146228587523587279974493875664545671600269053947086316155139242885757812936799398351748355261033905945431253903512895742153867774449638464006704084152908863454475098120715064572581171035423051653538450504518386014877224762849968286225294028277091245950090612893836777325233756739325945279011350287108510477753410110262257823672614852110617597905614556682587287102141497323622088370910976190883294295675001222765911195147847572131948729162425078423506332851676045179588018786648916185269345068459432095411174723326037841819358203924185037051649878132410393074884039242227022483384371853634360533337730229456750412093677067977898934544273498213214499883836566737095121881322913047643889806705017384308113577608625390525557603506207041315889077820011366844999223480070483070333956556971704669442487886324684091276018170206137952151258456641179593343544063103351859134495723259367564547684030071400138562081660791630040076256156687327818177651784329374433645317000760410954918456787005943845553488168176844331172230538090916375706962894197967514327228764263318915508604238217543028807883655870850654509686925191057357914563685038546460265341575077791018985552612916200253181951955849415325131849783949859989935390082675806066356331381324010734516965264832534436493810037208041661769168716164442757461147372149218554603431318184517241168483211866319624233286552158885443373892366247795295195447972293558192195331227651139457648639605222764304035727787288596717363399200622646692735769214239533729173843739241613504972253581065941791921917893335540837048849955909871226940571826957658602361729883504210482776895475868777353615346904919758986076064702565475048605352100549139104889825661809073779837337249511518627073736136689983232857487408209001521945533334111084427388832474524568180541180992795812416190053788809226041184924763559953638524020070910844905404246622870489353326682699462912149648780108791483407296653013223653303011900623594623082303632781949766423405898317402254309657311701805471115702135628252893301120590307818548335135357903182409031875051960535600947318850066069174378606704656147034034795182738005282758965504200276402167341920519576567123117366419753170002776711012495366732167143189746155484193230168383961159857734756261336509556783655357391120778557456830420097966862002589428682250045915418242358931541436850217093941803132907088995685318068774530212723575643929353536045784458023981010535281311548371894601915368974886549785287161521853637100964893902232064437962855745655496208729841832171344203830752840642005094377746129125250896064309259812860246489884224923348607475996437257410065832349231576843180785246022543334950547482773472633558673970258767509349767215616266314404375954073356487037713464962833419307129474269294538385465970021636295074800165138939798027269455868539114956147862078812593769859980757337173500029854815280256020331879335354130587389744122891152117726424420019422383166059453832227603036249616046662599576196473409198892058089590274584619985219209326110678430105305453201191464754276208440176443855365479813725251165864461897763451968408223738988904430611966567039435747680764685975305895222540830331553247102949087686461550482503110152283610074358169144014642496472806882049524014945618142084856317625512103875314200949124693044273430394880730722910939709119400750934960189628850476142457455050981380656524653014399102308153136654846947334726387651600611386544467157075075019877624437545401326899411111900335571338786948713226543658912798973034600831795409659949595237765288686972547460484795404832683268076290899130225082806773258271979576991006257854368244789166006345239536579747671215601618331871350133870039947182164893927289367569588375075496942039022503799157375790697572327107289991440316405179842606853794299292568060776899641014279129647997500238172046624871017583368889294622791734279284187442938250670866290137177495575490804459104798534069551812210551511815993097027729825986454276221255515875621181555369892547740789170321515895651306236623879336851924914068232622300207569101278368008574012100992189783357245578078619709747175612208785809423847824272548766886524351335859742855265691486191960382372887371178004311300605863539885834075967983776985321827193778942494423007922656559131681716936778030978977849309735389044362225566665111193503928973874855793904695374291040765977395542685426324111711605570765040583149272709340178078673269748722468490630622575348908197632131017104327106996441890129583382390450067131999029453105792046862460004219053395424026828406913204143206286576406980330059554759026005330982642700680232788752557743634631512469224722383415960101530083400221445366197343588801958421964441595460320139834418802053994141684273160118718063524913447434122596520304531988917162324751254021995648261436349731268393445204985675141923020511435397849916647543092160048159052079386679535788578519665555517825783626344977536107878544906245716101799710495510795259618522918146189614223590121972625963475983385123638480644315752213379854915026210912917384405208115476840340530169253859283586368652119037511365797795636221826675121314173559182238880730103921167369888817216111364104900615805272514965548320976615256455568927168183421428909638367291775811520830527097472090443212607220008539805320479769925646083385926230608457699732983872482143045848883121649071798597340741313508727922912531669579665337585274527363355953399694801950287814100335429116047957239858793903398833370668784330427841378700950342948267423984903016394592319348472907914407908204841026050809969170069056490311531518372319464566283163930945396706226977746993894269275239768212433725645262552038911960396654403023444433845803767904537999281668999130903029824057317612560282756325391675188598180745834483242464269847397553329648179810230459689359136891531948348697651597970783225844399834051323916793251780996083955384983850599346207555909166382314160918530008909070294833398527449914497460276381194162569034694702300763013084439615650041674923334970924824919653130485398722230286635246487397332425030523706532380767257599918695219809284930097130748594420554008854482665741166285338551522726759256027019560985161450067183200035819619106234962836431271502540610155653846637472147371674226829240883657232246836703965447005936702081785727395304415327584744890952239885149658410801670378571435832952294608173252838249079623844911397665196507550220564054079450698687486793140544630090924368338293153693890752147810811047528964160791513317086429597200956544319434729966713151722532397439543036198335125875130912141038455761687362730143313895753237179171430267042602004454665337561719295723990616348042202021852723870439562918415675823993049750394724013691151748064294164890188119691486469109625101422630207598832589733139982435367486199359218040712775496249989422066126308296128606468573382391797249324813417916087682719409556399951479082831894852293715425560900178436910995450146540633686862395199705651684519232418860612853266893475215403260546255132622039596923221658547838793082451521968188150647315933007842335830960273414246859474108886913720908551809824834004205124880182611184552624855956592743221345717106772577063555970232404109134206517642257569146270612969193035145694397264387816193888118471160646698279965608698016294758386510702793154476014780424515891232530788729150464158732752102309198624815352859901491618063758887343736958412778073810495099193513756800586418461995183540629845830612965298496595279535548172769972593194969939606982950662736968776418806599459053031658029290413580411290367693576636246789997061337971324575785933596340413790939088817833668096950245588950103813957146585535934065345027898055282436205522764754030857890197765491470163799395675767956387529451916370187601642377655690078646696420274976462382190175471355324398200457049768959606215155772850415695725783797117884506430932521515706198481135338215220511533172327619119864389565202306340473488322284022086861952367603743606583435121501183854439871156375895367101441146087139878557238473936571002693228397267532234830895519598776689569041025968733657189144277973855372538083890272761573858503150286960670037859372330614221294791494890892840963427235229953511090578721389235098393809840860992850587671631532945702266328475086329909791947312472050201321627839671540997613496410139428317743808455968160445115689151391623623283693774092663020436704716230180435575746645710310627710072570048387215900021555569656513254055821122338077739492846956685953251742594683179175263690889296635584763058507486199388267820738977395926764229238756294268773227056667259152711331739047887505814730772018441788962317925727298284850681800601216342470633456055150042827313348685819013116923407054606160537280749011472223890262383687990916766879293170332362577327235492145609393055205665929078629018589792521266955596907345864251743246030412153837630803986145777713575388051180211843397938033830389748231273326058428742401838938620048204258177212853270939376636482260096367780718049290195672447920519120015776728837797629832883759037776561215879369810896442649664274295644944442443731866807308616916657240836856962812423029504513547697192598873325063560426893428410559268621928651791341585354797514011391045493069179491226113669719628815807047543003397616135552220589451734694895352317329149410890596003362947544284588135947913424171927409837270181558511565105721930943491775668101098833407349905463522200516255476178525844855993891662055627675824841559303266381122694528787399784482670584277230708708340974011995013806787237681427583612422105782555407903763431371200369036781213404573162773865073484842806034924714672832938452853626348298244809133541860959034380928241896263296892555672935914088284584679586592110457313376356604429499026809904340953849330569185112334506592019219681856546836024301639317162370109161050112754838105304008220579317706606402244510606792587675107820982282646297746782517173238049553991075494394159763121420438228486452881918845717445360248684289568883377745001132392719085005306543274091712808698138003017302326655332203720706950793650525892635031857270258172331045619102565628049186809771000689417112768893997405898409257021168713581494562626378982498520966132797839119653183204844153530160833706499593118334407267190351234429847510926492107449074683049714856675047257503785978218268078871273142538562290857127630646564453073329430393587336376965405422516929720812971834418488019894587221283529650429602746687156463137236474251264923677963143199414582798399944337835069650150775535470945208149343671770322411322646140201842988939533114991233419366237902032264786264075606221681728991299739829707388757425571999708393230857578703146493473360337512338581610197834621629808652962371267698748949089817323420033613792948664725184788570463886446306570742839380419264547917796097492918633103878622681766379079124425089890702544149273724698636278484088104622322089526731755991647256837894430254746161494758692136776351640173971376154488671382326570075264279161185911789151559813702058444757106046629788610866453237084032085297054404093117070647805390704003343099656114862390695098644330083030939809236666251036126337761777055364458612519113696808793559464313618913209746066455735462449515446119962735763614166308375149896504686059621079147415137776243373693846761068288256171849406237742088445351103934518644056338114598054438909888273023605758258752681095455402274027178673407395153211072654532528669571530937657054888448954001250707535516920226803789133822755918604962501596874504692238816422675823819915071670793320255745332970910011264634521598091842744308623627679501356918823858432132849465925040904960320353789712266639544339028789982325596048469328964228626855445861738205790017115281629246477943961130775583158551227259429841142572163930718574193489930253505066556413153229943820570452359977008098296596175663991282644681892213611678647267473012115197384803466721855140022267335145424473128264714036412794298546255075126437071083444036688749012916958698367867332375060215719123327572831597737259945091949909135398911998184613022015224546039901347280903159302906707924254539347025951103089393488891486125734296892935276491187909613349014958434501736907747427978551402272059273944648328304330128953875058093972625045729216696590827365967926365012371509321103430503848432111174134033068512875396602879967187516758974796860711432371594917638202750535348794780980959546522978672013482092614543092794089506592892242391357077704233460094044698994560553279524699012333116554847918485071895788214243090441414770763617506351798278647648484406399091210227974993642414901672782013481156179292256805380834244824859340111007691741754376023954405627807731050236211174721691238754716181309978351370146379230650493040252811670128722708933804164559400119459385941454287467113935173894884384555944324570296086253246326984128794531081703572472535350497346496620250545058712640892079115635153369163289092452444699945929042392174234163983234985571732503546858998973536835467358624135166845290923604771031650292459411794909090298864697256198093733767279264850886848174451321317137862712280621934805996768454165698714891937987386786660780818167224714910985604805437131277743336815438433829771200900131264772558401287663355806774834576881087293503592196821200697633197953624350890118876979420249217327196140533803800408485827191044787535727040374520707509427650995607123709647237506296631340293002771551148117549344504882069877864410277695398208047774499522448343532176979526306497338577833367403412731881694705028571694973741076777750943977785905640125318736005819254491361443977984424662706429574929583372098920307756567852686053747898788238025483845690592056086488924454599940981328910988092358560215662241737794104895150923370015544614921221794929570679543988086231439984496286484168005882024475425533085961663869575424692466566844693534103251314498322196151040303797212276857769806546610658540378119784727810256676207161153674946376270450704051170699432035188941553268743803931827128275233536791242771246633203553596237242548764934077788520190964574152826103006783494606365420641364524814710391583961699369245512145527364176150829026812373162899875629053719599243791934769021418321954677603624575721022835849529844802424463844007167531600235205733312516980394047232239882307245725957861925465275177259207327218175591468855593656008331487733160714443043487581311895517341242241699521676093408944815315560532313655440717666329969025166917501092182743488367081246999323077902860532367882873503778941048354385438790205063211187492306206952073886808429471993943027224630766834685248346175447453392048488048182088860688396893551239566415935439241472560314066919572864252470414380821569848407460626212217817404897551493484938802426787059800809154632604670013469684103282318244916093038570944603153216734385665509199739327525655733166129670834947516937817496353185505501816147789774866797411253849689748359805159089086613892500508467261487388991957389062631704737047620986260489992036390220863441401183377323139800805102411062019782384222165341329474449535804638513095327074892195070813413119390555636276640603152782117199124922865119192560943566827285916393609696070196896346869617052799713508851621846099579373477874960364790413137895497374711995181074398461289950012065034806733057989523952737166311117364004837019252279194315299919668655256901972856866611271507241818083481877855639334906888889574541667424503230975959084775484391811908094939020036268100420530389123443695395040579234840066312829522866386090586973484459091792411662773015941048982114705670106502357467342678014826888381191980963860038699833588959602492670762088514237184037477738655950633174884714525777207347644586473789719581682726409525513315965924684544580109793012641439567603276293631260169837604570602782813975266079762337530364034623990601791958563267195803242426100516947335402942505198148910059350218460308121227887420295182756182877803663896264200419598212740428041627972282328653161271676447370880637715951815084695615225870358419694550119502349966740277081002712405747294868122028012608342947750376558055780783755570161114947361675920613422375743369719957579881042928385337874190571328610835770264375682930574816263388996902335113787192926163795011723266044438331782254623337120239123205548899388124753370133286211467229420772932932383057644557753063697009823462923199700510886475570701717559099269744935827774492398506282250916369566201208144557421616544778407764750721586113952278617407484668550004849118309533223618351458553874464430557646128522869002062552085551688521541322628183364390113683490735034625632183431514215010905467403197735643063432182451972689409794962578715123652422897074434571753394507578610472638967305196776626590635492892936594384782188816813686301624669234017216666161873206901615038119659936471789413822562544573605048578695045325696490873781976167103892801141165526827360840275874739187497590600345536896716910702317468235017308963529868694631982695336561293682155804352041126353470539753367618844275219702772767315447500872619224231592395586383403238108230443514920664294198296144662410899385874244307744320822395838049285202650821559875287237165705109792109886791457182133833358467905293244691996440453801186141840766442388113392961192395327419632860826723848783029079176365435750372340196521329889487303736423975733875466826035323103581367336132388875175317065099861107266196884578092633431219657423511595281108290279245359030901624418496640074825341328833457720245778758067851921009407517281404424212234194190151411592297992008322176454559608096968295276834576638673576074127040578260795470586974206370758703972072310349744168390311346751446996916100660595345611790619320314746474089788687830293429250602146598256885496353760735710517363203717666457641433859102653449443760161372057417798088569645540403887722279943421803652018889374407331447657345093245390183440014448038952592539261861848146415777419500595784856693259611388047654166743690160855183742906898120876112294127589359321163389944462936719488343015536402583785147451429459480667215128057523557626991862118469672700012772113210549957809065557631005612140156600544709352873404272328936143505457428269660940723447682592883463800075051120224593388523004662675364696089012957158492779311312487581734517688318390935925100467261251705960095833976192877792128440556899578434182985079151047813896756549420213388591285754474186384109450839463597023193564253642746236190337407611529868258997799505761495107162647075411507360502106878751011092431522976117758178595766022502640553784164026135715800010382374031908249066255053052120573478446004191090813315838216511446596116671619632581470611827621878794543925703105144512979129829310211847196775126281937213266252824129968000123068424415279317143585988917414396972472850633039685746478663672599181391257460168223548413107907206318143882060773085432158737246867041537230435234218487133342626462328583884291491094537281092980255074772413136090238122648641055151370916214389093984492317289323819736543443977267689921851455097382933226788295648069850436247031919648375583391445368638534255301764065386282067677216853855626508361559027372575141771025599118219878448016799074568307909685103805798508225199401061616417541753899891346920918467919092805981764623481244555068048994494013451518694467219491239836457530215795900780687668903436681762794187485728002183449856987313354425429337764209060006533660051721996003389475791993048453163581410486418922693432590366697264641042723010388299976563466737980545574722383932139888962322331981558911245253794109997519231753509841857096978802641533521167058250588717124119651608160190733792560827667462688706132318255493751054416262247696350674727430017794212239842121077035027839620303643037211327894359114102488009199659250076096553369973534571242048114858167025416392708044323021101236861603496728500289238614799821486068102094669801673722958708395618607030283150068994976768304066870457506529385656482656212941223186103720168377360711947139463651387069051759198387686093484022711421334770037878292532009358812638021208771369660656552452334663922059329937710039956545367653064907245653932371282359006511616682776226882616479021570780941998189919104127232336461047423457207114954592141472217512181893670412604881151427223632743064362934260682892892025172030673312301763210872303777653264405063535023736660980959764592578748584950422360789089405744233154896178442959338813884863369860072427755285526594257624099330926162926532948462085954232581493136140513163790317995967516849645300820358954133568440232237727318761460033038797395153412581944333472010596297504639395941346322836769367960351408405697272070841122129845233902929785770838823599651881495977370443152926242160581396011417060546845775211016503389846104702327495400963827751825908106434024017464158017183306399122130928152037805890687011975029124205350192381982837572251998663827355488552854109295784342673484535638739519093100369433190056075933754263259933473763160994126411558669411119675987309906097202475597181930824334821987066731754502221634661522538673944678968859030902208271421148974523577471554529052349319028217886821924076175949976113124665970802237183620435432155791496412778663097880080383713889420913071916844439425293920711528535805430507608192444525776989381547733718653369189114005595052646116412752356832032602823829921383290327578780781115421082634433634294125469548883143699426183053149774116016808194421222201569961920834228647117730046864405140271755272464044656826767172934942232529069344473725883037355445654695762960675839759540982478676199448093341705784412491206422089383074740888599066742133043516807809964002771490889919268300279056521926531108311610669516371201362879465032015148027796850733735316273746877416934300843891065210994908190055466954400019909891895566797976029040446971668681256692920314800032973286579865358897624339605271951756786198230284344481511508597798100142813824222983296225520695244894175181447202466514706180197051655317344312456432420699986546429182359014080463694906766345268994532061866348755751151701497097656457128373681319529962250618199025949877631501379418461240135133009336238705396565353547989319812332141198216154979126196918788339156695106463815036564793791588863826464850231011844607387919964297168300232463570056223549903015178474857082457823343214999333357817352208875385576538880603494464602241319835342027242581097803727060169312664461222838298015854231686038340941472119194406640062026152996369810237356986542197981945396271342915166836663147817691644097915773618993673208412770142484451872128822680206507178613729776704991770416167033422892576853613009987449351367594901136975616299294430578074653173967902191960347262019369085146073328995044679775591677254522468330941897158379068180397269597487210484415597135902460217951508393406240135945767256091747171201046773953007591365997353699414106191721312694777380910921688032888270104937486853028021036356315919799046138554042216275324845239787864405780711629449671270869105450591406893232985469169129047179601168754363582572114797005642898878177340034207384953146257178878808008583632356873760397294133659135718033063754016801537543941115194503947402506236547664166165790368978647928635529179605220310606581104504699241057390789343067298973853155130540005428085068358599859868080851539727051827976604337580469163849568955421283943253133807226181858461468531661541343922035810188585833228366886595403837004606729496319808537204110969417400448205977153800143497009247500592004794176499025727960578216964469080929870376818664744291459363296142542012224155852817684179062778170337587638949445212106482885151040365661844575369538871918399360011069870273861311253683441765043741793537000391704670886500085815684539478976789452552846226988721032166794314487759967857436463199999190500790446697128053222374847019583903509882204947946381914099996943270302060095807247867061966807069310406403064517646209959694394630524207377798634243775169109140156508843198098069811070085132045508624639595758174010209524188449579773699703215871943684427205112790398155143337097382291896071009449352920982618841975022581825688916440921618592707757839709370471363674606523340900774039703474069891008151975546583265491661954188567674950430388750313272564016818727219888012846384583528222499278378468365349425478901072470731929771045392223507191514192412113071686883643418857771788921614342550238662488985694309449423235526764451713315834099324937903085977772604437246409650918080417206795160818117888504373136571280998634919404727728482205420081721103839337727344462532541818078073262500690878765738987428166690941529132916232521935368158967544628371769508075685217290363014657263539185498991704094695809109652528527130351446727717106243821214532166169077366028105575660243606156520925317168247135368407812000434087564200591618322247443470482590089501325294606847059389939277437873191321970449306499936575978724811257394018583376532832933686986946546070782094903693484210466101985250843530125669197565084795704052754182942133743746065775956302386296498486406153703833435487327722120529060193218782593639217958255733267134082585800931770109650449239684052920423027665488618697795073262289552268655951375129646783645626816391969087174852505815647570783237181486274116737839997564909427782779772566188305162027068615315139269250382308356154222202896171379092062086924553789075278807169977961757803737322651451414838636241335697727601536928875370571822399975643646546783812751477266838165597166188800804687654911752006483911722620856272215758178138490662809351735821858409749880320047906395851326914418789889577542978022683967397478222015007179344751045519822975757063928717603142852774606687691975914749789043698635757292472620342251235668504271231781176586600401782998673636565244893229322148932456082741232368688453298164982260101898411553520778208814184900391453268301878691947585047781846625985223821944318716023218596802289637563772878658440397242897843386441446473875847346542583332583192350495254382291154064704751524436564388210421879426822266045292879272804754978948282300017476194445753505115080070595713597053512330440573370957764245881807767917469238205893082481564153492887314455755097075512197815017583264959023734409284787237365270006485070401596911573104639447010405782279903167983827653344077760676534950662693952663074311172179179930995718459379330452898967943601276754184357059261317989637443306550066982021415548050820393439222609359607956571774597616662246682420152116866039869791478489163219330691989868576077730187618489169650938366222966177176883246206390645288850616598937555451790616204570594035423146208287271682347416296188560942289376483296792035141946077772827568669689016616155219867565016480930135050976879956784912058428693410426814626611816919631219226077369553345573565655766268501860078432233375262925909571271621340879380857147287415764721439265636658007722249607078156066778020735271704501627977527120631025860212677315901872858144820761709073077231598327236469841136492532904858824178792236510987810421868621244963386083658418801418511458864840276333001158691522763666148790005343592770803926232154449929268775314541219574916278523457813798728476785847942973528711729246876364740149230208737304532485090662281670610908795030010172799808478614796874122168618367482336325027328427571788448852254231664481871331801979075897916757041258626398832507722743024695086541329559289338003386216248869141645115737088482183224642614484458114346474001706007898390099220642686999166089373705533476689878872793033311469047599857157295335764660354020155966068686696142706077267018947094691238713342116640586612934510939726747219391436586509924389214054130548467047583928391434163800593975309962783333383671351882740918605114337502908151526753065371718490406220637766033997145331734317574407579322228793023365858359638819825194432795712493373427528533356351169641819753827335872127899844759079113969296592251641294544492033508766919261779393470946457923156936314217147837430569770720466294319462205019313744830846711327066677292117460351632063190647519065349725671417435734602393793844798399891509240280304866381200529834099118490419223062825420690286641403677045032237713189037541175252353999424662556331865632484321202397840736264713242248143848565491910663604027839767113653439776732746599302243365185618636492213321425962112391776806141261754333622365752503824024879000117052229879107919840306428780099493999445529418475158731241907052580600706366939498860662827241013861553452586121160004969744825161299563106869776466849227514083613416297369538793204461763658307309679666660696411749769523977164869583544912411643529505473051537777711510645713890875105362878051506705403091093143474898331400463142399484976422138980145799109539947033946865328236795114701208725920710523209305660906959643332125611108098223841963417493904397402737678904814788650954902674834256270764310269279411668166046790271748616383539270369951694710674544654462321129457047288115771545372183861732367523147394510046820206080145927222558494879565146666763315399727994415862455845631063402383432599983102317826801184009956413322066637779790655379696048811069197188761379415438243152138058993130051021640722537035882472374879209964895970558224262644411761251054914821968486932474962129213635869915910567689880648720428754441504975845988421445473672515686291081286971272343997326027286818362345836312928390374481535597364068125581503436465983480276934710317567147598807668334967897622254125877013873714440042251840960069974158550498369921395943292661334379997675924386893583602637472115578976993300754804771186927542062759219530159070927590398163867944847649385227297601874257751251387188905948103209988213582081675040109660967090339821209080498964648164326493034514422010017108955181264725764433481445192293713203078652094188349260925202796265736570237997127165849839538628489098201465163403985147548851381738211138959124745526547057696578648337423176928223221421579798835985777978315670142921299228307350665606216126534242741659677137827774763149900984925540990449207247272297044893816012572643444497637217339332370461725265945434541708238178218289674552273204922448128731639039320368282616879793619399055196383454786019772225205705769420310749441856187756319427865888199384370675563091900851126720000896242352205748270115293984573203914908849545723020894162147357874365173872862260145583722410286380283237456761422245164708922162423766095322583370958783491749724886946731140123144185375326850498203246121838092867526628698354297659418998978730382390022536386825929863299882859925142482043226384377815186115322940337471706462792335528376760029997389797103457932448629176762381253096012222466246817983387862231130302681189526936031638542780114215358837467716027972778534789560594436428723433463969553736750457069308802899373253858384104381696338857308137052164753933142024388436947164204351284280841141793345205787790838271944360628804938317606132948840555798526362634129966498224352832604528051878435743530592066123336102495833056189769318425558146546904931530188176301643229054143678617928875981711231800743179389736619009828138798637391335757315928302247903057771398642089129483849844223452806734701365261328860412851886063688840207215880518981129898817213069655677353533786954949343648203756132655515600916800627838171068374686813065498114838012620563712759209172179082301046519736298551433777365243379484071409521004654674681990873244825413304536977356000354977219839567741952052621554493005593166664567005967937559131846140987904499726243439656054828962024029225355774368122483667312593193236275778551906282920918753252736567702979287145200029675196578797923424112618598105630788969214553371281783174443848293830887273598365167936072795679195987119245580601735687598971233550207958898143185511367841818951534630437408416019787053556842496865797111356268227130750444698350473744869529532336935723720805892807870023985082256945753668364400233117979184793492363492016364344555177801121394576854131076308257187602395495598925243889481270825536865133289420393426713312170322795495839384104579463785484317039702503723397977706759997281238864794461797147070314826307534201902008340069220455705796731451625234366539987664725446084289266422601855178615009901893247340550471063566845711857961119940326020188584087604626215477974546566456985822501762483270867521125412835070247951712100079339543880018875814357265668449995834694053211488128376231697927682543848858134933775135620069553107026042663231300293850015586417224971992563999857379949393749896881175335365788908591380706851507551981039767469343432686432885976813075617534096632555327672688711171253249320242812397574885409559625072050734659587651762057595146490218310733362832124340043990382453073206569652466009029396223681113659971755205145631769844840869365995673263033686623661661339723217665678371249856796869826782124966784774537506063565703903362128910633048652642120660391961896114203822197294437262661833494522952275767906171474703271290385690653255144748834814646107651596864310982890334437247971269372556881358404159708524538774829954070050164942792836606900443102443654440785454831436897908246406533932803153723475721921364949433012891263131470059494878961466489364719861505008374095818188342678800216103344711605752559057226228673721623944502048763698041778041634793376795508287565507168183813114801514697847520576989423364409119602917373897884678426370848164242193288350496329997441750376057604382689382106890727876673815120453581030038338053017859215962119472172743637900032628923228969473765945774107926344483426569670983368625339392791774681546193478221688355810510182259843305930937080808015925059580891572853436598198029588533964012827377896433318629139836920039598946999201291240238461537635727642116110388900170847726969458542637347941383509980670969872061712098484480129554134952281077122288647273686451285854219641544396926948486606511627408887272873093197912673508509981280670030864894510055060267898557824490210462105782618499527966043518603031959846250807462298478166741754211964299468898329107262374767941115936681673628843202946248796128334905286698135629524886115535190983867356218174593629532212087237820612504285618347321431541000299461390028219385494000576754220287503082213293485414947697665078604745000422317022474194121926748353323867228872474098293114769639122778228867157291194799423599519929883336193346490247112401466805418146872705036584080858641335886659268571048086310089429575904499572823292000553095208054635296959424085899478932381151217133425226111887592104701375408178792672627419292879097477028478699331632798760972857016947925089230607489801631780725083679793839153772794235145429560884105713169759815814977791018952473140482733254535451716278020423810423543122860011844613994698065675551160446695886571627711148193944023061129070099767756342459601454422620859497457293790944431001978593811136036257526714378215391224688862471672878461974132532297375429526278003883092924020057395391734097741858797178902133459381928009331851557597212652552368657166191093183579120994809425783652356211644246964906456761956585005876181848521834898937307052545770903887833583697949645343507101634225005823728231851551606880952145116372884434558219459138098533945022090221174120100517569511074517107691011360877793573312883552370575976174414207540931559479990663363489692265924353912311437329087758116826153762121708908678938402776858498104376463691527447667911958618672803144451761070261515400297044817719045026149952047223518387377768568903303896980334958214975906565958803624533749664567587324599020015792392376008755342890184574568133969123952771305301008327406330744607074222468593066176122994710416220623925843988214810819589584915906712213199407796846491147767501555852990230583141465754180963713832864644897804934398745682818119484884223290620974525049005489858062741206007697412650419441294520524585193005188395544186039870265515825173720545251369315713420761527064257328256498155424100601792057895995288134713599158434587973011609950760707449676873582071788143491452840632140068439940714534904992635257235136340007997864387400975104523322274629420661003137303561407221574130071980813383913390270765643436541674726725613156433732968419956918093973510847300878328403829300169978189268777811464292391309385088087920527585100198486341002265185741651614532837292846786433812608184544769024579145385943735850473788278532974178514205121908001749505559670918419392410657633722623032814283047865919908367534174084235704513330290989080580144067898440946122077161187913285782322344596517362641472497751927661704131544730011807385461980154220104687794923517466472489424049149229399551427600266844302549191497037750605756586311762922171565265738121061582736974401961774794981811131742009893497258282347891069825264044671862058337052290011846655996501012668748160724662448329022139377542351246121629881252543103169655601295149596439667893976779123190031618032872446613209109309282053197124747010302677910243719481688754843010033432739268669371940215549783022837541371268811412308609704110691590440820674365274319314187961783607404719278274447977498168133935278288164866854896118001772060401405148592660089245389120356358083822266265412676956491868696099676762341885645824504222558430166883984644875625256952833940437315429662307397634961679874167512414806988381932263103979018410885956161201340729165821236739013737636940835481933591142757562565613070625663557747379204367467723209843199559399646933395445592534946805042558733150832113793488547190015006950811785048677287293774692754784529896976215526274432593357413791090017337751514948714550944814961815635746640861458221400291771448133655233822659747050067238280219974521436066631704630167439304857739201622372514749730485076194405823137593187779333984641604250401625772666115299815221590008529624857379393345879291902291684232371346925110237093559540251742499703360689115504517720251202392848201691248769434256186936928190827345534922972233425868732285277577452519516546523735535143495888137269148423981141218816460319282429536125405439737518099320085104645151594634226701898880640482701927675778123459918096593905228404653675682314908567939862253708140535151157048809075483473261321669932136741036983427251774836142389904223992978523562039809889936041369624254892804210348081480041171696741231372428808575570916092892600306452790730798940387703218020014753918790086240254962319482886592328039079131537926130272057549961515023474075360247146608532146875799132438348573202779573083101183126607544719577497983846031238889979606978462303913980261848057992019731363920724594780809344865676425948654632273078078592062030447808154021294350661834167238164650153901539564193088099447809774943997436578756715776591859906045842682686685643581862100781831859422358698418929671107436566092613652691458698126158883134890943503242841752861812706006501424342004735299133821943774067072639177105715848288333479639605287413004909872854406504734511077282011342471138584349387427810977180915209028420439515770311283555499355548626125876237384125164412126984955713204387104037058775489030899283559112063306936036502203219578324357426271010581618899743111792252966080668329374978072192311374566164833924276049661138129043406625706829872056218081029585983390201040092435162234676257654152026618913477668005053374023266520480310418568568537824779472288832029136377899029557619220937176791763943852216094013698123196614557050880795504701401590377055667735680065202623848559863767593759718883290478347967698997726824647894571798249498339666907436527595418590852506952193381122609117555525552238761706741252697828836888775477480758659377062537311303120328300213363616403016297611815306301515317766604565590368986921058340919528552328613341353288822371746637188363229623098196436166170749678866620843125736817312732880164673097637212372435655297853621936831149674253053073468081762024942417155129928558195541482062749422856520760111901557787290731107492975898371061706707047389361070477418371562745205753621739415308773815944643697670736941143471883793870995970167289063907616271435406963551565690817605408991393415472749057505925568468345900366773403648611629730006110937776249061064980117125413804957349155046480841145624882258113790886130371155112654469810458798679901971740334317650079709383440098496390493115429479542530553350344642621803663288500225051341668950999127761245378082236282893227347540859903688004838361158728456133666161582537124681454338785872304739015790751496316409820485965591172852671970762624621376446433240472883885575345263456544979701182572735920284497529356325120851012606170044401202021538505385058451656289049477222018241706912241308085142914798792824848092781259573269280787817918399743629994614048673160548846679006886533014656799866170822005680001054492110389037783125367466316461292461917351096749315874280704960601520044711937235906826111504338756425903017746791392099746492297332140827103006875871591916837469292296167561739987993648351122116630931000673160942298908948494908181190793936790761333493178762787712512499731376245758856863493709560312683033376788526701414844452566253997606994190437864157297827527187504133143655599760833748204564219942304699763023477960157710199874736948267168611123270720527205588052629587614962908693925562926741504697322150448862443600027164026755362345261482941172868232010175236177246909115517032504019088822676098483727987608030710268344767979951284529589769429094413077818764964715941564476377152951266590529524538691767704555371612268970352900726028053534651236293633773383485868057812709988380782575212819600929426738132479973856017566583481454044863922457825000030083818350060292950294905790403808727107031706168349596985213259099086742403801713169356248125101317547923696347189574199012506538384215162977730030004477610953598850872297726840932621247524409380132377481875799551512225521904914937541181095432593041107554604777470819611036568087896669517478711013840367221993890862612330651925507802496272512042486236708633557796871339390621264986330734966665054166221855315135245153373076178091605391518804862842154499319780427845216033601207677967057151997934506946116453897859612213476353511741608150571797061046402640679551279343955919596920587856618740450847799710977988170051871222440185689917011899215774698631687270934490518683226414014593340957456114528067439877601968740527130609068585990629877981822180078144822405632246378246245635565885213227477256831071462372885220130212709706949195676978728540373917205326302360800731817937283572440663019980309875322985777009034271193048730856264369309172475011003088410190993201851623814275684095969552956260392601078118853019907025492079992557435060549931934639477558898674381031461034214575876790592032542732051332376209654797545294994066643227743087503972597910093090912540615384539654815418072755904072894706056732222135952899534891622521347960030034534119140944679971233502782843081068405926902767357644918540156981148035662100669677506210732155731484884494417252112279707697031053951148361167106448975130509461825984571916452553166260938159043836251560299877037518189898097863164137367662542750743345464868858871499335107231189648751096309489019561927188336723155832782393665058180108844239603296526767491838408750076202645965586672627577096522069047004522548059422820684165171121479754475221125811993020036776798213584282667678544997933211883226171428786765612766726688420908847436326062759476235952823939109363459285590255060608249993112849955555797086861947091549207193780441487469981182086222921058865819283756475136345050096710830277651908196510752299265108589455834314567692011825562495166823314218462507881553176313592176016174418433158292071806206590952869821069264689191706906770063788852550430484691438751399903565909029220118222685278589167184274218520396394192491987135470133256131793177834657790654518175500674568133906418269446229440315350266207465204717727123546118523109409685442723834161090324748691888206836943890491861685180632347368776876670262541322928557701698798584766551322013643610344998528291391406875306796483833695649323990637062442419927325662929345779693077604252866228745493362421879561585994111782531097850277653734397878179382540918082037245335652205158448247713879743681278254869828635681772598707094201035282630181531540368732804253295124093274453765415619838210697117084920792597120906370176708406814396165978617738901047483248816483130486211252732504677858350151739319472200199969312710186415609505879597543784479445809629207098185840575560778504340093088954026193385543563063943672752766670293037990050862709464411668094027860060939439605814304348747929025836308094997283219126134147526874742721721901047799351890538808638180950695142100461370667479991921394224134917377341785631504282583039639514865294343004796289884158584288719697703523594510583506376115141890123958977694155572020683490288132630242254983391431641564575174750924551363642845426527844131310455296025624985195460452703135145135397254214817131479089929523741709165162886324301719890037368026770798049445187555554874831297951491520236210783034321650914073255191550745637201495458714307440011636084114966390623458003888552089120876750651740577331191337211707022545638883117390965339576768595075348965955723594049252050410575707466265689259251240092625617495989974551514862524994754137817051816047469796533413912941712285602478468676939490216142568312125098254104681960641879262193803424312998553497692713941682102196385756794713612294986934711363342001045930698426881480922724891287238616976173629747741981358677805251801862809820574738865745845117559508770519752654859625080327012586547892872555565544669295961427417761701761974029645392850849603812666181250577984306632990660434604875828528216405169467915589848192849330630348785688644002544846642221725149921826035172718009704805123935237213569301259927386196339437695759585026905728297588392948209902620786754731230236274354259410692193885626482243787582701953221160243799366589434677474602644288554746477081555485310670245562819821504842895334930752991361725029554287164771418574114175134773153339812838755681279938678059650203716312078220160802772126619097868382633013213772147663292843591202802039459084357206745913934468248099549947429918069530365689472840141926161822832865771607453752741343300805179565811976961347907963741912005064960669646255790586840580001273204351786528625398149490103311512432831866179915689880476085091947915540908433561958533317639254856145095579771523669854549346028637611925438948010979541081896480755051325040134588543377007159015174941593249530455890424467262874500405532574271002946323433637843596538467308883431982536508031521336836878289797775568265647688550258641030216838755883573314878949239254523392778283307017798138961519630253108616027681207909394307403999154461610969254951113606328576110889594020099258676905126201600139218608651966307150585297966307779442159938081946211984790995930118516777490194643678774989201965623595672128469866758461559241231496997565574528520637442975370003313486752510617280963504466123391742168946079086203579176766543148446358618236744785180368569302120110969389845259455833246132663904421647745439987299053733243982887043198859791196734914855977397749051192169668853653957240639956065717053930529315674416407810617918900092661331408589108420660552324258432275172362529923222041276788443427266829076395998294888699940221449007242650091911326787686894108623773617972661265532110711922353468687022231488674371970556790989579333064972705486178944401907294743498334489558169072839707394789308652715110906797821614287458124182628589638399251280543705418255370477665599153670853799535501091073740271915070479808630372357783975947595505540752864131464281928490267176034272718155281584618881580626569369729479181876150694026029291854200584434041610489824899367697835756443231675482333968714274160137918223453012673059608064356245801452503427951808194962226461663002485177138074361714144505589990422903427434460688603168674718295899900511661710399671868091562235536114439177393918690695025523130439072435985176256763643221541288518558949098321058893499513701056276750038476685247350320335167231643830961095370156675281557738924927799201268174077537900871622579077482101905112626712676788123348668429360888255828273616161303389457496293645459133050227190317405515635940679409463333338626072100668414697134825797852043415777785940688156744570701805311911847360809738155775577500156956852318393942344758643028311729346713209176167375751465547475319708589449382677883080807007388175411782008460832659099194932518849541338981836103271350033268187310463864093389229337613805536461064958977997994389300957430722361100441358873149865997270786589707574252947914182751185956283451933312784379970960606702604897788106607695197409138602886007798899584692306229895923121855804073705253817314855465565402009657252359316263705814461274152243314024978773642556505231171157347762256450405383068381311706781844936096764197207591516858580960180320012379886039578415931656181828283629272298725292783928429300112016846742730282411646686936105204463988232076040850779631011764159895359955148160528867547950696827991723444822191536021146485692381487475355588218964601771921794375957122972364153695092813639474749703142187278374945409531585189651080836177484533516772555762327472906584820788157166730098152519580170359703394005108959202494464917997403896472675289294093108715677149778265638558023296252243131829213406498426647229579642159662290827200044437160675313446171528765239626535345793802977337356325075772018988971863341996143079643266312566026689073442882180028607372589775509647269090537812750776504814047312900613759995926731626329335562120384998141643832212219311847469365432426940847601346364953407233408011036518318242890881571147838981680548841775149933404457249696100328960473418213281584165277597204518398191460223986450535670935661346512949154582331975617947586263982475559846729029207188390952359313352791346273587915713300332701979302489450567091196547028654770048722740688697009637884269069572570940463442727316539102053777870206546543442521116169398593207899791248010235679920953193119602742575933115829552437265172523077782870795230485119800652934531333963099558031123767012939430693808519895793118137379160372591560701518766018842145984543986908844316961131194011163531085401832570490354716801675685438291493533234250896702208538304218934954708980894482456496522567303038306352571658932078043576707216512556320851829411227660260917169388070675625560084413458107313953169018510911037449579525980739095619259199368514155873044587691820843663636828177058825719174097969582260602239180142523818399587434862231166576998754949082813026691127006850142790766252754772376104068672599736390622427358764724778539845884669497573528763963381519470411381704560445081756372706971712316167624551261850194009713305714021288668540836573053611379413975385397411664026163627083038859530693125004798488425791182819376863148864846668348124963003086538413630854560633283123204991004835593017428420695151603473423927859010345249822333458274194222826373013380288503441122204230593278563147940289935675566141184802759950375415992764782424416621603479969297166775084878374965811028414231446649719531233202841117520801832124603798471334681091470028162735595720192627111031840564741515201260778806582880736483370017393087476767770512738684287156639732683766384627414029420122137979639367219213499706985879318820083117608262081855610435023348441678913723826070053108636184354917319016423601068779278232008429785561561441996284592534360480663583824537059076925688002011580168546680299196091595144319391952413826285553362167433325932277043231201238618684939529414042472760897655633786268100526089635398293621265822036925066841542752230864850929439928181931848032063310453311398560920769751170616782549361757700259254534393213666514257412901491817526260379666750149542659543742549790004838779558284076650583553420768900636023605523485457943542161065047060842943300107630767401054203528673330792583913895802480241277771042415109446557398944270419499386488585213941443058700193925814119894599221144597171482636289181547050090152585805708676555227458827238057846757276242955054003736188155182603036526813842435072153347460661185642725969987970181955102939385113075461940895498773683556634704717231479793411311944672414055919874596209281318045442409089063719507926132422902116306909088259601728982758342481747627944835254446928972079118080759529381092127502243015935914775326868743792150586655153264711373059425848020397632299435093746945059034672499436687716815052364901907066203353869371840728797560060393900197089969540039015919948723331817906008655348377226012586852671894524718635427201764846405630391339287573332988737810076108079076429959167151490807313674798737019608737951413868274512935416757012887218309513584005725225141294927955472922754078899441153681017936450177581539473093304630380729468870442836831187192416892001883346753021369442203058421691187007582077408711188574946158129940367395530189775880182592727229171878876995490885574255109772314552176014651705426955583114635825681426286395148813007479206982226809226969108946970186568449027704831299391895456498781944492853376446604990988448077231984277279408409749304807365775788343565298367571284476874435440940064278526735611105498047360181627131992982250814278570423457980775691476501284463202395530098829469946305488129205779193992208872482659891410290456240245691125124813748417856655520432800507369562103189201273941570678232919843773647460680298074915075022693853244229193389686431014664430375898547821363614428484688669221375235669085509252004986091999966962519205535745611425559265062825496499640315802306789525453915747182449396446025627942940638880238698629353192686175307788005829270904509671756241012006326191832217691851251061542423868384471254166795663741743735592314216253872537624863584252197650428930993819131245836484960088077773314485939131469928809950259788783766022610623712065110943675844576197288037647910010444767326101574061712854762482539609508779620126568039566010868783051679050869589959257856981403699887865130686668559497119099329977519326426137999248708644258441556806566612286376925837871430484634950417952799512849177192386180702804745052595584212045137684358438592646100588917240978011405497884314286556917528931984471076230134229969511206010607676991750621610624040017867170000950747872744865960555794558461954517581149913065048846110675552120698789713786013905387387913765784815455243677326377639500907961019714956155514380073656352757678328554926815430422984951638550200178948459227841206135458663079072310412972952245708217719963997092472689633413334463053972450924786978167085413826834591993439563913177639398575000413156815723356946425456004146172454016512982317426929276956424568039685903284119051665830726849229567357234802520261947115451130880750621591599223387486474034601403168540293663915600774867184539439299148678212485918317791974514941976192106229199578660999081607806236088798912324925543468585188826772954645924886164956280446189992220339283333318247595106172356887083181795231548353567771780143500631085240771682178360975194487062090103221397760320763207173040106947301931874677112048687216563663160381284728422789767663366733261751766200733147277780615089682709843535228312393274974016916790579901823944441430823830472509716431857530842455035482727855811163424922871433510519318154113001546390037173003487442884943270439035858527137162444074402797785694741623661639581614654264474521061735614188507018808396359911690658803266646974870696162587908316573935545253740526541192499765479698277025778342089071131717576205416008103683720939635366238285611757665753270196624442735498183397517874372907168686817472593773709215453036997150127161880430352556491933450438766518469204071332669080072503964633993795966132033682238037937948245725735649160798535479683287678913561127142210718926857004535810762520546795969106856528832716341172915913965738983912373427882644923963447330860280089839470965885986526235357132680656654105872663839142998248556427270578789693521323099380952887570986059988901166680947795940958868705264546210787975839148208156805019176363744926186933165259975467300469593045362426940840215053946771483864022014886466694498898880980054638283119634239157598894114513422851895892964028227679590313769273243029353567325642935551954882443666397163776801830108993621479567888170176983832431666143390663405036329789379248761266497336565092668063130406941083903691359125293573095769705471079168243954108873240284345162212728459437649060684853887478992665010567489221552053015167417317550449204069341374184027906457445608980657726607427379020074091256750410873744471880269344963251860221525425731204026658252419098889825847727215240334118646808901214993670884349550810438692911044458963112112142336862226927066390465874191249215847355004695096875524830148004760111041631426900838658623078103396092406798086046423467457760201167877784882293474292752698997203220474061827613682357282843196034580826527796311097584005586043482092158765072672281652559411040779362709848272410206653129979885949201221789359463139486524280267536071164909145121728593724776111418759574201280611620384614334802044832567241703434179702658280159477918272055679983833449767051383977605961209370900343220127805958713119405803345689642027873886987315055379451445942618496287374186004664109922790629325815786707153350859175300195339871115326580042936351143373001857681497173865295973441809952420394045660641965761337138425551149639835399814867765770082437398631983287791406380933502309794391516114603013011895585897179460628175352035274839344830393118258538199968003058733928109573862088877202317843534746361685259630306488432025192214358728952425458009681938424333872451802519345253548877280300599704621241961961847009617577045439262033473589000699733764853384836290225192611995941165470081830463312658496808704905118040416871720273173320026713140145983958668202300803103066439740162311819384303531739832606318503624487693786693301090431946988758390120980315395234441540510449330799408230848036112702803403301238137623334805142304337697608803949450646553172411527783104626069766686800044134508958134044403010583049881416914393154982024638486425954125069785387422750319306800238100704721678760166641617516761430437719688189832618239988862896103728826024759345226686072015409592959810577782914314545897394467550714827739528883773905267587292720685483867673107738083797404345232127063355780109326523775998374392081778947409450863458737790776269062125303301847165994367139710975363419356083931695583188524164153060566429897172043248590929689116851264752354745123650360219611534307975603514478042428904527631006482505113607516115763221765594701531307731266309735264339679904490706086668693954674301810543352352971890552933108461193469054204528899332787394275803013113959948185399415015077334654431820488362509814519760944343266901688313655511247858529315300712393167093989011786900158473858736738170093070900326208370261315352734974327735342600178895652789712683124985514121388525069269433118177363287417181685176859874114093952677123785259699468002934430264438296054559998531595003261220307742107749280242230832331333689178764201118119812974929885602923300967988213731915900715971064216347648078349410690750881862957846539071486223650684903451148238223621789764064312692060086651411092829067795213008058639288085433985699442298972129837370337266404409875918729847002948849803846835029283850032329360530459987748819337168781347489290008739983970766235665259645623926317385876104650582755028068278504491441086834603735688805550219333087929345815093559898740898216220430096772450531932945620391740860127649507645211654505731717661945905094168022454471967392265942951781024318452820316949982064830939467240351380163070879955418077212917155175695240971919706886604620123659108824529926532031510492244949745949204208160490318264590808147726830557026531095458314744395125858085521490389537946364702668607408605528866418142768197413578820688793243730388465183454756656480352753872983881141448308474840307779266032002780288396456899080140625583925896356226734073862598108988077864279392763526023932160026839758544332962512925558629660852685834136720256494452812289211067923202987459031809252331209719239746322312298092645655382746688146240388941547139794447728641627974749221980638487250981733927531230563005732207818509087572455759006107616190156218563882463360227932578416845108635977725321222686859355595108994337598662624007149096697251936029437101399924952291918868913401133984861959298316229173696061169784875261548378393682971264540574606094882294819491030908825983969922164372289417437487380660735587169682072499762403963293947906051478691711765451850310645747902661188290679391955827405874629222074951975403755834372750983943158117752774630591294651277675424989681771055547591413396305990386804215449458101599598783347817923425669562360844835083417539771889282500253167343477677911247473460889065134796480386729039118506046672373275688936858000525122203964410461172767442461620568304568751873016672488845470862803843765675779175629065519085019474243903460485555423213508248984487362918103810825173852662486809917160355448033933305184613737167273562086986531625061242541539315897534584833414319044710155955621506988974165083733174508276887342839842428389454498206757846398615029847990246522832930227725965021122250506053993649997356410710124352562463130481183795873739715724113544796353011235748418819846622673982580101073021546970365634341374304385205631465465934587834098148824426260725103752734807235931713030041852648242906269950927724328545553326394242598363601644072268585303101124412207832604290553076231843181039361770556782723809489821543861507867911300631888983547046105199535664897227110398872107179331915026203204642758981024800654823477355971942080226364580972779339119568830539811018990636112771526680464605866863209443377045337878781312461586626742196668811909159238499908802230811969885812779434330865519862873526450672717676914844056416952659398412227783436079898274886145284972420043719222572708246864025408195131656038506029892743190675750662678554114093789176003845271670725724433711121956842139515924293207653625240846082576305446795087470360642441582865891161334645673729623793321677718359363982822373844398502141412291818354570071743913973086365756377219487247131461861736652435794480634002179034950926757446822396487186462956076826603904376228498215395503449999928039478538072755537242491438955392962552102377386185575165203059602712208123142398289663607680890789449672318266513803655583979955340226463068841070922493878096400169932570190125041353581476966752262086515194874118233626844276790426076820613284334675304213835409844021325917396613781035640553660416815761690889128612686885230231449600293228738508877115152757919761842866757879367657918687628792415750935270209804935461116056098674847712063858219250468923543061142008298190843994590616895892675017901989986820402727445815423327219050782239765925247281840774636860053473932292674650963230646597238476002018994806281449207777767966416696352792127337791364231258991414150849256104059719286058417676865030673808548675888222251576353994369118410071654248920928767771239331092885888082838562219950961332074994080237804125225123140879328581480479976974447885027546041863489792041224909016008967400247890292470489672610106370913528496647605094161322512165932923355526518660407029793803217625007563208381547684132422713874998277503186179181679924252869833673257045957334824280884879509367096738903904601170850681391876921619805398790915506034540730567996897226017068832765792170117283110843615725326861058855003514167733937305831580748140091412522579299107230446499256917749886642232252897560372487307087151046910200443873680174292493253268623425936971486753129097433311759294743697770997577705976888330829110497720426767484703941325776362067079523700732143950702184758784200969616188998382969389149444261551908928765410898686641167449867019470490854546066194210131343878013138144958270111789981322050685916697174350175170756752456877482337468946820975665207596016651008160357063832368406299597447448178896032819359964863518557583321481883442791408099390108635409892526628305752584764014065327452652664569451979984748087483835038849965495890373237305305742260724357636711556667470619509257936108936977358969194176554616806150269557592980703034328771740839003754638113576271916734764833541144730043903130966504260189473422035187544597751723192303210929475296952053297259172752411475262875180979347006555624666573848600309344981413039827890930404121418870384480132888501567995505340965316137962615700924126565127670585868170278117123888248553247619760662943080915587361948780426377525416777921595678285815380770683969530843879556551601994120237661565317927451772058563931036040617002995078064984481929134312961648435627281743209085090681993924814273953258989593916764061320296985206130869605294925464474430981108949116310534193941040133930339597260092780479478357880158610912682148814692732520062500510240593094946335405107935383005119411647424974722970237457780314998437209308827225994308097558810188812124903022956921431982352470040786195618109079948063044688046643050785151957718114693178067316857825909003988393439315570637322961205963577025304449053104390285331463574244033698432715890646087840463869608314142275399075474929646214597531984506841621398372522701659830013068516339879888501810532912052352463992475019433035467140204525151026556951459702436908778991497415469186574918155742115747556332507367763083801374641763599801200498391505367772490542173012293905947891887831129463952335717442121208145596032005852753164615589596996668677279455607335642274428182930344144140575051419165979154452232356903353363381175439893415234450395317577583382522187699969139626197061035066057298295844763225062231916537193380903722627996100184031865849597297931787596214200397030768985027993042595198640838022627857730930820867372994507892971040383174913493570873389033992669952432310362621303347885337254063573004944154890861548559506534816304445540920699829427698900606426247512219101057135087752748595262009130001494551918169926084252394257562574029142778156606596727661881228018320713164615666059100805971131783624765221569759688411622948468500704086399021624908921114235797544936806468241188725055630388821106545726477798041499598223403828824342150688933573974266244304153268914723203542185722691489769067885233194035672793324375015930409034571679363134194488615530416448351268334147594838543835439609401451134412271413164849993291999913445741275535170052521721604291749628784350156011069647018694481852111792695988890515973387039322515312632302252254631926972312234355934168695005597741504295263395765854286150123343302985413754694239305812013838595682488823753844776199839449001084652795456476077394840547065619919152705030401230013871858530559731632603699803847963516003383824122963883261756698818256920224012434611412275238752350052616692977116672073375583703882471598179636934757561716567127075135417931434469675124866776999212388499710061752179848521653992274621373173059051545834892680585103445364788865242097160666890889360820435935126628493154819144242909854375815974746992201994355772222646853141226043612149851709798714050413420944522365986946656697106614168985041052797430649573799225922838313798968176078270959140288126987938073048718091802262889541234176376570305014067815760978111668044573076713730072299887878283814409199894286430912156267211715875094295803123901096134787441790566463753264816769313419730263938236304019932960099410427531209605242102429145654260478322427168111020945416771470643286481248005958249169321921753786159933186730209121220639961781250477605574906053078411688462972831922286622046973761572376271716792298360380292695362514242654555714475989966654422052791542937818532454786691631616991236270672649451216753106883013130425123214591254094398415795511911739861793763023121438270924534044281732169710952139327405044597073628442081058597859107711752826604920519017725747174615928892924070730106591290967482892707878727687629347559365788373406472568074071996053239354074973674242597165774669411198875291207041885627925049491521271571186884514473311360287699619224671876349127175021082460688765497270654412300962751258131387147046112179449380891955513224802003291529916139004025651627844598680323217019633208281675148424417922581235373267061185559429353369235361226247038044498527379254641461133365966596182590821353061665474610453109578162632449118948405202764625874513334835677655770728545157588227379091227044730033547009005974427195878465444892858529171189880025157103222807229956545034563038237638836606265993859499020235226564395450343967602426511405087187074369150212395067283241433564326285544614831736413320850803840046946867619019513785255442063772026827282754587496377783205293793917133688596072411519269009638533151229872244127591608141557540926105711080848514842829459155408778201715154158732942102779228158484727621128170072151968896367872192829839139379997067878672852212696570046375557882021154440317612265862677342435408838687973203786577653149422944699198503660246890455442737184324963858277471261260968808209879622138723159613541798687837682603469982695789569341836471169505183776424507627237659818906059227750016529409558212927840224979119100026759437807880799914725555201059318799142320301834396854224721486249060413297198226360047778385758904275679943681443680489561214182871869491760367479582201261466568228218722244581514619797733334770123463232588530513931885768854262052902809519811837746792044708204893624746003915982985552358887556536663820059713958053484911225450867480102664023010078182891908073731434665009672332492848401521099886319060764065977039009233111986130773781593130661868607653450683501718112839221666265364192576097420514944234280463493378519069009448325666229574551721383804257030834092349399427437640192960488991098052040244332873094744978643403498976768951836506165019910133945173790306588003855234300167346515653508530271534966784225460317606186403835537039155313758551486380770689158491062829331895291501579075594257668827094127725155048623650078130273971182340529329416094181464243279619142925635443307381238912623753564935886877355747316224409143819106403641009720567353395863161326352726791522248197028815182860147480795531448860610550784325451490856782987133404517647767103488863488680842620737641302708109784454069876101428214460038298400817938560217603182599731973417144149535189268131029722774652375530138851696429068273020430261167817814388711438213104450661447706783931365998318654893396753744628800487051452147154911626800688310233057361233104199136709290798265306864464979406505580219665317697194381126303813658800956352705287901549756799332366454508039152476759834553102352605973820052678208677420689458501351590074244872489015056983380432454486205828834552519628846203768626330775331609058965771099494867154017295964960341900891725334053039445385325909735407499855406320703046979675007214674966793837366076942146258645941509627475605773673767000971176988701214517890279789795769147219257551701238099678034606260759961939171241048906862023970941436038753173979988318523983563975434753900409420340918061870969000404852812433218427707771002262019680116368592503599361771339833557669526876286388687773801266979054218876444850252608301812101825779157346555338361690708585913481475381061773790174460136936797688066782620509937625875078712541024334115789670904954850328314872655105979216349790371577732513699249001398346126717785565312577077252871208903011967122770096187374107245361439568307320584077618969045765279411331319794657925977953269366950901060030159476903511639626988533866872102831695870632758487301659646580703691372983929639391097727374019299996486347211222725996388009768674753099313262805164855857970202905677825525364826271900876318344326393639610581404874807324898708065297921077884429904331721089624471035833877951521181698243290363322665328106020878533095937549428633154003161884249276484960795160773707357878724893403885477433878898856765229627187549875360536860087454644346131526426768780983154896854491598870524114884554816988964153740862027396915133548433616293091735391107662362682909179892640666185542461996674470052617197224692997280717867218500956936350275954174721933051126564337395860476570942026446948364360231160040386203320770871555252065839485356386945866645399785237964676248486649752856184052374414819992750510456823979525776142894763315219801295380731981723769572043183065198375700470122767534205416934700551540923423911625935391800312901924707040069624476763436642779759791645021731179287390248338172767766555003301878030755399485528663694792154808126339176148455814804765894603010561521644709389183409873990983853486192389248281379791194715575557729320833545522757740215604692526993805016543524463848935557454491392968265617132452944637871886378662500610955393664773167086777312806043183929019521159003840017200643609572590107382494613532419703142086082311244715210385044599058596238399258691337374523936253435567855727345390977506258080276322373280376784376084851379439392501366163865893085826198546092067092731652708904455212448849940827719778679975821812174432555927761789005504859538605498654038019264555600486593111135218617607376840857337429895264473124519459560048813411992983706500188305544201415123690549633370176130980290394463090030812676614379072223991822781757117567552973068959252658522313599747271551399138795609476410264732118353283121457019610988011054012228753949477636485988875324505469037806884051523015840144433622665717585446590736001157009363219102588795265595097855265610786393768165658568070225097701679101802679382871086733597932308970593512942128402054594846566046347890042610704283770564915766177786868886760036750180171858138140111699657920622884723485814295029693144193510724571093208171690408743152415128877977220794396943714633510011339868127907904794231818453875006004185643631109097619527892522411924946371340780136400994881125011952545945354607196653340305927977559028977249725412364511609690108590704745392411690588614677142295023351960952124311434997096529849563828552754143743772834126102619326462986054839270827082107652366602652452841298781786901112318541218656303039414735904230908290084919219818515356286015472173892605832272666079682295292711907705630214249582613798242773515792350379907529018286671857161416647661153481804744288493852090891773051062394997501152477749954169346704497436644984975990311358742584354871700039460012144206060731671269152260788106554163838812556694423367661812993224638797783544598259934063629161082772589705350353679086854377684730340646708421779622774269056828474403145239428397861644765188999131225231911192421177199747610553240287335836283121810654033921211998704795411723015603115825939210013757227205691652944085297937052269295583228017402976368790975029792870092009141656708652577700470246911315655817870012351673018170022200957850978660550929047264478603572587380447450116860186150397325329416474992658478808417773509486357430392228800328141065154749433608794290548027405659717557867981049783497660735287812389290219911479522363221589292747058930364613617347015065457378894845145803420516616356688086116320673506143161368129022380754193348725454031940482350776926849804956572310719321572107714543144167287813767226772926713215980470474983808068062761130939280900459776797285512363894640133268496484386673233642989414005820877389380550380750077690320776615783449048603268726419455760771616561275110011422490697370837324694141111609748421585056990743420619715916544719180004055961248140290642996622849288751056517932258214873934637435656184528578321534302155942519795790351202929175339188756151986413402546560441715240028839372014257394072412103854423193767550360984399556348767691227738152045062634020568063048215990269640260130381224731114738752378077940354728477520578014118581876076566930138771312048451265047525288909185681854919928164307169719490313932473580306799678101308606252382537545073319120035172551501406227280213105790773768361275515593916620996853184541088796365358321231959430249011977141762448663373751149970509727600079251238798177730400182170327604562994401039017479267996672401406990830476534926552711821558512776072758980174330126619069018210566926467047091733345221501559360361505161150047883436352682888406644350997951080208344220860257828437081761693101848171566035786879295813860746968039339873154585695939805105280125841927566802449601840649665611263515091112690877265873759360567561868955432679288058356809717048474541084977580078909283507240862511280400124386630260929461706206696365823120091911923705122329289450347395664568066960210673258928108408454748445831699368794262853094775161511486758976038663990603339824720322811470053902425785735038402361628265851337877345124236791274462295467981047465353847450116465388968649405963509944383999120932825602925698729666544857094858290451526833937526676362912159069556167286023438650977739116715383220155217856746760972471999226587686811861459360383703794894240079275380529969814723802348816779799831854974696356343236496285455030132440104347640417267660941690737623154324148392167869420910904464494658665884485876678161886559487138956186146792545654787306994453405970243952081949188141026489732019021747881070995073637254043918184367526547172262073424556773156875309059560002382677730895231887602213759274986645347544296557744794151430319775426328499384309253848575605971465690991958432021851027957105928408441121315708057973771708770600209298359063291504904456641361363954079404283351903300161677692270860418857440373007378046911322554226613231641480562523483040847182976384234509249675316035013078790587218642169970407365751677625953976488240920447117806548862535950676262169418665518892880081828064462265061704270564370787782342539384875480914973784941965494523053646848842925752350614108558608764325773727595709554567555536223462090793524421722241336867213731054231955555231822318098358584557424652718714001001884016208387698359959278603562919931687765493043616571590712117503914815886511732298861814603312792681322407970031340838894228110033400076965374465490229166996224894149603666925045040083252520310745954091293261349570002584189397829670164389985795443990828571637571075803636012698591514203803887413903983055111502868460044318166939716079863173030619550444318687071924725756315917432269921023506268446552376007451544828784791663968440254821313385669666907861865501182243485600181771893163960301011673489128925071282228368958033017138661053308045793377508018508347121429684897812533544626215196141779014823806650673865677612137898530376888100098642119699976204864120988603423894660916520414691265313583000777955117134180555766278433884444425839898220362354241272075415512266487829308346231229331192038288682446535266557042316272195328284292343660837000612513174008155769196267263713136729172382698032144999564732349893740810691838938562044679856411748767079719767669758882328945716964748544180350631727302541510464775223673543694170255018723377721375380276274756397484034850253358455222252847272385457772948158426315279786967377543007108819804993332280458786295411999085775739661996673664679480839245844040192078753262803047335286798557779891261426257709848982087553886984822816790891098417041598204942278568675402967285589021704705815293437052070309005375615321243016415886700423956692354177601462649452738056680899956318567090370492068451187994500703196272742432616771802889234311579152061004802439677482735056175887870731464565621397685686161874954249799306530943181732701644978074309953212076166513875935092328313348288412929989467717857767659423754535402545572500310081397818390905250759755180084134984366943907583413488245175598484150058338212023822260990356237995508875617009900781254127016837208615267418593095139067385952106703458911556956837724958190903569201941319743235208620389061494959625271981071078578610277993722913856604344015393973253024884405929140496361209631392891810154023596586183066963100389925755681250110348812046241217524896695251272593903711537771629895616141313724508193122494358762086373886846063984307002444443865310404385555576081735107842150394478356247159725298467298515942638064347650315706436091201867204822194720699789919077139241580915477283393030903269314974442626137748976233306431412253876951372534978731886743359917765730069440463704358417410404064223013158993542712430926008986025525977937163149989001290367830005979969884694255847085969724281425921815582862044399721641837498498878961636208366591059238671041585754122799710155989705129530947901200207167639910770265149865140665808602569987251443845084162940264807030608051395289327526420560739995602283580146510427486596304263302266830546987698062340176295626643302254711490507431144035727116693888143117549022639859545874784082800179662047276210525548650418072281670921448243296895143711820520808066551920331510491307471702838309607063780245589589536192847375423746230589868423346351379255173628997095630590896839558665627550696914936809434283113556473333868542887599992077716739065238947911867696797165664344905240471004242908704803351836110837132027932504938475510692518645400452549822638788977416839895743426284241122495981809154390814372576288614344940832828323633533323904012240103431451446642259262335060063605340859020624276570325112578559912951305725778711846063258988735169802447432954165847446469244089159625656213117466818005116896592219609792952808200754159324224244972623680457872546928367238146520113282645779337165481410066844860148676028466463364060697677919989866059738470430135124520889642880264978884159296434262115926318065390830973044585424083491137938929537584542209824406669940941652125911974428694838639921660196662809760051443054787930384441029221686259795969292530514148892556099426691649957914786518271625439386490930633078584525367008005660227898568322438137690478702889748880538147971064966728740817445218556110823423212166011676681770224488956588102741927951492040713680838289563920580887114877064769312656949088416234770852586707216308115217997393313391201964345041384892965021980584619503446406692759457371874916315275405187455055989969008359825911322153651887109812527912703652108474209801346461296977384737805209233428927227351006793038171921760587595926832074048824061459082389138125489716479037754843806028270445635541220252147371916898467230741924610468533363106991278185079521269390525950825279357464736874299203438846248666791524218769387049678066234834208041968265984318395702782388661429819831463610091309031617673422998839104795679577410648974631962042186624211334861957185868722984366394280505946796197763387108954458294939835076482988330780107879151839094759383857035725906330256206187194640823612511959475050442061086528313991298032761319925578086777075841883252546076861644031083611646065433208686525687207900894718094356112471480332647968333477092451343401850225088860484369179352539703953368338265742186244913131463409632771927478840729576331519584503554346811290461769649453596885783717130090602897072498284535122009184085285003026014125414185756973174063618501256706387126133907366277691786368384058533139099226817159483173776131045296645491729090910507597174060164516032989264059233676956926316124395692390367062490942759498710041084674453605771607130422661775260944380237048602447503471204748239237055914407237304067288295137815691886603168779075693843301722523605463352912501846202120439533070130010821592612708432409961495401864616721887239799688895436558095506359868996112153732276602513257153845710661168596600782801554278801990687693868020980019397616443742235737726705467728273753007922318261933142845749630401476400155742665022504487890979796840003420575656167560329006481180424723788751524322870678608908622740420483448418246410359467367497149946950065507726124572182769073932052540344799042275012155757070380254555441872618038997584303504885049262102294558261051835631673698659537005292207494475614868579518762412617455523379602756007626191700732612252619229563772264228496677179444162088995404755857096160416546667722786972780605912163020220234087268564274645519192872086795259376899537363036825320909010547662778379010726227587994067495966517231730782088562315849883215875951542288217583124001156835369863512715972628367229419541971945417417836550976381157341396370412394771609744642489123973382323321485326183547126867338174417677671981460236895866648321959652898645788202015156469097013590918275069515984703362887458919058661323784979088163100400948637742937542991355375393725239286092750865470975836441515311022425162233146119506768844967484604043428829453055686305570514127207344142118714451918086522868575133552455109070855763167275427461833339046048480092213031590206131486823315519820207470736593987175458313011626455163294059073062118141287197073705352093387722653720837708440675991595809184601285591235640874173776244028779173350776933193040020420768405975299589606325663962793852248583323885565042915575029065841582905652934830694998823869798436215834561750429824172215385582757625361458540276647670775195628981468296582288619122152907978599097685214404600333826771510288154774377393256418485453894466500008324974836555450059443633898881908170146814768707743494374253486253246403814417417418092157204547359637740501562367430255860639144339093299018826467119419930915299131414492887413569174413316393830020489279332112850585390940226623402121248467564672088244221628565976802086504853741723196378488185202530891428521605982127985412880097976972736742615493978382236304146731248599904145402057239185786636356432534006799587549020489270085719875953145143670052851638584960497980773549307581192609389068871715794513071787733298720389360687131868853208315692259130041285498639088223398374913630243199396343246236338707060287700602497144896452968073706924662351913159923096887598781566391857878068580182102157128255872930970312523698658251866400457044433616961409321209453807962425360426648068134940659263137593636882429252228100702873014663030718958313503729158209744459154820109628096470729327258022569705285245376863097915579749425754149851275224732169146464022887776279282297618920133578872986689471594312678840707209458222499145740830533787545705162879414942839926762680668294082022797924074813649001337462910302509848689872978607500077208938914294000353852003618434577259853755070921606669961689343364363411342160114848458304145267118059472028984540258733674713840781068423758912496533753251421479735412218775465693523839798156085753627887724863278079288184039950465350118947953180428370395636773382136560495516635874543653693868222898985323251755762668188191417309786110661671485502684733709293965982213282850896693406082396877373173187562190372049704981744058334179100860829701126209685234561761924830008844698561105615984621757992030892634664801506899492065617686265961547848052025701844284712767586884807420148459342675081476794965520632168987013926936973315467477978006643750060872398386910536878933715290021536533109570082548531091833957640146144249887650177162475083905892536254109421001843841530848869583122493608350386242798589624649360601983750113191602178089351798880713547204798844651664951792248131500529882881789475554545892994253962998257448622606146696255755148130518827997335067267202019773653091944901360246985258361789174909579719920327045921803315271692092211854110240364827323956296024926997386479577202606276426659834575960999016809653619526417509988984410906696117928420704766639376030240124431728159961609901552657208999809865435587260187976926461613776736371763110433606586937154075972341494175649437870284574935324137573987599184926108151270519090033971259743051430570297523951776099583708208716198851099447445306142656395637961828534214888678191931648715097320778590509098824919727945988520622126543827404897029466054737550366236762508243277810275775468828530786088843113276039499642345224417506029306326409996819911655702804142307784132238126953198850883949876834734718298134553816901566080257191530432292891711291189934986495429507742755737527443830965983732604958568562172278013578261235637615530952274620193820821938619974538931407657003872841268419411103456736523449579910174591210255157070627515841269018145418659193332080137519221494391311390322164307810398345490984097789912671027305749583358884110460762474028662813671706308591895511945386434989943065729606727446887524552019759310660042571795411224735030235786929471911361641408769474652846690413351973714468286371876204136070787809149677854038222379031325933707416713376670300074174297889810942077917603705239432210746250536561210893912063748003777852982810399961982366744888654858962175855103379602689038290443620117930662614103968573857757329466187920416717398710326247875543226747079766098661328829907681159356563964633273204741739784265369199190646712778194691142976960118511471239916246438581746961620165320380690418516622834351648532800087527289125465685629701201490423918431288488389663226033266490504625424514215347584116081980944438373488836186965881706169576409427254428138926942347770515747622285386000212947858872097964162848784823402978623645157658953918944950241291951379627932033037232242176326155841484954516904150481594884532645326553653281584852361499117017491452565020673881465567418367766013622884181398544575838175149216798753623630224986650429880939102699718848802597021704485903020255281376143367273000239314876299433294208753934637510479521663759369485928545296692388206119609240108921940593703503900889489567554362043651223813504612232372382866856077012147081993400632500504015944476137330293113072648737428865343019135662635609855517648157420585324060915889455368833801259706382927178595879134872875146570278175062411446232761653556428807613855546695349648767049259826390047902398515700112973510422734980397930594893217731377835894642742149082818960757531663530474132916766726095819881366751938560800708344597969448541187459637879570518688388410024575300697902067470221895246733062965330342647425250643770366535796179927235140168088257230933194932235877697472080831632355032305372876567519744991243310734787102283251543468653144891570018572714713571395281870574403999035495292821984194312175107601239606851671559800959248113233096097277527290408919323045138192140595486909598636156394978700520999400453737343156735490812703704510200581394407500195798398153412379254954412683033510100983294068693167631486522184212629750354696318803837229693273196369743552064935541432839605757761496876843255071820259896690012147396634121190161145159208872722508230507932949494079983035117439139983561499528317698741053009191646371157608033511517823544752890951669668677205601074949728003859896889690175959651632083599249657918715316651765549612330531322300490379802892581565885346905592047320220448582157391494245442560076874875963196383371954892180348425782151467432798324626713901150955473503845122706744168158795314683679900968850352672289130370503480372551647510513950112069430326188844836012931414513267422774490205843566135720229760256924370832441473642641686246364411282148668230832788188494762575231475975914601911830264703265364351048628723308503013729871313054656816719716890905587991979239236783607661069139729150170285367070569174329791673497006282391209582141932733273361327046384978971169436863631742875989441795970005150265948402811553367844892890987111274270014556977186037683662578910129563249421739324232168356599413714970634463931210308426517347819460763480768667087802256060833998196852703913918886249039676884620136475618424530109411795428278950660962786715984160333835560517106636856399954515920294897909002016370361939133668720115887227353601700656960651464471120340094309551938779368928571657979945702661759806750658584312007097858804395220899315610725582190373890438252120855893405296268706039463083862964357048224731511988823264965123392600187450587221558420062895641955723634632331736133539635988828154163245820868282051771812674230009967145556939963211009792089279391206198925227872517706263567390676915075036279049590617019026398853848242279793595660084466646208117859652920023970017257321295381222958572475480299622804524803151473644476070058401470111615758330158798602567053286960250376685894688955023257396063113350790062326814658960061059183444981762694684360620874637260023428731048777509719973729761222048448836153296814104084191527315302909848106065910524127947206721677857638503413335352953768616347649393982206113351167018085933748920098562602163753645763780873079879441630313293316895436085481882718279108027649824309170051899256377720671901282595644396814549721198775362462428587348366727741388547074278988113931036710074026045809509374008931914550371596430022079870990203065777948063315078278940388496027687867501150352659995965391190385099575413618646077638276100001304674420375584841941075474313628321747499691401725627458019098307308145989564263710707449293185933599496778454639752986682330066260519705295839655493478793407689272982386509972833688730942514477529332553010929388909505962166350064585168264565447845180421527102664145472557243576467412591500350973442004140137796425302765595800327792109172338906938023083570007457202077507051320768536767272669298257278806558077391819386526298795127174848702311339078814879707566297739766886745595026821138724850673265308769626032637977883817039169225967070289286107234695501370892227372415747352146311860616833296428089427109325645217857757270417410463370921490477550989291583656236696358717002254740672067093192911298504984090118749708255655051363127676195118237393101788940519552680738315732701998473140823010125986798640249312652998698370675174619761290586419715101691903811305389962591544058977983188111848636733518061096425229334202379950798747141179724133194970352120390227690761693998661539247323087743933199384739346554960246748514595610893832143463804437642967447806044542861177235622881235455493854936747031830938630059948081007775522664098580690978871378998953777268055931062615837683270227356952548162868397754059831321881072095957348925727333607100177373732221572506245554076368125818209945643331566441688211124082029632424927154040257558438562079972481372543147979164509345891752823037794163366234595408270359566741034205830065125966067610571237001968882883335782652565408580060812476178346121343470426599076471885291788165598760336660595722972060467641459384056050985003866257202499991628345347601214095757561311377201422225379992258192630947647380824921053667270233756952747512467574585656475437187370293203808164716184881757492845639807036059299858141720705239145558163312398386041648372208155081340838489890108366584225927027318649588730149154750457798656015794960986925857407280916123745761202808037828969730368470554068069623149508576585780179457693095467489289107241726997087828710790670221214053753348991612709489247267572344210192995716317251677202681645119541166379138729020266989452202267016878474342065359295371655476871469752207308654175307695502877479965694422846207438005525935426234468118729661835447521732595472403599115499033810989292538332301108126011194582913247891826145659005709191480498898106410926531986415491543906371153226168013913692077903113441179044933330532860222488114011183121690798555552765277012968970799415293440757744481215215833914807326588549027739291894694430223060336436124352701765988697804072997295130502643362922997685978827880727384238664341055561867323340524330442126542258092202612807937786831680936909650393071851886957554053551924474010188943418513036377102371916542473855697723434544164292942818412135505616030340415197305170567200415254841430480032671364932915510047527288635743156272212124828080394804923399414833168816848856114246398562772124899801046925246509842976800281988738917967161599756299490810318094577654993003353372766028986041305137208816749655798938564649312549305261794154357932439967264638223127993043825027457046156612228021160225297111191472604790679114334610532916291139941814270585956941209348705329859577332450152356744973314305978034707598118104996264834658498942908313702882424640767048658194554011222616640067209749347735432236607890982793629180178659752966916049133180586454418649019700531272110948672892161104504999285033923823873427727498171068639662551650545007777297633522839190936341662686730283859776285488119063765714156748522900276413007228464624776604071999694613008712309698169611776402458802404012277418711903828145364087877021405063492045688038663506375827652148287252840916675958836895125614744011243810584148169296968942308269772458826627968797006541223749113713683518273816786549949908789667069442237087859447037228743161509109596631446466201164070945609747984902336368998006439917728458070166806855050901362872368692311375217531959132603685491079270852283226079413342844843869645538234043507367517552792845759993897084065342413403330059654225845197743549315652525394904076905497553575974283270739261405029025531357059032776602472873309375923278180121805754870154845632321548818821748220175933259548451238642854569852437940055643359240775739243854042343670253663096934297865742526702990857323452167561710123261449059510089220234401191017621933825534855414517694923404167850494813081108037421525083298166315034405878206840508107976351147787203140491779334056996245570005100693036175538679862105922113749601741647859581459938472721179339102336288987467100288436021052170030892146382834642017249337751459461845171864693842448751077048033105857362742225568981078359505681344078125767276467759112661617171405478682692221335071159277571118093621635640070319886152791549715815318620255816103602208833140622334375402127944239891115148261761456759828494129184350381437440406672132027369655909465688771867557646895937998403428439243642831384999361064558995730821752409575198040756322481727837193912031933520095796798854086628858417158654024753194619847844915636237942278008482519000342182972500368077973282965382738268270964577883062907325769696592585022478834799000892773753323379739199484980079456201626834352930708261139150815401573863587479108768681933062234033983618409712895981877562602320509009083023276126078423856047623994116114319918232855723035025632996230987986981372198738395349508800511056502551983076631001619269793411377996508716998429506073438599287426692821325806226561042709298555323533190484297057597918028685911242678133278920001306637330850163745789963926841843244879175040596605681343473002115212736490381460146601752804951232356523323008822931562318907472490518120317167734021314247820386106747549184568130175936336823259562941510850663733241345865262633044277892032996301166478431055788674965560193634540666107980434433101760405369658787820701177835366459579770650091105134671806196456268045892855313927988654488718292361747895538135482243227886132438874537573063925535056108022035560618016580113110466655516833625015396973279483339203199122342273318161913617394790971735209725444187397616167995449157406664226388362108258654824667000046603045031769080346096803893749421289724462507372378801185645049543717747930590105413309154632762282060176177726835719949947210008588867775294851461832830022160531607450286227139406225752271536153117948325395295552742443222018538412130706088399437290030324169622364650062679206998011745074151388569172249881228694521886700365546148784018091905968464151740997383864403572306976416525888924650133328010595770874378130562626917433897663374685287599025182271698006671366646708361635272676281649125400544732434236003266930910899393768313144242197382299322978899509262145427603142396254271230092705131256849634464869986491336884943639089723126426985662762511195953309015856024338982430606220942126898955033347468679306819675596149852797331688931123863928159704872146311784898941116772994112153556595564602254923636029767497358206868245320519582507730379363207582534854244796943684323958300229664803194516068861469246983068428373136376435257635957350148686021954365414064201558168884496826588112346578630251592084439687290937301123018832008241085506946274755850721881988176641625353285219936784509184182428655803081514319124717065152153768560754252963760776766790355340420681950971436961093717825001040346833890047236835797188718171866901601416549973181593902753404297029478246885715803080708271595273198839570827244320729419541477376160496369054079066248569819214941742723336708611922624396286500454742100377481547483680701662129709692506903003943401395314388437285136146794894202202440990456468490128084942230059632100179967311469204503257922153562548371953645571305199770032984963931022431021180511979176412110170676120373178870189983365634887019288887530215727875646836504202114486565320041827358101052483179031323330999480349305949980910359087330683426208375330508051534731571048365541101858028938714764639728679708648175511967444202706231028853344602840098064273631390115188257354508704401278803203088045899940139285783137032014631169008275408416316137011378228175894830757274318712663013695540649705124014514793856161607269587551618897759220093725494342263026666980219056424941329713649058451446070935457705336461927026351091734441874165996058050721762322370670527694064598828269651738596744318504935088709778844538955509746429914941415741063308802091460270719921816981821848327678140565798031917860610615469014750739181327737402257584650193362927178684413597620946794413405609798352525324749547488537619645521287202144933951857167797183240136151680833948120338647768328115354036761880487119525767514184498817143299528951896302121924404678378057413972164676150352183581754195988015587818389877976475267585748818331264167501749810815143956777800430391656241421262183012497813989961269749311366312453454316541231370246544678922138633261672210957095956775874781360274393282525867880943190187831786885162815506666593489901119484204008654954306003803917832796210697202261917310139471184135238262439808203804472560429396888860804766181485442792435502261760433830379987532493633844337963930510645729014703350484425150829410029885717602209436030402689545253902264156554722967444069816099570489706185759483066124539686153354855144597331415848823064508729062747461691612693811227240324559977885023567656421042563528224329378227841337453906326841724811294747773030374330284546143127261463231054005353426874295074516071168211325894504737799852590628088970600841994325724353565991595671844195326672363569542603751340160430291739059688164139004648874461987704713895350172088782930056934588329435186236441050520472850795809082277452628379309621245247595045516612361438921321303632724583994778552010358178117546910511108562484397813271226425738183065824881492113345160118758678218223689876871510855234308438356729146224210574386173325666174196099936951870348029905664774658947108378273848943931133757530927421892233623870241278137474699439306717379258961666208232681848594299372006722042496665728301766117251770474243838873560953063077199230280701657315710923722634020253364566142117210250498340082245863258341695067797490762157337322084574771516728370216515257272690632420731081126675511116947543113934249625225886563205594333643320042519380168662236961207972080580740842366932359222684518055532782070923498976196712171677979162425780181446520515623399935707138000186543251139952406157139627860042748761022274703605630086648981855636851288380978403164513015656934545393867343428477068513872235729288140058166779277438303949914245719052875735721815448154682097769230039701931588853344831834588709784166083322294817764296269862440018956263080105855695187343003230459129313590389824489278817580776525982661720431484267406228422069358052956902096633837016605316358514824802924808353213333866336552655846206542647208138004228866116415553859799434407771856815108755523126448545964525682108101363543381796045718686396281912497281114155466294954354934914680495744830271969878908369322495792479826449028468729907283707520127828417701296038008043731360423501447543490823255460170757247290533176026007168578534904476930884455602408001824755381632930999047059579577019350151577466033079725700373762325590290641339382501275562649100510616602673582260016757926804227712563042088963082394958703325881815901148357758853131200675974897321484873801355473336822289584377169733243596867061474174214824198491715314444568644103073777827889633659175734785985830896048923788864995744858433237190790563871810177897048941413043979539619304755136966890917381633740202841805918926362634932358957961233483397612835753302169311053950963729495957963237906257024403791754295515233462608114735451617283191517000014474899195218776476917796619525687211950072287996953030485369675763637399079443068124854411943468769764884058346616632214254392467783295252912629907876264227606330177169498919015833545190931969710555142543804634544788337295850795248169098208668872949001376274936027610045903568066045868909058431258692363897381507878483913244730620982187600698931976648193331380052981213588470461356389427927750975444271361557414241267121343614431457693594318507539740155634504300721477338036015915644231515266680816325650072654491737090742236099788501752860483087906977643378024401438369175765823499600233283998024261432303051647115052461338692295596198359018526989237206162766722239182968662229969012836837210704579973823259553391994273015201586329031086623608902874311511451889364441672750585782363920478507306914908015077421383261345609768350470320648086900699266616858755686557297130854886848503055927422266456489552175234253394411505534725112646874301122506920502936588393469377742735748818930547630545685454418508778334402716495296764357654554237608683138550128461793410564132515360011011623132486698903783227670525440629689664390164466242697687371277902594848672305041883512738771499958322927201056908176477203657453830626321212878234468285712677402161319942376745969026344380275818965473334216076195899910713593304608006360114340785902223013814431675618941610083866684613067297879981602699198450160903644503543006885749180789117498869185855912088927342856240750598637464206718268858410438991569960048600167802922715540433478128168320697425259008189993852431294865490970147090348901658048570591023809840230292095484580270313579975506082780061492870342061018970592855562503690666603519135105061273768315360391598296544096119848260379215369282152317537330450074594560265041649063874521712882164977966308965320357792770559757387890470897607282272861556133365541746541733325319504614471596125613447283876079497920347277890260645594036838939830512804310689788320922552674030990727666325563098291433773362487639009803746799583633167074909560157767806252841815856088281251037304566516783812329202644333428924799895376370028470882057317814802861566947067176088301797629574365703863766543046743001822177521707979011378132020917101225944593947603263352210034409607288891180582302988000139210576990206104119422259014412676393754756585523326364613691909630559005238784905808585472189314329512565509891118545790904743098672451982156484092911235670470447158165412242094848952602395442514968969986468927865337205038152583553395259594977924503735072336029292568166440317544720933502346993573428041628057585312310210403470741055394794662342247219765418606633075609383928430245561876321522936953094967261453911550427797429139462348116389099455719879805891080940522085663477364025185331579289422226129519671014878689533990411656262361099307862774431260985791519865108219376344239750924444318888327216723144731398927565393874690848378599983903019284755990844803139757226257799580238371821182610778254632805016627569293348171019992136884912579741783441246362148079932630317896300773162287411001414744682958710964094360165114643704044042410280223715486434163126869710296745723799303787091192660226885434933928846977833183377275536002360452697553331207405219443841871317065004062303142578963962462550805346231951577272160682467971323982350711214667903334253166105009268282697832051707970606477094753322191130031634327466649212585334869826284993336490749757627177624238424575293760363736930665698580813242457184231916598443524836383914723677091125428797492840916714841056061734952555303808025489089798998339974419688164435811599635419445468244300187739344851567862993714124642025542762803464528194319699851567759428015890117242991147492324496362966536112256462081778084193736717417486930319865392314510420342087874944638342007423694674167379137718541729302110672529004985058939500157644652578426785050041281505141101676109024179981163673651173343630520421718834697334409607550618922832080020682321882552093166826822405525067853326727393544627953544503469346708868997829659766680155868555439280549691600153824644154729634264346247442338095616697486432678510537404871530783285248609214792938904006191940775854125772182974031111166845751943377154666059314963226057639579506672379248045566267449590160990445717007476853018258359111847027181738399220659114697386904071066889191440478183940152554984309841740429629710037588902667980037542352007789188689320658825673592163374899321907433307763236806306766031330580993650392784996633058344105839558423547061392583029625605937294969917786537007358259567291655637575333823794650667028133163367787785776540384450762237028156002664687600833008347769410652242313219628171717051745747315803146837794422992062584391451630642192807623472117373390541241689812221162744746047974251534951561448784645190598055852749277065110469689987912269209543632918756598497581600498178265342268061755799778870982903979477692149897138829441298992190611100972733446442254587081125627516076895604186952638176562972535253204654732232141127349449000707070999534382370431029954931899072903894039360084645792478097477068937779236093482406529080446823873867535504321438033607221229022859001521687474418687680218974235828115058684556368219827186838282271202295355952640981192206262566181745386204378976477473674013011410619178200547728890882134890713634827915593958898431114146844929317959587687310461994662172429940553363456043726428831492716589843358014580972576277627480086830414876612040715194827495097876062854305260609174030415856194771042402156317612762503789082642330948321292769031081330963355364460998113468658262919385030633646688385280452043912065096659934376120972103566183449142063297509359110553383819962863761112214598310028863877752253889871071693077294828968283881800878905575896287028220349555592191964282070266016697470450758824123649246793082836044047799202556780810097082707396392589823723990315016973687807385505372806600703393590298940585507101555820395192945275576341610560242684511731947093866005647220996449700057971162868387884806864575452129887621201133230783599445579624275161906166120865922288443999371369161337747764796754640447522236519879189066686946153634030497850427056326973688971767816963589121479450885603249203591050005270291250661744571090248823185230873847337576096296230032316319317705124188551887400891445227583872030393346341370398837475003700041303032374616810528227896302406571954284743956136305960663672766163707624386151793176856378218167072636652637274942966882649642156690987657556395389815173715391903738736617810851143735491718269151664658795431436691657455991450913469830055434697394681518491285267436821633233500240041534756336655543674785343566384349230826641011863794636824274147632133085558608911599159806929933335873799921170987761010008635122696610858237796007729825299164224524537757907863767700176204216980120120647778816812285322970158265153759104727982085810254471643890921459885993058738998061814443712467960927896016995930567311477876516454604182806808137305641139477003395510592967117921357356142213349770103555789039312036795077972678552069130961013305799573655659898421408011089577749635249030586721440332122663394577760336670739898663756555056683759019541117040024041731741919439459587410094912791893583220509607515445658310764632202074155673007349298392237588602436330219358760270235383485080903097240472306748338342756541939017566330534359057292536290666629244298849188897493018046336827406041879726445528790910374590152796299864191120641276634166546726010310143946482542731940826051925252551470778065053819397034148333188388624454468587502835136793106925926554234554314028772700964462593259362048415099761861355931150537433205957617181753937237683494896588055619710338460567651780607714378117511985495815026595404789716057114274816704335430798362768085737520359804547071898744462755156865065289903442705242266329006737706140738453314554636962039851463484540503624520515544809019044499277919701946340520402164922587968547709646591896052550802043743563249955278875640185485688090466172664721930353980257689554075607094508921639275173362484872746063445774606143001504714806638023075078467186626866548062874953343812650852986179360627305411608775132065067076009515969692284706002510591898168605636747228483403662313128400278349650264207429464809871958179891982342267801099136726586977957271563708382060384675085125037853686890500029292459138144967610368015650494006450172028100844074982488433633837738945146423499807434875419495706534048759930629686574017722989220704171237938036868930195047140805316367924427611498728243497797345189655310351516300192841073985195246807211364384786874646878389054668587014682004042476626691197850527702329950255237592021823976131403013182078110942434189403502878184833569987541954914249076492818501276969258450798230992456397400749002204140040814982716177223278597182320744436096387298396961769523263044226671403564480136950111512736195952338954246697996090297111772949798526018120959498553479360399587022603538684446006003645587837208173448481728984962334331616852328962817476865669477744784117666778555040540203287723129129612007175618218574966072128601155009432483206606717083733843924471749765065065395869480652749851096435044131366631171614909274800894797155128038089060266123387702102460871260236923627820427206321488569558386924455619295439798282458631291559701611213933766704160478146545373984820479320623054588918302366359110708613236136202530060581680116956767791721865838986110641028446669353951289078736735883788090729393355689242298092189993758565251999683035395720430381542383232155894813487973033498622566948609440452371096311204294737099983277523759028794351014807960241085318282272720652091714052716399557006854888993071327044426381171361613784216492670845447360153371535140322522669399315646939254888609277194695095102720565898208516114169375891858497767339581073955205541136116747458894000557926501251680225642913290464512246101611637758958600355196330846263680948429868557821245923786064491086261495283867385748460624329476975565060173447023224516932581959420480174438618277900997910269979436377386102343599019729026657217693490531242108201479010762344221176404981710940456467147964831850036460706524373799149575490746437935566086687350470688028880227371691506679616227263677914204453113812965788921907989306792807951963438554429930526671181883169318151533000819834137033633378116513644784495643202630447890568832539132756855006498874364529724019039321942361946858186092481991447182231256350361070990814381682009488814574791834007420880549282434648220201809006608931218487114220238905961481295707898687067309632835077280035846647252633326092546798831562814721665310429035510638186723945926224918971857466227564481923207912033462940462371645508682074780792120022481044824089437677296457037505214884323833477844236576265962577476421663383869681051556004051166589294226556430506743196066321493832685232411241030982926183965667265375709622727081637652222261279570378913027362242454280235776949669797916037806020611998296537668641486057372437857086856953671743052858867279415048697170792306809919635597090667086086704439569492989034984609640835521243208215872209856942639442068086152539322638514641858225508872435640761007555798603043006190293997750365292449627680630161939586896748428229696682871600705412188536011252621472619919345701124941360400731371035601235449141445611326208147972202445629200855459676710774526294464036987115667370523304227692060689219972122876515923491727088250526604784919584445695914954505203439722196057022428705963477199487453423035849734555434835752259005001326792895299683452830029249678715325695089559947356008771614786735890702422303452567709264186130652622402665593023796108908654028523635432570109503857035922516724133703077459528298681995945316181099708617790431952149454086998001928441783404417575747549841723432243952542187721471914287794622704245511038404102299632182148672447851417004323907658205074417433391390254937226005191780552886683592783596861304844805476520701103870545679050667133268614691793209741543043700590057514024530381135085976232049883500375219010731724239132061208453416364254209019908397895169749190801982570754695387176043555031029354560318825424123415380260235799848612710272619459461730250150627201782718347507953754614282322402048003534771308735855438658380898655790290172089921523626028544134566644210075571317411536188136435968339178366853039551978979318334402665763958177638441502047463839169434940375471889635956653883787817580085294331051564780631675597639684628454868517613078492352192875843857174211537274266247549460074982946468911313202604982426666061782362167521162446765571852014277072651705457698952689158654863836532657746612478287586163955105690793757904746800241480846173002350065115943759950472262795355830956568529055241243326065912396556616297515992467856976728609578387082972688818624776428246088909131027716809233417321818638941302991280178576810041184533170548780729935392241647084659276769596008613384672589179222468401965236004045192266880502291382525427442729668668684434699936464495385030296443141816833067956606591922422686423372589702974986779822379869703509156728825011897285054366969991182292764320134661426209667403469891881233491284987860945850830854116026791874956383997265879385404937588937626517521431340091562976766348403934059711389589611177923727197312008711902838723850420995136502089599650238692387431123007649389545870453740391327674275465856914324922344248795497854319421772955103290436669509712290579410542229713849833318456816780047165274303446215093737456890883427726549979589740027715869728175671621774716062393562513213218337706308123619906676206891261103358399766852794022800693326230427643632008046027945439821856926895760882981052034704162890615142695566326024123584568477402216153317507949045061899427754164876681283060876768034280137061515175936542004066434433426496963013597695711095384413054751373806515114656704272808787921116188386702583261483520335952489799880059843268521422166101213864234444740355415361812545123272541790375243284652613400156403407802950831738706863385821890430943726825197783543414044146312250502899850956296472199898959957027601716108002639004542806670193688700868737609635517053961091586488522475225982760850986863931908657157051464794306498079474003599356783157531697864016412102767359274484082147931616872014630736832680755323555072337845196658339596199008857560532046490439871878000387765344984827912729759792678589323883519784359774519933790605004783574741301134385776701277467765584964365349920729112750524478067990024763808133608376915934307344709990872461246951158499905693894581929968315256934346560165049073654345616899244178541830962787746864256473309080177123473827498653704276858941835387066249694535897512976364921662022519559782048820112202452063180174318531405357149398858353520725336059281656473662228037512543318119068635804501106000884894872519903861157068600129173394913291999098969965204028647974786711411264149735235506028280563867318913520620182265447423753075914797277834548519658095711767037248911322187418488420537545664304860548417143542098122079034390146824643080476309399999880943640362379049566908306658934411667123307190876886902228908245509439357653700881395446857595822159242377133759289049456699134195775694872099345523487974255495973472566824570327524856342058030051906633322261472984466356644139474153616390319636890970189293421841296547064212044157983092821127551232309411970468703667558586291468665816011469075818145323886259946881306110085865524313303888523617875416245193185488543052047658769717818718606032450922670502356233075286540063445374747739810330175301063928587670660068366242391593447479238935868447466881343976841289522085262808015247811580908728272091068270714887926222001887207133583473116049387503202471350511097341514271885107454394386359982516893867278320760656584329964192668772911788055306398770758928466546501756871388509785305437747560815981890538128597597587290276419145876804693039579894025028062844944399772678833460349871447159111864087508848011825046606269492813255058544606680721928076722631854197060899727279328835630867966582165637662126870006208613985795336872183297669435258658521810219711279998852328601454243886492106396255081129145245255616566251745398210791658322948273919890722663808593877706669201798454373338257583356165441482274134936688994627566230058234864163748912925743454265368720986163347195472560537649026110986160220637151720317310722335277790235623011612215887219068318476967121545447777189197636476756359883650485373868147111897171916809442453201656264658424153204609521975081387494362727391153970389810220502072113796428981678456571999832095782867548246199255241689506475624458756804765798271042064918280049611417899632653493836970996186563356252519127952746611645289324394250260539499129767894868554513836462986138705930084863951448275428092542582659281811623455857369643512166112757078658787389100475094950207414328556247532340688069460365866382241592059477011627245535077018832034127506165164340989242766361949066040514759018981828470414540679863377495897159330321086396794802452236021904707540849524380936220742042164446659094186115161254214397853035314714220427605099109995842582706534280655169953376413540568398590540391144111810793179235479297804177400311890283401420591317860176181401013906783945160797340933314529288335682667610873089655686663414746979909201291639517765647604100135923084640778111857701714754709305227961078051292259221379667679524230254777868690986986395932830175267134925739424766570379671996549057910346451721056316111628475761605028027414734420593798738570939365997645840643634710234105138685609815436419462070934874955657151525876473986387466291120525218861978644719353401218770856443049497646632721117312966307401474288533880713955483966615116435832796327071497036647204554823907524170487371109020356888784262714328459682948590109912056328006778172819559480835958863738006020331258120404741161951005570766375139185206350193775668908791222625529151154171611594311232297484807946000842736178369452653656863890892237921914888941513412764381286725354394383665876498935117345954658221046207015694624962982968658694603297164296105830273629466407866954804716068767401293098388270112694174576728496538949967770013549707175873976988535701609968871924398012575377886300452996060389424525329812768837975328294347847471727369483897844303154455723327192581956779575201768405949103945102487040529777546132413957473702495806952190611935524656130076060817036606398636909196877967326987420698410215404135877434994424845398736628997937049319920124331087177158890833145936949751344415030896988848336704889533517343836661375049886678850189787624889604189195656213492559957946958215127187360222944345760312341161622211878306263016002561513060089617958809133778599382757389116617492200048019466539716725319999678782464652070420255289580612934879221570703235051078873381035613246905891254280167314522261051097526884458173958528674970087328173702650391141880863625786006867709535709454186272037182959232939429007320456890853846769280767670607836273145466135746451186141926996840036355245786682528605523608783926337209495568657305888535524273171830355557661956018132069697052314728591603657415281937948039078057017766249677677083054533996441041149074448091893544237158751316371206909284971881865265179569625060876808637992992751438191755131412856983804990583832466407184353357303197771923402173355125247540289594645193497894187821116524420719647963354028084276825874550514307540912886970338275798291725270125051748572518656760529685757171043985177586346549273633497837457855775175982311888796356064292882610691522113877304690729117843968795717996919087674744626893901043838930893590681505506251804283424984828547453739091196550057874852361944267365338920352933817968794345885130965448082595216533488533142585906605270100209981304986906610698677234145150216180332181725178026163803550800611514851650187034813864966232298355047474814032213413711133904201565046862958632573380327318893633782129763123240816594658125293560698325945482097271872385586401208542652793657843708612131900849444631669227680474991809781634470515081160305546845477727121603537840550710447517401778915850144033399711975439333719021937161199593217216504348598606859907581486633851593522539828386365787049426792462482206465907637116079911666922700483457738349505076745617132967741574193605423046510863904707430966830213531313738391540186005483158199947853684079243886303894244866672916246547492520575545499832899550524654939646411067247024618161519868529574083506627144849297627610327661507954674098048556480451992670006754105146168240371336646870739180576224596451211251721492844607838729506552655624078233202163428422744973406670605785481312841617000682794165240861605304976414153531076247585161143189632664121541764788398057395181670827546264019133427246943406454609233310750056137488584560105870764280551049156832299217771877111422882139914235138999780480907419667504293426884405876930973969884921265740650738424132590499513328074891848631251366005168909867576618930641860145076889966436459847824247637921894682052933286181607285862549019360639659721734597424668534891907715096959471598414958835749940794307637165075871308430350659656327614249689170270472511828931530116351364012323319484777355643225618088550726863361566702774766513168447304589233046845035827341392155205655955505440270077095711891235370032893938471907130123006149485000977330419016297408129412131007436521696769473711944650430267528745652642711757677298510022731815314791218667823176381430013321357233316408367630482863502462292951039446419729011777230673981708549428213168548786358442315756515126424619713863569864264862557007288328497746525656989358881220656154327435235054226430476307017596203998944569375407760427720642856615642749640623182258091376046133355409258109348656833959259597723292629928394070710266205069602619147507145467295379193605773395142158577367025812554777780561818384862923578290486304116967594759573109216364874512873206098977515744436062832010751756050589863773946426723725663313291514763629459652957375045560330850717021865386497970399826911957235654663966487883670532499176054762463736883864743239368030711240814009841313418719023246139816728474348568584332490676322680788298969985320550015954564258464295395783296713684086860555137613483163819971069104112487722930856559611628925194327289567357930854882534621880597830361967314347224473607401904882543669383859498643896715844346497819484608704668424405885058132909486752810350894189176873601345670398402540953998391292616396401197585040283059874751989038363763360479521800905639994071114901634881160879755828688711237197841131277404749774716029903909862932011943419532613068755868700479115058427811892736018988455379428009383559600305556424905749338311315812689358091718216793938460891311000913782169602569619439156385709772108529485340840222526315380757648143521110178606079662021536457451980428792492155960917851467553471628345148097698478106679469525804386278933072854430755186746740317899205962325306968498506222564537980193324071470105388312457215975293737664144600024333474634216156471090800684485733100996979567508613229562153948966129070760870594577321109613959572068376981733321772272294523020117149582746246142300879245639153997758798889343605192809280534275728977229827041082526506032247474346553971244458211009418085288276642872155303732073030536999833190954644601349058002772687336090967528353698986915299188377794470867320805117295882852234634661352117877708220245152330986947204880236983903747224506945292333816680915602161194538071272085693994427112547056770339166068504188339211207102057971895974029537191378850823954184472972051258301450223639984588818848079532110961360706818576227037222246736786329888261953507748848219258010102816773487801365173708597515968635069276114868186791543306331072840528726329604274650167451209805724615983531249796508336096289846517924850865498501765792674836830314023725116051904820049237568869704813235670138712214034852597571698231493921035044538124934385475404287716292607871596597100032425350818006798504784670434107138023000235584229276244188098312102784984568828190562148611688382921380769559023859598888271842714129831535746594838350886367556872507237005788208080651643085130575390714808125198197275440604286072130723311251343547351228237263690205923346840895290394418174722218080880242037454292281950515602090325706656667513552221108389323443301310922674560908964892847160090016843425686030240651838712536444791084482286345723428630044777153567679200512680158320684514548462053772408317023075118582695882781968328062931814157962923029145900923892191050240033017159853602106898165730959705470875430491535075728347102136736590782988988985918825850638387058232361040134273680214577279781265035144713007668519889889948812511324071231122542365537410930571377676466308898081974667344019485396742746464858366303858292683316324747585607341129560442350481513665036436982413065211648732136172781537900111843876479214730602485996966264597689599961667211415767874271631457434219196612543824868063795065670783793056645487497150817126499227458770705140178403252025837430672397938751940738347821354249264480459416936012377841557568380219322451567198146831319351717687676754293680874293230325331900577611530377848807671791587371824189629234963357730887133014206582406472018436866647711019508225654418504141048595092331516417566835335903568059777488262860392163051142844014771122767735978005569968564515698154440497309565618208141072345550770948893164663871587978269909672010477004866204157743641851008897751229401338621572559796673030033335608965045712994860450880103006995708118327412201402884673187612114721507608286450080493350605834124400534992410079189789715694292906019459616663953573900574082818979586561063021425094057802600387806674702572785042310267925526866416478375723919265740833531010919946058689126296928972279969561618379658625395145776565138991560596911925701426776971953622126921492479330132225341796733804545690690022448631454369928050895902879853639911649610456934163523738167270079824864959372543294414750174225348800746053668527410735814214048138192609577485753983239643220276768982952993222991005911139480903062578671946852207543672331441563274745841367829695182090907575373808152255068158163451296858430554700340573093719565115333411882257911842912789762442742486688289460841733772762858914434381079663241858137433846559133612506562144086311856550748203659540631199451447355236649530742436126220822158777991811731823998791677268624698100133089934413410325565124475098167383057838800279317823662668005733866283045269150121749881110106626631699907408954678887249837606964267560732765502029530643202456584880357434091901845796967091895835921580643189211550207822254058962123850483633366864052650953988539601868748025439599077570863564711810781732083588241078933984849609504515786236906937909102983365861250578006128204283298987013036174255081417929885102043927760391008863991970883894224434374762445064994325335007553215013569164544740245063414217209263704944162854493551749667395186823377038822701742839530648662140220848023569461745193504452005508429896063854978848029230468765093182430456069066241201432328860358702904692695699377283699572561179998141680328892009972076764727501627836867650540928061436825599340753710851249533505218381221957941843768750343747861356974665962198992983397941774629139991105033856608029725055647158466340714418810406681604659430800847607423326968987058334079959140117356140151939292709382712687357412911864787881737933530797239221133192308722405119877675739253726165864549426970835248628842373051086923121187061719785188209150825532376382874542005836687239908789431347681712102521577682178540349826123344573321254174317451021853549655579434151924041429385750734501873226311269652614808725692696035706812151890737658509891075362102883715027221145715342089961875581653159753732286965870661344104392456144311878952574621725088814221073288321486438369157788502205553043793870438751785534900033336463282506360668434588165228858439143410744908874009501134992575008379355751565553008791180473363980280727351149899654498396382793230869298165472619999417035882464036822960347475410975925924275022130272331811193692525583679483444535581223185016372875460245591428936179898410034101496736734869279655352991676468139620318856482628636652051194815519831936924360187203396258643477420244385483432927070408636023717711895787744878210908310338603375716535638376914811155177578318605865271331483470470710147491440729526717343731889238041195791375831171724954701510532290212277885637591441268359099147735772189678566839478966554619377684371992485409203477479435973596459075100013413684632705399423663318275732602790593132890071752423297998820287298154569806857526027208534508151895589980153798591083302626595034092482208169698309450990517222297747930929601372231162070631805909809865220498412675160968993690871531261541063911409971951665275210265513746210672397545367515277226642733250075533038115577924901710819799987400343320689495430202123349165597553413847543345890845972105651261752779038737155802168102013489762300439393301236195606740565507257644762641864103827522502750248815204212014489487342731576724397775165196048771591399337573305215631600582818327524251249842892950456972662723179499982241389204581139222881970967286681341996585450892541478818661214316464611550030894295416415008044351267100077171910660816349116010494095288591507102731924530092103376157478528190111785253196093973770758834535501621051206186184601695948479242265582832053891743414191425338734928362625274756210650026892093054980381913505075158331536272952690233545490673069070794629027098043069677577723240682589082882508719228992384535612496053360909311987714976853491877105878152511576321782688003836432532084554949660599231613449029622982638366556956239029163639924053184573831973360568963029015672027874764742292374312083875364779798021170664041400362396034299054782146001596438490391408621724890011936393620529491164901901789376774177008184157364642482280347765983399559419994742351380877202735649965374651805059283762459061501248635490405903504435517739687521256993922531405466616753260095964401508144713408500599413358682401567968939165232995690256179570318736346002549275079758572406998775376961069554911245592937168161560926997401474859490971957528393278502955116373128363160941400264127714313438580936410729183188557818439119311302159185350578578267813740951513988287209329872089170879655840337995818036410913017605836428376834675026974479173273639254982660928654126686250869584057683826773635576101884075688046293110000176313820419913384229464217547622876326889510325650125780660911015418261759711786301184931204170788848170354445911420924626742573854926759929721582663012489607916028079628300823769849842566244627305478652271247538556587015184259367866607262374642936149312230316971149938213716237773410189346841249858333389712057460987653349543709544581047341194560471667637148877194001858503801665391884435307680678552100284220806101815325986672325936086291194279528506716203215956292623442108503037510045802167820585943121317849865165018388971429281020467276648339658336122005041226995409452463109054148670165621311141881464251400068594342141622950137241195028940402417152962021482131694268734550617483257748990172706786802213580520163171796597062549914891010408225901388069271225998766190649975539725379242097878052790312274535372212572367819816862775436006599316051608547194117693360065530493270015499640941246294027607786146284263379978708212413096748277295256590403333987130166360520515294387227092653002312857112773934391997242946561603149228864638304821182640063463224452327691249279637091900448243861527211738977530537784151082701879026418975985538377859626418290682069666145374500018130044232891188865769486602758387733595904246273151206531070012956386671945837083873337411674660109199277138739518504590880125893321230007687377301554965648760019617033561376853791722498869698755195865115151889923396437740402644643992447039889660574200480403272101503624189294033641113926337714550891811958138338368725394729324038967734941772757243263349537617769172900183500288324688388698795081953365568493688942031617225709608998387769660411434688738071363573288669456573139819587650261070720575343593698709143271078791162618225497690755373296838462371980377723623180973689147636315632068037900973628028108828758505399141297181529629141765341436529914563455753001304422165769165917258742509574579395765389375303642168057837534330285509866206405407545243569174626281387643468459350171741527868022302377657152180397749018457581075312454827466932201410027293930057292911762103521488068409654478422553268707160705059089900628094449404154412597990322412482501203552710848242832728758955828234601248079035945360755145245577897068612561556066185751995605593062939881571757993514221864407194173649071924161338862112697131969647091936269225927694829854536449149570007423761292129232360305966621359283628203069907880880512199966860277424965605746409050845143539104932913904253388842512770905760115118420203545641450644444901078278998884806471368700843752079399228578028570193534204744462127764800911598182661695878859097365647894047839370717313572873998225857396902077210380994288115046429888309449492404445478673612212302275703965388690868566088878787655369870741551508575529398412203165367114016065424206518133470142971786862867022801143070144416691616740865311435365445747979988394858181760937581338634333376661759053378073669357353601526752879069564118965020203335721073380889946630961082437206862321930214671845836389087018524113291813432830975165862835828020285355630548009557159955832579960732398973857856500547767477967039151109049875692102382551433357999550367301982074582190004874924269957415297989908687173042152473827524060590708247425701122782745792350939963373671874818053274311205184712026784775209008338648721303678557169164026097322614945348881087908046220422844744366463358250620504016213234850767221552338662714270673918452967533197678634661371233219982665632436325336658476343210835904929872094923993713760828094399503418911483038155747141781558250235426575791262848678437134315589620484212081618549562823673704885374015744962700878453841961001932284330352487105542925179969360705602019073534329462020076012559713016860944185162061647608555184614487697249685713376456464226581958552486763535296772626053500058178860746290906891752682041228890909528868065799259408343170737872890393576060334005101882156983757269545998261662979798504872923890214839218468672883782317659559863016746105706145244787170759273139468811538432732880366357955718691146742133107729056064117946870406282309781559799161001330561753599614577820190510878169108395518585811506348385896341932492241019337353386825801779634725492433349439533473082088511076100196476808353529697265175207363655510909355072282687805558294524373537109200172114203211924134565477028680441528898107039458586721999950155732480998582819470502432768537185822251395416977225538186320759406240060167501352676384618188990508765608077076064828011790562265025712498942231771115445179330141561339192878046126006583674811470149249586018186630134815283050041236529544847445007292515242337627310620978272504756600623639215152786663576378964897752010641863285768075574496628115583021377143083521258503874873930492185858730543853577257749616460124948441025664751994714839152228678163934673005052408981453360414855996134939449999477083994450694515544502249219944202161979384226737375393794962322672228538680247533599251755507988106530851411593662097230688130432002752351011583980853672678382306446751477327349643973713917962064289300760527297244036738805221630060125468801326284755965788140816479505828996653640362638715752552427960856027553833407822598553796481959239508187074651158962279304137427245813710972246796427637754413561875923793729007025092487826160594627158088038269851838968268523505634245186334611322082457168595662903615907177088823775817829744285312087177892087308068649657525082682394886835583060148094812032255072605444721628048594932008533690074156770202563977480400367071993127796757497985704322401303035123433793841119702982166128009611416748679205903443300609203812071232696215160248074500048253161202571416539529596794209693335225759842989241011248112816500927890735603481056779542442576021301472728928040615958014521760395499938205343934970601811690056256577265874935582551045380544207393872318672692410808506895204082913632421098919921528071440468452343826601028554106980718406456892539457833105503231245534582660125252842103459298640136340726152346253288623613727128415082977926702619662156847547711924124725017752978966778379712531137792572532714962345955160670930946024892189591970390274840151777137891748599692943503261652849973914256396997447220962817598273386580541143197201169520557135849025900335882503539669388068490012693504359285097729071504215746082123939853055848791454780232204462408788666437055229022017513997322328867868803834704299729957167316178360968095943803304647250107906214013276970724397377929151801933582226929961116068371950983215526350642688158703335781025102441279100436090852823243652611106292162470550400115289906113000287138331299345007389182945695650546486332656429625102011943537538690127668775616131036105010873797083991112806263165352053332606743479082036071811278414295898378421782142683492941943860202544985590061113756191290076483078860937127407553629714824856863504977304212766764826464956017887605603175750212161249680330203544424544151153329850888819224034339863853981329847909589209934093408521565545020860107098389760634298524519055512557088286615983162921523103198162965315331787247077870150713116574450314087492440602625101390993397464907079125533621640275582869441445946603647644289324243138410629907159992011055573787141455395568430795416474891840988797094759226817144792769848846309970659975182429697268041894441728711457857902425284315840592687860731474834229117656869677906187818996389143178029009599594437613553328507963596913968952459494712098384947493509772748584066159285828189341262359503767889095750750048031697919292777556235517953328533782427061978956821403687882225670155978399042307690342869645120576062078302913392873158204933604688247196725000513187529695236050799007226821501397243174527838393105369883940406430446603358220634101369780866038392175850949145371819639767050062460109181437447390112862202615038517153950750246570030542748998998663210644692347052448526635841986921548506073637363597010370082004549913553023422768361566092371837623766132307179429403505162058983788057576163956318965132833379910809862874371503218333793748127100691965566098102455034372043197579238016389338378849728009620067495263952292455253000391513286520043049480840044167616635725611033609089035787026666045741186601123915357092230799350627563435866941212414069020009842972885997105526204600735961659712462458728001921492282374570477005555522350790100742577964174566642181376076772802141676343117663347609280512448751798617501469765110923140199850247521055514321832032468386223638698021497325291726808182691602264014519857159898630636476938467346243735336212294526740029736632189275577631336143305221298373289362416838097663112178439064659213185276575754245214970640857261269485555515169441916963456349485189554909986185470749217091939721501418158355491517780349308284162785303200371138876697124701645305296251462535480884659373219813246040470050787455315777445301272216787096992396519448100276677245220982613889576119399825821350595390610825343830738461376643424814263503035635328088255456582869514568834834438986408470699615815535565709359785298181541228102493116267716647554232454373645520971605553434476004957991305958606654748091969975852369639105430605329969861777455570274840316051101500092750983054177882070165288780564858883539300966378414164514643065416094534649274971944308843019008324345001071122485095846236331155956540350010253810776548708890382448210596021756746917076126644465154974482026176935992159001084678942486308093110974452168053059968747071949334148212789460240478998678227086039521789819115257591092440949061082194157218824513878752510537877999275056350892651778227569928390407262594300994068365841150601554274085496917109322553335139905577143012245622535920908928995487890168873879441498176674091947219085853207588134243524146844094694287344230346798148693206669054764408187907564332780969073743156106540035033625634410455405611658425666194641315699592028166095466040404330784296094233642800676425202468843790370266432738375267344456677436044759117234554431213751299871605349417899062407462480591751545421450101525935018579497967709149427762987677618753591769766569335362007526440055827223378257461241917751039896982850087804629116124702935977041571227868208415059989900350764905681353154496010505837825215407229584781412092260773883685833256991559582762574369910089538863525857915815462974099288929556581087224687989144433932867800612434479704940951149872537221620712182814722472056079163203546845358270539996995617334265564380213934441344178143274734745857133433696450456688363452453000414941871945921948433658051838847285289573281231874272357208174646490615680708810117498592724304880030470536065982636244872218133622058442769634789925536739568916175956008312751253637311486289182885319964774051306528739011160279514724037652046796752757209461295488494347706847358388657408629879684138685412903844567349179194724354737357796297310950136368563409865248512307442492548600122048346377696577486982380990753387247381016163310452201814820517102454902704032110393175291412358590061321995807115235246532730824518745519017632123239266091955360533793394148102222392043058509911127812208341729985428532488899749378137714924235064622060497016227225755592720282304524616814483277945957726840574073524387263251217738607872522373950829206825862458295828660242237009164114532251562350867283570259206579379358071723165782531026400259164948657585156166324005963374332240583635768913638099660678333152055381942981754518628623952762224642642676193220057260940708007453797660206932150660480654709236700254554780937431296344699511936457022777042894919874731465159991743446636643115270320963181447439684666070170386568389290413726145179205283037798001596733221126213921110926943732426514745153290256779778978627916800742645700177658587727644110248817538709550286636628570263130432618216755997340755163087411848101599477854617199275806420800764503939309676501079127964575617677717231325287087711856436547981557213226713167103428333750264809232709279469361875423717132374321188201310401325775420615534777473809549330295605286314299239676172425951765259603785367700486543020503790556079849761798497675485222965689086687886272722881663572996507421217816710131844648983979274584104609174019553594521807726496016485658963312765177725658705566386246770220297306716190496476017555319174306942729638024399901578625879540380429250103996228423609657996174256641461082878246713086538672251974748647516003719122316432937361372141819045144539853812903065784552577768190642150208663935460111797607731446016980772214946201821547541834681569866974952214374839557436099093773062856953891933363227788414778314701635879527570580709036694132143464672142162087359745240719634441913987157226649562352091248948290329173792347539064790206405968944585818188316372505697150824954721001143061291121279649246144814945267320461180948317795371062613856065928110748780204744533946687840582328308436825234982878787872310438012758432652887593289055971390870948934329187893635875230950319724149433114780268151432864570907339900064646030459459193217549054705331778036306110802383790413261021706542397776828673948955234340911459098032180074217482663080331094320351022449765405874305268721871751194126218249640705330581976057803075872413989529192593446488328642132208951197285705808517291260809700897099588738088426128194756274681444265890817019397069511420115890096932921263505587869141442250711178957641260682120364973158815585061608863608760914541064935839738204605497699126066486974172746045562007307799702585100042720721119043832265993412558525421874103154732225960508903710990512434637828463484517290339609407754596635713245910096175676302902348050460563679641700962115939272348472315463593430594204787839165445590722304172140218548572929634729920690259418299343356328337461915893109936665149027063145534637819213291049536491616796863368662028092059092817716963601643203871763611018915264744243719685340243414104096601517523306310100542766017299959240798605265798181703543837224418970867749115571413959050458707124131886615996672031061178678423881754290008173067900077007691033159476847127480514574501241696094212206856387171920333447701431277835842830361255866972279922760055302379575476687610816995326968077992105624219871377642748393459340077056485682473456437429289628673243007132756972117828634286318030784608054389670312256520481572655059017359031806561866576369790133410038804810042691853738828839376414093037236973888255993801530160276509389522256254865820311082966387184788979192572735164865299482121112858223778520755257947041116516709830106738863680206503235122142256662902083851849739796921945974039967225929357008422321654449433810169404400146421727043690372530884977296761608382679528932724437332333246013059258415325852801854229269755050485123165132011744502006342289757497907418664760905666131360606644004496896969721234901516010316169115391263614115481201917544038429731064806138066724067945384198776309052041818645539885600160580820853034667419992255483814389142688603905130731134020781032205653990667565881183469712473184957421049259820412330069810666026726671169698692523699672571208396075810659906048855065255945374653337081631251973152731509999799454316474480365305254552258583884370365313584891449688761557809865456168794153263334329273263200548073298829269252395654703527415093876485643436347363905600675843429577925331852856286630802604564350605186946639688276836830339113210582713166901053696589484335303439442491749943703289756126911849678667539674575691867396018426595563258669824736263280832601304162200783776396286353566372265824774101874639846091378179702199362466943378756105142309160349673748275321854244734404698672281446219733445690655932260451363167757227697617515295131368522795798950006308664858333835887917085487832614008143431868553643254090059256577569636579451518524322789060466114324563345943833363555570874383776819547935859778320607279089685104637662956117536112987648110058105062857383302149141896917573236407922394003876101877306882080452098706306966501154560897823955897565082189529805373429424123902516132091506835256236064322914635015292687625630883954795867360657404046759760319007515602628699449176991103325491903646219156548965836387852617625447591030404311198331336748963735430503347083786802598857297142357028032030865175777763662667141435845626237203172929182711565847738519149300268114400936179833637598155369213119461654115199332979236583635470079853115340443755117269765360636963496074570920891015388454102474218922736775392901525451487617826532699223409345883444360653235695748306747586395982373806239220969791130375009247277674812096148001483698284586688253999225417483124877990984321388805806657528049631693850928166124148420485590436537526055706720886601983714724694885590600234629566807486927644853098894577702525592765513684348179783768031252200620116549962193837682463811428394275757335877570761665688716293017001837015018371039585441795042905179302842629842405220488528768701799286881022341080945003087434323860985202259358393977991699514148065835957707915336042152247757054138158305980517242682030239138996187855331493701001817375994353405179948284660272427138923242066358221373564025556391612460435931444564771617786686621907569941935452102405595785870962624757823742240872307394663742301511563080796212550769818434157522130201316698531153910951708625859211707534683392489847114245785797092997009557774905369344589302196286223294270737091393848809058076360162335885070711650705922090342270276836744047177951856215846423785380948439170215403091696711801448335041535015239857878624824002286350512450978753013336292748956588101355998357666413258418676881994182655877092540928202536575689091692064870164565203135191202308844779214201823238348125819252306290640591388907267004801705023802831075498774359515861095847845820471723204782141935956435230068240829331676949586378324337362921329744857648844572769422318146291690403874078434253998654761860070316378724449687240839325903040724630068839252743783432099978003100739485432559619959130543183380066808421700764717211710808314731304220101787960272769551848693156300003864739585964751270818062020291128101337215048299141598146529659251391347587063710574098462531744517551592982692631301956316327802317254511633752804934947821360965176783054911937170981083493894118411172845296156450433953058077636231039394002147462021382486706561324391289240805508436489450514256223086982701139177583952065947850574696720645565763994890082350616515822556520055579669151613607540596247592653021931538395770377091863536334412864433604192256364114309288138523092785864451792785038620459754236888815096591343013933535047234965132786749615875083439583719620312666983978789711663221128675959752925742103835799650996316027872506722612147074920282549401618272791680490582871521562264999860631095099917198795515037916354441215833577121665893514706355767077417745596504672346945444524877845827146498403990588973720719033607824291423543920061436960431765997437993284717830226778013327782169230146694267987382059428266191293591555024153465985971626643880788644806205027968290445532482201884727822601428802407661448569722237100049406235067431612274171114202159221157017426965220879588473073503337778684363090046603224555183258031040673635343221531325637195333564631541286439360189218973534629125332333389112203579331345521202437639041302920016518888923233440353193336743415268776177611117470226620554021693834770359186456374327614850160973606942232708930860722587503955621337020952852735317797731572447688268710501885838486303984739014431021463616448387936481069215613600358072147241946390307629962169121096320297878988358402117215281543006237161225328515980224643399157044372202464484053930451873942975393879588182581577817189339120338580583359144752382433845995993656299864217873554151433131337773324135343945809545978778488642988655869053115554377129586633595495592066866857769462869243414197437184868229080385250175062079643000612311914676501956972955333436564362693874714687171405244092288072481970997001029853721090647620266519015108944919215938056824042653681861982156126999457275648679946421579928782912908324577029090939431238334788341536534188840835214965839737824833257850121094767525370725809284199339065677110460429888446881112693501571242807705299641260875618224627755980596803038251962927663387009988653077062054296588416469634559163346283564227567391457178158236031197613064851001015750483303015477030249124853541041286723614030603109834943042506728575608915140967276243590336456430749154247425405915084577324843763421680820285207259555795894167592312949853857103982731575146959282977336649264887398210472112776254603086831856629752878771442438501899141792823091662196864474085495401585737502962855267428737264805272024411634342554429170057163180392424227621093184018957954206048353193616225373538142953143078525330814781204557815557152399325952147879562217843339710176201734575003437504662013304241446215111486995042668555217191018526234214092187859669436322755512965099328462471669470803189683634002974667370176447342755272621317185968334475136868181327611495065964436630031955609487562978955322574571495669014372876870647816332793905427614474932536237197419267005776690268626642562608898998201205793492659281260255085436402902692112150907259196852497343508371831558103437673193681937653670671727496921085918330882405893462547679710062686029515817745583011579370282473139114738620407625574173801490350685606125979679306329435540942938004181564000707613007592679331126110428433774770666950669371783131556775535361614517769807143606628226967203588742614294540517539002302946956999832630045124204704504552732838619833178152000382490484779421179267839858265095500237302076331124516009915075500760196434582483775703043616515373336434590775063947987536945671873303716663972535500834315915189219847902921970050129433994957067115048407939945012025656817976559611448112092993310591122503478599214283562252485038800289835341904940071177193112113071796240936287801307587845366869961413548627100360075079395430673270373617467264671721232945678950727566959774562808512023047707050511720851342293534279564975348578443357420600289295264160731901434758511412035691017519931942427221027338912953579533172439041959283374152254685107442774831487892636916085780793030535901406016219268253026530980745950067863032559662050487409317534847754301669740992582330180697593232856742621359677608547525780560539688000324430900042515501906037944998329384522992693628959826783586242809522988113301727002320072420881511372573211035368558221270247846535599307474706782765425917991843911541150220829330774925895029484299602267770932398160333191821168059497865809107723426864857072623851762486916630568744061351067092864733162746442251238036876847035189120513202399915874361043962271238322578152944039020353602093373919114998818805250687333721092700762331073588852764144890028861247685422986474207787587453955842417710142127152203980142699015880662857098805717066939066190690383973744015310793203977127476696600523505433373819229897671421449191743971648926305292749081158885580695873160617849459169133502018099285506792887259846588967995360669220761985410745686289667688437773502757154177569375930817523727479531539411267961903504965162457589722393262539168621561045892261122899944954455318631502649732988896794420768215610594072840246013924555076310963485344454161951265555540015626728930134172547426109126108152094686625629036168573730461126208076495932281547054483037750351134769884801902594830331581862006088707801848170842616476834048247363351285117091096221057319095022686860660909831834740735042992839374286156863332360438208709426076396489330028340910536692021310222119696836586727456015312977651715118364953230467022544193235292867390164358730470744812443125270341579722427206708979721174632563485899690717655498649346132690381201051279865425221457309781322820836570760738005036756131503655516426786843724169065556251727983490617586963176230322966964596607698571117955334410708261550394340827074396198879351362723743908790745481408318621665167417497176686421087527483742302347712720286718969147094306763695325528555079798156327995736387237054133521911188188191599781456123085370483605848991472312204053967727196304170880802172397612590633739476473422620764308675055604607205388904691036677570970790897052137232211364647613402318306126069403912027989794840009811640692879502511474420171550097892534300160338997414005926068207262097388106093629609922585516606618458710117305004098291135184453639260481381371534001157272765883049804039150408781218283677927444390874057909142430904986972548955699999768550735278428659295551493790607403756304909519141046227951388357647740363620055497029037582110440642710062869021858425083473114009507313351744322957070822914096122582435288468079416766437490094945840252865426499547506466764070542399135151576351916449183295871572574296111393530457297069006495773680320186575616912350882960932407899264876332693339845231382780951541981888481281781276980011988547422562795179926471949894083862026973552285590081221681950794700179590318230358113124919246751304513845069324527594125700757755217145148593380395845129397323242455180210053079393076308399839282017867498278506895020326619567676950077938477596570392482836071326157110650383330600532302659529812441324250669466341348794019470621704071927947340343427384149500351973275253742107672828932785183832405252019467836195537572534087278391800366522884881570515918190763359420211230589082897207364951907196256708594114821675009704233902205320679344091557533430814129046856162359172291325766003733393293835931917450004788738816071115551176840090429213374018113833990248372722764221155564404831519641414516494539426700179213078689039546245962434721063341383489835523068374211130211061371331910442851680939568036325071180191287764330492163982088985612521367624319840904379408014023166223151966332525367850033908059212172868844271245226003621108690306593308404466920274147154799039833840866948063894385333039919684528255201538798518536200180578581791278828884915960592642698589540339892405524209659430462220769068158604852539567432545256721574589173970389586151359563141552859335901129536939938979021124706057799005303078615364306385828704519558199149130254083633131592227787445287047987270685460040269075825835941985842511475110246975511475100702670977280638022316749886705632739884537494120098848264560772163743307229825239418188097188470383113082069225342511606094543192412715187603626382682219841244582311839750650006298312703648811238880989616787302539833068413331499008653992460130428059188080109002770124236001761723653854106333681768304871076376282785015393524713944771590854275741988115522813403084694671110438271145488691198062910737063952790387412442199261886909178111327270722680396369055278194559260642510318949796098240696911807139479494113434045272878172186216113643122817817114641037980336072067287260075834986892091579882289282200398006185130039181309743852312887170515550907015535575802425298267212123294646463544472303175846425266097743433148213486838191411389484140844221405070951729065212872528011487024317183137813685589049122553118054488118794887400700810829093329887968613198200907471635698292606090322509165261050863000872315880775433824220594393074100087207402442925164544670649816081495817041806471860139650408822922711413321048681127428768071914016721275852741009043107229199025582213730670521286915501014843247697949640574618473793771251773121221878740177397963102075489569120997747012128245360984293099779402282655208637059215715344876545278262414877879605111417706422078142855845846465569633140123179850346811230317559039243217548230256502304536755927532045559156546315874793838548746064221640994684717026456327955626062860212218902909027332534031748587685080309884180854809318059235554566830423354073212547378663948168675807247594157568767992352855971096247753735784978353813408522439700426075855685772484336519195031460143740365410632067557551647075866650939469733302608384524242620582247510034556174843572487429988063677811041798252663172650524076604719907621761042145459278301313719450249081059181377208086016170512698547249091962410449709256525517866736601016845945664452059094551179241832779872846506395574870652733027193203505389063047543617864388839929228895179939828726590454311416259810242014694535109537683447326179822728009500931967455351323373348932762797414824498286334119070741396339042300567130833374969755707114366686571962587401232606674557948093635363811792271942909369156300218972765091813164970143772648616781228324340281150053301111736313855858785372685847040310954106565567162722983161297620739006117448879482884850881925054030897003425289698979449635932553749925801254540679479443276702672902121099548437697928298894341933563828775765484398068724045212662961014583481924230663397834737516774912497027128441222369721542076535032999372365168820876857049583002004007802778047019845102154543407272316663289014803610900743046044196904984594628606304205404302702958743005633858786114400956088549020840458994447946566008868247453788927580349324432039968752789158241629799950877198859687493845164247462110101850222605585129730069675704818658480621342984344612686258743745206630741603373617697338711052498336964375233831119199687223586400453245701760579376370958606242078744701128564722962134482036724256829521468447493369284277955831282114014096597674040832901159438314885600381728770042042647731890685545118846421868858750727274929104631789558264769835592157224620408173122652906394382116852398416539484347780618834348949041736822743617543086311338496165055973475496727326928619136308086876548060998434481604408154456017587584413144775012051029417173912399038688384684836804647271806504048282428680122370761992811488384318396099856384579516937999145424465986926614582772641371711901375713705892019929287843450162319928142565932571697909063669759796655877965616839836409216964477733355655413787811937736646228341968390014553372078483211164730725968135546954559885771877116755030366001543544295483308259552771078000183657980963551924472126223191092348515234300014997996630084499049587581779153306500197542990218830253151365016933641225099050478985724176728382656410166465436371745690080291165693365534335353633131973760292715710934038706121245986223933472195350213219228284375009213932717023077028718097460501372211342861045585248929230757198025476058788335132601092696781694885621452113034190719561237118114519633340298718566606841301175467544197897573193642847029648514895951212123452315992751892682280612298943814983822551496402305433599161938899244651591794636474666431252876786884567170755414680990022981023755787793928992819985146657754927510063163308515165806111459114867818370866102312651638689323522458605852349154271670528518449450282723132941531210755024054638638993183453146901101996816041634558651769359993096035866123936418651933371763977400754389038908199381820186981364220768777215062319486496999431820218765735259367635537424122963136429383517351601248194266346415732434699072412002043291221691385170084812745846958293047076256867344741950630549379168872540759734198178419403255554592988041336369701385940688723159215713335465021960109920039586501072419534111442691701924902011188038056358079210411416959527132249847476034577772620037273724335946986570794980057136122821078004376589939385040404024574416426182205451274782965032547067452190452859953672135187886026976628190901030955826814940486561255983869937514106613746281611682830234710019965842555213318092568641374707341765619996619825206646998741719885774662270157275066644402533615266149780683961931427687882271150002365270949948374738126066377184496451281240971792490727594297652349918599000569748238974923673930751965047631259719181675408900949013885459825721268195729599155366298055637407597488657025467719284111115396835466043186998016116962493020242312261423687768267981280059864992597558607707775778721261194088754549083355843928735863585584051377750097366295520129463445917038426415138810861593925498475833631481438453403038969144309048241062267622185499715879306209694684154957250034982836974288221051457524569069370033620894901588628815141224968698074723369975215024412523803762360095642077689593959898600459698882778880623362792728253228791167688568401582931751052293598848828454954647503996051036919576202147791890557332819138936641665401902916569529830266817126108492237804803329876065946542599158897100456319570804957828627577678628718218871930716575143774961676879867584658308807462574806215096419704050456085195001753003576234839992304448887059027285908621191921976853161891209026112570660861540583849391910726489838663114553993553054204085566427659878799456783858427182764830936135454428443431814923612006793870511065356139675655712925906505984595311742498224933753652011961969500145256152490461281058823049767639819518533852676301840492853731435853702573012428414129681670192160182449001368533105569778147845703757231001527352389262891350171851892689413006418377119910974979273610887529890880071868878749967866890733761003872850700751774675051042272579895881838021823024959677054839460489968102757947399116200090609771836973571640694633612326700209689661244855159298532959985826808698024009042071915519420889741565350773879986022243934286200077246586910083322117977358908242019193895761422906296151771107746622562136965723780263402411245643911610146128947202730735460950973093079816669868895807891160239468502952905043920070580669564899513050323906154391199493739162684124714837080430528146880534563634358830085465726219640728675466347396636129365912950955568409518625332243851011025297318357726697521856586749171527247326374104502791549405038092357549023443622477211505817268883502812203295215613553778736803725568801657142367564502176877956274078087974190704019650941602815129337701310710077937179893285160363486004028679892866531063902351479858762634067646411731591486929503029693730701939546036882169214939519590444297718885683358567331743055811730672868076628434631990297168505855546238936005877615834333546215166727780188455795269438915279878596764528146861386400904825812769193637157901341338941271576010865992063084789640425698818791997279501834307081124525274455875112485829573333954765081846885504040304439114024687472324094902784543602621112119191102792481335728865287975414249788288327715444051743411313190667370930033486172485839375389241810991247234063480362748563854528664464314532935883568249748333900642146851101504350965947692110045276533703779864818927523273284495825491012428704544871692555294467504554096176787361480787833355873432546356261172461708495169209528441698523798464731479818579722309016467394945757307787896609689525643016682550516664545359719036797327863541770069101685407747763801455311172809346640255872586470245057499320189390563014262521640528617438072399121652276819801966345777072838276225796006969716188404107911707424149814254179744171039262455830886876621082298827288076455704524246291773102838519081538445746043919582417547275591834352078566185914284802697622870947127318435170098200850619604093584275612710244689044132242022010411038891605099421128254329541446645523196076935065598515848516542119538622251715324306932619148476977050577927223968177323477708684233836549348039303733185280884078145239655041024116175100186103827117951780343143218224259334113668307387293866003523682100540511430243709461306644877907356899579034975525133549858010035887269659298754463456065445224217227819916757152679628669223557442065368344751203122548883063104281214743025665061524959240970647686237364242656522163883822344851873651242849012608877468855707785392873707919955324864698338975431337112778297610932590598050028051127153986301449563489155594710527533475698138562077454681407922809821592710013700576393023685119954597622663641153408669327318863925177081842657712168820300646618031354879130062820473115888591700974977509287836340225674774206433035431501123302839310001364674871814383988561949321519764519315928568595492067662999743522978490202033428072156029594540434089598763426857954431988226280744666307345859215589786921785359681682628282154012873242389484496275223003281191942112598313168698731457432581967906771012482249441985295414807259290277841042673190250176450955502925721924409140756622170056512993409828490545491800175531180467195634764927665396597456220282304641304991576547873800872472298883854918211168710311976440264376185466616630356837886906621895882269067443732389792955466715552613343011399355747716748196077862077134482176290499981501595717537803508506789804729069189851537212328510118279734197994943397299856419340505150138753742295780826322322974410921453218483913662401724059023577471600973036753603664684873051145414925103403990446321266031588601173532046424819212090597429991882046615775246050367052381573392114245292783575557240409903083415913489143353288341230022793954672923136585181298550262655799545665662621918430888864596519736002033376293984410736519329252652080175574935862949061553306134074962706654195016463304987916916187237732115941602183940952326063212239305272525943493310416675715603196759338774055217517444213109775658159014065578280158493514690926179834445836791961620634521923222215457215891955722093523495150525582819882661712470573890982385534968144642573379534323010027380082606408894199045167479012833533999557143941358379417047704133791339174880272806525812833235986112341055383656355064907585537979869571883040263245949007896218521242861123959998727779045501964050837987259433460174649391596315999317561136845485835115621541457095670126354328866460329007994726132053109240488134373712336241500913266103384809169877778624430619041950035836727162904728038785603548847381719747728653743626327352875601367671273767090097867455223270214768799870432061037500755947479730111339018082774921726394173657212785575380058107721740810969809236933358905505268729509527750110393814581035253191478365364293976950158100883522260072603766551970847334971628401539331618159549713402729795071949581985577933421672659015378655242029700770622619242690025582947222206024231470552681160653604454931946232311283145857402378864204215693162944993068152632336392496611173449712223183149666232310085736220223844227973459822017407927193372474850163741467228567734596325942938093660657375097997312080816381542995809702229327977184622452136149230318444270164174420086403597748718050953360318448624085399718222835953941390169820350292263615557605072193509203506514704444362137776860684240130693777683346357826584801090810991029103877787635261944382784078883991027210058671436785271122749007284462837430657853066472593486408734907732017129192604063761757438560395367348873530642316391085464251479903049228853222186708802415782552360909811920743357874538379346431991121319472235879802524943452850674501323234578533075376448412329779770060728553744386042545294814174719070699463586379345268648120797385006793234226653753661448273671068511827548717501291281824112622445736228118618701117502942592496368335611218007664333087366896090878789995756921875676598603578091723940199102914977136213726271835660703772466147034469964363547551544801671405079627946048828467912595001653169948001843572642044011890837226325391791843690034703224007901621667216020217615299029902192087746140429639710982678527880886037990290770807152482335706559565918127243206802634942079662207361649786611408409820926631301500372392638249218319436762323586321058610430754506710405783517462110348683942449601111862941890154802640160068570209159806245149159190410899727729716078732435069537914162033467446028947431796492024430868427425255529223432958068087951486723042540124782417346846137938099073067850583299083898778741067775530986656867018156618201891493622445628383679721907476061759878502824296404038552210867880252912209268578463841054889005966208643029619340656511612634026070853241887369430106857964253081043619619141041899850703478016095324821018425359679328695054683856632196247233466493080316046360098569917082246349259069801290728462727962501930962494048043118556802598862927399357750283099622184612153295510836426991304222667048144139298049268773460146839156145547227820009273889134687275727146942749040655262566617991298090963507999212134990223212253880655422959386963398189575464006721971986435852343861305251744288159082161422316003111643235104058466010658705679284067494045315540824838120845457741738759608832060717780726103506053587647583776348205689872476561534465892129080778699239974896875767905362803144293486793137252996965001080673751838134180873374745465828225601593500083514218756293771444859408140980713428313808947662519406627834314154609290426223431512684052936176475353979175632645909526240772492712942950573803658796143607147241672945983796728801117614877552210112184478094762397992662015807140467208162850823665017876870205536534840345588544245056744782555628951187093582645109004755647153531732030465507146568264744713911814330304699892001929419901848566917122558044639267541581686974948394244728736768100444114889292221177536649523085170222535478751683498615161461175485467800485208842319861324812790936263381603809381213094136167349869416284895280374419983325089328032966307826837847944011336173664111985320725893567163628748458302406655374886630005814693906061433469655628664844800152265261664059584894483922816629867438119996986020846070731070562542738286436810593004494516932855622883158229354293450654959515562627270277324997903171845645622771989606932922553490245573730527154449983267067450118796610751414392572778990497854226892455943241812780979115893335333267318234612851845863042392385531058041909330168725151050292546579019362113238827293437194907793934373159860286492252061666369452979382269678826233009327918638919635379727471753440644479181341820520051981383889763113888834929328864509015649960772675313781358393682460689741869935537868074330035283711247654081422446633952951246224385231572402690074880227053973290062757395655366265153994170614860970597240036964743581349253156439164957654819080611814255674906096003915248740430830180568987845046718584610419005627212034419443984447844601921707221788045882126645532000070627382587358884869147112539410286414152705590071460693469008645096653572267715612696997173774516312754393876453105526993182566886123701162483412622364690564376376464961130858594134730162718419604920023915583287336825876774409335959711696938868844990048367732756101085973964748106476707131122047753139811870007479589456989710666106630462831727653169769066133200836348060276200506052482930269941894748845895765504046981723610495943638388660296538788816325649987335615016101982588284545679097214133828897068988862170680113657592043466909855711721939405982505944768995017839992637899053266485645801638825119177479246993380234909454886960144190920564504190268518279392751642332376940477479323395943387315381369861660972165316077855877347990985079774476399843260078999199038570974316192275754063602054382116526071719096924061503979263151962745042716149489121999020011119727829607844363602304456065327442026335561279078564501492545334410740037643826961328670369514668364063996060313500058339189818101437343146558587806982017992844184670024317621443240278473332746775055210466132481880441338652035316737148440185302022838711935556421962097453910853392828770328782740689133902712868629992189633907439096721953982324579624594377734489675408450899249304868335950662860153782970044534330174581827181714494499310842034046433651336409793077809569607846347126236840484420334074870079731824085504235151720125508599589687633045177838722926730253649407216762603141599487777678773249698922941741901930503738404926801999117713824946475636441786816640828881042065203082552726145585171323134987246089684927310810183194527427731107235924291022386288690036709208223944045881430438848437311899169197517015117562226455843822513871030156425288154611645133248887429659810861515690197010449503976036946090806136708734664111337200500499521365147006205749943472071550875061403892871275536943640593942138223400609200304798833399781447122035945944814373284055947164838752173989250965445022973608071740819341787961351111782157982429714512164143797553049406069820053583036407848487950912503968692084922130559816893828652170026107113377869846087835245635583578406158197938715894241828274318658565589172259943941223530998967987825917146142292976765492616581855738423080597839643191205373262796313261185881508304284674837073155401054736811366860445656977517919559194371502688972246187528310988501053546931474147917708378781496938297371553338342519440800937071772793361336924931138773777878282555812925967456050493538288588534766537820216388286758556047864194317579652077843841513924571711306881468457204163745419703141901124006875091356146516449100646546477630800606147809631322040204079309468029745802165188990613804388485496552264820258824553789723769117538551118451207983050399173563678741466462009597505894417467364833184594665322033008695255007839757266702454740929468999525349899710632794849299597068816809601264033888590860188815350144457741635884823371823292772366570235839572307819128265968754648026625071616939280881155397246988921738716115479263068383452959631524377547054703604786933238773511542629230661873348051430620857608565252907152930067858850165072629114544937748968713359327769296028253125171061414501936514651258146053554324471592780783190367393065944820286011254679257781020741554510740434194287534935713345430161984336885862024851791780895652233714834815228584340784292046278511354840028155206089206992120891045027604144194340246078796495663890474255704667801372962073617744606877488133769277763577094317822521650822560901566225416091927849719988518054863690081806170610826045214037023350718852275932756793590600795855812382061499897093217688555355621111480659916242887724846571491805842120467788307868770899395520837995615360932970672831647157659437573524288925025279177696641692115224766980891684738779547706479078310017240032645772260714487472541593285066752700524974249772125759484006618170718217867875866537984671723393232363457942251731787269323912673746974575737640527363980584360683911458777473299748999232540134865640969007904374010634195106086690135381330504917635247201467747588822835164312348527898686289632889640532384665919069965964577863850825796055066300628386630834802690449882154627284412108900165939463125609886811316166424404707211259456115838759981543354839968555895166620818945434809397066720495062953614844769337180942959990912062893108962325756056440745507061793478284521502487682392702869603355591653150430086075496728433113177773142636822517632562787940428600876046775097829101052568462187385141972692379290074397133549901770328567194528518037903352919777741418696660126926738682425505029764096567257442547086525886862913945566143724637985925872209211861493864416571830102458670179518532180138993712003786242241393514019820982118822887953653128942013983818074907905481767491657852278303083996970966573600862121847706946098527199907233201101472159625939887445174819378859368680221031150556463463964882992911527520511200395602629117092778260906470686477921941457583064261226094398708019091349740088009727113147840920028509282357905603990277121071844226177980002620470852699318734067840605111318723746837098054343499580174365237129387485727998904784413145352869090033595353232653934364618925297876740067215092322623980548088976881497554723933370595700341005774318401907957543264398140193069250268520183400103929254033379104801269645643495899713275354665430242212384310717077897562948911330088495785784017691748967743049075772641839856208431241067718867309610932288671162114779466072104746491708529243719783357359736998577834038211410283331125900648202033756153302080667545439646171060833244344242130078016833811334487332983879158811710093025933828819709723623780514160772414741169704249121956947887305819679339941562358758886601974482559456251260398886620012573434121580613194496232555084996559756919626170503090217332735009482021901762894923681693656883559420568131277539363177447900200039858627061490626071826745165187927167055843774000791193053858749829853771764389603077721143334747641192962112939767828908023044327124589937421589713573065132265091275481809262840566805526948494566081377884983117734170467637868128247523793748231429017108708503236110327519051701647902860202622020381339917127039480880451550969393145241478568722563760763679765665035657475391172531944465759433849765385355485774227761233766134853327099950620177649760916479071029920044444404478838858081049965801149794142033510690646398227764211791987637295662496640263594159532049736017149571857696841582090520648230489231843645443321271775153349923813524631749822728607471548422630923654050392517157844362266262346796724653963514807395027569049636530856169404885545508490004257521183069768410566187156607920186583984805211017948930416152897168177586749980557040511199841736940178096774491842796497155712923759363910577830923157782181472702982979485194658316312383970103985786560045712996757685638140453944144703901804209680745473923918280406663407545124989449734317760240169450022089622313274271922785875207717762637011681768387532199101230686195799642513038220880129090589790510346523602527466881375866488353950360008434260938248206731614074919090580254057711374247014726108242959846171131747696715694809159167896100832711005045702346209721325971229521363054510095840314188015045113893647183107918912367942036519086856141075618225370388788096283456035167658063284031776208083134881030879616553322991512036719667594831951642552207367591177999761849143333620123225118482051801621416255462595921204928038092464284736306194291962159092297955579122138916927055380455664092685389269956864468285468190663245983097346659762080783508313117389559999729045586391423879521961736287117041097784271250366715658371199768143875507705992798638825565723490991343796386091628189768904219386514915643671523761446795572021289454171666576793703769618688595634450335714151729828596666273541612022350294443021675710755597932146127494505586723897556868799906598679934858065905364791534217413013296616111718479465404255265715113583657468185719842704436458635683237672463967324478227114751908921736914478541579120030729343724356512343135060711944339388748999117075710229172510016721721373703110193042550518963631339826549415073201464489265561857641232053142485242779534090805003278131642129949945358893417850989972101734653405883699289558865714414365483656427532161075298110985546938805735325709392722947517452565038949692791742208967688432418083822625553163444649366163732952038088889129440652242590629078992806152307717492690361132578829672391930260200364229280528520720139008027764721932576712961014948399650362195026148799263547962887606533006799935204157544604072334562821294338266604018368433127464677454588538952428977897316954161767880422573025674835890785970382045600373614266591343121605494126405464082751681508086873535254332800505848961259360977883953626272103821816911242699698456364943329533633834861657352199794018178782055024785024938210524329868854392755436695698741212549470460535491599785756124112277568724337061888905703021470158713834550503911440411437922897131209899779763879598652581327776707450185987388767842417470056797025043925357908849653403485833207770261813285156280401845606353422707687926517865049831015896525148213390284371086905084393765531120042793220491851047074721797901018865582439295121116333904541815064961516563313143493482041303519700410653562830334058373922191978717644694728519863433400515473955219297550777127238039323382802445882309031726248715005154574266443698161540841459554907307528560459003702945458608625385129359802195715236951530371009243206071934378234429866833717813730263059564999823864470404597151605227044175736114325144366326770433177639264238961901955820739068104384140308945527510120491562846746709113265513170484063823533367596167659099538458086656744333604544107429285987243269693150573835948724194428546694316580942769498859171323426597374432442516127620726805365729913097084246675120112107705512353921948315879824482225422738599370683271241849647441165838476002003128315884080134038083297376005887143694796395279462403234643708721325311058141371127928039629731065041767679539500119388548347561847581429443383722007183280836653748348296548706385047033121707441992397452680566159364916849994486513852973860697266053745527947432984170878082841773596858693338084042817845476919744635944193951281588627319644309849089190600902826581556460389579232238974699141697393118631418381034784975041884288738301821212949278954419082476591650446202506882664322331403348857728556603493917063431152184458563405863401477407476202113842531085281784451058801196750351159932951392455442831982307949131744913266843596049045862235895498728265541895407979970290421726023714864213907916662818105594627240294179955466725663446806374492732857922692837763346989225778645236438366028334980003913897222429666662960687180454040703357192719710693846341581952330227092575260352321890574971807403458633578868046299434195200177118128036810601223772873160518784565710709074261078748790141767094065818233768061404560983666880022625764110799171268271703245724136230620436573390263298071116612620667616359771788811491782602728898232123100434998513543508525393884045913429263318523531122249106515523115358088070179235079874067767777760749549418033143549507346156303710918315015954865654784898471552231194233336746970448026667504362345897911226463631246762191159016979428281755237631501551647622724218370918266277727965144781302402952987047359733069910992800874807707991383025531431143799771761671616468777094270814014654237804875557002277460863459916978096170790647790771604026370833832501383379542903167337938560766847625199238922314198492338639435309636969281487984167462345431561041439733334717637303292006327213294007265139732946680101495317987163418234536143702213247504227944238682908303087110519404451411900830446372839235143441144238156717460871535266021255864080727980561193389066534842825402767798941264608103624288565933338052517403451980085929715303955379978103677899549129882524071693735576298705503091613596622117032822149408598351815757395842064417833452864680297556411383848933129366012855592609562169521363417660993816002271952653716395847534412817344309051847632253267387789261079644542395239636017921110311535464458603348485743825927471874657481590100184969044215459259262864792778188306773214021042652862171913592872443216871251870701398442868635733738339595085301674216910069318785772165949979965000108017539141697084195924302270437594580688850499332231304607273529741434221668667921222819198508516401250784114268988922570491729401159570690861900547350500173065653328404838511427807194367515031862662306693527579440208447465687075761505110923015154941715132696180974648955707187973932335574457392436333721160883953715678681138695652256873747948051726205622240878021863130590729239049179757637054942636978597337608003759390028969325821392040641989677059227345169636677242968703314315487436671415326408337699816738667870448441498417615726653102937360433247361938709613278563428166838698228561884396476450441052245795078876133248677243113151134340924819293539183824420538293668807406279978261054759971355679330594129715669398149252508620652400394371501685465788502723684160349915863522264367718651688607153502595108418267298516054592721915137186841477145536015176356680568402984359785310455518476185290406367856296807160377774248569655699947832324115071427088483729952655631568433367442513386798529773643342028732609294178583828099405159132079349708448409499242713417163822089710016560885174817315954238229164810064242105723805593227123974261201350815647701431877291233068925166058015886827190197554153934663113614895300087730625312800252938808093908849327709192785708898221812528596900743786766992403957671987826257628649595810785976211005377811496727637120712937236752816270586886927539796404165098395939830457281191580340842344453606167719488647899033307222703154977138863629378952179325440238465802174729304322249979781155682564750425651157439910527258096021668862122132608847020368976940387036936199251477135168784722088129654330914185276878893288601857369847552142389604630259021675840156880056208733792285524208212745064645044772648252369338369765161686639021206268761401954949037559442907058640242423573063812434686580009537297937948099945643599340407083678886203723828197679432760309298624191132392527788922402872069432342740405756177433586606283903928007141488711539942291214012766490328888447794131516521822816476992215487430268502434963790516143979576565335989008652594788318003340765175404281643277500501909059809000365751038254557604084664132801449030453870514199130921908287879676105177097322458867723964116645344650689410231411645614716332313953640376318870096864122812627248640079749620561354179060553014680917927930921981929354282223877994084255116792233357526936638961372352763989385882709617889250671101462329927805815366012103546350765800179398742178369386823253486164200649032922945653593183569805089827875754080092747425440438275406413654972086982870799516357946515456237630387103247742037308113147877026543073935966264504226019049190252789384712503855264197161731567433796918794728230286398309385407567619423254574663280374550604788880736779743463886602918812186060969327423381449379821281192521628762687059189070451484660355342789102811655938128451209912452507527177476114245703012311042217866285026151229107487245690679085417442592555369814135101114493680192916892670859896200284173429512598680322930477041422292675128171031126914792757368374376861804039504640079492240003265313304067668809030548988189007964203950279974181888674556194400497687397118893409912548160700653831278880615045251926736580634463799989244409078629286034564917232184308092565558467437154492635440140861414502920583440337245208912945255996935775177720815411526731647546939949525049821738784612363827546122229255470102371106660059563658352446303720417131193969296540646826592058627201913316962678604083269160407920841507594603938551141337633518124749410770795510934496658103506117891219588786785014241730039293550274216098528345037081870563946480260566029095073615232244329940711204240618993514880551813560737437678114400622975331724125353328847957730420101544021701291866787456490595519702992837556102077481176030925498899943817438474164266618911689062616265695913205254077443930795626145131822116224157961657914452724590471750882024765930514283467688114686347584796433927452685826306228615399333058817653576271939649575052032201427634120669231618119227096366400675652500664604395501663148098212131159674612422709897145610886780604003225560886447180568995473258180679877843469308234595508347949483222924383972275919269974914531296392209586320631287040912726267149743971630139997447056026908084595774106892353593150411371689312138843992502375279547833662374789474841284523188891796239424140264264627650602483426116878770824086679855680905601089069848195120741125550201529489776443249093067908430059733840323557590942804431166785270813530236234670001755629910454968407288452854832032228799120032139679541331484279627303887377636436880606680254156886965094690063229032381846743395281564255854823629471962277163844186725327243963324274906864003842442979512162314182455574746401926879163773149743603412649530372234609594720875571117456464616650735579503198887556269536949584928501920607195946552512954838182164333061174900382720557789321265228782240776969228584824885291075320165578816677039197186160727933982776295830841306289823207024731158341243543921354558975230602258124102505282087751476482405067365722054936121414382855178940191838088364926906703318727745513450373478747017492678818868928733357501591353477956311222230742563868802819982712399160282817378509133129554472961738190051795011955688823920758748590440179034811098378900354316743352646493060760472479173795424415796596785473157896419713753955930595202992966113331787357294882507397824267907396566632896116740106596248875128651829320519975474268948153922168578790753813971726200832334098646985289419980070558868073993327889731022666583694569668334226050875631814721404468242698125157509673624945844843446288398113448586784505514233184449436057712935699995868210347896007588311480734049811330094491808017294503384400609930460567804869213669182131255697044231973573406086745833823270043389829686408975255495223627057919042849737724036289783105104424098893260186104121792041875149397899931454613589541640494073150745838684596108415248829969216739557158145066823141975066748859281101292853065487540810685627315858892116170643171945137876506590201556480722726856943327649855922251670864147494496185485216101403955299764831093421999518535470301429668837131707766417916313363146973178970287718344377502519174780470861172510592687720692794063346737253935054456862692047059810814080917152893109512992805739975608670032557452296348473235174950194614656923924283615190863796800789506690379482903804258322931598229058035036266281975843923178440526794451179727274517557779209246393934837963950583547004095014121921962332689218834756523869314804708778241221225335119216253915248623470617784018630416133905522057675284172860715165768158087595133344847259767566764280547889115191231822563112579078192817548949150859604332728464243723487517578360863514909554237381689777194417486083296217403136432607234087983244649254397415764610760508106470436044287871289296035924879880718965384301408524375417772607797996688858776255476220329773391028828068738555778165249761567728368649009630229143075374183344731042924182684488460983967412075265224497767415527138057769293744197110916345586835477077245069706821296543334365693961237562569973604759187387058134001000381942655688179410201502828764711003955407073063803186891898595091100992044754491789557453376368628698072470753087004147680024738430217685630205991581495790761789393194544888360848757926392696154737451321976499317027150596161982890115588368715298941662925955084754511291052004264495687060269323475456543746333035921406864515840494475658732479825125505211493220202153186053051073323569205144920183965954683998729038660582631776198520825353473845548304937086065067720074592841827915828585366082417476122780495336945467593834987694561972773272722365031503738128646899780276720555524177683445791832375770389893641037855514454853495328861047805513163524904954335878983586375574372182222081038045541895072647791359718644775283819504283834644919802027517676104258003705316920223959449561636247979458724308054215243355625667434515683131968726786106541975138710718437598063912313704912737657902581294475428572365628493660107342748023271250430680384557749191107470103309655401776212865495439236045676980945563652515064312362983933815121523755411705394144322928125331916022385120945075535321418648296744365441115154059635637851069773992326669187180464239430944027803405002710810120422531901385002218784402865020179307966049280578256200266231142850017905482222049747549164844219787999976562627153299628368329585562127108511233059769602589725129314136975487648097976830521081951646120363590602405425332592740384567161848686108602178764587824220826878691715003765021037213229342872906933195735080993970877269264483001089032782282063042861768335148993832144923726944671936538422781775593550287973927127586022451613389275267986327993960604747538473989295280844708615392913448737344081986783872885322075769138194587852680973843103633088055847105640150795143374182898297971407255423613417354005226989183664289218992706312990972174157343293360876477248817786402239531547407540569187267386989051548089909263026217898465711587119539574192389261389176665038520527921127895307593873524877042701190707026527874050072511210686120095959615869978253595845334278292207979152961916627927007424701007894227256594599495845490518788296632129993414511501102770976386803349015756857678707552332397208085467212965715622051096584643221490445380490047437265171248429608890652483418998822604612936123858389021953485730679113783724655971132407255128081804789910922016466123325334802480084133077912247503631826034976935776607650363966804401702334329684883978277404819477308264766473460024833209573086374031517027401653209111845765549292789193441075567689777662147401410811202053443829362354218573644326988394887953189819458650676441476880489565620857680387568221256293159238389927448842483374099669715396210307163586026323596454032676344790684096069835200360905872875805404636941971474620128121866405749032967131073226645180941928445814938182743632007157016566928393529960085217536776750516796011828370414107184279652389801855085658432770947775670238086696825773939736482511074508919711478904901610897393557090701088687684154992631573040497786984457512142983664322877466820855436055315565015003398283330950400279462540668551585559806635657642173873209795794045714186781993565694016152185955498484703058077580829765214375574930543503373934071902710782930273435285547499500603442080021210362421544782700231736060082390742626711613215060996574665424014984716562463978622891460853283462062555533604660738950416340705421459233653814012758608826237868805925528176406413685912794707166688919454105300243118472181538533806429419480484439726748395184990705056256525177028504284578522669383680705288577565497487648659861933480707252827535460101275597320443287991996634147586051964371478465834365895153957808505833228022648104977023726235647403177677285679224785881185938284587695652570622656630988885606674440597747890614414919888914214169062103497773502978930693234280591334220600205797053790380119696568294206356052721428510118787882009046778649971890589306918025154076119868952101308262156900154359378908361028775536334946581003660846541882632213524627443416849268828263518295365312646609033634420355307782563890040781647238679175892499617085011648643322297126535217247664672936950771263782410756072075812567254497299479332854797367409515269027513174658066326447367265935136498179387722170840152747061739087360893917173407079667407713179950516521233688437262857203675876621933321103673150893254862826200885525560366889159658053024905165916765078596707653732391835255491525963311873440361449156272888927297913751988672577143334889313203957005648831775187778891229489721796989865109010645378357371168615923566840760972892584595485286656770897283608632841611128238658487737106715327754140853066446627958897209487197977163063764924087921035024040700357586668218790688123025648586563423908204074026685746204715590037705985657922730847521836581955855246706401692983846806837699177871794876321008995784645210660455591019769386168452280006859647190283636782327012509105406177372569595690353246732852132242572989517593085578773957493519403675831602918520712983617085487410700342403981620109450870724422999527191722489174357247520979421404199884686059620006337895560588077104452139229317319328799010614502519477449146236065486282782630062739710018444269995088007938573372316235738363938627155109117613391716618631006938009586080291897229406192052076028767696221532465724471997455183870277163864018098181984798727963397028806090309512849928608929758272794269611439955537888752286214913665864711791122137635280232259520830070850648397876265862951473639530125429036100330917247183900269148472058067751635525652571831222285288663979374397198210323149124280624677356655609818980435978623811911137440792404918820994732773678083747081340300120558083528504853090636639428948613246430706589975983267279909161605716822133644434053274878141158160267056571049743812471492158536590412900064895778681086376726398587649316480993935256138293774811140267567917948266653509575158195743337651788212410529458260335687464193498553674245740858670997002644243937682316655745393641761736088536110418372169970881606396000831309681941371676404981748659608093889710905797755970531481653358519308455135296508119048324189314141834493553446386340460322450051322012126657433502092666211320971460217354838333013112445849082269976404109804238404395217762561512575409478841962694442396044748803884881510068515577539869490147475347743097670652519999211662258435445466842479521415267423170957702703367046467260393511807338746459104255973301326615537262986167366642217277257583084642650068818878442801773016073610314709704552025782880171618721981085844464806602154567266848542272632804435254968230051686540592554535036590554910189776078892990008590070626129597051653829200580618377679729235754095980375312314872741275338490763969596718540611574267206146248513712978898688747590193250543282349147258027647667069423446703390439858084798783465708138080825488276208198759255647798376854694703023262824431159087050137296416644558045152798296286528674282624936087237263602164645122735898898924447892509381425941703457593295312444583581730814174528782373747368368683396897990650533765868365232031608874781917142554204284902915658869512873990977476005092657203295888963226080311934003240141756593231880675683449373423560393163530342355090996586430717722299871525469892947101119460559799550954127036880421757263358224962108571281547495842550633616159137533301523540921317876543366540301306085042633409092690701110274440300601883036912526039936528551298262703803257727414716651944008465986712206496641485033700192940095415537782333865198390136580791243490845245879559833612760886130225748853857498006855075024297894933695081586212622925813416364321247367879258632971521042776805719532921065720096578709456119427839411886520477514091876400027066257740267625180085387603808522958906388929660643451151820049102985813917893220191393089164780701925853894067057412742293216343399519316190339244289006738904556481690654225596271227248630495195659919037671865489175512224992456937098236552291826600394591816231598593051823807845001221994942798262066419730221758947025594831830029119078855832034548613923510663847629387265331898103324887517084235580143946531702204021866223348670742348988076360272609013377069832250687150167941930806932876906011087128300673538578368296310884852744978948054491778173051538614833642556969850569354783191983505446832438392561851782758152470482056116340262094922971667044501533079706556667571807680280291961062977712428603441270898131914720086238999889927678308697718666748760121313978470874655370123940554344781240832268531196858178013386517251598857846422260345154040931158459089976895672366156901987620928766501112210435838900579513091821680504575301878575201784582073111389986611993621730946748468673526272975218286397601916622579949064768993231860634005124040188066855069889382847153488614863940819983739359713607664971450706512898395523842378898072800342528122031144986617061425515704659523497567087547018349233945872915388218129096443766495249270407016252262998125823026155215385915855637696553699392502625683270879999089771629238258859607103835346187998969704528722704438046270663386529084656277546147844790647804574291306574572973194434539954361835581039121554995873486788396730810330368700535117442970544848002558134870594748009348624215038848940445762597974225847026885854182502312493762908479826197599620900621502639551965052273297701888727736977789109670000240501839293495928431504379819471014905811101442130434223073767556835194779289504187124998141320249848420823825785788871734790438534873313617926443149052324437538946959730777190075201221097178480937084260819068709427697719946697738308056698022096998268384955863150909546397566878844836716827682760957821596060813124999655224453458700103273211895564390905845839087709738388283200424505832528500199722826477318702182890449808710486166386601749246631666823489078071380831166210393247659725036812906182425775128429832318024763080492343766796518513704807932631530888482562783017421330038584090403584876080916309978801642721616504684371356758869264724500588826327855918084199258663051514905745040740034039535223095585698123221540304533376921426851611427353869332487792049024468541182250079531969053054325159479388767331115985494870305883145794585665656633416442353790687284500823437617490037359749400493909273839033058360329914805732191345018762696495218353134590865308201392005312514495718258742307150370749915057103448804792811969718439009296470274058892554697661376584386087627365104970293887787314426056848620651824881330835299366592205176227331724378275113947416985962754367266295373427170702025673709352101930344729125764633017595210657728268214585011434735440070745002461517229494984134293090472464020772917611127151691140544080623008742470700205233048533284911548690908132595569657606872440347245906754235155383810397146888599677988784656023340121524570663027507434281059376283459693750085893010325350269798117328541104704266509432767660071603777789297276750236288652692342501431571137890188965258023830538145166583704214126306810930191553049179674077667463152960923056446481179848650451699615031200064931506115637576878463726737441430182201603945830328465125431674824465691441251722496546507808220324477105140269818137474960989574547505949356000030296970978383385260733350008451639740040299315526249865209606401404185089098374217138964778615955664003829113198700552193871525896948723376003052688705533305221695538048668830187975763676274418048289843923084648885191097014009142999925996173930968982596309041027540765732384450474750031455852199662246255237431831226408040573127849494765391715926028779988432836862773873635826262587051340962025200086300008338429399732069491778313763810719517271132437548939039182926199485860680228112530909358353491544417238741429076531996582588764128815256556825794463765140421272567951660191027788599719834172280557384306294794593802016674914535876627067108364045732559049578181121084513441392732739205230363864147459162285728648056456246201527353379263834585124139716867787468671001369907558912314263842247287595866306532220376700488283910077539600159501868293564426149750540729779657962624701502091941816745387615982763152792805849231427074237688947668139094497805533320842549253578443094253528019381854228630812075855550784003963916187893634059696983024702209386367575921374333616458115715178343290862407034742508537466343900039943030437863133050249274938559915767905835041529165251841405198015364873130519801877866833040898118373345897160079619941920067223667244622708845694719126672988321809734529046656877532189097943866158960176281961911644299136895788665835239659665127747099116715074119580451132139778206618876657740859685165289511312253199176239989562288755954364388375693105568014185599502162847749837015874935213642175081105030303326270026600135419195730486116428310802378748213491012530002823024193956813909311288929590100096769254688539010933144288982068077091736623996958544004973858311918147072275472168205633263047169281648349222877277916209172215067274737415833612561385118356373034367236896981681678833870569569479002039033670296565149396661334616610217769348418256218395486241320914324356732954378978444440289921217252650548875720861969465973412027183028210821715014432359550744262750462482301207324123834689445676952494186189821106218262098931644939174590999951331303794542585095148084563437073902030273659930611107609723172608298845678367963359986412102879047834889659329545337941994602310251185224674598223917494625731065675100998851309381735230916403013984917229959636824484077123254853052178419000172133165295924747905609347209014216788382266768103402186319269836516878005495092887757697556835697271230459837941962594176279394398676390489553463546262558134694428998600762980053668345906523226287867394572931189312121839004210785046954384089376130404331939678757081973623255347502666491695483568355959828773643371078433036939516456770550510581679045004373391062400198991771895380696101907054275731404147293580440355895881585415279923716892524585378063273776418812256740770045510664725254762262941227109825721010917373349341640176067989064471868175318321539954621513601054839459441316299426284120407265167325000538126879053255478037545036643309674357215177745063734786991109933545677072312026074840018015350477515969940033109687734822795704709803691568751474807386638900455693574118471851126308702910029988335690032415224553951511149264203905144223089488233215627422393968632671922800185533919493119376311486202709915565327110245187230858017821489091761831278506705567952665123493317475005859237970726649935996973927033555047565207559975581881645088303016441431290147058368306558321440865595939188944954431485038370413067360088279521523033860248579878142842642638599027127869924555577179521649866342105021421458204467798849314833841646019317708346292072568959223652924167216225345746796677266499548074395839376661456513040967743276170716811307097241406085138933053080692989592554795319579021066392551987454505903235202085149931896580630775446429693020382147311160617578936118985870013819823759004903867529060402968050460554096959624742780288801389651983618430121905347708866860847330406974764915426587782933480229300883954248258056705593584187331709316720593584538988207801974937741455816208763624938100732414244651587022246401882721692327497700817215855826098750998349650462215725282520918193183800403101628073375221004195231159101387904863830961331031066080622709818317555520934673736778277605356535407917474627119392206153986632873720448867017868016736767066708997649032250484521961308521579000588698122621015653830752598666052033355794798156994095172787700222911751432559337663738303638606684713720525541076697020286995622136810896046654781463633476205092576956058354686802584874957960414643434387797684381797306179928579865018675269502088742897531045591141490958534295874436051727451282638755336277114133284024244131225027497283007952713130726755518949770993247641017399206176590699618806006036543791544791318589111909268606394650327802065189773293807277963448958452100173607519592230739438693347830322515312579553247221080256995711086690187329896470310438537031868116706029413188552483581538291391656341794165647292706245277401339596797684529231112947904960357852319060992195588171562787275260048842386183973846923868720655314648043530179414872128972950452643472258783477768738755951677001724424381498154941076862830319010991553355775509159250384400606079053023845775453693483857381957533175026023532131376956481444713468069214554994436312607416258823013924227764095158146828084717290656314895926188922991104164878819578985129031773892969551555756990898846850635727096642259284367892202108372628473066594387119307293603159044784655295620189310413349806414012037302584526685325347900961277176439970093573910711721365005173638783485311034918755132868371150515827608899293807749178734969251470197108601563229689921316201677296778505727005751792645063975634378982593802990070376442649445669372046198793348209477983137974489682067911161421221092620340442107106137618970641768966621097074103353028715983977476922883918775425167540642168423029406550589814812925238284039743676625599162240801677930170491572775560548687436061438015335839510309877357264998126424908079901946362268568134441732573231180174989413229124480098600565531140504981835297319570499475481811262979864315395765274596493758077447561044143154188828493317328682062339410592518108958084426307308416460505521656242937232242146214786473931424276429453940679698040187806792672444618297525485163686646171018865281507083333516728503532659007039352300185306185964170010846464366715907254327722718494260769553906423386216250602838324689377641066511863618028631627507530446988733648643216966006645987359309326111112682438165461493667432430304925895123807348210997945680037247250877228109036071483273596928178543690975376959585783068630145860780807945922461089035699186760787008016232409279657233858086765721760036917132669297176028625168864852046434431430219694409814907266459142195495885035878365552615848022017428516754067647800940851039532587674106346764870862981473189138358662408775362378475592634343842272508387925690920898169205035543981719201594252875936665689121562608619041968464514658885372501531524871904015108617323184357094641195023252461792865882555803154403598724714728901490564402868791541566624287557291327618199323643590117827865899931681921251284599934338321805508264832985139476105439354874387843115175038747463584403246690435714062271495613335646416904843630354450769566234288106078192507991737867928065519905040143092261268867482313494998513222831582677747748080026376583116666038295101863993574181077615387638763406722850078844390504176478452200954977920170587949117417518765778885807814549337734159489406125305513036483280290848065272386304916638627909282020330867805046114343559842266953938631837227210095565904692140745042164803379092392805615268375800286789271586850861841662796539505253318854044202782696753167903857383564193992396198043908743657773489613929001064886269682027378345163519254429501294926495485199102274444341402056959803634202360462104201123218197202673607399821244218751093019456183326126018847477867182760372141780393077211543651975067917767039523293368261161872037619861108541791777684335220765469211415875433178650642600782030571065470547982739549421710728332089232301117491517799853913620945484067228199839507258088007216485467294740207920067241315290012583529989627708597560245726110477074341679146784015194145243442882904627043802609960046350259755362369207111760342888942001720969269846691097737966722082414294436000568966558131526870712230222448820157595806098162617698429988272542837318689591305470919788410363734479752739421563221249800041518086311429397588591193117415975903751915068667888609790553102327178956009727794523129444606185120052788492312230395550209521062664571318458249849698162341708975325185716881318150252015874981617622081798184749465076080835909338945067907741095068451312811719248191842196026548966308760324591887245497512564298158228625289417204860472289349925895841484282911427757024887975739147836559012545383754121512166926145930331871470298747783014146907536805961354579442589767545955123876147065677429481723434687486298919786990305454688650620557108467721371173156324158389076488995862555456686030909461342143518781512577897696077783243610306325609343007106288193301052316855523667919473970519347101260239377600819350066874898390553876629551605684800347909033542421637317225739016266775257786364215107983479563406963709300935017494099601209770532804639481831092916330632929475655853931120605049871449239602530346096667465667637094512398363089997199761856946914486979246226191584801699598898525071313356318778038216854515080419360468994546535982735304028605873332819664821699940626503478891259903287141074203334336782890984882561400558800338869470705548006409001288261939639911999453957887487486072077296858769557980046943097103510679266253203782522262840901698458326250491159342407667941354465822436101986484091686803162925363154183968081740316698724289867827051678203189323083709497571933057279432227797716952599684726106265481845398760059869105930267136588424842324043457314073951677397218532625588256633930143090964077764044765392317473867010260882064251482641921013274422719041685578702118269943109609521661546853106095895542976575722535538542750709767872138209861723507972099909271403100049807543900852823367879540633871671248843671927388457146747717367202859702046324506323723365184464001309213362695244623624498919347311248283484609969592594432546038235369469528648085499533595070055672501478548210145009234771288901687145082145858276715155842126123507133503185699088362907307149462513014067940684473918405627082724473804763556211154153127484494839210369205546550100866788322264761610899178486014080846446318549868115714428742432514726463653079201143941493725581907552327392375826992668922752590318114369033025895802858707289026943886721549669705894873161359486852299716018284593193025655666031891674234810858014159248399786931673850224197078936468411999914863040925333280575704311344925872934328604421254787555111146198609624987861187977173635517243518195296002905251938781295151564800604627647060125261906220840958643469204307837930352491523471388319682313630859254580459914456526459914458330885520806827917443559908537454504754680938983923657663300631572454848433106045903017255360509361895725292915577685984723192428926867732532716284167162052551215469973689648669302877915688569903703153942798001249290830172096707035828268631535375245053983497147755428940045388074866758523154252707573755464857646268001594028465017955786671228233781548808063580997299468151248186928918914935611178402795629803459576395430477752698203674944510418694546478067769575842945169265143470432420135479026303012709620456120375724168132214753121283871722695068361380377071697202169014272550751177950972851902897929351768067517517072774206615874503254807122875763082600284940084601060640185724342573867837105060358795150970083174258724773745359624369857717058395759941938621973480930188115802236428357651247840813569700083734201254556759037815966582367928383812015047346276477454051209519911860649433652581976150779884078625049497783984360836486948892037444011359858220837688921769294959285735782035571195040478918797746493818013127745424187442546257741556386554718489310953635000029075642766373711027395582193041725745050105040023885386062211894026703253672307979773685543405121108521394504593670719251453861384417291400639418809643115592960092755974119841458110263185457840082874445564759835231380090098501030685970047218537120164318181852798281870538983105359314426567873449904664562585457155490623922641943154036852764823262077929989878062019049434076495750102924044484288406657336247517690417468757226805712401172900279708599134208691482258656772651680744044331337348043175922566438152464560038795645555544355811808104223144360946561777627339468024599620283562544359044724171580487218893783969821162601453180432846065841881683372400536888595279348751121233438687027302170524171665004489172230209249916352345911962789262926567483979360813409579130137664234333831143893107537035128469656602123423410461508144871073150429998934735102230984138532119009406913941355967084901875659942515853879710263802194810308238013750675262610398892301528643336019488342691721496156991542143626580667663806422974508359956792569652312389082365244030049773804237894900962213499677560540835512257074761608715236503244358294384284378065061616953009465387056765717933521370611494577028434583838027412288967706706209331879656793508109772823903035100973292858171942768419286598599850530282009723284400089504709671239607921094696573882850587805430263983116445091421400217900290181194105870485684226652248015668319088794240502829011751156197592087802572210368560869964708483627567800726299228790096533939463028273099449900181245975657067834350081294419938455048154666055687684331644621832119958221514140699217540312603263804748435839954170633226702684280286433873655267823296147894171182777652257800666826986829942022489981733560590915620304916386807532088544064377608596556787018884330092168680339172130334941415439333464662668960106850726702979437020590815603633286801485581612302136841451156067851394421608161845788330033264408975168594895677963909212217851467494896867235335710177886875380779542115361476122558885167723609805071365988252893135271599532385773612161782877349685308217473581026097764428920745762342168135624347177069139862479200031116728498249055408292409118424613077075860110157009296785960539107261419326693100137395649493726069128640215136285038356333546504434932821715122915304542074418467747552096810304565532912222236288453527821225304758990805941666294248153124248190552762953113313244569093854418846708851483402082449762653730334142677546987738011256627017619257422584059930709460955922711086740462810693332034623204094874825902707325366378357658629630985699133801343212134855401816570408975397719916548703672023526465173475181662288095540831789597651521361909114479445574710614172573701706640192606383443227544546618656949240768919626513783097056787071587465869815995052995849354003997640811791339764589603045674247170042564599337575594611252979851690789335696341579534009497228798076087709620268616264334492909376227314493720728649040600050578320331595582467173329985765148570763912669353107793663990129492856631230627109458189091673082738239309354929758596498262857643156946665216135902555096249579937726997501146562752347147257520865108192026446335039407612560133726081456095584969374673421223727215794061483424780516675975917679633733518007115377992203624722962027494780582359969015063895712210088322867716335047357108795587298469688626869023839755954239833456200894174118809104888046655579466131802125107774173548992690068901923914280257424086846702290708599112484883008989541311369532973371370849027542861223214532258964128472981638648356594077569870313907171711794328045047568925146000255012802556566241585557332873130927725267682294709677871995461853556883702987273207707764045849066660893058297898740377622804969805410239900196912544298313295823561850375444664428505826464354058705149138092304182578441159452676629353978109502436807512526062604885997808529232284933564650669190224319942389056296121434668766570527601359698075529572285732991398546086089246906473879249668034593291708188569500724213827895321015935486252949179640811293138885545569221908182715902728074938535788400841165951395213791996048152070123025536504448803224142849481784333876328970666082254693433699595569535411040235243330045581422275947222465611703205381046216288157794027499331020662377412179943203648246597794482704778879897410732264848104103189000186648288692055525045398948074030514991893991626454329664338446088308266696118681490062920382060349715354532335434763834704761166226162069874329752340118586866047810074168658686566106928956970846459191284268804079206944137698711041697008454822908235044453468298586976140392211366888731351427994678147307835320013497195855103055294292490033841740248581797203330816154405454944075597553124544067636053868402888707060339670536161863571190194110066330022732743306600869238014558086418964221595786760775362222868634600089391151079608846132843705572277402001863434335506051913415976000247202479858176669332506679740504144302461642837738938101260706396676051995721659080949333771108387347499942363454681811957985374728724057906576009206984926473393679938047661300093234174970961403256271409663721426987059194293769684569204340023706278579920730074364907834378520698146597259147443179192769430196437417374459152795200744765722125163192205917445974253362871871484878403076088087793021904901402738297051818380204252379807593507534069732316739589700705429580103970052356399588263099303707763707915241104195108372537043733933524242871834477185981694624151690867394607370279810544939781310136132461406156416441503293845591001285206279996137932723534245069852352864657266844033433748002436099677888057705304005135692505832347361643477431263530041505841044680051754552555009921703377215892948907837386058969178170121851331538414251611807334980999958467524866610907679294601939712431334382567816267322308326950197592244243548997339904745967695901365049763598304165974197675972935775698022460465054651678927132066161847677155904718245285857744692625530193768645228099859833989091453185765249979534420059387152605214922177703311878964024248914454420243950436642964733010670087339708467311350710175408014140271689933348965652389778980870956604556490184249307705738554941607320485176522816733469694948408260591791636353623995705691053597307270564725839745486864744447424188699068122486998809259038408267134335572065968364488675236146828125212894148698518883471487888932165768615641252385823963725857960597235816706182730225860697720634973600626337802675294976129435993344170077998977887717332532207579806692118472818976099087743144138391306159955411024397285672351309901026045092063740885832953416236122510710102891115151667106614793617770293885185560346216942384478525210632605500686143919085110973007891528954603532945999970157505803600363184184228493666443219858974483241262221018275155790819538529998017246148771884690017019993967342953214542776711386418329376258885097049778756458444232914941363168568538972505610905506642681310791910069029732259474764754009162510725228177642247124310812756973688293395482457379438234868510089377101642469847908660611816806546082722655407736699453609300042700575759083064557480909585763211801848260494003621160140722267278428176713648184198492393873924659059361763131032383260478210738611891705556687850542644615907966303911149648829606899587630647512684318838212335886332535848414461080521131856930047427380476778753283575922887321829912225491585632679636092810024431149117008436786434916994921335986690946807925776305636253482936225092907827231767644977721656837504091553180954333619126497023562550416280850869589588046680311335488182017739396210701050800664718344380946625129088419382525061512701820026982542359884635960321015803838553790524111375424030661255925060751879617293494713257188069610429396093284214525976146253408205788772913562426612229210077439776043836266567193756680221988504564391557698321634743350965808064914618652177597182723773324471796768363405125747109791146883940897787119310694710551758036590675710428295209085054130293396515905981976103669519092343447892550773002738859379526082711685373651264725500791290828889142712140454672438561147116011251901501288054899621595069916514503782323780694925087014288953211065958887963996255745506699250832619095448624646414034066213125908274020725935211594260615874544775039424844090679882739125670210502355540373326845072710517655458245508070285593733450115156227501831247892447173165611634816453796476588952205823367277559797330611192895877492499712056153811765488004596415305163101058679705795954934356492009004041776401672062355563067504297348359580221480108770136457948992568294745367659086568356679343525261365201167233941464392264911451625049539256147929742331608203537465311290068884373491321218628754421155926958846820025714774822823668149639541106848404851515519672758777664497231860184456589824848340782197060021951480792703695594316774629620173938778833182276953606488869308318465231782591880756435264040555881002340078083273427738385322878739323613311553656013351253116906601310484586150877661072352962672171464760219141601627817602688623698298341705563482893664839479756363025407181860920708311918547950892412163882670207305973081479568786780560972482259146689539209155338415178446637186568716609061095529164161288312651574499930129634703083612974318530606463838256694854997323438318468643976978860021384533270297421084804724223430887349395146861737426627520356879717621069750723227523066981713322344527760895016769171762591891516410070715888406300789472952296953966784819920532984699867072184756746193384801710883268117224550098809443771750040803703108608114328269201873006504080895030745047055991395385118114844815123020350731454056536360880159612806492174647895385532750986588897060972475255579027400918571283469985561413954006478343839670589349260170125868795581195231094101737971958262888948464982307453184044443254208368722823954428569515078428650686907366594637927018362362870890054132221796517963136557413022389338201606561554555341702800452046229363106085312008529199180060541008441463779799807174969038846912953133647996137885823117301528750823818150905767715047423937183445564647210723832730120990985401002606186489692732623201482701202646322396532805494802202480981979873806566726865061691587855674635382314888810941536540438376249696700084733719257565984982078080833853904661204430813291360875947936454340388828836960228075831174003569782917275906812994402892670694884474336513779440395622390385727239715313546160349759239365608122680060083315264842048593226686266510604025671618926184239842871019921100600339830549577753812025597931386447647711955327208592349853199307071249679924768612153794275810544325322671049211151270370703328827094507337945337191983352466764025179516715104238899147428936920057916641640695698216709410738080949117725764716114079705828948149520682341768254576988708460495775999704901719640386764193852351673205447455421098697590263452079794578449369710946692566326810736720109063287115591197082125337024886595795917192184035204476656541956930277519677721558051762733030225432766137928691731113381261764484499705206057332607117238883781877265415018715248276653846645255624356777473896424629207264512078269565900500608018252747025940277862087908655771596428659878170167685110384620108140423584020885368290714161192482676766203619891236792175452166411919227597576466774770055684677409888897199267842639127764478589600173942645273071584749834724441603704603238984568301303322397853955640452489691826563894959506874464596380151267624109924782517505182906172299453997986483887818726618744205865502312859330976973436955998758609409442492615768160162500042075777374736795009352961963473314010138772992295360801472898499860181766721447626259420511111542826512621138325818823764469461949409390882890345661704514123969053765531379792252265048990264182142409759742639939644332188244438158349989372398425815984764849978054780982587949122640350154479230877732782835566181415791024130005652497858005075671526473483267621990225032329458725471219521143395368028864957800851321198191141221597501827124221544418694025744182648242573898113196626771251807533253541261038279462644915717687299659959914325755851808147524296445907231798095397216229520872351206752053934922514418904045727596283168366408569727821073273433902857099367660069555441033552840317350147362837665891691471659625872033515250241382383785952864992308625963242639532088157218842309641446921553971773366603162906736647070954544254374569208919415754780067329481660195842461160778232536093339378030393701746309176664099037128577436952540146404369252116459939839915327516336628382265216193676581706289346480667895878781031684431514729558865207291519632695753342004567327151885883535894881411140889589025347311124452921607033699468579172944952809670306269570709660058616972142177048740425873620749230442775893697184623384344104115157815044166881247646282471396898362643275067568568961963154954676810252909412998117613573073461457756146460647001999699231071227816482801160212723583849845371415939170808204732630935775716148624903407731596229484251610712637878005834279121177570261242639020714433218042045982742805547955186965918957990647864414064986230180945218495690199934482540161326220104552996148714607321782524270033629550421508543507255013031669478620584259319679630458055278790790322504119804774390747822008215720040405626987602446970657649092379202879396847414221978032706748711268316397304049371733015117331139719403426342412023925400783667344983458757756168365095850570607387545778905976346027585192349462326956028633245323086158537631310014117515732405001987079691301025848674173761638390895130552847848129373447394396159037055256692412669355574457441355914710825915758838637934371117481982887194217902757645796899758190606524476224049056130132421604643218403125186715548878727947216147035757511322048462337667463858863509396850066566466641058263175927651327383566303241479809871473743633060297403749115356577465742784568092349865132904298672903408951756802762616284685652887963622862992807034787891458902193629203998012392747603681105080832428215297887029677155755157491278106607233583623038267091794013974036510721716587327336066413750626913314792756275777387788218390671376887858575239936314582082458871009819928498674219762093562886027560270205262724144101794362628010699992452681574877686639919908510557029698788152566060291514912542226185788949411932153759016798755946272634757184512401952376952047086934795292753519191631534403822741629169251177423200292592813885591293229435031539357641760760563825312508548030044835102357048707572130199349021841180329262471585118245479320326603262735447636144163108009495654841405160466649452536720311074488895821089298926147753801081469090536039299861932746676159135976761783408510531420856150987900508491686137229440657125999588572686828925263848862562278623377469710100909263143095174406778968332647911536477425432964203912848470210797235205321048497719875412563349255384370005435155988117481441032405053707514778030247161873805476723739825872999613933257226452940204813320159611637276232756270442448609728635229762865534399925785281900404302214075869479231023184524319219241981250364587870702236771630629807660721186271986974006229741555574127492334701918137883605203838964143340923683447183356465794779515362002888783452614905419818118296771073263128309598799718044525381873717109235571110929007525376858005926216425325124238918200329094994827343432361662523076039208269424755256867319382099814336939588597612710175563882184296866987777109446943890783674367431570507059019345413710136061313264270573980682535088988652790754487040876164507901766590609948324629278665789007154154687306793252045026379919982497240180129450859144127825595002360886903676487024539423978381903732687951158515895859891840303694713118801687136169509062823480507886090227527078612575471783359902089475403357424995840156677655105356796482891695563328941472473278437234589922209691769128383634442596317011408921902933345806670482889728451285697053036678260191431638887657637519519315568833581651736940564207840429646850960667662377735683266553698550167718881631002017012274671341669561195983264667640159153009367450936961539937905534873972741412414350081146024212657115113957740653498474699063356899065666029495107737629595183162507771989942223895248311298497555340182212886520035866932978156253141323988527809518107993214752389908951150815584355307456933537026179161194069177949160724806386901716341278371439907657912166172253948925830501238124205329105977790961615722347057865358385594789944858280221338310200450049924294112652162554872659326897896831663904453502927924372668288005070686051308824531069487155452364265936418938826093697188971970442654848059466034447700464531508781581431554378329529733370931398563421867298446646233769908491538357439657115859834362514850599161099481348437446981776461002389265506280917555265443425055739410766549127736002509272156943015030819893270903828029894612444840359953897013661789286075059538710825622125384573848918846532089219586610421583578633179411443818769426035270788468368560830684345094187641767118369328810966802873386167248862312164469529336548730312679011168592423313395694607949776548503030659333937503391458129428421235576387532394955331840499132070047799759214069048266025037938189437385712401649962749902307313859136201716777878394021699374638891221735880639379769947716193625354353779037944729883354691990401235088068709974866964300527243486615316937629308957010341909095600275044671508410164643232837731103722494323342766231870357104972800153190720207773151075415971044185661667965842590199304685918250085564082968020188096057241867995771344732622158185484104953362840873184718160424096726849317460847774706627529204434518469327748714194984039259186904883961322074997086557744406121883294118215224434463473104480477430993282622021880626823903507467825148712743327664319451385279427496085974090264336748026529971064309992272404353686382684745571776758991100506494679634262149294335756773640188897997355376866695398649206330941898157623614676931131202895777823039136984227562866040623408057469270265851198786498370849084288414221904249812623153393815394290730063956587069920874615091634746890163271551211011727315030974871927138339417472201381832484591316906949323671160003948695419205352567907793710545684913603593718139949046129004027580869756367830961890407162699745047337346224956715615163593967797227020641869211498383772772480953359456727900065343170931182910463108823218774115948694758558289342061289800757346589418531542017636997101979920834953801329965529215702054691082156798527645996735637005791106774492138331965515481813075553231991530071370385698946281298963400822271030384707563393116847851356966875099783140727068940100313641568124513494771130810672693095746324627172396898915667046238862850410014939256294727791134700599513557150566179909952321391330282195857041956931521682872665401730500721761325645719767098544674119245653253134137648774279862460544826123502669817949013881454990653365982875263821211488285171204299139156804617774304853261376364480339945442261618872276712038571785597098431363134833568379149850700310802121992235597973959884865728745862680885575333297079551547177794549203574308721480275126609331134741470626143969615945928084828620051551296970402893493080880488618222816606368889147812560007678244760922326329006973903997514382584331396510819063218769391777003550305994927379640938043736768514381855798816186049469799924114259423766902879495441304998492026203603141574145724366309438107587177721789249981795184180424610082584987861806528590725495305791886402833098113770645269316409987662971280179040111528433545972810278367027231822174890458757716826247292132938665203941716953357810749137498550308348341279995867266396783093692377805950159501841993402048755941703964069167036937220952903594474503498181016978948294555596857796392673980299966410032183257655367744125588866420488699052935090682684121075414409511081473522342289677409702895022299210654140400153439074640672026503097385680594674973189499483268285331531077464906380623929787453358556311252880296634688155013807360386378216713146809358112436894497910906003513074359969051237799262263859705911713131705012050167245638575644012400282832084080480383058704356559169405529829961371028502143363613634071340948987729711348712808586628102281321826622980686125228739236641106434989717839624119544449553635097080693269626020078751880334776012844954508203940179485570194805030853293635892822332635556799036418159636796428171900737697877243879472395628698683063486452599203991137625609384526118327152176273401807569527962212305666039776792233333660540421017261419967440328009090790086195715679896357806920014617097156079860275483568131237417086875320696430146194269554224590152966086632545086468101179982765050763897957372386107843801497799431632132157529376019351998589610427308747965152380220569611254728365216804527400102165422695558306107623411578608431226207524454263709260127493491141085356608775012107315193771751369508072854554144265744086647774637188111288757663592341635370048682520256621658783539925227650883470597884434969250893925161976152813842226259869547127738949109644344064379251911931237261185518647604555267966360090152074084598732915769640573875100903789529012595181513613513418631767297389051376363003933961978128022839958009519199775775573837686859628876225305839678400164731706037105545800593120636005963258005844921097097145849525444653331195412873518083186148653290378064355808820210468263900456573936310284247418606263633190027257089490847428287351750226286560001098402110464526346649701372273793547132950125925812326759355354763473539742905641358711892249731915545501134943473213077695684874716855587575461277161644174163416235223669137426684167151936749671818959677634742397656173283940270710877641251679913386665129367317326268426547161719455285780753762471339574708152745125356262708436393940378885828754858444264167903883615965799818314983862821409804054898163556290175952573725716798544309959608890943459248138750126506387415599046264632893070066553832644719888190439050058647551074855791900440382496504633879012591124536490567028654144036581524305080108213469659647510504180209753688736650223923088636038604770909969169857694970231067530003066474113727596519997037023464687207324907693019267601248866713122548821263557258152430765557339264846054732910112673143256705136383910581690809491435733658508741049739865156712877791545289545722813449448215340587850796759636557439632072632664555874180616281527814947363449737089990886241723045803213155337051865017997620101557372762544377155413823429905911422789058425446497735063344659801594979304507314280134095533675855768034961218338530478544934191638169780303595740014340836018045927512844513986648145454100673188365733099810375224543203253988599479578138426344996617386050287848616665851197826219532308164977412870106025915646664020265558628176952024825976241835614023651807061454736506889341428701859908654214022160962734250782429948907941651922548235864119799614296129487402640245462368375525956724236694561269033539945459986954617734939217202747665123616145242347675411870028271556768659369242458387711501937411134731666780607251789818435265651952263694539198107716187211702617643698610461770978673179725507152066918928242934513345336303983846682732099650465923068029673321245571075998125702364116127023224100953092876759331618423266524475603399094686819921544041139473527544618531129046915621479380738122931098903754447197715727692859123898179284557845929730634394068370703287235692477045235445514171874833627894069833201440422697773363191081346513427915571487858889256202850080764975021060587970524904355415907971253444653997727108974617528153458291043442901536157949671215356606738488341953541145341477671527787089064199683384395864703528041349430242872829826039910739269030483504419074113655387074391736316282424533273566774665748862019151600357572452992504111513648113066511683657950757695997222856338261118471211337711928592689519793312740093265009930455949177747310055010592541642511202360205667420514616572644015244542750646910074018810350207416759515418369159072480514754694421969860120394462040573486718072150303563256051948115257568830709697035475641028775782646658870800622202851195195344679870203690843285122015908505769325653850430998642083673512339827648939854361174523068539136074264583747523322877077189316384071228506712933644409548627422849150055267546345549853282214117539052442789094717447302962603423830009655262939195508688712657195877567791513713407552495543120335761071410738809012916615876163173627234429851169362186279696645763166358213979658529111297953102970285308931151776393216958740256769510312702463403859230016697499217848410062401133801745181903156895098336236532613442608961020746278790202881771604765596177082739927789407503099731827361425908571103601437958924025167165160414929507779645846398606012409685134052478835177944633317820275170601506768278701944696339009517123990184495425119658007534589173202979706611768681310398215413649552146138314796406675583343869856283047719766843949598046852596665028920264419224636297694112075092893564803088024579964861240684974731680542450819674712512187484627759418710717872920972153613010562824948154294531173463931522571119716281027173775677810100863978753074846976238419507766782082005412154030477691484971521253647351548064284661166885323559158395350788398635883708672776785787338361804299973463988679037088986767922257369551703578673837525083880758716013250125964133511997697969471053665484507058505461205714620180599812390901847361674927468755263436949625172902561809250673725553441593884563315135487482260131931909518922289497137795462348311961756612800580661824128007583654420236261322988868546979175713097790653032523126401966016443229485471328842768162940456856817780294190912983684687667969158806581382774896589984265945616190972180141366167294051781791852306269095065615218093424473741979652964141541185008792044076974035292463720014075313721281932797852150794724056561544278875399110955149923993052947302247394613821021378147557899258844167941677464766832983817006884221954861972352932305331559252942287112503845374137489045506604165819507329431461676641120340459299198179929214872889930212493106883973794884743140898322940121491224903308684473870921041039863163417689578490322834927849475923242983358730878034126177806179875907332965150543691389195794557114280745330059173532903622150012697686511364799803212732038196468224472262314459659674846703423116617547730295931812340331802213103935146773820396098275701168542153656865104658301666156563492814998015130267335950630947781338517837089233936140552663724132438657527813875543701604045347328877494747811190549466438486526723821104380542257385041906812226325106443032675559384000742503165196558454384791680242890682361654550905566079244291861423507661979239692542888334581770558345555226733606427245074889226027744975775864393063789828683142247756716055916486940788187937134235657901539219044425391573795240056447393649869357602495617157076420438546397050634088528339147945015189340431893283747341432615490168442385592934428828667912619401414877927444857418816490177342371150314367940636660534416170645229731436664182359781667660989392850900073856061926402031802569783298917126865831979685240145046231371138739593162429811024585432062918343449431371654262356280242738812533575283601608772348354720508163152472809072629551030192457794844552585867080981835259592742202538308633477250792140150817251771753344557497262213961915849811350101688464734830960445104599807742199255847251966571098958779807895982853885979778356882225100447509980822851032920078067199400112036141036752265643186784066645114068070972454088875520190734699337905125201848409078989208527224500292469017912642705475377185619336829782917027379032190713375248641602223551676894718585610230291566858293965718334412046615384134874569081545445947471702495483919960184534663901341124139359367781207707359518410679882297660390699181352856410130222462927582806485904576061842527073321519585411581100544526075930982979258158591232578605040815764089251571454658506243174800528388692722107840840946385634569149443997881845060127738114122367077593012676423473058058158893180248578514741138060484751355562309585290738953395655993902978153766052171933015936182916279269606678403534583809063810770483742180066514889890828366067388590935990860932722067650705911897077477759073832782276883577575240513841725676523115039654957445674203546395519796986761525234235362221688963174124485789314760164356674132072654911781952632151974251764033389849184480189530793514718671414201869258276998566800568801846729771148864942940626345968352063206671578965491725951526782165239256646290002825466504719310299693521944828653119848703488121261010082091920111846555574240533557254876177196868205025050109811705990063264893929868828736939116042139015317494188012938664916377463734283706375498198107472869169636050989477618594743719022165013608317758996479735218733068274013111754303421108315296948014558767002893601978565082601400482648132890272244395652037933247005609055051828651267353697273154195039159042813600042319784475683838590395380909871739068874665115258807487975031226017699926885307329422904935373963560198980477902100890102527561540819622031311166797134446669885067845408481089037477574604033920215510136423109065447645989127243659797638321174384721916080824554599728608818290662916866936332331011532483453389034087843338848902977897340663837993830099240740211662378179073318172741933469869204925516020594375490394702861729395752586935641967753306134175103084342363826378314013702135956058721080435988233807669117028301708244792302954210185625696756934303270130017625356727742686964541323668125250741296062745460991626200613297343177815098737218808551483660852304386454546693824970411689650388154595456082431182207356339575427726896464381793030450537803987346359255849586381610191545071386286769346990656357414284296990544242350671553554376956691024605187180103988265659962594489019349191614346175604921260363013461505727478426511791322278561834618617025145849237651793741124994856217543328111016800620180281156359820085108324503154698131263901481021156873016681336656493693842644655752069571952108346175003698820819286861581176429073437865612608188650465457857719024632537896563019298204182940291454182508124290969252349054941929885697528466974346616328463165028336776944492025151165611199994999002502567807504533594979589996844108302729229602535700272665060135100820264684739299868469845178897709478394427028504099154669438286079459206356824251298642449562445788026709040546249836033490673529058699870411086748114373484432899561697662587853795605933466863975784661742470306441516553963571334290041245434785664643445250541229474079917018647484537207963737181242055756048982693592271619866481976086012189269700455156288261715531457378404916162606096477524384724394767711721083711245206217639959017897685110958661640783001331817106296199296884729971453922896422848490207115918759560178440813072649489913901918302115995196859566964401907080045167802479074278580807265649709830211243386403592864649230846047499334936313324711198961161271364571711894520382017131321653294842599897788070237775178765859529386404277406856620457032831056268035338259778191081466610777758806372818221546964544206916627700316982670531491535886568256971291011732997177381182006985936551354279575347727868381332128531876466660208458303003313925117361779633970829326281824869748019294965186904875860499635185386474115661298829435545490274576589893874121542136577541246209219682086001166223255206929196590896650253090946591748592304118603293438142997779417152385894671804697591100433772151320191375856923739482523170139075482351218492040131978782543486968341589056671392627823972915183837261525134421339291042007029439423547150911734408356200925531056187885035088863103246061022427182422116696187753393093800331511584862402193088992735630048925883497076475321230724988530592481998419219095020276281205982160539439165917629601029877905788746294757206041147768905923329722300454679785918980643356746682429393257532347159795154129297125944138800587652132920485332679113264981013571308486361499650725749901453050543020018599871718485547664342570160878951482302167026320823264111946779832567608913153770799108081772180534519701131459541089038873293174422281754531312306068208982498107346485442544708819641140268039761591684254944213314042891958957811694204227086157083700880556796140448286981189928249708772356247103791135999300430701632973465642225605306798632983745052092711537264575748431770029281798593288914979156193971569048509901831332631186369283083819417582934758007175906357843846883229366814256354604570379607843685554368456549339444159865392413738910787002519553538284582608352316440650246811178109686497278308594457844430466699849649880530283966371461239377158895991103242882664657636433882339060729047959487597608640710027746344876154579569321562726932080925889508730037387500318635853724511763036515385713257812483082373109691851550116653053143156635996283508787984985504147749286624891380555973420900861181710808014892879444260721025525484005902153862855988184358236442099733386108233091268183427340276626544144844571213520994068514581466665795522985417384658804632036177040114791715601082585840114810094277898347917673126087325433800289109198227679285385493158341537884946820436888614554413943806143064220242709427121161406424753535877571094018414166604299831610436840964171701510089172269543671856202028746819196415630545513388013743617042617516457857309527263509366395793056092433882471101156806936898784070724422930136763325302659905365741137501728903616762518508400301958080240976121631157973885563223112308529852197297784755398728989975093765081298673179784802547267242178668139867295433637617327804793213923751672102705606076918802133801588084755977528796417658767599220000488427417967887076947813272038965305716074330334138221253760110755651627515908403956472807430526633263623090681484948032790704747679678167015754960387411459036401200170894793757016526745440314723463930161508165063099229550576446110509464312302987971263813366725663704771281226658012756710926025245738123111893562046730211636351140833880775484167653783472655127894528992266899931502252736959476064454540173253697158847103454806096443416304904050679908955867258476854063616974927958054524026288206959106563177834280595774432264279343305651938782340567870378492671123550148523844328392336447440603906417739025599137980983734069066712911993181650874721355413753702981397659647686454378532048369147533418450609880031166890124681778643505191505599566776895082172628571532853546878423873974995438244755501536182613176095847947759068016568103994929987060905029911770630861369655427963420857600630967164779006263629118001815597342892430748051221745361613650305055776246828835851623285518996147106214471710385746366439604557967901466206793553690423724176981462929767411955749717098786398616584312308006051399041438420811560547710636585461931825367747312848991195010739149477434602431062153031056188518991961332338571887949258808732195358064026627822826872799709791195875463266703808705537701979178404252427648581722944839856205401966421221052660271727107468519931683532111869654247958261330524287612730328800893595608816994358131922038450694361999637022517271569422255374143893531739413298457532243342651512713344984740786723905695529102133799003054757633568851081065735218904080732193685212148651859257832612187284786475256927233887785394322888965636932927516677187889499180644344053925317568929385814531030937208874984019788902513710857510400911173754056054089553253974676046910463246095512978981977610709246601416177606250498606192595372481421574876183076662437598565248699365847501777350867770734547313625881320391410035137204735573766989449738988544786364130547370353353035145701830464921820925904869837082329944695497156821827746455147944767395319462231668058518786516293174100911437981592332681866697802699852092884540546690020252690260654930681382655379269501169084838978803165564926177409113825000772304964131285522991638356054756610118684255393031381554815495994166997178104240883062075911541751646821626773310759868160334010479191359054813161656442683246018553193318986511568714215210053526377373235422893359041617534292299960861385691384989073729275360867928010052538139990548317822719943162794697045103806228730058461066954176283586289977662741997763091528015651476996003274971461542976693848055703661941671014581837694166305705985307452997817638361591810105649203627374453082239744865723483601109527847434282983378824445733544042043774184246806161162187570539069467681374128556904133435467571095097625970952210624934484838013658524054147845717100423383963274028076371432355711085436776881284591946245089833662716083976369727080818607569285338937675057482407245830814385446294643258860500275160885671005741132632340292163010235072487202726639431935171457414997405960578923852471555388808407867170203931450352638631954514142248003919454960493232031015262007876830413606062948741944654134630064207125119719486383032393766936209927116678693356051403616971589454037669565236019169167559999822020366979933619282900153972641903360199555434125620899410431770130844866972774849107124062960849340576715805415455750023129773861662488754157361171361950432551207866443251388538397647516710586882405571984437215723089846452171299912340429936134396121673577068234975348659223189876345825407632610019897990191455164978239476759186487375968728511386139847421155609957360612597964463768551397984153308646973465901740730989689392414178363451477740436671462754630133550821021632576828489882331535961145301253291049067648300619056729198246331832092497825633641913624911691547686137327648259290755177741271521350266992253662243444367766647562335066226848817177700313880738791974858663723234075656935601783827634624068558255084535953576418650107216940947516967041968459564662571025213617321612184370328649070233229899892160222203789181029260260552329136569532428879726118832164247796393663386663100491212219556935771604936140078171391313330626569300512089902248181614501983873838100809270269311382169749857067288901540622030661117810514766374444680903416958002728057584263422983334795531430660456098789521165128884821633006660723752917439384373173535401122635346542269274954188621933198298581884538108634344250673571120291158171973384990454998559885167605134573673113303025279036785863615449709867659352359343625950476338803100324533950172464340962630989994436708257836142249331280819779011061336218766663977003396106465475829050520482164194725001101156991575869751406574011777318115799765579798863404366817406827121817810222794316128956584798258104959715948703200278655363654717640650377976657597219670404202872449843850302229407494544733373339067212045655547084540996572901817580376628758886363038367084818240958231274221067917286313565572114475871393091848759331019500723791038700456299694343208468143216532622740577854667638090712224117092761955318562881567751939266614221094838739402593700263417538370779644830183667567516551800779285194455321362022508269061663782944649029969599800105550336332707997648382028474465432477006461972580767055955636075024177397895591548860447292873473395406325652094056574151387695561691435397925704053831555105755248629792651044693643745463718271097372744133348678132508253968565211406742392796174868231282283749008544188478202590957512527025510136638939263276269343847948096478816523915397420081109633824941843000343460150948610955068114404202894561882140658915161218566101308195936453679546695677847426426402078804755025996652866292696350014485359422548811363845315718767751761027894894725121339214460360847250837375287211126932508741626623863921573601421161604720230159582943775231181009825281065376630961616332799641733155733928536535732445246523308038776381698542615049662467943534122639544984560795270961548543849457928511060605660077299825143862068444120576139814429051855792712987952326271794684049069973872734597736263156000312090717377675815793654622763032718267906660445404205327992870844776516930461060932323502112427956008770311687828655663291464427409474881820586302690154169749240267239004496108307924694288692263797914209618677048876312895632307937346972722355559674697017162631629054708944900948101121652479229554374477495108994565531136519417152390947697736525050760686740663388577123134626262471933926536126728092149061241966252564050707148776455000998359199597854670827801479162135086654645017438903547711087681600560072635357857464177175479319220248084507024511463370610205589490571050685932816669435038052983863579629746587571113601222327277229585791111060537328360322993104441616655922766604591955293927377662106553722776963550397424730442157698849878721013463583953952113945170123970954889239226189792446899101425095385381713169492911219490079647949624105447263302695715022770515676569782973741245502258997530631228721115827528295532599488625134815903797869671520404769152214950932001945165375497016718933252744217359796141057761150624010007941966088605105839402670014726604021679495426914234612050961610427757841618404616762539638354207873247330368374048594859557812449919760333218199028158967902209531637654007536649011048981997801919981675854482828062237024634774369792129254105090907184809950260693678194102304199350360752775786048301214623116005787048724095410834630543285611949799197576078427673921569948346512569103321535311838849510187796857709538759674127741853164907800694834139196102848149405722901619284974533093670788022519867939314263204362875667555756202945990222695026736962552222646216257588371809187018651782872279944569177235152354357280734880287809479776731257485268702725526344268923139887446423193440684548175417238521819670358586570473059335962439335876850729223038574474810934103363039977563610615506880817095551882451383534920007422997784689578794593027308434418622670241009943690347356727867521231124668813650255749657465501492154338471141312696108571971528982200132119190550498769109798931855468637742127321021510549128093318934024728858494396447018349905793271660098171210699590035029546986583405770183666711064378659278891613794180037558959352607782634411766382440810899202661136635956370100141764779349425272819115455438092032371936889314447154735039460063599284142920896793933792610416480026236760600695409046971772552424087454363822256107994190881656653134818488003007389790998533031701885901976443706101966895035878079198050574385881739559096854206164229361008998954015721207200449711496686974839830451989077778769469993788721865505972646468887544292467426864661747075328044618386097772774518404277154285611540249786303291153071857939343610639277745523607920712322128104159345106916049416357443706919485893352044626797134248328401626978883199646957650780075851385894616071520695088634749401214113716855979374398718985279621994923112423930410497015455236392812413812015653371998368166935394211964665105973291522806471759362013932705286043480401821640459334329150332854934037914523248559762574655884428845374349845948426503639100221714595429203997862457566078300279594340792026543075295773445464761724176119593609671251733741289393750420943489105690378163250810065474447712067436032174734372839449377691244362941040552366093574579950634293035364624718124157699807336294395174786882933800209533811199575644096131703043286404168665739560644224254359277013716659436903241159036231682017483959857954911457266352435488601970669384760118844311633231643365570831539809169908601970461506908058302796363360566342863807534770280280691738546452038440697330741465181352401913028809730628246581107375114683244464923694364297187071052580228726726234351972911479690340999422330687785375406633609814833474046865007924938785005664332910940734084286068877114982033970480144936294558624194910542846244612038848927053922477814287457205250181643726331862220252631409233710227166185465406450307963045940932787002146578443252499590517326607696871901517804434028315602187905514402668000208659204801352969337679326492370900109681969126363116102474386957397725649096321015723749703578690134422464814165473661930904468181785203972325602038454608087149461993817382166396769510151056885631565841571907340746301561594343245432752177728255461716999857180209593164635733854802411521576805994225639307044234098000073654616129120578512093224186074814346715844884547115765300726024355563764495906317576858982590271529886523756393580926914623976032142610635540206247060927705428436023488850755542613849862632928558965138784177279535348606614535439248712456771766570659136587062655794890977972034081649448979768023978147693894474361487022790790959610987547277912638382185582165631763001863053287682450705268510806661349868983587704851041059697927287890833051672759996677025985412085727510530725059390354343207942726528442462498810576358576806663215910022104650823031507283791093520179349119930303495427373777997644936485718470518976611196475691195472147689896728311922149297690012963203772554367759341624173140574777313212580293106706904849542518204509086009000169370157059660801622782450379043356453712695691159177081313423408744380259387914058052494706685596711315333037158254812244357412316904814320420540666583680731593296248803208475165327164171160468388070311277741135124095617726528521222463119683770362317543133578092195687789947725415719992999962766933267971844360289129885310648624044078542986721743777835336574186535270986231763726569697814665295747357126532135454340060457866328954059504610905700992680237599832511690403640146124363238792504814400649264711736659059970687367302953012210725827316535466157458513104150810830745623700199991538468831256786063542179364112351627278849759254595607872730456124325627353003647981222843454137374364933329064062040992591441689387871272498284455024223395264318936972900836171998734591831551860402539755018474825512115709674828757709100802744797048729956314144683692669135674715545714939688262140238658490613124423403611452205250270966285494928099458566359842137796770247096399475629747677786497236504191806221943144946501239071972482612222295552459080601272642044162676357738290108305626339552846667003986210125220295257191446805103417321013178440948490393825976627332281040820011636805230726143043337877399962187448041762863744295489601796492963028331346776286467533241544508762344025191689987188828852035513215252236946623348172467964742380829069747251008832047885821292694988903974058479975149028557718156276781509565185933228868549244985539642776422350491318638110756981983967606494927724234166147412695700450894882901857245103022248143995535080498120520856195308192062304634564884144753826637534082598045102484557066692098201387305165505288414639902990535506693866128258831259636792128608442019184702217252429541779965065098565479521186720975671308289482667675223065034759386168765207548620891508560173762351010571155732080569480751836774580024977944806523463650179669295442383815367171516365166668577403427676211134152679756211570565282818270168882444922703515780554868800116904340042228044172067018137441558469256267728745282490912539152211431689241006562285010569108702995560379614039319983472734112551019918757224594371347000275510134199124253583490994129076027252453997576560185912929833509876218874898296435127479170759456584438785615157153375879890519434293211561299130728403816745752845989195444469630024339977439118304482973051906108715403544910034677616026969376918015896546581733981712194745100538171082192044564849493322213753280254251579766813159228377030812461782523641143203048973496539207361856116409387043527826586739789842019371831226640300660573877648974927987454003787751637342822113465710442794863444163616682305215117753890250148175667385666542900616962845622066462618462739736025104128229506431053668163512892109729351771905502739671338804291904863853816119324101058164494066236862560565344876516675922460080799526089061689952084961185141523660372934212724777450964054755018330840674120463710950552629121056027864758703676974018858920595724440732808008222505936703600078499615084892803357603765558158623344530372792694067807304830884826680481256441115330431887768303632609956415416278094081572343852907724791548901675178498514833814620050084485097331821288565602722947242184204920014338152488937496435423307803906439080531764907003014230579670282134615108000433170483876322488299118598107518277200898668904793418595956977534859348290826923263166008445096035293035276762377558329012876740779976504087749317589174768067017227186965675553150249365080701900124062673486343873887665511699728235766454097295911605944515599381371537911279527767405897045149596450399894096831466395030979030403796374021782132709561932463323678191428742014304061971081243032861925275191722147856628758253834829916380600615406720341853290188112049514582803710401286121380554963270663026844274898648610980458945893891288120338389593852770357513196266399437918936506379335310611818829070943819330519687832273085789124645315591659509109851026547378393645308623620738773505144300320110653076446984739889183023710293944074999065533982480551516702878240663767108466317946465792654945345772999087744380728325599125898178074676732896731537949620022921232033425267705758753860745091141084575809631868956648052869140924065862410851344217544499708872523730120504296294868016819232339902552753628950865554348952984471976231724529677525821685973090249627527723926094678964993777044428863279518393161516917611670011937840350710296105523321695123011153109140925891795587689497048706748565749558947029334890871573536070916442517679542933241208767121892557527985231867315094309564248913908321312354948627700091896306154972358783072783825450301417904704267226853932384704806435159748006282826234275000250294308720935467304545416053620583076958727849480230758634647346163082533833260586341556324024475779918767325544831051497162760835776431995618421041661833534762190182974646019261226862650683018323969109733877576255597175340881168589222976309564493468754675706264064482624705181276440135733726683747015596156779807107474366142419596015390911485667941682383170158717595232246808140788937697345247104461350220150690674943576134792593518716902702656241356419270825249077167130322929655769563032187313161965770108694215020488041299108739637347848944556095100784873720343094763971604622149423009781794339174226142293243577222433987347802239886777875463400608324505139077343691595237742616507233049631509117196637833138149612737880543994093224368284306581230546534086481130730193165600325236486898974792405718496861753738589398876297411350733701879720615724131692681858860929047296880905687290951266820644511816357962439038486116661955187119959624077565451720226416673537944340353175051020463366155208429025442818410772675066557848582458874947453516599445795944085138486461765177489172024044425546155262613919006834459684280060613388772337107775776663881830968651862125754940954626705092330166443596902831493551733827229102796598173721679595129183737499624361718168417560517253771922393061752677157383228965465582961395741112925418244728034409393269736520306659811687961495140613226972676819722801642996057813204834415766075077700581945948584856112605127145727386422686232108495918167382523472614229396818355577165615070859787423701536105739992003916159122373438499409992050003966326623072551418643664318439215463805664786751036082646279073914357679519565174708295819040684290483150311927117318897254400389548369418971058125025147446125317038129499560122793949785080135744619127484493658489373513991426151457451274445823904150932883246503754587561984582070052145086663762305427708035511380221277567293590020921594555289882337480000528111683071436694823697069683931736456714582745884390133645312859947179916995311218462276422430397014434264780193476732560806781053974043066079504603920879329074390032850820164846418364338378673100383882488876660441503418408966321303128975534660551615268962163979009801749521416417451670382356482650174698863793184216320131103994365069201432690537647031300112129111413433771351068832883917890059307452311442131915015339392124281489688411836705021876617082026248707085010289123270142781514375821503648767625285465175927488608870459598106447911503876160570574122913269180354265132238227365192861636811663331890201020168455623752510837554091552420057311132900561818483133157924544849809820689233304565336744072831718994688656678407724136822971232072610315249544419243313185048498351093022382376800057253676328985496776223019526696574704918224962387970554955816577600057215475597937827580905524746065617586849383460375218030172323176829555960527686490019969549962781938313566418856782067534577006889481598566093877765115551115638295868739491601584631633816627315887812092287868495025466482308023341878236701219995380739657067661172177805605450092192900213595968350237255885623660405379325093919165393219388085371530024150074355660411135017328688759424117172025130433664675335139068268378267080675454845459052196908782110927542555235505094036057987055806622258754412813212598908136516889076980435898096376466934351896337625745543601287648580722052428170083663107328941779725361508526260688128245922059210434939592297372182582348555230386622416745331895670596886784572526854543255920115058796446320368862901710460646790667368159597424444124950567232887925376945238379637723203991543998282919474175219937961932385999231772251860585581104596384605238722573491762026469234827591311653778765765968780633542715391584260638084654648337755937332168946056320828783675880356180863914099009144040103365241549850124872795869940420154805784478238957123690311071910731318654545973758101599248795519458859894359193261965380885804559358077751113382387252908590168847604904852148010868388569542149515854313729182649557031024811133034798761217293404139896558053808887647061317827040421677913271326618797869755076923326140396742761118895790234741434299250929150237256844565053425379012757530994121027282020678968277858179359685981558186467848931355507677681753753869458076225024440972895515712938133028977289247047719702384663011276518371982428467642911272535383022435884027448808555429704964446458420833876888925230672927060897421983907602341674436118247131623749895059594464851974154796536774055511139934039447300517853172468208030495224104202548932877409850366709621517128286863124051330194883792940781531037400782603644878386358681702548173449221578998433788278901412538691516677697256986132362853177522988240833995389793292348514748863051997325621514276385691216494609871390658596388176595958895803040531601994057177590774635842077309203659141893532933039637922720272636327180553584974117201771427586655906565594021117628027534128554726589526358109269455481437588672319703992773735015465132632357258567781228991372150362668513125197509534464964681421544641567568330466259620092205609005091872685160994766149814026925855941879652801877234600359827540495543778987510801856530936364487168169377031856909751960923218815450156730785752751116948170199594168906697670174251736399684270949217016972410528390896312249397146197782862496726484851122204544654317800484824545340811189415161095860103314456036934156888855990008152570700596947821585181904750200044893916014027996357181442147866136155046028904002834099082407712777117473899191573239987041230100185893921664530217651888461289406497276000151236915033715014496749211594455167323322667613531371098519637484198959080122108264020684049701973604861717014488718907312747744391693314174216925744415796884342981994581791462990779776565315955346737449642375567021833969819882781657710058580206821889305609709695957108270453461595170708581142778307651465791891269669746220307348295627224025726347031387214505157002473442134915147340522859136659806714293012309828514529859499920903835362270032488254828110396746611850296914802220668219277762486855143607160024068965410227885543655103835800414751416457825788766719030911293070852003473359782864343496459614117164922346101556987957673464892757260118631017664061354410851166811193829828654259709881958657609383703752224242224817868158577505410914931225782668954236046086695081838675693829593777415494582848177233141572348459005506870655448342053168902307377047956062353882428909697181163848117908697543505468878224661099570233046703543974886155424995926568027185982415637086868725941689146913607100433942896109287632922366963347977089685277262761545365618515727705521719724044528365467463414972715865391880534938520479825519359408633789627491068079197208552811320250589495375777631728615446677273702716281831859261064277887438763004933989194757583214820189421547195533198577192160934399208872135338352587251864398785205213520202492664833147822925766046090449453991217697528842373154611727198353092989301062722644042830848116737606348739750746178780607309508403387418735981457177044231732789573580793474941408948970408267152853570440369675859663831003420423758526809937265678255064170028898086841286088900666824435971330538707677069550899142876463567489977677787748815781658613153076278004558325770332711180805855525510731034089269815795732266695906007103566948761741126193892664456454140982086240620877925914024752175235885602162200055578623776759525705996808099153247483395121333998715879111360626697641024752469308506954623221340043598617659623007420502998151514371297379497079229948166324951779140210700678055424926387841095005628327068818600136755609914610729163429326598765102936319038710690215432968720169688929793896085311923263618440242020577834390235171417779461788521075832905049836218778709996542202162495708675099875667479141723244873452515522724867249224480562897746971918378473486552962620863234101427004015042235174192063376268606938802200603021179671127958118101197570513114177598035812959487055274932763672395490933901328662789061457894517663437193244900236735538230196431928164999071756682821784142133176514547405452052160890987887729276140052304652790152454273288040857077471442314799517747751333821706658916649189567725097958015747488063221402270949266215305452604339702361309342429608038492635817313645998375472912907942568666988592263793113252238217642142413912008350638421514692914157146468892902185124599475865211511814722550406063164999462134331790816169111902258403303001930311179755052649852445555841931419954182701332074625707923155960751980815196282772487169656841973909118506996534655789449714628154049593088811197193021623332893195165026754893733665742592628172716637770844310817952131292539056773396888513935006407205198690680770754834700907713576885042633039808784748687413282739585575291662806749135608985794178285100168295027208332835163131673200772553918497187465515282661510412322215867851503302772613355510201353937383176622204399711964890994829083691215287699508483003862721661917601263699546954979721941303222293021465947185620570066111431921061861606518562888713457398315916033734737257970394416068334542967758159012033216590528005664521466555273659652593755772980722372661867938889378210216879006388395861551628235947559786908384880071068274582717171113936910029134183396694153926905019459946435318468533664387994997542702372756121296191701936526124107773239114666863947575925383553064699721837790829263777523162773047772749271045715007612468780677496891765229067783970345857272061525296145511618668305947247821631797867377065316226994196812213537042055557928112636553932084696127087359727596651014590160614966403584968153242416948177347001156208511133949980627975623065462091837686269757846155832914941381278615187484093428756701156069834801695140318477760291318511881664344297064993431715815006266133541274178064324861348446428346117466655427026837242838069960010409346352593954224191253990764867787860278917140947780604001342573136473485101945749721669259004620459333747273101285590767828902540494621236036770412440268561016498257047096143811654076296700025458316621595590894850402648607025269859862678429468886975483989762821293970939090178330870798403792285267377224226177548445196332601513221105994625221378452094172231816133932979228470083825385285087680518645995215815094382696508452819565539899390063811669387069935625410029752474223092901201614728604568128908209433357403166512233800638597982546530828208023672133228677983227307895827656051974833253888885273815297147862848863584948744294475593379345974702922123901773629862945360224389594165025144729550330926644882522924039405917095990674756016580470018560878884124770440827008932186711885302599545773575187394817064445804728744655033261272503677382923214534700111061339162608983094458400060840404630255972818589010729846891305591443721607039801733276054359763178927288871715738065681316482985341523991714679239365559478238336589465604414938270660093557759616936618933849201667456034936526568546716742076153597439196803767766954181593899476273878232069624530082985914202537724967773503928158660894078178409897534883194684036200219184965294893637517487859481203008986666233853046385169055853635082515683618983203170925451513388444135929744017848221555530012809355983058361210425037258224489842805113468074547977090431253759362773234485978781879083819471362117825104101204443500274081257499749958578533794472603204563717827083072122852489368910636707256578632862540408648874675138833743724548365764687998303368955520277115089457586725071172270100604467233011608752349964320445829768896674307842685233949000238722316128028617330956174903008594804087421486724961875449041843941568067629713443259277681566964812310368577492885179964295312270085941072197587748529710980409264173869907843541905779172097119372699736658142032684660951228450423491731166853272426512907916747152056076948239313756770605909789727068237916343479023904995104086643409720267585126121830092160439669799625759290520121288949682043983290977005506032286371043844764639349952899173710456473360611059632729652316870901970992989883570094051477765519164241584078379753844040071029384829183994829172723807781571251772961452847276228561226239970159158606311290718499215772290322036279028364635505109704597491980061593756414242848158650892638415404045405505465471836635020404712363250756662885005566980043950063199545223125635311550236954478365248308063548965409276716165492205109750098002150029861245987513532464255562388235063117654593879416352719744210440293015501133381004282169121771415573778427448363834686611842537733141031579638412484173654192050183961242679941005967133120800194998437520342373537669283876368847724471790318849981574986611875844736753940536020562780598930676486102939402810856573387257802578106702560784267297383169827645602432266966546944550425825706876317786037736542159294514617922432077588336722729870514748126720304758790238216352009472602593813109627761781993243906892391491958611216512019531557178741197833124784548667595114991785637053311332564160257237057180475158193423991254296632124295395296415943366154675112988328215836403401385885188461511275491588930519287827261389564384963556526491028607436054765982101475881425329117108743695733015672908033737379226500913297735678407108564853547151195312742684529047334214991264610534134525285406962367677540202499229905255278357225546747814147145628106044258915021960298139146233161281038957562040267354049519108955259093553015190734839597314556249774950814858169751926757045249209640165389233112537609458475073680428436662494365929708604445291024622233800942394781594957119517939919907816057152464832328223575305493769397413848074441956881779336568142516690481254937518542783984328285204705594609771849619069503214152122104265168157381740447281867260269893952513299218162857610553340698071901202474300780967672259518438479687028281109606806099391657200382887994499430970644039334943237465041896217902408483772944777573459628765562601065539858791092244925975837818217404768564045548560228970202154828677341275512551579397114275120921571613226881795352033295070686259654020346589635062157100685381557088185652212316332398396500209725862904358373084804444469111178651229418119041494739717038255333836954864813844712737246114242684415166619443130681869801830715093364223569955785533100726262959467697979706858343888773593829365022762391411998794053575790151189125259386554431154115632910902642595124991363117570750976891932565033796382245185986624364677463584796449490954498424838396761285575047683726163404732444862612564105571193044714161158540080327862136049720032306096076216952632955895887090838942570612940909704471486349456978033699369977888465186707793610936623532960558574647300270720913195197728724930477146721839198532673306686332681706217374240756776788350207760786830320303717584935202927399404491511302421187590597932385268040426565767849660832449553735378738544769057159598051720485070464541553176047409771631878957394959528075996361751545695282124850492874738439721192159540953138321313221056397329935460905209878988234589106086607177584133907628768839812951410642902749752884276655768358021621091563946464968587191511177440417187343841108864363863158826903814384079711771339492910627442856479284764344960781053725593512680418446657669141962542274958776861662886143338359748624863255810897928696225524406440386038841014123368286932428506749561030035988773011343870154784319589781842330267917284121184808851463548407110907104689641571588925676701571817988920660253991102227313626057975047619547314778836080639841226025471626690315410833196795247825615532124763931203139414474930951910109266920302220261723893894134303708749687012024895796874275907478759843266473637413381597311024024626143305906559259383045049319543182532396963146718428865621081758689088643731922906357205167244049890735909416197344483559674747388844608888073743562261771386390844931593071875055339525168624615123773573078409710270714905231559505944014609270759073568008901927670535389267351142741085424219691792059927028861138117027598563442327826206085645276626522933988106049440056212212317955117037579117718516884219376448430531406733107637041212661149827572450276968303190238224752238178619224189704443271898118551024856774337349491806426789998959074054542008685719761991887817079271743645953952307862975141122147196592022481382744080374121633072742460133093285885867278867598491687742470995643741394577236750173254415687274281487988725484217286502105848713274809949374570119653032926485044793421098607534080490312058791367790144645105663748530810457778317373032062635689542128854918014928080145819389810415993388828693751481202598505298268249568226988617884904256503939377162292448403891205509819601571511450123888807743386968279338790505456418806537847204736413069732957168229391773960801027758241466531846376772253643976510735823424371909200561593546250700868790068829617879725971632106435068705261242715536558713131642731378544298653059981107095870392727812438538211919756202440295031397275850409314075615742962539687375364344474251687611028054968203112477503720136285666664179369825094200533727764414446278599021150332500311983187585396015257608059906268100562759107530557679665667052664400452847767185943858573605542596080534461587687190394440035054585274839716628975104440263615495948191476886465240547677767712307161114597426053051512738162071806029531325160160571941111974219124175744562803771690056704282000793219501887527262947318923835667335709545918405304576692854946627236967514969507294357499933420807622649258313051026915877752532089744406466564840500108587697900183588988551711153148089496025372750607236474225390048432898925109352733694650385223528130536014823621090742006594904045665989370705314619321185429040766757719333975508487358495413856188659819617529147838755277521521584701479061467608560682601472999431274215696871497918509556491922388987591205823089286478647735053499146834057098097449526182668412317054628938463662265848525723986763458479563877098682696846127438345132134323577909543362057514647633082226901694628222852735812526628352607825678338045342617461301773907840044830322610412551590523539438096806881745104386836869416499950014346771110006443460572095085804481150185770224060714630472862011454590029331276782788867743700560631541942792355331913903688525036044043795990897425487436053008629242709526155371231567483472016544330574060799988122171971963627292333243296627077103815094363579971642219126049283795054750249506885457744705491270716875450729982789363911322909514041506296611713971333286115458999726974236090408144933530449236785409344131664071598865939583558642780209143866682521720712647345242608722566586152739147314518339671958260274830225192898987472356321915391821594418019675543957424288309159945223265542118753715309027369348893581674908887602756434318624419609277572974145052596614998722931982290751361827419679484952976395333947664857431138058788027686997476243032886719624861149914998708631142563170819643182257273949060075811516446197268338390826443084299422518387677613995617977694781335391269236147721560699897064619246170025335043989851688070085315659771541209660465970537384189651070553531275498500809742689509908584410107984915370653771973599201784340660359524095219573897158008031265343637913878686908736843668349655652686590662444016891209919814463291615093934426011321220077014635032805185028013714699463008176703193495402316894554451461470991839362736702748084177601653022612926295788805000870129333507422720075250089328170466230263289604228540526355822973127407002241551272976713188237535882155294085636776257896979558419943704923543195254482827083654256115299736789039673868470753338091751675806532998497890853733679626476672768912955660976040715386612201451779546353336594226491671431257955127037864873918269103503961830780607466647691528731898759619852855498400460128540559513620513632350067824567516884982768342598061839716665868498679892950895046538708732188820932228997341780456779128055874520654936496177338904383039379775015147028927017228638719650933241264178898064527938584157927721930882552001149291961053537716832480656576637908569445944298481762296018828863506997923603228161194568856989553151300140732136185556555171444804337251520153878220666025550088086381348717936052246443651709493840292259264770612347091052993164735178447544110105531003158415419667332855450056321912056442613487478423057150659185771471244161957385671712403873974892972272530709582167745503947640950920431813415602533002078449176675287544890355535061220111273828587892035914220957294790639256843928502781304493448562276409364946533890891071721435661567994915072476810031150830902441967881509263133464016633135692096677664305106239931941303758159011628139639503454440291178958632717879322691975719763647059915428606049851652654657972408144946552364348446491569048252282636966360876612599239731337867657017513834245782028575209250091577535109016849818312366626051086127645355906707477125708496149187776941612164995511552126120084147330738703421785067597645661446781149805486158317171233959782299447872592582948305831273933432429667419473280889364708120943262874541848420123196614958510156318344960578692838039816680257229196154306048979290720813933586221202277207297502911628684514285476765662462998627777474453093506065438090248484850191980999522932019150725570008333357139092834588578471567397893608850509564919384575063710875752528897927984655567661376016920285628121233368299699798872933841915280734807998449277274124254845706067464352566593268719743884071792061812097586831189807883219022066118569823473805368295314476088200254028957614743235959283288934992309567197289692679558166037224485367705857882804738191653500666102630505793775601198279993022442248291870334088255496628185450824072319800471423933515505151990187828327445842193598148316523486944651211486741866533290172149700358679397838947239686948008821357159150528369290157334843072139804141589531684188061904896651792591918437267336533157752971368376010947235097766003312871094686842522293477110011852216497352233448272098478127546956708602237794171271843888755952613667942300622502711642130068002711165711882133599635885113767744417456716290124173332490952376568994891056613451142116064231156912195859595065814731217426711113791512845439867255387502929822184897297878391529388422812424937382900311564824108442910532414047793095368887224484774757832061798165403109841868688325798047063534537058115249276736138962018255937978495553245515718772745315704575908585341919926601991008457845647114248141646364378749928946060713194886677680515046051078676679684905255265800945584926340002634655905477752729848169514639511682273440666072992287690106348934478555197485935269427606797645514825642483022850628522851726402286655819570113379342875147275320952281791913856132631959663297240225915082948569424421412472736995889038384207897273641194902737373311862367409166229943051586400175052139447329059776214485300221840628133210370533051273156071079997272338543268973107040821861658961179727878261578776453022526718871336742156498863869154552898957299117086255706750371395022743562692344508862033321330071857956512268058516963110766666944732128158034775044295389680097551613420814508704503710330920780603366327977177824935278228207381571403266073134335258096981631451228539276694133495869239397121710886582191513534435661773474036400833004440458251682236147687961430092464041553918446263210358217806175146058832482762296856328481587800468254283593662867486032980549220555363656302197158637322149578254264725803012858008838368152640484752327099764450774259874937596947502651267360910598169127137223742859790397780989470757295002742400242233914115956293349098413435665050520017116708308053637370424263488870937370428618174818471225596276944363381855871317607562800396919607871122502455043157230042467851607322355644545258232062683625143773364053042142970255570818865087665776606480559357792198920823057524398112173730807641801952457832841584404278046383916670744168989227312493873291677277852129969979871180592895382065663232198235854255472934502124348680791619632520993074899206020387066294338756865608355577736544629265543171950295738981219543053648195316162685149989504624299237040848854739843537997564762833609841445113989141780466171443644963130535234511922196423813443589934628418979764819641434014023703411790280762882881162540721441102741608591340696340243707994968484041874462922847083924832522399963780278686580215563015008058204405031120785865915308372888591176033651690401721081028491146145409127913141813711954911100840460792239621937705056348125926412624494696309145647287775535646774946093348295780906580806623525218081041057614855435370855071993846313356012558401480328620584798803736652103988977177578128872025487586919986839877130081025161290011137183886875507814034090436954389673872218972621734716288740261563621060499775307700810756549214121692699052520117941464278439511985252362115689467559170171992709892649781679599790485001133355779322365744266186946695616115003828505646823418493983081310168267350508550862589894878218557084248530605579492832433442766792018306129191437199225490706476646082912100476211649107836505977685745844925406847173453673436364679442385841154212004832724175341949849746426053974123622708644720408112956859125912071349662847644460851822505980244157644305009756368012832446111746023755486332425436793472656200901932056709498609930523140229796645318792688234217646295704423309300509163231452719262960218659964395606657259763761158368282017559983383553032681100281125430227180108600193980546103311371822579060828730650181329602926684716520661884868636284416942619230184140592881295018250306054325194319513671104542001711259251794167625136989958535035278392977191357123563485516982469108481660508584936089488280547833794826496273113725150703584593109236186722822940671749528973794109466038748176587080846225128761218422446392539186249996707649219205537260588243501647534263928752042929322521888473655059466200652919737474368078127460834853464622140831671303410945004354208727395735173813398262145026816892351913396435433316434826216563670510603063354197273525731658678481424302461811994787098559085299947124629883468114776006576213852162349267511238439550340255663687439467120600741213527696558944526080214534922755569039064281533640906271879772653687900611949347950111162496832265802194622879821545184355892274609199869648477921622044158663043067372953496037943948629812135908008235507492569070422504011493870324447455477978994767840015298486238507974026463918346445707057928343818399738834621476348439763708290173074500134366263129593544075171940206426024108395238107546508289984938187678553335638484780397963204978617287246771145767637694689978488251372578698672563252310349487061115327252812756236442729274990855944044946035533553858245085978741330436758888623711382861516968692317626652368962355227118337427107740390734753354574370371664039997900733300523951530502154309053278451494248367040631187369959975502245042264035084996947254242990990467452244606510315794726081659700197108484293305028403179675045299063006913303623162561831814189431562125478780022693861436411187630662804262404570243372642303672015196311656226869287419038421695573490122580143642617240582213053845262954865693241574559957276553216058197725970258517851091247124526794155823574706758290305691789578991178660346005854519602618054533208903190780960107557160898692974039965565954844763530986837560770815236100837037986265706665707898506571054107285667797145072174181352316675100430705215441528491866385301255727899040966880021534806812970349730537612125880194499582490590567537530518911500250728303689464695695345960629377068830366192351641550823773084617577715211558713417763742746188548329658337121900504414631069105433091946444446632199887907037566084719136436505171168042382047107324677438677252082253667951695738229082516061360444358021179360396336732802516348252903977129198235337358364622912921578876950504072178036969961830516953225269195227161904389530573179073362141363068374365245917276720231062862359380908494279901053937795027704462783413768779696700350368094721575335435929767707835078731525467939282029402835750834805498846216532219462803735360866476596460223686898244430529302031584138191294785134479107623075454708385793316996148523949205417545849428986386812158468929965862315452760422812662176472595779919083482628270441871971841183319704497876776563524412355483297372089028316754784868136491338259641103318940773528595759636090325145677020492870620512362733181541798128663351260077053174315407450359236385187654832746952275997580180762266226650494683867583207838590299339051546829706235307312840275994297914350220696058989218888155050024359062843774196290997254602920515018975543483467367646736215459971695371554699535463450583974285774574223700661787223815472654498950145997055293199335034901622932656568665999241640280801426028306076017448874878894631921644044477382653277249001242598609176912441950964867876490868183809733832500674776633311324570782869504879071054560423357496312639647067021482040559595962014015709382033110107623261978190429216986631498112162276877402818629993060135554524119019322149845843301096863506121809386424356758189900845114770512361930400396018092282850597988524147967974526276399811819775610115913509307808446033069121228622071902770204593165350991773444857129498598131242326715177525385209073017742577647769458407549135142290148088336815982465501444702649490537323671132334887107577485431250414719957944680869066629075118917677978115005828243723882306581570346784473185356828057395181898666118785041470470588849293478540307066528862639932191611830272344812993993604711404709017434939360269604620792096047685677175110981234672065029992442647381299559622473222313415477808206913490515322786601809628196949153679254963694759324308971798695107795538409855883973995946587763365565641658951590804637465470169581459862551126243543681305801488587378250230682382193319863216313649118445966627150402816462723843524045765771909799141777667326504635278213557226621833468664404385907861465646794672429294569066900702463487917188996035825410264869088262540676542382898064416016762486433395086827097025526892584372433434836387871133984750594346861745756813801656669341769044416416235935954163882459384260889673237369245721070884419763174469581846652324454774161602977180060838408581303604626994897713182194938491127172110191030990790308207379868491665494012870487629715650037500328291306623720426912681683645449666888215962085578624503005581448084943810093991186071912044123376869507296128070831635294511736001272439099144672619201285565384197931113557246666622737664033613737836231090647243994926720339546009965542013300737475393602361315299131802604673347640609834552829036941538013734871843815516736767303065104180731646382664172296257383891567723049314454530704241280808779640228080070053024979392696194642195057225675203049659817314160244861688772396105606038946330155434719152417144331723070315257145056852907895832119546431626479508192304192317213965348886356076556269959623681053451891074127629756183833657715057315166528965547822854784797391811266492705849678796028985216450128403357355278126083659311393208285682719633178171891507636070553208944691746597086821927175201657406767673522105495454869658559627097003774685072801108940920463402783150588629553325625120858952613783484155519477968952435415994962436279256904545686032186813060585009058689929235815368939443911427068138076775208483008403022674933876996487389486338192718547954861403613515674379241414418072309175663413060833906464467731045371772244604046317761588018754564732643450822672444809503223641407493261415823032533460561232851422163094584891955039658325852437436735202841700410761197958532827477002597341115719084468893210210256960703965294220714591196026187195875323319852367816409875709896364820778032580875913613064906185499962402436578070397852177249489727318701472242173953776230394824158788405122712200686877958316568801318311076702912737331422436088233522949967693290468976863469502985633251275135148959632728743467276362622912261913425970897240227947704307792449874812886588505220397258738173679330634010059799790588440704861653763557345502950026417664547976841317336895384610089422354267585704977746900029227736198372148907294867819946297517602653205808064668620804025224754565506331694868921699692019485110319873550833921399590839914919149796750801149021424193596846646823659263740085576346807930711887086075276674671466665653793626179908714077532986586064595461558086710580928881559400416796391245021670984648074411282615566151694819673648606546357800823667857145647733645407266154887458917670557337154860284750328831832013771331036253464832297905721554143529144933180944668337488218467670229775612127171437767729638874466484326853452500361994208823234779838923968174443928226583153385046057468193396595139494122079471596354618998248661932487297189737765064536718207849303260515112131029931321984701449470588327698925358715642673154647327634315824285429347618340299987200696818329795701362214152310365828593203930090795496516991516943578941960097837598735710707215008067776148331749620039962595738044906255303664353446375387404741418059446612582834427819158597370661257610642881541722951790158191046881181768739673629280202656474507738939328896346675282504962485371921026123006144392549026177728483608438715077131763226701826350936439265321104326246173882952322364517235769488481331162944759747631036267645212674062951973783101125751356581230654579663046370707864380812941162289075860426183392965606656781458514945901952099979468827694080734072010918913629359917780878957718982754668330527338057411164379347926966056970179396124552021876607004407087177624539593353885136524575425499802201575672819079891973943195016475989298114648436987646930687328081593094751053132262155740171025454017254107149845107840324845018407877567862309820507407960483100600991121499171538456515683936926294861748251561809584620638024325406394483473248403744646675727080594500599689016486118040029789517430840128041538158979126841986949369407628570460049388172396191514291015208055850103412529006871948644077369988182742036621168459923794486869434595928329102216334014632757299046687805920540812932149983731750029229610028470389673026029169916124787853019958440841470820134497531644070028449914023786271381660970648914819136343206831784325667519936627552790097392361224174859972724168047123992665158817593464847117830953363486182544123711865544311715259983199284679613255746103741088297766872517730611666982833547267021423206645878982132447639241279328749124907259224578991640961462563304704267655091371168547993192556342479167733369997458557699731516415355458997085195371276362504040033257040545822271162170600234538895165580509881462760352558518485082439588682597331011245847639975221897368755295567050244078041518221128825202128040735273631884823756725875599772679743189065476538464044915514609627313130951463007758925705209923835718542294458077533292844373823413007567522435329261884319359979582598251401531595630449139999167749004788422117986129015517708117103373400764409291831094511792272995539215351492898411620008985477463414885797842344169706775827258805300863637712070272932036505264634279182609916085625415522305498745096530753956335064613681019822034749622292850088616977727979625496581352397297240367358954103147641372440160965605642570930346079904973957233459256289574649278899090121289302759264623478095995606044267603907805852649703530830265669207302751736838820895173765078637629899679852499450985847225769955710281374212476448462397713262192105029466625809960429310712708560553806844495480894966497204232067851818710378638583964189641995223572217180715732296829253013563519503979670626393086823662348146537436282055302588398471260738346561142932147027603131489227125616064722024226133605738817093276196485192501250825267923053064252218706495452689935046030903351051885438437590414528281079547531437369149752640555707898926216287182626758912659301933955072124746756340570809295597808315381144375644415183219836023084096907695267845012327570754832087849209916134159528624657452195893690372575949012350469910547419573442547965153034236234261700703296384645783071276582959754229030517276630242922761760622410596147939096753676606496653525010068748587484410796565952145228799400493196294288669537520815440927641946171977031398405860424210602762471591265320954369787545632452157936504928861104869400799705402899967068643366880878804050755076664947614626184217387067291773487117342365452076280948034868888319823286286249034248494369252788519101053212342443375407128156734766463110358714314280218371861954978061100511480675918524092967519575660496382213237088503191459293221960901018840133007338435518246899311176077101761230852937798178453153576979351957953342167767273316111573705856836521159248580096182286396460521484515975726248242264785752092214733288538487531259715215171780510761769051734018819153592971538378808684879594553124759170008080164228271372877816119685870898208161595986137277965561787635929420584047321520469597381501448177214195082878023961141775409108579273008490412820911304344927266698043651755715921801089691690305570894705734914955957848826643889103229748406955566413347953972103185791612661692692315365489988109947580657542644034958531784340561474471592668521685184652201103752862452155959538733988635108092454065719689712108846214636521578491577932361186434372766769629350551998697128604609192232399658400003387658224497746394501295150446921541750315566411083917222439676946207722880125583003709784908239493036762766142153257056212097488205709810222242501666806577002657532151988054293612180708504143249797129429996896676735142965552902220103432302677503194153925668612300934681731416373524650968676172752200052824819786482977713500800166281961989498077689154337865917485372364181160202226259778396142092483186312840956267178264099900472763720564238753542283480326720756754528488458416061289565926974138431390612063987694913430018835867379240631272945552729174275226458286825250511132104051670166603758055977460671608502289072011642047462780899992030268470360240958803388083827571362407976943289875595959593370377024147671829993284509609484247353773300303170189689578557187837822169481093045775683648325215066878092807274164359055850601263066188394189656130636965986240628242144573898073596522027512284825696810812931666088568288197971787971313543812517046957382770179055965334818398623089157392353318499013528937283061643786671902935734260923364039877713500480469484408537966710828598615915179296648854272021575908178757316117612482643072985816047651379035507110080237760625955949363128328980904871418510605971720831121199051335379753716858609763484914578295388355112777606596348054022607332107414570514737548284369943590969535861104038814471444963206636395942003891392409250151108833402516805164042421987962418472670037758793158692553939882536142110182829043781914871291278309356973933152443839760799967529947888413417914727432015594082017503860536034703589448446514667278900054767130265392309614367039785555090982759872781236586344460577127558017154993884126440476217570339179648255245825312716981935852378221922854669220568697172094092660815165483661009353809828747662360478208672190272241127117125350340650254496605097352214725015210807038072461844787987792957837651342309608848137053219697476876688166997996295265036974794904698291743544076011603821378998625001799480357239564045671562535712859618618567060987153509468117699085894921865707147613717982467420756311494079959851037511247971925297366303710304449568696573444517575400728694138945549677885608729306186536057929429118607464484870716963059873845507217240011679170668188577306205223208937422751581759108300123209435418973428679089310232075499311394518218589226808256584618596650018851736721619597061113345463548388352491835487353217345422301170887136609259215601522051980157216063057840417386188883403552888177213698942096786628469162840347198706460978644124004498950749647631297488276766629530351684614994689851279392051638073320414007914353824595067286852721818795014746830758216747072643512464699366442823033789344049141442232117577786119371225562047631916110356876878907952086939508920563508793687740467379728244586016946159176157293079024769932356193723922581443846235336244320089606201697257332297239178497138741454085847379710309857310820719168568593714709935846844491993084222769291207329716280857136966658237699037322222480690503487615924945733301089186934217357890931908717797369050695227808776146134327544330473275033874867355631612883033624157546303499399764029565133718884557538526117269633106577061425328038564898026618249728479793142328691039716263428949989039583320915238065792138209413620372054785739210523067458290843446687351472499987755005673370734752082974851547319614433344024843719696038307187588166004296207413539236104066344286207789745287214125545787497996085644120795068619404749900541241884629850295262485786292571400636668158259864092408828006051199903952624772545710828128791160122933416793683477540561475824790209706191733350041875367604409970619412857170357375005840514459984531144776122920283110818719492678156321453577443934983913521411292199815878943012939534333797596845477647708543595102542836169828270767195659827538659987308677752951512270155589055315037692524573791074142268847649822433392239978798228017427137061238622525596158503921946187285903490130199363479878145593820170541420172678864073133873489370694983959594617736030846610545841716934006010458606602561330400704211714170790495921038938472040211546136163107287198677150087152490059303882719240057315505696081833200192030182900140236052466923069687736926668911252730317196979887362662144208438934919279816406673714217528283511079889150139230588055208931568441808217948796722823841411712960162400729516627647442301005210768372712609531435357692554020782369704385578024956788680539413879870458432970833817375086372864694299973837821521771098694649316057762732266960873267340239583705197668182246891442329742066887782780130012852418516325275078878629783765141050399079611787515315016525000012483812670847023626386788771694502412743316846942514508847491288407930794262179306359633693856876151490335732250389683734041910094082561589502299787845084813388375951767697268221839700508248916016692013879435809045519343666198483970839609295180989339925850821372091912076834562177136517362237980726631391112361923669212797253327278697918558358242350082091958736668031091957983329312537076767212709185847867010416455826810399707871073802616363670774526373990991526042615099318778280048110345181379760353089754618642540423741109057163866363952830697096549504388639489092265330983668390221712286170318704150170408581327150830021530138782021947725111388283433025790403643365389424340094036556798932608187354541779616338641572570773675428489064972198592833328016526007054937292853835226012879380991109211016333232814421675129569467328127665319810351720726242426870114697878327393643392756456477532551580751314612547861152068913521837203027436217068568145694582153752866891798204022345324641125473297325171116832048687086693589575098103282465113816506108870958870521962691807397039529045615713585099447231847584374159537634209368009830752236397328637588752713545975447724260231887962877638230654213380863796225631603046054233672588687072684276388049898318551890830672412506283174151115825426234733146591604602398992697599642656920780249965676671214510708930525515885124271282352187839893047523316765733154178342468663493721318017123531219901140912637864920298624853889848844790288003877055459331047320991907490787626945795496196286629101253342445896842655448291237139174287735182709426773351588183822398594240622198110192146550961155322856585959642074615954184080348741624229656734920096872981606727546516981526472240580023652551141497293431278893114540413932619066523484107642685454789460284128295577840619838420531812335046661955184944171774434561522050161111967466602724084519939567635190921123382970568321567853626774213388141485358752083342084444492499075265474361118912348413874572421020316426175410823842338798611824365365863221191972080402260229679702329564632391941406240098943249159346280764180402734694102121002100038853585070425558011478145004232747312996563083940531862415745973550236724626609607603621928339799532628415127585265996070670086997967145770814154909707545493635547251650419191981755645103135320870066344880229745178612437801264625250269703717494883942997924082422828884219571472384199759306019356744020049329249227390601629590390627350419362289386985587396438474804140501329274210878758372371017862345090143362153921285189278600247906904167232550679540095334113432355109261085822697366236774713773475186265743284360754556712986881351131950419147179035563367792699438194043867180426810250574884118901922908891579185294235653940674399642667018676625170148783127026118667283700281977750215858507187403989345700139340457914113038894724433627826822086031951658644513479154297221074701573699555742381376505994286891417412928305074006816575605488268860785410252984387274572141381200013715448051063762334575396960481236001821179361586443380129259266059091945922209716276448376811694253809423295180296147204862343042812488557921128765332661861575588623758914976635976262671317999287985578227953370776744671389089788854126711610112477956955001893571644511840044577805108234218049933900742534402771812005699624301521655667605025338235914856490569448111763417690613942079098248472407973252849005479302477122694387162530574720739843156945453828516231556051361247930254494253286660746275457889448319872275700565248787905582144791866966451761443514120960493856298541264102307852161157289202149210708500794754908002951166044588805896279685671032484245667571509508738352033525660217780495948403915555302546514654866091308705238859631576260935158582606848173384648024366025101947978459720062552594800543785033878640075983455968386084481397923877498037624741958926542580736896210097055812978071089379002482533861894017357747837869026233527705520115956800562662307031041972029747315914741263949395688402982176400215511107707933358030743433320971956547621273806261219556650697800271309133777623453325092406825550599066490778751753866228503839850126593208723527059140915410440925082615878321765871085234857479670871609726657855818042083184177594826789624695246105789577776916577351824088540666921567783688733667765464379111528095688221559794726980766969326419490886816355988924853662946529777578217787259112280999347614330368284009606059485584383181585628458018960811114901565516729114190753115370055506568379897594350887270824531433704009228218349204285376397456114911436188605057225799808863966773008259004639917175556434964924499553256534350427293192847402561603618614118786437228772181567098647066414276290424787381728381010606536627823593628732401563714852487717165725030483587850950867259587848617759771007643829134764486960274269682957023792564632842409256513922627921519426886978662229776723278286232342844045424294846402053391766241774210462386243525357124558279948408821351492219627767513898399234552509630833296797257100746474561577711561951383855468380171673929590348268564858855550301700345613127381144551620481429929578030537220586718630322647863463127246233122798329629080695171224760184500408213175473331680673322004044775523699056028458188908477278635437874826664430099706735157138404624610474020146352886363664543505608717849905327637192574606724423517435028172147345798240684081850689491532553320317616579234939005085101254864620207888986996230288130542424230457942726301274554491629099205677008170406779037792257749345819058148862688883721513957054710900028839160040873311174698766734346901574228839870057765718746619997630402868171820434414543086063671428337717717861214365279564512662920527875035692788734770916031960016089458149508076443468326817611556387717017069611735779401272923399738377506673501566495744557602546562135607273956945673682196253870047672690407481192776534284776315796486882508315861961491805694818348758664924326276833255766614687449054024866182177359728980193391310486293444573461902254737211650877691406083378720566433354107677367386269435875247792631999103429316639902060797788321643539837653642225973510476126655057755196615133814722785683561020471896982941295367776482823433058257465820111403474139476383338288139913401475790898350420125447852898292762965360400804833062325779554115998681290634903050202695735813896460437838765308554977882299340427400977258630351996526788717910614882029306029704873614509577656885577017205817099116892420040413956656846696073167885563729634528986393613751530810126066106921542040482355330671717524759007499462069713501987117182283776480664183962876031896207550616364113281900979000417973770467169147912096509337534451561362455512853816947158860289925396954090673828205994407096406623007013258521528736165970227093680236761125540594189599970701765307983039762137086016877603529670714611988487691534259038351543015968389222929325558282232140626366733240798799278601811530440294114321580335458400397847113101565225739983207117427835095999604658979471882093454532480357285956192818162532173821557134503087516652589674490327745448706192109565777430681864520914739791855504372992928341281161890215717102355807381018643830542649806930037957979565139287925716006008898243874290090075977912049327075654473789988170649209974590686055410116094976306168491586883077302051837764432111122507722509620816876786478006921831249607663111374037869766883124232892800624419176453010969258501563700193500160969257525409814658503445221630453757445777507822336819284778489138933027958016346629594429229114769229477176136766279363089810601620447269896071959414989461522192875858817136272438373049544773875943317482876962005024545073025578080093873976801058462427975923336116331483982408225553941099333179434386638419307282510089957428202450674024727149628312925945823875293822161032580517186002611964862998949471832441452754889340471259303318874883228947169843359464368810260938209931597423626598698399700815873479691761343579379094765804586667757021225452570990187994503197678118744229680312724001166617637846953355432028364386028974644202071091552340247881641259667213481851834175257875196232075767338616792191940037060021569009318871129855539691471706342554008240761272524263005611969972074319525835699558451320738178815890429655776084143824094016119772366456165047603968396986742234485511556722026583514585035920038553541299507860372614230485657862103182251019321933461223211946413612002881215977363325627922700208000662493289347690423142138578866603160621176543758537134694693302094536814470441593868981220112643007556942061774027455949595733320109494741384429596609611224419245346708088546557764406176274545719140990651525039600060111873730412184289331617030902501555825425118996388525512594921672330011222969133691444976703322183113549831963899844672579451405506607735173061289019508943493450622664297723222819278481501282617890444801224320457817395475041946322549290061415756758829029645681041166828458009298190285497230522681273842052805080600337844192123482480659961983600253206072020635222020745888379432057860622596294584443696140087133345540176207770189363534099673244562607747983473952810946740115268830361965197066511276315046224875229603006482990427959135785498246838992880327367567191769876072565413866378891428962918349089005610204725402899896841740942078340058963566922366614493646838971294679653721459093312056623200168167967752234449244041077474506511756465382818836096297983814918036892696819535636695565675934135007800620937061643821982849291860509090105349175210137476172025856199337624205554365076565376540980865627028343497847682002111355372535424127153121654812326169363080400891113520729614149339738179651225232212870791695605191063654012698767414958089400937969603963715569057239407800498703632315756928096456464111419288547297706475132290418353244849865987778338757046601542796745518727955817897467328231430225927935961974964558680200887018234855455896266441078714208427678135848623193674573762870025499292719669348572254726764937209569905959300232205836502730241483361418449647207686910826769801317273117726829546983822337059102213358496512804751845238211528161413607603566066663119685464400387908893625215392989979660220700362981017260143550604066829414100109847117273602936947359841945360144415210653594478502897896615749750290098298918980675003906183500530469590035001204974586429218381782166055262829053469677812853933372933353356279669165200203033855665410410325593449974250103465151493178752302217995884209799474625735594046915907916293562027788740536606555720665628743016534405669589423396622098618636215181836626620738499576489392916997225606154684194580086792201987832543647243989993264923206150178537347611115149292010674929911713404647796805174698500276761468444915506249098781935876745900515230298972171137605649556643249900078712319007616259493415304383132131889024336889847667733324496322202102578488422895330821074811909873932380377516086045996568511680731423773098317714326369107522902475248498066221706415224873825261958917973917411828995089503656963488216084332899012351212546717338584725347252444349653766122467740217292634562269263912186332242775650607723450075355142993553067764539113695925309912886333908615135090310896099399568799518354754417751952762293872073085664700612423656364987702636811855686550768353424242429087573436542926808620500203713110791576601972094670607436003163718792509118247371611528852097251770830856627588777281469199494105683301125437960098233066741979541200553186359137393885810455049054648935613143469179799719590846325906637765855790003402278769943809212708280192632556643548808716670581965292555103320961310701100833037915068429714907454585167081203052972260480083129469755064798035344720070800553647406814674020052159234473282179022413087964456949046462218621409507851517373592160784880660102943340210064688024918931574003291527385754278669739360881707850477382916979765814791572050262214698478665312075930660135314277156192494412527223385973779847659319201028806368161542997066065467378751192873748579917717125258441660729212937071795690778649048419236725642025481650609798693394465823812863273147077421913298500534398236608214538386850302783551204284439319298727508332703876340566671540239953894198586960689334286551935258811342411145859960219032005076961600778259963336558187149096865548351349463003868813994303780241442205898867814649238417012842873613909820335720656805750126001889476988071864797135933474628373988241099394875933028981587697274634146917462813365042570029818776406740858921022851633761695850356304419197838556647520511197803379757691431789031505258847065670263914445013841674924682596718069761034747910724666887240316801858096517174403900097179969777810408334946202117355147556979092701022403895707442863595942351075904088828510738648216431985807949514105022486228384139368837074458479551881553979534686063156890336031793575799525839917421769051343763078491595028324643351410917640727255614670237149509210158489256564799052730760758730823241044604323880761960336822980674168155654247206279023165111986735838091314856182490284447587967777270492463643465954567416431472040092555764997200115979713372412015512365094820101607438517297444099085891931184203640470392176934467722625405377110451214632212337477629090227372940858945407977163088578753670159932471180781815966942330657254454458681354016822715216219672853084304135259150510630117418171251191727950689231849922931271560574530087150352115631373832262977318084817532983974840286186907653118810781687420923306334855886844304364142876507053643064507289470485182661860837087866217115627810226432428465390898648555900140242677802505612864235739222019447496696963160745736080636376795278653385889786546204227846245571856188083065183918967063701594987934560236058194360525470480287255980827265222778700021971969603590998659649784177081212734146355768836008589440190250279333269838319293173057586529445421249447115935660679983775925743808886839752893292961898596534897738775418044562997808698281991750963794967939928357585606624097504895975154153465041923926064145107395015556881080750551138957548859791501859837611947167908646421870015688299746216884072358609231415441871200023530713210480494161296967180640653456926248831812128948641462383523726371416390543843779562272956961946551850567625047459213502463739071131736494481402870274381283880143495932156998944220235624010781347294488078092628357391471665050762095315424424937067699396639395814003835696874628972210453915363587146559885929093247799600881028775758982961504560616844181418644597986930658768774828867407421608600888342767039677526584393354669845872353063545352625230587018578790986109449383818100296098274443106972117414023567236495265195445446275916999778733202469589475722601929654148263765201017026011077792746553389839524868227816678648203027299260789160728370636722539117243038240953897222109208023127429986678383789194386304764785429983591432307870528879982014457254703034202220605905428950778721981675183770945992740489753868131043551890803759734338480648571711911405447862666034908571687288260625624846670540736402107151243967197113846855413757688099290289888750657158355448639302336410852815408168724370872349689295158755092958163357643942209366241556466066123325025526680918569674294745111563659767614614408466353636552170707735380722330599946547530832995265764740583029188438021078688208167627487963603144262304096437871250660804671705728468313928306456838026736438285811005120824375268372756548260394220797843806431050768809806613990737870219884572004137323131812358081228448879617493683060475243669433356070334043702168945621532769226564214133792419393968593189986216006392988218729010757998504096063082873159154692936415771723651181791109956516884994266850083619659901011588672675449680223038676861163076238423230439687331060172619526416734302137440243533847384823418412287625484038360042204604366301039669342636345333593110364856363257177378125807472276511585159655081597165348979349186258832841546186320774534812449264330444659473373224950224314396123343850515408000674512957118892900930323028595408375157506520830711245782152261085395089338976496423456712827829325300670808039519680376379880773400525335705634165956869786459851163340409752940267408154610411820653915323422949047066984125185836064503090347778674142861863816666235346340127207004142013273766179050822744084007628498651858518645620264148106425841627296273206613873985561161173310105209780074206958666634211294905852721619848999930557161910270825476170678315449716065123277724738410688218861623979299777225286593355944563669119919171313594045327028534437646810926168135404799008784178753027291911819300789903302262630624651388402001032989563747858822229689744667626196441639737205723598857376041952614323584554260571407674810429119181305852442594604577606372815734148548771524774100733018411762817883140755123131050975370382081571345148733794463544988660061315655593325176862014306377191929080444226053753756250832479181207241063428870987044466610432009185546545511243139908425772197606430647426096257236795054718734474081898563319930928948674800497680931416413081761364763866203552780979024693017478124126008091034280892978352649505014718168982416440830269792617134353317291410722232254851814646573121249438152997592511718012042586482064396697247583698191546664037699028865837216561213893397817863361390952707231936045795309385846581890230388719766482469333046519034530295425063101119109540466393106139450323090602198427316397402222024511334755954219433580592553396805291711811906396143826598644834357789837097881428131659074954223999814093079510995375791827191916171462753820381361789384790904322585555272566673345218145910697109907015713672336603867525550628271519053282624550949937361259202298463490831487211993369499410849253027484647171667824614376617149943211625934478250326691461717667198409361464706083528834782548234890932241807675547515550121097549702093543221947273953819538860277251172713953292483050369741421930674533199566972427055770594765204482088544456428759274090969298966658026350768804923741816234412520987449200639787288179890556446282409811218599633078692781508787623111091901193173669024409638904030632893128729491541813682199216460070635181403087356092351343045977020682237891896807719686016141374279782362040939240849868935579118279557516177141800498063589557622638481511393385654127522931139616903411482338526122911303986431198038116928636765531466182411540636493035220572767222017878770709279590015304217614720029537758586675886535764680950493626720717232533762206316174181906293010652202986153832451128945033480675309851197331073552153215776924347477550188234097301453072892152981364542719998590037048078154851605108483145775366232187986451317942904031934112558460902068876201703338971153070813272813861617907340922644644325958421340101308185609502899024072865732750980457620150352532398095732900878291023808596925035294783867698797934266403908088065834034334626358602985413633426572505279107510732313381067129161822302203374547914404161583160394565632562874850709157134606531905211197079910475414011154108299664785485290113770777721641890723545580167757970638002598302612248745574159393602169685038558061605906501485382823935132178555286403710554143401041032732814735795127194518932229481690704070813146440181521016617580795197710444309846012680149748832289746031955822084705021116971713796430966737644931101399201064614621931986025751171890272449406475883524767520556095206349405173252726626029231423700207052070327273460232965433633858981410972816847377552758761584419816186226251415931082634604315641115625084696669196167716201523301494046735538862611125585064688589426967817012394104086347412315147802197228216808922229893730807416856773139679880045204556388566269948846207511579111288084734281919523614669448707654618815569724059942157377838886852043678352489586121150316530113930930894663611588157078278016967065651045023877212518229565951498029358525768325574994541391698938199165137798161642461163464304301784101353570840434585074401238800794178761207259775563238465807000717424472019740843136350149680381854807877468227641077469166521351451166989409225455572516381580545440794377079992462837834600105362140773927238717756883164488617207686182449340570752461674140904077695814651245270325980981929741479854547223859399015839792419517120942440373479924479633923489053373966770049185153812973325514381222459316029141990286617349643543929277886133024786016191617232665977201341177596641030809059170282445330824814075823288814100538957053747801114025719090881856259381085126701521847207445651584717473516549054253714725951009469494751182395113431306006566259794081393698080906582410115277539546663475570845756625878964956081293148405217663756042663888183118401414818226313331235446004953720405663983816073332295700423051445786018312869092652967693806131519320598031492013930945699315608528326950526888279855502616463102264912181209341566042331841812292775367888105087742353252255124959210063783777107523092380524537560551388266226164601173811187799093862565386876093860851303878128626789294556220997367655197587656576433655182971664935963756721447604491113493098081031687205472923445468499891891965115963765766243418584983731494582907355236268300390545078910986453157612821755665366417194576630975405663378653695865311490584243079826213918244944968931808583584622995276591227450991263344035558789160791674588717587534295100877903312970294723775554721742072202790584188138062293092334118955170348736155257113023428756094222864623301487474216591441439347151757141465117721151725334655877148678584431011472028527874646940839585720461603951894318302145278603901573435928596850850602679545818372149342613884708301909651324434547870875995154067147648382863919635412783903648945979073436654198324298485044664490498519198170252504149620127239613998692061348139686078204458358968135535592341682046284067036001535968354957978646570385694313496334008292201783021171465717820343465143537713569657835852550079150535832721963398050182612781916115793833969684613773398123702549877271044007041671252419928809818135234268499807576408011320355966898554729432130724140182316407821455873492983087276372795329747524985932837323610376113783945817446086386821141807694552049850584071755237627130312123300560261921966108833513445017259023244703731078493106366162430561417723560891907577596241446085882693456324453206681255193495692372994800852878625088117487096843744994225308836281262236149836325778657353091466003993691169344313284803674696528642907500551314844762549623830315996978218906993591967532580475979640639657571765311488808534924094279460836786054029122747827450144837284152366108317810961976618924029297557908581090558177005075419490817787432094598794536205851142989142479001161112047062432388591964959371713398762047259236592364300882951152545020691805544608270229277696591359987980434151946299433304552086777557128398390791251831011108836074419199632825080201168170803128308264151563830020891704527237595666178530181260202040079329219075906247541241733047676497233696981459099504936533972183416173814676000328658604347390506514953307562937193688685958279756429424026045277562266547655027230221228154946046320243782909468192259908204078529346604376070220396274278087937274342920530656533342234805635691291115230539679055124316586365822792517378693870035406271131063398256500624831440026823750950995525194498658824655540835641888482972588112623810544940190122101129356066911605749462273109211913690565328454128762116013534039783135243718392586143642998051236842158251527018644100875448488982088054840549395109092181140509589989481889652933392542357696311519101751300052122272746478217521130534914126309141548106293875707656737289724746831332185064986936265276582637312396022970759487930282228076964771248618428060507678003557089591619804178434718625314298605220765448026195420516714395596243591694603103018825261468171287192281715169847620998225039249812537211629512468440527503377575716259954470705628806857054770842472066268965786770194616444525437918920977894400063363297403422949805921436518552316783055449043463583744529980490137908540938829183200921358888544065709083559564705347642710106447389073091109033712813356718379480851713193061367112547531118676080480541972715928659792846514880049810229826110427807787410003900153630612786718506459340733557621969574017436389531844409410463797991056804073474221365081945658263847170296744892631824434832084836194665541376525381640994891726192945146549288305760416467233108550726758843251408144383369593366884813338925077582220648695022038627735737227169676796818089931336664877566404273807299507913466519603860714987799635359816483546663871446538354127443661375516693026438963278528574896024371171827183092696961336228923138200513111242323190542865408170646724292298789981703318885985131587296971440851976084252283744262139123070473724949091419686054315500027103405556426480600991935958587827826091929002699391545555217988077287562804118818782874711041337833966617505924024593295622632488620688057666175959763020194220794666040584481042981992647547858232795454424515917400643387660893023195772606296183779849858727155904078424132413920051973030742999154676458235563838041013945281517782343865583957037231929882884620168870044417292457008445099132198688194888107910643964505419363479410660980567105562157040814623156293278441753943916420732195100525062582860816568531018699481435831240395591100537476411411148683663784243646801518212177001529263204162998322922905053728240561529088509656643955325391641181349075511071832661115353406687120063451188414904094648061345073055745022150408514667230255168751140241751936155316156677080806930442482252542843136755483778238186689013317744387577556832617118543361588980724163691889359139501180928664085636844751892711960211732675756347379064184818853522073389794830700387813305651532866484187736963872917603081568907589760999150152161138540682086906745234425231915495113120984243291373480655769021817779318436555733416414845088401416516989630065989156466066294744334790371333799655588288562542384594522711108470574767809916921021340252767843744009302637885575150197953420142556922953022814332308558778667391843476087653061276248697558616053118192616844278933806055475153284839432037509140481749652934744758883057287579805673941100937494494650193408845813713837972001819151528093435708208535069647758492851326323285681819167033804686503026045340488279070822667705595658728561598970300385928666373829292478741257849620617086115128470605127123138221551953540211757394687259050676876424092957987162730073995749526977733285835504498891741986570983715979470628204792531890886680438074656634854811808579304597568838376076034555777126582030949598400063723200798813395861434784156147881104058147712896183694576701047160666550345540743468057553587277968309473336304386520846729665043171506466733072304793213598044507649379945242239963346905379159293545158401350673225559187433371010493757498549714977982964513158689904557927819442962704716522175586150052003307373961165343485163066643515395040061801802658318276075501462079106374138289075180819206543777092446282716280863961032993243517659493674858283132473156715694822366337052228830348130522952407994951715146604201854795564908311763235777756422481931832604696352361932174121767954179208258000440966120555889928444627598742278771904901872892047694137952689292129513228358888091328486718750279425973354190381627683308568153558070087322869931429071743835324174977548401283356708864787513450355781857971356183954757047082170623688969937819502195516591776155163617701432928519697396914686718917984841793133961064978310831038146695403464203839361418250871279727286800630793169525769221343775280974538621719729743746562018652776997749065854721495227182277833735597298960582872526500056285203957410860939611954926801747873049007825251874569853475729323706044760942637852356810816990852332664634240824832529858666183093496929825407229902479175080600657536382782678683934534124038694054868859378542882911230898169313921072028458484415579636634013166050962968943942514108334138841556734006020347702469481326437878698029378723112930488282972515072383181312481949757097519629975737946123919675752519916649691951293335068597271000318820379882996401478668778436322329712624042396361088070576381306484018994811806502065533633794649610731003408978019471810864486092887499024411307303098078524313570457392148227632809380243440996359837265618337774147436331156733710277358342041903488460172842329278868391880928118476792922454257683413150134660074585447054496861693850200752702279701921159712758088900408218711063371061882310932717054306026893368026713072486762779862622461782535747438873286079630222925097939466714300885741903821843526108065126523951575072700445385440001280149485562660425505179546467182622396903449879154092382980859589715700978865201310554829477770405686561408546889619363041462939802963281363686598467939206102866136053094779859784528192073491956173430212407713937202077430440230322379592019109409061039256944754401813208276880099180668245433535669164585225857287527404977934011749890140224266558984973836632121328615811693731790829287606218773799304218390689236595880319110491350380817702015825008337944244766880462202558972593848059455297675687074656978750737887456859332784961728948060924629870554336428488931303931668018597616742639275388797879008488555474508234643641765948586260827947404835019979874102381685739644507377881433663199973721611784377981486670922404192613518256912499784307833843336036781277538375840462457354359280057121393600767391368947760360468921382616507106343716676042172983942862581473262010241371867811288229439558632130383880214217402565025691273087261437150824671053057325951504705047942006444356504490333726441704870653611563810282274338978321361710873526668310844440893697507435791397214359022378304106607045352699109426745604039470468179481479931475929890964660417522978365744577623366624196507449722241972016952613214124967755159910101093084168653528878477184825089184696415540803716122103104810457598596863423173044573361778381660389545032990025512176896241351625761428778745774430861034688745969565555979117779817112540920998753872966668150608006663513791502641219479764865201654716257185247310803652549777716211824816868088607980869504210201956090011033591919401893598031318665802857425972697295495854584957327986657124309906421930815448479841602557488992816159893039216031949213985292433183180719844180368301297494850077670264765730271628977047181656042966205512739091585254354393576890621508209652416441129575275962527881121822076057309867428719287783120138143779853846683153654469925528434752897621863400953779907576069853845161839054158273680767800363185811617773525395983492056719679589107009725000272100712464501568679793299769282342148042436925307107955226391386005612143042691197632949570109073597981550965867148751416639161215768976599730149380552803854602899629676748013889021066840865856267090237304700913886124710614279486722018446633052465396255413391367214105921529021590728843408116358760114282859398993272905402305752956161228164040034201717968893877032816889611661313348568612213709761735668552873795049078269118972689640533504280324075276683728140291470015310249078955452802420633185920128947636842533510851855950457623286570643659621222154368167340661209694809199454367418585645154928896222886234256209946092986695775103764733789543727749977109854155435814404712661430570860991901614538766763600432559807303403977601305253537553191487933834678893737986171190434968437925156640718698697923709006767503773489510392802146599415591046047182336866004999323532470594805767997628723417941111097048889759693711069440943913420072929639092797693000966410771935882193583018262906629080908475887359945257699708924314372988820491590985026543094150187647948599141745763987700321798307898418761322072054121977819794145985309326768701384208047514789216191433975358985443558662562179256137537595075323197313412221784791405951423270790060969801220845121412873436073429567484581257564870111862611886747832409206495499453511978073370983367275421691152842160312236537131014181196861391137630829646523245208201656125750341916283457829945364259131418873374025593801027847825122022947722164962274465744601486786413607939447788346490625532439252840714967430705192036611084175945524956467637634656791979465787050059606142110050444305332784607679242238844255238855009519831873613931191323022152464305414480081975578210085620707480035493290797500628161749357483172401538282400818293675879202471058650428855952805344648449650474955401405849283633361020579463790504915538771831205502968884047752673323630093745368471014844795614263391649090670852485116538460720890002360634415851584381096763121064017653344951993484666599537365563443137181063188398673730922774852342535604365363776957658644540131329564305576234308762909793138294981134807185988056095006655760957758822508966604056125437199582538199281727158009338960198047465044202743963100533404358539938874690754736933705032914155147421763008086305022480963794691588080487153850649418842716240384864459649961026056618082191565452229895341226441022520833905121009667886849198655692647023127110384945326517591546224709042542334823478153627482344132511620736561487867764554985686701170314189201632813031578247030071922739017441218502495910092032706984416166882445312626392390770609186466049733461200014568810896236871297974704311634616687177208321104334448037841094671927003925642957131640642781149639403774288433054565625086242917930756690806312684726388926319664590878806537468538253681846469181887492240120186539069316933508335631741332213881986071115403387253771477999286146903622949005112015639030634781774644245278654455868506827667897490872717903501430926207739382120321955900787717260630326862586918338382561252350989385034059625788762497521780028341996393065260212022838353179166088281734438031353118234601525728302019490414465671389348698831192929245041265426633287228272943469543341006166888539036079960782828232639453101853255156709278505161579356461326084214660850722233342842750916176912038028815505626140431087476305929152038512141159536364008973376961737552171981370574195952511540391011363215302902532681068748747046905501767593814331473524885552332844457629209273454621344422823726342573370307726344793085074186737561216913362258968541554387452867250121039861075149980739200130324150084668381015889723121719690780813517024152611235351019907416363693280978020893065003072450690628198920735246334741545597697755615346840553014978220938705013616321446350624463394156772941151730552440598310545301543859000920180100096991924398725065701841295305692853254050442739048155509672753094598264759919030532224515808879256706680755574416398084495478545280472667572600133109873783113631305804855838841342975526450035366069662758322606639756880913220904301005682668548696649786443009291419874930173466107048807737078361521544245483341486667132491151213571518052679430810661114681554507874881321919811080491400714420358242530106268391381609044613033395742924592966752775344032442147777921274068681801579787651308461821661923473100796241238130582247743932370106140107402937539763137219298373273997312410634521646242053763210034913990339109911555536766267558791544104848020992469682391905555164591176661968261483646102384193285691115034181978499674835992479558833719275671148530868662043318622345320826895252959745128108490805240257809814529710866702205810572699880113057188390150362329961174624677892679691904507135241632961041003269247380499710945690304048154903704817684998476897687883353962109331911486806724692727950901438946214295105567972943779244782080865573325543004628113779414807630879502442821458868615136943791274522588618610616559140085441076786071181476220111958418508661416196828042250008160729995838462440605103435914630729725481491433600457941187452639719710822786322456311980892472858378021454577189865551919475194867604193971582201361177264975230293432619527832797702782294084061695772362784785848867600733174826640424617583329091685636721973109153001196952985511846417444663153755048827298569200677200151024192299362844163073734469658343980177613296614676414580132220339341003950387990096450868239566479306103650262046606586229362665492243644660119086834523891872110964995725645643022120441743794255258446595564098742040384923686102809542891264066716624120286333808187970253155600957755859089009059075958381382787262103788811826638886764970744707671159478650732508403406835490016658825179640801810954458934610006234697150324436815475505623527003067382144143422976780785203807479644109566729114470203435432159134427461943169093599506573992170377889250796377889072242841219425467457315209713632898205191638574863265017886816153158315048188987678935546853591906469246245499003826122235189423975593512694858181369081487867616934559207157402508274472291901623201531696592596437597526438622568116948664907045510373613161202477112752428517420087548749012795956476732226849964317263597495263116116413549167946163021991405070964743650283084372538000039907693377648695939631168655864635763594027785691322684951344872652221809782343468096333032264819546089009139867736462652011746901999464974816686629862928698052581104476137341344545216453206191520072887247625390733828997055844495669419751675009771512630380879844662466698642046360028370879681360336973348212433694750416282276761280253306471931880897767257711046194860326581882872506210189382206285131915567259430605725164736359716759654578458196791576649419396034135538066957018165653977439167558267572387588809844668663737249657273894211631598824867526470534259145334234979771703001065695572397090714483607454666261419727728766679129245796083508805303230117781864927017111463343390433781801052904019323112177931958923242512614854774346618179259972233956008799654949627348495547995017536402138859101869077001972924916699554525964050591853226502802574009099217126441890354237745861528785308010315399568283994306803263247528365737368352916612721469868288904717680104001151522989610403735133237451159682843567905291601043635755171626714866090941406006857538676971260934902071883348381431109145788702115350022638344428270268474000234477703418127268711822578643096500775180676831419601480124861839513162934856545466982007554003103303778660346890993435670232107788725984162776225447122652742542778166368031292004543162659527468495885216066424247751429604462136650497589068796196711696741633592985128683398995854624625617113648180012646353076281111967779689682566058675257959400818842295239485231256832357079507952533985346176260085415841635146281616962363237886932807131289960356702129333002602039539957885040070154397693875765632277467932185184660794707947033927163152968214562893240679917151381107034956258479013773889989168839613649310407267325895836515607828534016120300723412196369740333352367361211958066558610386463850999289439815740975997125312366963104232382934247406140721939318078973706161402410934696892520532506295915250700605713899301601416061911646390297975475727939510296336940386518608495798861363799945966043756051455260440438627200060169349956975211976045651780981353396264400552352828778752939104466786276635184165347000452742643671929262415391478329412400360472794667040215042994805446341267373879761862886537817699284529575505797111148976265088276539299667379662290316196435574729429028663398592737438487627195244670674581698923731996052722259822915856111626226012448738280705103126820552660813623732479971468368577998663273827586128324798595640843281007304824678674542106428010051051657211266670182496907638210066735976115016674419889339871575041672739795609392569399967008254780016309949463912507435400394086337098151358440672574963952911482391802919458680146293588086562411718940223405142486905637949109040167653008881339481661770476721110265033773179497189806026674142049151754784054906917156976592314558074222835717669931768266648828250808967613967296262478972559283377483339188224964216053457309070192462848995135028093332544782766374152894571290894056489850933050675249187244049214790137562801407045479859612156375365845370875597330950088783110513764609983253075566194467693720280672138948700285211945334633656752023422608862052647056370445015559697450223925595026934284858020522004982952010240073337079630238154114068130739924819764047946261502357215944403419842458922153137446503117771913184104482492707721468012630089840560800739556245085846012503402765888507206828469970408610231749842800055353030460631023363766037660540804581526293422083563471309651151956507032491972012699700821177541274995879238168077328444304424050183221080400907668012268828271825351417964337952774044563250143411823821830423382812746766524907713179290772461436547877064611610848059501079068879793277840278941815675401195569994239400439081769423992492208324747761595489143095762498531051596442875443887857378544680622885406551594180210554652477889664411582733364687852228435782033202979502617879497798787221093842585970627557383161765836850112401476050845783490734977583378193592120053293981936180523267039184509620031000158901389695449329441890293922835552668627755534813173776819263165795697808289674825802136257321502113039916574513201445484959501999769152321744665597963338804887205772347910211092739104296853374544352633647226741454588352651476958750385652901230604901799117691835416985100532503166547445916309390669161306693094921613359297606369335188061755119782991495526240460728885537681123947945262881996055778215768373774858088278606228300350029082672443030805518514924625269606864774918363124738955475317176439389900763041587370626520248179360360190844274580471008027856615127762645284127967568382947438065455987560390547688985510935471851982820305416720074337049257423865150130642042292030935519024797269020331002573211461715756647079143650862353114230279455147582123724060021379677533727564921026220694279187132476709340978785820689898667820167113603197997140116381962175591653081349228652691765684058220779546942564552445047900582069137209964873188834616937100678720194825930555608368506138888438903072785407560398824028988083377255662742014922136682400544660895938987819648040522430399728814506101405164110627368920342164482851988080238454236183097355192298951921777356951597978457828561461890301307700747863758386313285097694647316878389246023315145718346585633636776346394882810592604589518096561162297292093698488645716984161335338728405132216908759864527662277904489046311021035954675193344687182636761178187953580072271055961746606163994528457134319385492265377617508204523829234252371178257517377136354038328109955427138728663451751333951668949729378241560337389729115473728503588450924912378096230418394610304206761009561883916011457732625523552766132286678722848494613417208660947300523463944106896137603778233522375471544192635492948027558806585733032439806492310036090451055938788771757269366893365281194573542688088405500067184715040737309576829710537039578771322132796272636226219209476805779479430187648878308617954526799820294621350385013799355248538355328166817767693300983875141116217454457885484688510570855297379454884103009460067484194883144352545148126909729033714417411991666594455524831082815977168672491161091327473694985762575832278774745627863779181272709666339235563967761277211230335838626285866029441031904126546893291860571921673169186562354410643194396680539116912107891928389354884555573923734992993676982226200903626485607668030860031470296080794648287891450810651683932544857224936614698158947241094871615124272441822242027020064660989863258817927013512029647056374250494047590806527395095647390602259544629256858771003570848304616740283102259600275330121390878962234273157067031255722731486951127016822238700665738584955111050008559303017210542053014560475497736843613910040590276606226649600349320979592191185916777967179623221790915632078458584501046525224434698688296143934318510941328190612099956015132865896978950892334049943174626540003354753289282668976886012274867161198430424500083081643339373710093910894032176193341925558440116038962551062487062093371646988721892914492665293732011072402323053792159757773529717901224646101528906776331758427740360201548386400837209203668311340744971709502286058894321575470372141474733076138051854124896485483994432208522198297543305903875525017550410027595098955422066058716484327139074869173918305850935534505135168116713224370742703514720087795359437778546057501132599577085499990082746444823050566365997148537596882216602524469583576975106520516318421590825601412527305818929617799581596389957511820389069960530390254020822421609827710769579899999341604379193123756437137166146094795952616343992313386616361435743635596413927935917697828780110589406834463812429613235967049183577106373965128008210827374925084434211823848919377561529600436286135476734503888138793761249507458027354260760430320010810631684771813891625185538560384428243947677597130186284061163924631079033138366499812245919424719701383379934518931379498458491933128048456889409983376713597973201522050328162237513240140608245900102594558252214973972532399028351402502165183134656499612045416149173473855512232479366519047328716487455152672665480969436026066393700803049574807991088765022093470401901099290056472973904446880909168351144917015234879806424631449636493173926895933980071679193777657021108024835835116367429984814038188767534413005492147422286603121660139339914262184495420844114683086540999907470248273764114975077080874307623076761912028361850725424653009174967204036253911452869462762678154131190169366971314519224189915476496161009110743580268268548664983634976132202856033149792955731717512332414154387636638884473495730031634476905045134961736016656495669785134792889122327613268346619918285506317571556199064951612291807325622306451419988447099623922855793372859989414284376042651204662798020975337973966178861230954868184867727879036781065999088281216477335989696787587896490172944348421407943909761778691456625904491592464184018810471189194015011474498832434515181093630159339875143053555911548521375314247472546529308382073520262505695580482181475077993911275917820011626384062964641706468822780832179415683731486293389284300512360499917222558191510999920742241830525743034741758792619279077536772528321841324958720623556954324671208477875688907065165048264609195218648608985571085010154018287514212137951763306140336789683274852001078109973008775084053518177849928743573621887858061027912974657679332458077738972460156944020964509499808553443660290964586418231409053485855187646807367399173670731522977809526446080827259865559550060386956961397391420388055939606471769942011926486475019262921328495978496482256545472678587349676278921059329562049366771355835304613163091444513568201869768766384511310801332888241516622489207159411855224711284758252504284092642331192343467045063693559206346377245456835364511574256130407243783596136596896417753991511070514828392427931736832004620552882090616748569005736522366628954023983268718470306448434256390147314177498150045087114130868986468636291310270037875943310817415608077298378533755034043658604648942976901036983042550451176693360572409065199302070832423764081582740413736372109385653709971882530475564510801972710808451849647420069924329050062773173606629736212378456217943613798690269090928069151065037650166769930222574849245041754810476945925943038925843589661391817815701155387441800101671570971274030720177236445150836490886120429703007223062504789175594349239205974766966191740939400852814159576245859011578381879891371074787540339992981891525943889637708422141784024985209220631237209124564067512672535779567397525976252861965006648891254528966729052223951256543397298741550800911637287174698066694308306669543306099011733111446658609647293684009521647484633793871622579067614680501360328728310536266138746942635434968987849936317685723689372437087426132205784442698136611174344177973726838131026937133425798285716416100697624443236466085830205360555201096693919233283545553287672647565902302124186099499183243468566140060521348252695625592274793894562464884104064085796356808901014404902668244628185979910557364909742778680159614104031522554462642892577298319493982160209410751063129942957296120670252137821730493226482195642517678469151148366298004619873649626742651153898671651714460734903308202466439286091441195908342652344071304883212912686021825755574031092138319317611626809160536199090507972154931653101200067119858297653712611506190870381443116303572808809386065093163730928842790270701808133185500120048201761192199458729328807319179284483956511982696429851431262853556012584092134288280278071559040207982799056745491530122248743243587575647964829500570100711651170016589529780424508420708582834716638442175086747663143936204991247390183904495115313343555529941923622074513000029156296401423440352947442371470956738778877529736493289870139162752556450624180390414043492008976032886743907393739525964570319437175653883649239782669162940829690334226677087643177064566752969854243512604375202400953430799331922165364645373537622540545773060396641258453293944927795585630183751492733886782835283550664920237243103671376792701778161791190104399228617472071132142079226261259370701072933771592684627991603525259594746658987987841677303092062295857553901283928225527743891816223384044476236795647647167068843728615727342948490901152573265538524131455357137418504229615691428593526286309264852984355749049824831850010239665201996291736831596119358909082932506037320976910233938133508775400756938671457433399690674765704190276013562914303499966823590403861577246281781765632173265571476863432938710769896595541102095587133173894785700972129807873835803417771686726713367882670534151401129885859648924557363046082221886965787823862150018047482876827789359295551439523809503461080069713638630730196935392195596720125100649091593371330873695100117094728048678839818497893221596052174114434159108058730299947364993896663217989471699888443857309446840464891670428745069383314532135171490633987309421707923799437793112196726116429125886941689530302086803093551376812586812805729575630571525237769724368673360429466379193992330729622572976572347570012278829580590155536075380194001938627417201555550726594956175560541018143230895583683094294166244993884494926331183842672559812134057296271029876555420875245611282213540627883247627201692083223486285608928275990183719797682060951226276032170973041069044394857718973206106406885547165988227728677929955539653306415714524325200411135084177703062144916421194167609435534067252057767997777914658959164675939411912409130801606655568739702603704906557112740343690384908595002794131653390218932970513283716738205402531709110392738410887224896208452822318480799139140127008397930179576329207696456138979400245171300653280369757213973184374750477637032720677342116510650464607839899857290584303620370322031159876765070704683107773014662841853391001825411795729127319823202458249339397225075675471331316846636822692870802333293181608194808022913141768513856111068401144680671105607251773055121759199588263369340638359285898627719696660268134789385209747297819345990981760059041781100847526481228686182712962458103984464672084707155916806879738490789114168575484928321131716716700026495550006428359648340559972390707996956596720622399697367935652340618958133442425016190166468908331306313266576481014244171368710328538337848542993038145644211416830102359435763716381684150631226012538404971477593875931544567931216948642335481994002682537643514309072780217660200801025130429538149127474634876854752116325498512827111470684299920113780035582595479723192598406516977072833753642189258557651812352719727336502871306385479524712482789334647309644892062030841553802237590646873078519320888600726402112743527201509940253468384566090451645926595610991266750955654794095480579897984405564762339801603263767680770315075157741471708882185823117129777733876520055572215527526256812969927537766903496023887530276803749058583963585280359215153052271642573275665874890419592113998913243257903271349403503419757511345458779230397863336487439756006646518610316550839198983923275809833042183555861670093614247257642932197820741520997843628489052853066398060904465559938261039668117525494766649399886553025746715193428020387906048717942361614928274923317810309005803867263418163171482929637150394599191951968752378352709529910298970604540764698286449713380969820927609039645038823785159470819759420289466070585389699170540325909756413658904250979213336374183770892073206090421827949125505867777995983070864571937704771334414478159672524055230559878461289878783771191879646733258975074089156069953581579102607803955360673774869926097973745893913915563818183154812180025137018313398129045308113822144731832241974047585165715957291989172401821483184010262188475942270358708739331687899833221883280765996135629028978204589548384947255982506581891896832246140966883002107122022453355063572303651131391780244928313107668813200167323953184059452332385523122183695084987643071455409728562468325343318303062762135644410633658408349373034928786196631495837141886148397759020976886928270479844792035659926636374099719436367814023241618916530618919735222449294357844645846512724481247689407302853410781661070998741414457795165883181575965853790195404568710603536784613766141960811197346375771619790755643418799857782035555419408952688447685859577722384260454087426473669840377502923500050649186258585633250412293305944936692280591481179789740092897557526725860814377404688246590652844542012221893908820420359654027253774782347068463726416908569209915755745356060078256656341530182996574977092303231146000325376551529857793010263919767315760051673473200020378977167581322737920408143951497619415153387051992263732505295637192396198756358323748028464990440004551303598494677912164458699219118463005575136858957938345969744687634023015089440591498463367847550581606385218935539854243460352919156977105412506589650994290209826311959131545781256305603685953378977220059274225679795847259769894971121468021051886656307885485858438731072044200267657813916936435113004289852998786802226431122418214848218142741458527410713762557423889679279270713613394362923680320392744371431890673156105063080621318057662508275732364531432417640091389979849814538346845761233726619027117434751901005891430655015074774649845138864327455784630292575510078766104208709696817516988456667026869906608292608306091690757252848502870487943073723391204521644597350336270622409422638554152314708534946282202321637450129652082365210750864686682095745090452935190639992782169471304277907156170614647085318455410962531409137205013335741550034355324469736993675109108592043865715464435960377773962674053283461426330248845113439456951178499870060594012815058368642357330543262210226759959334331728695106501990551854282747842577577700017004117612234631520020146525492561379345504357752252592415363486739254842719341965831579500716671133518863466032116465604181370981822164761743127527378480480884399329211940006765279184352599931639927791207562404571967965139377177328262890688066978521505183906169545043214190499112863033756460577646499698574632240215925696205599398927939542934057222764003021782712239636017403487464271602929909976465671341089539189247285000649580680806139044277192101787321495271331914334179570168743625190432208947121484807262145031346041924324169881492137085603314775810219139526001564156006979928944150469866565080073213227680363912945807163206759944161783363732577487892751291875735762567018326243047555695194895223014863132448295933184992418159751605282568449461035911482116703538124005160464771050845660965034384861535378743386378574414090504386771119697697502148325355580544536751375229624820362348627584994704327378145803011846358189414455939984078969794124845183232323309593602622134691718970808115640942679437938074186924417651553129758274579121865037601864977053149287183290898530046627642353758513862088294644339486300875466892048669451207688803776861145811223756843277105221396528323304125168179556227800152139760578363012269455928015004910336055453940720314408573710682186343908735406916266596243314976804455882903473525975872333716897701732130042942411501844048270119677012762699835120814116357159603995969769899224740871438420141430323343966381579329434650400651329178361428159089545528791743671464773410332954961115854838463468217325258118141032697142945638849542591627996688822508724704778003749916537502597099719493388898070573748642577633379377889035986056137453315499412860698690236855180458948986238800262999669153196625630415554440537544964827399599276828218602064288482448595473085349139425942335170444574898301986038640747037660818896711048715954412170695507320354547000295371513522748450855339149129975404914382389710800771448089031093997812722953368928061665230277669362542497872151100599879147967505006476967726677986311871781202821330586632784193239841309551592370680898085437676317277108039718959590667572253700939872258677735459640211154283731620542459127005355188141198685917479236866706026608135027607504359867996319119186840189740032571201903780522721692471322267094112530633208616470293826283994293339426332940761989281816657763359349966958823406219114957359134024778136637592212264179410126826488762369092856720519497087725531424172099304251880553033561892826711723398559652279408409249075369172505656671058828437242508265914664867102683902302216560693114201198084155778689086920206288583165906544307658465441751562874539774120645168563166608316001337032343077880392739477215607838854016553981120509336755784678414813625238319019342453386097685801945940254813225279626750569843186240288753227057459861651123246038826271647771282332138254933727623826898377599661705557730374404472716440469845838816592314229011743836145095457578121674463169371597091505080788224646703395265929215710339582509643282510960300214705623868857140750591549693328759756858241370590124357541954284562159387175437596469562768361117881812443132188049888724846438036513790502002882389896144589036952784933676365212117348976241693006789934660987362569711903994655968814888157197696135179105931142433928186564969971187707680945765752105169737958060504545821892340224290256871750272978728377256009533919910565614492781289133184430006105199480552980241068145579323396887510897073071055536395135760934630758613168320600216765746992596740414872076288294775428242686595516095617053066919628364699073906041866500009337322954291703526537484546790647633502989700919524345137611429880458381748412095358283648656955784596048984528261186333593260072025875003744934462660242894730133317170195804319220985589051825085823923287106214828049816938288455578247575208775053200474415551148433499037371556689797901840868811433512480717508834789762233082897799973789947828398800387112846107545959734656124671340429820145694383180614005696919423387526090699072941135523168862593044990435629605277301343193276591873821099747425275603624271682278738561775999631990687638884174918530167545542503579044015568005354003514372213575523277767652807560841478373895143867098172503041677622459071113880795600624728273974711117228745771806583673566413957006059136791271837348251595082941792919952715540859417003724724234766501426077188711952434211541932319626778401850747177549429179420808089785319726251604747786767539246133142884962882195129246851590052368279737486244417469549867311463086162467157038184620910034436588461271336289481449453490163223185102205818851796704226927180067730850296909535793491058888219464886348906760357781663110861045000887260609236600749734230941287255770318569223996568897925808958996971351886660737109972446131513765818690615567225803180689413029255438556865927459579515242395337311427909569355193039996061924995238369516081249053300791321283924761267301350284607586019100884912060717253579584923160491618138238064423385864791580040029657229990646318860275569578988602911426612212133531690280163219557082552466718617728841162372085820394994479696147305693857387402679072078667371861052223068822689126758515104117101717163702049212289467927036669438505526645674588477282256870689550605742812814970698199150632006057191782901764587002971295955662768868034889469020752483207147200368432531014561951042115892452047075168793479101357397465406768749835698471574990437409133943689617653666957171957190573641801374936366423983932153142089511105312594528142999400912857542960576950152722326036840205307479823524492121882672738902412660368374359352914139992765094865238977135605248013565388871292379425097975215642133984320074454860147575900512251460462073304186189990506307549960348706331899732901377360831787295790515551854759799343276304614036039772178879093672092954616189454345548807729578021982831188348354822595813498717536861709649522104074801576637814870796387472953943511303312965156798538933984855343557048128101389316815572732133786779975752619407553279687656195083716446644283287449050599564425830614239447646610367488724666187976607346653160521139941951029003451354727810683478133563021434391874723270241930811978893334493959491694904594831357995668075695589170411533455689570393937039116728378161392022297819974312448178820080957364219907876407264220942036315994820420542173282817992825856248912581831221914196401608419790951865760089498328870650367129794573318520347210105703169162905063080710779094735308969989567479566005007640437955621007488769864095892402861815285946855310542059723169381200617280170885503378835564830385264634050322911461878193996218160896542978039002260054870676715465395929338215860136422028923194208479513419350611287622185916286625086534882494916478238765977385473770635235291700120276009749843740361488864960187727921328747373933801329184181512424083045968322348191759775675444826641461169553643862986924999555678881781788590497518935282495073040408514168008547470172155363985163682730594333334778484212782870045834874460190597263159136039664331231907968084178156540599785706295342018544960089458825480544668504193709666880952856666229072554013586434203905029102822081824590270882803936648558355195874168508909339622334029567025938810033395738917346767264565038948352102741428775028225575743099651548314593599868746006556505074999162322294531798762344665442896711146938054647477739869908369254044519102884030156287601145636633742044694495975632097714419110200922054000729683352473068244092301985323439692882458387235862199355051775645061721512726485182293065860085241331926364165312452229320724286163465271282931818101357790345452933094351516772403189582581825164965893765793066554632604439292715100186232415362855836396952770206442628713069207212068571048889237494258619583540719219510366933868682672272754194854363132887117071620342408571437556374773801255507488893034717153785282593516154317512578304692474657024232101138127061528320835009842584108204527759520604922865060137569870457713089140558554488348491049813073647344076348000099995693613703302244812156443188765962915807601882531866004063889851566878566231802893818084831690183852637486600387656558820811174687868983287753738413169802725898042157708919172034044772374266633646232634173107966348638625042759953456017431944184345068412389564694646356268500207569947370892145258802980089656922538404025493075731849517106246274272667655967920103034878559729811323792437718528790668600350265758141103039198495717927624999136839350403752488789143330108831229777730595415365846731465075991801626197183171154247804165088442718659884696727505264239593251323044466316903180911259656331247455596762603907673163764769554638031675640353467250640647684802093103038625606004799062896458228508285509065025263402812834868648256451906909929129246475686717325762815121935627556760832237783153542454086497686343964797636346975755086634879651664768600266367733280359392526690801692777541289577373966084856585372957543876220533818013804019508755344710195407213309471149182109872575662946223894714824975348622954245784394927277094001242766391280986464826468110113477221509735110977170699605279996225805036225029946357959385142790812014840561689496147333265032820838744068792316934646139066522120723199071475518258901164418973778973712659161753271536367463381971340414626192234955290399046258130500919714697956736396329436664824235936747520679905361690064530140744366704401817005414274770232780471864768894642327141592633719028826226382555589259877371547334958125879027685029652496588916611147619318581499424571407242100369797906472939019734687315360236462791513489666954593153373452617115003215390776039250836429501719081841561335108685268975552472663999414919339969821985333519667234061414392914551667838267314238048167999102677509376754069292390467048068463930505959542942660649787768399376104932931947204345368921225517411882728360337026303306241513804665424614208313462850236068293260901588223365969861627828299275959744174063644711269296618554522334406686375770816009804010867509043176044948386734976929056571673912632854130456748149385573268518881607175762554905130059041334986190581202035245466417417317659760860936793979686012949495080355210120015176955572364472021341436973046910034921942361389999213522234553847613136444889059042031442366911612982006391119865095396349317352423124828821922158359304522824692829946587012065124328746106167253939148208561402508626648699749099755214457570541851539109513740530750687433963474754969067126093306716515780184980732895058461829328339008468072595712111256509327716488556626681816391516663541125136169805400257955397886778602144381973114296725514494152882229127425040417337716442759080083427606768919709985362827863088733995569139467580103006234626675271632757058221212930375799645883514402738413235073238245349207705795028202281071823685952885827971575607082914921426907146414254499144574509123356690067526861535140684415530142034300913729567933614613701636542395075372610356514783774846603485595063636120373158227039602812434232349845319942317801757445785109292233440953182011794538990629711197047931585130119220451987388821087390330868437567484440432278247732916434575484578984473852960349223856196668568292142116114878540829005090344166732832861054480755887520029047051513543311884064249727077624100602783291645071624712694263508684943902769921677767674830605272882780231574328533154776862856199388923481900421218368368559032054215031500854425637584512786486037901362590566602087284329328213889865003014597689388886846325607294688896717353692104844470688038004518990872112330724704172452949649929438039805630858656140021896797466041063088115195158573792637232787757940595232793543558946700144115320743349078743781103082387690481919292036195888936549367732716470431026603237502726870087738917440828436259826718567598442234407795469089359688869708766997468496327165017189713268349939924184455975603409622902171373236700358819561251326159322921595723572755776432158794426587309763283226528468643935971468512441909686926385051246838590362587665588982552372458470027098276914629074966328286001775638667771797935728382920600048351695628117626540437776916782930831262544938376907635863828302172678008360102550178235131483125102108917280789458322609921677449569781301776884628772264692929346041879649195268858955018945231980856859593112936537174967593925706218798534066425966133054945244063716339259806407503899595485942380723447877411060385727137876413342301404501027403968873311822107484995521274957932923859160327749809792249045775877131612975369419405899970830541968466281013649728816404657007888468767087313699177605266712799376204880422246890222980027317410018032754903602199359031742920607512837570981563936611721341186967821438436193000039271539630152103625484982033577433369442035728392989926422771876271371620757964757898192751425143789838791256429623525255757816018978872852005341482243558084376261407444296996187744232690308489462693983381921125354850088379640201624880707895810545639132331355794044787358679340032840299510022293146125013131589765943648876639355862007366877674417295696863011615477354783371548667679265179612855938297183513494593284896177197215039403217542052405610465480060055746739078366488981506861789573165740994403859010950465154856969324947072785418588800871250815438323522146059027191601494681221022971235764090610951590068344958273462236772554645068302829497480512407918346713208148951821921810371257694532597995807476120785294930963873880347919929393091236084544289939286563626836308859152796014194084100148812454560941577809394005615060578666753291428259924836056106966579800055448226385933382977960832451182196371187037414994136089842453845132542792238393464948134572678648997265748949799361717891570147887081361176931205691983475824985515538832936610387601138907305010542122205651410785473667551425472624382569706173971436252577355436728712347533151080285385966808516336384475385760912974360460577538638683169089993734996814726587672961853525822727625775160979332074472294964037523334109113852709012474686750033172287377053569195255942225110432186970329539250893664714155290001460149721221686427167942354457734332973644489069070916859021355853911475315138531858129825261403562037945176392075143186229918199668653481170944606316070723528385566118548479108614537352247775093388335776092397028644757564953876152389947716303249428036424794840088633696830087241353753967451077018939264131760814193271523998427338634274181515135383293981361485839878008038367426932024772376431393705802758953910879135174560936588394449971080599624760716016923577767444105332076956338367067591241064850355064300060237471867601018990341227148742249081634174025304686498201049138195141152146886736880072703333983246213592950038805984679012228846931475237630170851778573108173361036221067640335314598744890707551640538672062229617508198221189784383286884377019271831023520521407266967608071169853929578546542112136676405225962234882820811942136411417671475318452426525442515320011594108058861327422683669228621949368326753701060844291403844842312705447840774121446378753140098127215580240874286712783025976246139373276460585450514362575134920817586171946930483743899617782035631216784109063105623139907158643076026799681385542992128526416564892444651750960710868289924555096062962186807545942445825513993681167605897760256669780187205232833375553999819332963032658769046101890397667685578253328794913791639708002528040049916193935060322289864969042877185045784688702846565589755678835551989774395874882065893630552769323389630520378241822310460128260269619235661842132316473451937875856538365616736033845748878263165375706284868522115865751903014224118044488607807730213167016138190695464273835098482143232289478948893027239079261526122319044003393541714248592273322202463154511680560126669030233677996917524739160184732422736731729195186688734244524555425849296536346945488447961687555408575598500772314510276789094065515647701392569667404523732160816918719324552184781053041460342650137139168443322314008671140217435950960604525172091868695402558169630326379314210189920683830968693394381198861629010887541847076618421864310268031124229663139974708495922943013753152579718352575798842214179340062550291160394858731668690486798268563663289190799525718689308174674515214845171145229659757116073986742288845976009638420371539309488397224348810277753381161234697726678347255594090345777660708651547684077091620279429041053239821193285657229818181631328777490484097096351360287432762454887983596642416125806820823429849125021965478952999667884067236131370700086855750714655729838186404855831681040578678550905946061345331122581356656614789413507026586748470309947327449766681582198877302586645087237098998523960930780881121148152117594816081667508744268089171518882564033160144919327471848962798831120351956361428266813508426716209096645773272837153313167793095826329608964676963156234917490696105392188373562639788684680458850189622814098932695794784923887949064712199819126505782377485083975877177941616209172592763117082391625882617610689388646730366423322528990596358182397750435642749385365089719699130997187250448959818350181244516984464835796408947083815531463786194885427819832394766648469038356923164485289030912715613386657778027866671149474401526824972395396120225427594642989271409493127100392696917236049166055004613492060192739294591471937472545982164618588991523576802989899827983989218992527348605352809934910166785263246431012873446257832434634289271690138429044967083002322656018789141460586358467245623684461775389109991441391715904321466938793967500633440354674727454452614354091156050096992374020934393627482351375563339255882184835698569993583655526025631086042050358322753589159826326018370759550196784133181458368995285218157655502024133754871214769163637296035784880431144829856360680594083401535018018515646692155633931785226043784154999434103323767658846626847042849132622252974520681844097909361984230812022873834525742020382520233191363182067129057257262374033280359991657345196075813013487502007779643818423569887925132647784491251338738132719805045864854408963565462459955809997079961341326970430050556219086497302543537981875163516476426924493321264334573934527610238272761585965175040695809712899038356480636943310177760713206132549906245479075655657471849778752832689320088616408623151986984706215439017225689174083380453745141015118141037825729302972875429283343667450076298415000023014757875403571791473483502549753267646327273399494877968349665490644030212568454031311741923493121717122225253406790491755936106200198067703040837593869579411921491671926240086792279663978374027307284013444392006205565724152325976989683402963299876062465686567151937875375671904449301042811367324832032348188393007823395883597807876020182157037123353405247425639645893718454879117997333826425444194535113104999056482865045342775829346429338709414630807929280329757475956927557494390278760464438997006822362546560418744973882325567706482653201609263771585393575578306008853305881145474628529733401803783557801350371034900354612352794111298853629993031467114570396631164992580243285181903711729047625070440427298362242324701468164702660115635351072578342266883535944185761122346928113964661686781536965582081957178527656238801628076756368339342223607435456551271477968376227649007222941548210914862955753972376384442194440789263895676888135144062361822029021261657056858848359241558235238967684620580598975218796164253042564095216625400867604163020869630456100102915481443610309650358380225662995269950918841556396430166047179444670069905813750029375736012821315298039826193627849845462079557663262906317415962424330833066395276355188274046209483458594633157137345542268975977249671516279400565375350486801343325175221222880463186433173861904348889786437241963131138029015362969005448550268294090651567009620594713166207044823695438899365930422141632156879455971089572080079006776786139567988733363412613372635049367631954425948337420241181280612894023930165898748010460947847352029293120742881115068615725651378381520890800441193481892015855354649619286744219599030984431888973786764345655951472970348461283489162420570528169232735612498207461542200649888459548462014218463956945515246571237818611436063631201565248922027296403020920929604226072693332640320159850477009275028232136066112823569364683570523104409782705238236273608683953517699590511944415590161515453714701242090751940788010272949776773436900284081224781560322793923715112897108791670061038057952446236436431965255436392873302024939526790340888192803585959719945326508515697014455330648124895274410896295171427650951113673534714783409908227946334835991082373098020795899283628837690533846948674410990490224392913020909046858225104858484978925384882074279410461212456845545628229900269484162239307170798407367927735934780037128241608301976764445888745227335128665116629189890336762792394426487703647175870763111826808232252807423210610830349321374730092548005557261364407440895916958434627805727729438973711724940863265184149584722608575809276313326248262644910874400005715246379137702005482058965231685794605382136415794077905844341991775929357266472770695893123872242314409668306293028662583974524907704342750403072006616161645960899115644237562340785149289928073295191744426065013560010403883829496737197473825269462817674269032200157044763279626182158199857738641011917112907392975355905106535398353914328348796377393284728144477065673201639233505740375221736813578797105605270231209871070785754562570053442975607187875714300274351779083223160404295443848696749773917144355725256861247717419523657833290247280352143329863108499701445640214488095436652663193550521860440542152101725607516048922125769178529647511384893285641825685953320900470015733246688488362692176420908478340164266408295144622456482040706027703544231263171160926742772484056882640533099771010430433124625304079467898690287784549828847317407115720333117973349971027275067153959683895888347779907912831909783978297813331580194698640391582185896304799830205386168316071517546072402443350447684204362771471388236886132413649156176801740266307452437045913061410524280230074047672475600671193315821352562427529321198230427766699860830059333536038726622383161352821187642119234090341269505815084752144730289910532985170724946871389892176466359018354439307341594869456162888693555693748819576495247738646069601720271250520237655636840728453334962839956958766535081647199801360799280166521363615820178276933361413906770170338282222106012631413652885386246591818476322660104581249577984154515773511316004838462175347446524116248410453992529294040570759793713094168634279215054856110957192268371587117580359155185152477379347408845920275779436267270928810777467981463585335232907632553303044543292344187905037237054369575957475564177856046763847444544394152746739292999611892891352447180274069841135325414593707967498958831152119228873702107849853997316072256242041604813929063685809720360368317863255389721991032074111977302320778472874605753145361290033218027709272692454244546177620801909724925074214016932396236466574068602428026763188069545595081698551410589633921277909824574279839543130404427023450855591374494371567042735591968914325872785358650327775220452805496410271150527152509873728163249207455668940532782406846428906825169347165215713826281818309198661698641126124858718089433459951494026198285676971484671592739546284784057280369943121276925353352512559642039649296835102209358748519324248429721169593588769702106406042892031429836192401339311986060346539576911736755416827095990797758801679607394693299422692045278368160722287710595686985828855796841288824243596677260330898732576414701261594087839281789880302348637489033089860568212617812777735788312806832277708162965405465859575724710070840943656570796000477571405459089002575011341013209520305077727918394682124041443233100265383054171029440549562884951166280508028244244711379596660260142731154271388092471638565081361415351349681592225760325874744087227241586340419093779152040438191175996002847443492133736983164179304260680266950924939230198893885821125718332673016297447954214052106589903428155855369116727246475728106438342288543683723636313340669029271703628246012735428486010361199697337226567687440297979879465164885018820504329197748819488425189072498713309362367396855961716226869331723630759386106980685565526249951709641095591890288428381688663686612529315145617467087889288745607156675635096104149297720330177517769165993460796493754265540587686472916940188850963046925411596712238958552233208360768127063432923790023729750898534966455447043065549879424654884769192478243938263959642426264621498087498563312427500501375894759043511867835012758350119912948703605053820581057328777405386357894616688946272371282772983974172244841859405765299297240610908189235375122315587705356176318147400110300289287076262633092756581265481449614840689373555694351011900255582653940578155574175514239102334671585500440724662379536534741052513107751857804892503962269649397336651945313095865878038127574629298157383658968120653960641920404873743916260558371111030159091524251953965911087201816018648534701292213389060468662166068625502563211120552423992429742608736978420742180671069431234969548451165139554857467067507976591858214954996375943542691371765757212415578693755969281901573210164139605478166383158258112742710966274420634813049372659872169521164330948437071680500025518531027072799155088859120578053829029686783613479446883901322773533859287276373980648911984752532911610683581526012564803733739051890168782795009879189179144381992911664112432760087720347667199174774749638240450374497216899543695682854307826508220628031058999483063451881079775303806902238445507965190401423660937179712204989389728668744390095037735304225038060392929673843106927884116232700740731042857112697166130736665691890435813508114838975178309389494636751524471418439814989195810143051378342385238772600597649867627939755361130311676561261477693760529691659810255886093117806512842174706875956746195980676255027948263510746762181564211742417439661287917720573254879680228512372793633419015351285308297627009916127943336125770686282531729973851114095024576702387268690780342940004890849717297052272176159614797041319719023876307607224617347167608017613197006461127432442053502177230534048399201957266668655519264914916052170607201895612354896436988524679723510558524740258433717687137260627761356965049734958112390664145469053445065622898593286921695723721653014650498646795905519902440544067399240465394282221911526086988411070221614547013580317150397207593041123579690160931930212122541530154292958173209917178345583618280525708561150590252504044156395584668805753196002844553620521057730722132176472321525679245457682199029599877185220459170410794116958376071267016008735391628559651552591925368086205991066239950927300632251170413873338334013132759145317637741317731910448986495950988201759902683928038955953795672042979872792935496121342686287291022915810240995428412502570037619968393690162606368857815675505396538902478367071648991977437994052633429812901548890149809302065792011144965929791396555136838092996504112697637904238812162722416393105282849984492554876008734381617102750350672712148186304749391334940249990032821723681344771479572697608026982539835498205968437570410195234393039912128345390047096496960170796679344121074529447968212094921091037047905502315605183930731093513065227886923603277280718636851321303895009640203946581117622092922224709299981261291677688060136723412136493288361702474104213913248801669410548936725820127563072521793081036867538004016622799907422346498224501430588817150314565198335964014807435106815230086520296659293328872127435085999722879767060599935319193199364060455882270681105973354235566201260622931420808304974591837405741384921819435605022255750005386056891116221406125952645774853876900826609604179389076021011986920939456570997835180810788016170758337170660718420841736288951802607905312341679136352478627805555238028928400935149572162926042397902538597305331369185604228112878180663529336026735294851123986918520882220190403746531103942060428837017682735797906444394576198377328267041952990518425989545328603822462073570504572804536627004582077336658095228068280117408262555111641268527314984086429861714437827187492541579993098455498329868175091145728687185414736040149889461746621995388358237539634917123485244482959700849534821798330966984545909274163702712775099516881363224476072068133375641501607486936936891363279977986510951180042350374753577244155652631115139835147336127767654968437082275295494731817789727211598161267717452932337792235887176697429727338450791130618179845552210869375734130386212028566601308211563856033551833626167865641708075799861734295848764201663848065573234614528993680624017604405766811587390248544816382428856616053784627783021357630287968241504655464526013533189758041401772308344400952508483697004162675941650694716672110820720154343325295533779558347913700425385363481459240766795595385765522717548126810151593568554259737062732988465818960099640126770152248766317054623446583940409338972321390357043329155124145556484560271277020132872553064746060266755638123723144174611180597838613508438023970846173213169403692778140096971775243802630206203665165969277644497592084709909600859500655399487474143093428689611527559404663415463287534651963023164028444498658772811837561860456761038752954943078051821795807937193890840811121909534762040375557279459955497433540236269258069096418521696629868913354140996601576492529315180881451133188747028871611042638803060205937903760426271043276224708366970785770839865445507284201461754790301370499825921403893033274053735354400972855338025408342545976495948811298709397280024176249899789927226337976126757570956972015101360109847109876763908021719974123350513410821493259783376950586110868199656692082096243926687979227448012428831525871917201226630588335756599900816972642452154477331460065169003844648026759218430871053006521141731526330399857208744577851551958207467238141402466097276591358719835498004841793220307455330575861840223844553169796500419117179918352965402807223411358752836676748916493653958506857074453742463087744866655968196533605378245532073553530970919691752561852192471851274878137849796909151074922146267793710878316645317577256943302772528061468988769060862599987308200565912254478986362681859251939409189141885833735429582514492096848147377722990288665384060809400323930960456048836296434358336896504016725840020964633959013350962652397944890195777229982329879419657939812629153000245205266767596427226787008500522657826496421597190409356040459528235566861377244867562539645511252020812026080775508088407553805356624486189929342907289367863826770677613979379610074738702182397240941795982636596919000601935180019127453315224480042326428029235894690849907644351935011457777560178970897018855337641900637311978249508075184206728986619606133104675594429199668456735304057579493151190346133907821340225296968773992636269364475040378565058779974208313733452753529774851666073807345154719469167950206001568448596341796600354436841187223185526791356434196652966156381775321742445752973511440972735194825897563717794816907869853882109829436852320083151510912556566909523211804263886541474740970616880407368824211529313692077160305085777262147240236694736990028686090896161526073138309923436812079791723940678254147552345523063754515232446930291396026849356405396380611122913487792767442341018490026132534812277106120663925628929963427410712658828735773742149626131525656575668656452970578286390826708940929684097845302355090969053557986580252405529417550001729120223589651064340979352596241811113302230857295282863314558934437075661360927912720843503451487865560242921689050418510247692543341269783697911585850625268122643802154921808223182152732839452618063840129149059039072795603494739136566860924840249618791782597266579093955998715715253546432152467119177729058469389893615661046980193355524281132041280301981390871744322528527370912096038678858380168211199621585541846298508046966905549747056764277361198125349607702231042141551481174660677041909822021338077562719882541551656166467817455711291140709686374838747378496209085541003345265676805390786590207539588121367060333952858329881407788605723726485445449413079667837952442724242938069342169642795653060568806382427235462309725097028774124004938774816065937678511960996354008270806042115844661313090524086355845882645659304898217955429425154467142669147279997258353634042142777025632808660807877240787102652287393511920768213836093516530000113138647999492097816135395276741675216927730927241213816425137944692317437712290728330734700095962438677395395665229599597764318519988226902267819334588595712163489133715637318571349096852511658018976246003632697847617787772501981064939331988052601854903284615589772233753277997445478304737317556854895966401547798109409051762685740879547613280474869331149977328159877061650158764110299746607195362569813115278815798182200661436804035395098446584205794258365829317996710143225499908736820403473328132067262982747168917937131900559030419311115927359246901788962771145400151361106329004551160343812390599330859858510961650007350446893393479746401867882096936447868410830228449454314606506478731401218979663531397266033274817293032005954085381944128675294440166549243625515563754155191335434279855646253752184508559015427830178228697599968364107930973205862867572363338566529951358115854142892931541556835353066567210720017983658118901225950018370015171854790274701174340968995573722828140317707185105672060132368902296475953069989987534399661722854307786765593864021488850136917725671101323835458248692843434366699500102511723913073649841356805147882811529128762288814656106313787142852299896671395853791692080019236916384032548740541082370391337955813811868054200636184857816141134664824368761305672828006746017126610138095691287128886532897078555316954292311117341082068661228699361085620580586989621817126898614321163366890747141998985284387180782120223003321229708282529690758942480469683986533322469537853103217200853441593531243339756324347937651562659667374185316195133588214505610144082828278277148340873404475204432111727910490373597998271693770190895061681044222030174922167582344126582984085327290976256061318941780521642753247477127479711521642170127055033392420791334441337979389859114041990726948311555873809408415185817043352088539396397315629735985850561330879305794974470192231400089381806691367974243275386352657226700322375836575883624051260726836145995254296288364378008827120339272018561140239901277505999341130028970933580938164659106278112711981949022173475256944414316655939047045979227975907271354278393645905555234846687709750822545603493244240336233698891533316368042516922101189209385791921325005087672751300806706518010107802323962415009017921884078881954292746887820995338685101389736986293633042392199354038037663041826126129142281457248831104911168235024582158032058121689079135991938684530125471407604425831293834428245025587188063393406279055439626594302385454421449567056448726043404358342908004458220436563753878946920010865185109557086702663661019419964596196647195427037047087817376652629362747578974493503235225678207374792702112486927649550340999092203440242363207273829697876937329645553501063479606077860673108152489706749462894904429657629093842892194009361039657652058082112980120383925580117361211374157019473723187420712048802806711095438110040745223339072997006748445026502114060465857534082801942459495944027176989792365055416926459616637078531594493991730462498640110284979056233704805915160050301377318092898242318904195949021083030600162057116586683106214396616973982767523812602750869528549393095166667458867606761696472644958789614718935034054624003357498305334901951452632650710332270155581857047238482681841857148654097981133406160527886853963384755787946811791373587126144957974147119404583232807720380768354730160685196046657264763846264507579733377491956324978847176533104308490726606807722049812410497459790390156604952752962731948347391783623202666790454064704570841996491170167127955015349765632727062756704910573547295438008846556273821442246310088450441291061309115636282080716104308673312753424953046018347930298056145131840186674605499710183285562903407692331379900465517955197214375609590246123959357655063165168645627744356168171993757232476266348592014705232381942469780854248368031011548566603573986776300958442609542766528841019475951424527323466694741033752071953134159323532566434295961452178482154740441442251414882153490420257206176421525626107100119359415363209841118294892941250127048312546619296435799983823032451759328510368291779834765236510432790993781032874420309615491093967361158120096586359775123534417106855017595453788214207966110624822549766012690810825914670057370786595751594589056658543563019535522283187262717196280429368991652457977072675398701086660300007682580542917138617303645544539525190921858042425527978448797525845745504212544928257953985898493330579041809480316609309755604426741072440305553314801234517404074308728042762354485612231362359091899241584959824509524456607765405413765501312105360696753635531157351504325611791771187379416251552713494773194525183670833120382510882560369580810715139264721755281752771334811931768378637918832342914103341253678815607092030061153301024918208978925155731485697806861920984868859001077256729366066998221583556917021626997820622171863274856991815903466494617610106761633863529840085017197181078763288098303519361687604033760605167051268788416980629394720373559131288131722360686334818972292099266629320496122179940483328104947100976538861081271259669947346197911338387645687660029195583100779556554560422186379977133606429225542457460094417401854052060596269444937855719740252568753082078913859008203434028172180809847866955089253117643480956557055912039672916827351598504375462149223847450208224297613364319091930424526178838407989287243791405924127349950903987203453960193158869564822678914518480988356975801171542125152000972150629153123229096078101562637516560107227408246986779992772933345769218521549105339619687423793100437761222167664087658528562961021450108940162945962306209247129300221126858150344948795185073184690095191904233806724383922812499066254404252378961238158039863059900884032522995801724462303197379872729614225756198434057030392492417170852956614659176779929806492205218755828191105121005256197118980944398236223423904054495693022646761562164819511993979707697464589027435584279523196459334577999650914693190414367756812007885139030069759229462857332355849574717204632610989374177755660982802728586342070683739335949298405639577734905488111049576528116020912098154152129457147440195936776195817365554431517537985787664958476619872392051604991580113291643917251598822529884499806529861174185392503643718951023960398712409599961012503586665474771901626008755388701957206279297931472165120957775646812946584238827189199551465575557237852971745459779577210772640461802852796523892695856408883751240110230143670868278010679685938885198517143205881803861318677783842525302969127366608151541456369500262592124246265165306004908241716933531310253221035518997270465409417706818941708500141688238149191897194021445968368761313871873122501115749770833491604672977008533532516626471677004688790931179879646841435615042359084762622786260209348128079832129542074703627771434619515041034709719065187386442528635196459761505186902260769921530822542892917328763765489750960458726447860533447743550278715605662923057981738938339180876461183754210797668882451028984519936976998545832340896227742858674744256410001349390499959058059405358714176097048685549057689334815806356530441056010527278593892073323434732155060080993370807521164316558981738965593331824909209497815749495265524447331465478634612390403433939315624626271337591099729946297477181134353273105477453307793398278844306465338548474263117780901685730466527769709719682320280854032288989830700830414676382607850387848766026550936327919241938863998540914154200715957157625562333403790710840064576178552138957832300703106132983208970940263418342887265137822560904817842109406012976000712680618871447961045152393466165602550195892969282244812359837215919583296633991399863555474009990876596388382788256968466514103709166800736237178199750435007173748595378619762063988291832577075549280835158726296897618263258346594391558415465614854675820017018323496174599134546731853262110989493691942791414284352834860526009802926216937304205431416984545394333893912120820547753328076203433631944246468257041091521868320085957621586914288481575203648173557536687439638249227205333715019707541587478873646401654505082093072908305729545925649650196993064862487858293169959591053984774546294567196119220813876495815469018076102918058950246992884332549884746695022882499772333838701361365379599237739919967526066429972925397598476830197340866750068993146427941068033937392025716008830084070827187002372604674077518779956942531542390409033098261316803354374298535304856025561533126169450685373523246859315576280343854748339436569235571998874233934457556029050771287962508043027182678486866102023738463009646118628046309499037579725023070641284502285171478438396458708600826398607789166325007549014469871622954042578117452254879831947923295774183870217632049596188690787521206602138771640000789021094047408164808614028853605566344317001677515791417703837323512035677429383230183034056384748485723110283631551764636393385984519563122574459209311930575518660836618736609531235357498572168290522370767167537337879581975999611691138933786429416003787586692721012445483085670357151528853547674877228513502445674286209729993942436135565767609316370795893742992217204891472373426321111333625903440636313253384707060193312147781843956790301529007941637871695625727664750785057202461170590170543676044715103278333885921246520336140098533802325750157260440145662546470443032883798810425203453857190659932421618634425732356637530341430363359798425261686318253972994217749531480037788118641140974434613983840305959368693037081854962004996327345497444831167318268354993081603048657182524459156661090732004748756587868454507297355716771284707827498253418770425423217490373071187005912711677730502835849377743367836739040700931073252754676769594250406445200569056750719032626557560023933494554716624711132685733817628969756871229227197925526675758121794046478943543120283759777511858642498685475311106152069547353147219068725937579113823553716541969261720212490251726864429119748393614285916755844831053840018534242560630834456379956543565177645627642352227953631545596813010752174229294557054665917266409683999830512679763315132179785929914186015758074643024055003129038828214132774218667689920635675202099294965209861161451626789628207995094754937657583806605567055413500837389384899069154546403243778131718921414564606310256512652437157353640555152418502404141814172334040688511974299779122682935338409707289402078854065762409532972366207463447129169799504425973258614929228146154292592649855342474377032273308246575696601012904644005957099520212901193198551841320643888239310101936048411070730497681813914065820946688041798804770373243483849057725545033210292022340725495156743332815361298524729683344415712020236280577924990904066878408851702972371331419674082572789993794319544965392116169286691290132908642548018318514422090404808985442599797145962967409948809621156814194198461874390342445181751708563862732209048746616894809516915549561065683640321479826581274139270747847076657731014874319376892659336259749506995516591982860600183378289572408659440260843245352843887139489854280953385588866194464133283944534988322482282699698513408095876962930944730189106778627286536095350338962332069449664335287476037481930392072167955377589617875712622270441034559735140786414550374597844572106655250912734430386527683214831347456921817881474819070304237335076756489797302999890821068401777186683460594388269746860749962034868466933491355274422658919040480761661650610892401679194047551134240699088171531918356060222508753561007728977147329890881005241203994158911077309120197575578599878454856465883244201022877535357121313512387888472963092428133847036653222884669721911951637884373025422212591879484519088236381067852480206055996043978975236047406832636016890376613669258284165473437709966097978914737963744136137350313501524990908005453899801213356614608462941717679911743909423666324801449601936868257728895723563148844879780245757838249919944527029429214694103510227828009638133797019715616296275696495138643118517216475129459654513334684411532213495272723847859404897012365286727889308999084354350726181228942007838867705214653621709715312682706979560212763611147304418461802765401203557585255445519587246767012233176402430876626332775658220392190804151956326547628397185222334469628034088194106002951815883456824837234446904537684217095058541645556389335752182797868909467727096156770316036356175757661115110982530402244253745465102498580324866857786316816205494312597392934216206522803489065915062314351319008857150239315038216340031215470706438206287484516445626212944034302417581091750056362446644868948791077203894817612441333036552916365622387450551934417012399708848613970876818225662590584704580277355438560830879991824598321946493226760805566105054568128311890695629886331555206006030385286443057814752988430024185355047685061058075205650875836378457829680578567963581362250397679749138183379073182413715166152083163438146698761971309277899371303517561759832522536684430773606586354645807651041409287528307967318273867346528491194025487192871944049723899728871989413107648708997836778851256244182175786309337783625048973818365262339606293353210106832217732407223217052176726599162683805903664404362163368509107483064614270915825501474407687056983630567549912828313793765244180235614459898486685082375300970157671081075599882122500741357467383164558040567148975173854809311518153369419087295740514561303824402421887484058390202481918234758820035992471455826087062682019533629471298971378287431482649527549303305765350353246245636547695868521474956389523970393143900220023301555453690185455615582959931132764867587788945216372414099126720641262845036239514143612196302066062934696176458257275228267609242040017139727171326181510327193655935541924085674128709631105011142829685895072403327574878357718195235961349774137308584591745695508015650378287274403107955318179813182069215020490895357544161047185785769162251804501732783436633228803534405490093855497009458824208603006543060111156457553977253420699629078619126100145722899481080670486972734992961547416287251920999901530476830265973304466970153021194792592799658777489930399043517086073786523824858263159232086891862458299351787094941217276952214334616296389303052970269041949626438651372596681068652931915830756777669092753222888528351723270370207426122561791419161078563599136928407656102447802758598146087866393567542306263420289334432274480813545603902134718103126781151688710128451616695189785102796516153600930537993809899540220545971915112683278126182042311381138614774017513972765445180018960476746020645973351329239316642909192975663368218268388694587741423095157400626622032579421661672568131170380966922500918568527219242572216432680887059501612342019979818964663281668319835337569984307846977745646109288445880420284998542440430342198841251758579294065440117618634820492499818602171949497160384532516217184450343470061895539308228865388439741173209063970191571093702869866686773059595331925492836809046543860475525303285936930238498364137301122698827929202859257377072083332995560968385342663444891520998246659030842148284933665340944477803224590798482897442027638857885990847742688107895784845769640530410945598594740964790980453311131642236177489570861156333250051810097172221740182397531821225804751545180069227481244576507136670529744991406102452948119071266965693778295397101722536540044393292817568536768057732863635803538320996063993270545209878833183435374999886560166348268640900497933047496373766099347231830222175274393625196672510489032989778186913378628190031458722545602214668313472357357227109183608623627268240630156470373694135354209480316819367013498520125541320833714622349882326532554576001648979107442035739946010900810799537043541800384129622655645108331026625716054448954839241812747512215011298139815625830908020528637739818409335868742148675912797038746322305072512201014481721652412757498005538143568088538171346273214166010487514035245258339230817619177710425672023969474519647458387466375990381352007096241015808117319041391306850103343965922575822406643763501850585925301810561714832647269712267639347259011583869841819470873442622942021196481719200732632585522003694479164983551552604723359588931362291314206462149489177600751237312685253330888003275320718830417092541679537464781487733640632380364811989838442657421024886516549526478346691038511429090294841837894397821594457399805696126903426278752841285989025774175419543910653055720611926730396112107255538793050720392125089430147579406185398003681838371139149745544633357485897795749673320995194261831794738015906580702771831559968943210251192179664978439089414600524651606596002304485532334218700656810009858757651698718606480704341663933509874529742568609586666592991425710893453468246403515670707838472408542078917450110569814724243955514464877806093088420716769657305797314776031639670971587121841111585787242942723185384111927569238815026165321868577486393196780886204892321669534215115631471384065635311937042945403202012414296916073272581674782333127892597275305556135111537580110595675155812281655822234641612774455838297686144548081809237131425924451862849796930782039379778272953039119931410963209376467300924507363360581088567026746335527419740931711126163858376134153642071042550709580578508429933071385217191141182887896633387292847235706647339708035881245084811798892879741755136417817251091118170931419480262423338997574385859235691034281684720415510232397171691778648368275188687560435139009422312487704827901476403206988801017605479287495402223301856562442110845355616977951771297681045074203625809690769621808001668087609115801672915963174867174977827485793015436772773061888077344371407448773772032323156852409333470062736956299926874883159732934201326347647912158848862652080271625896508100098132794314568966569399360137812523147309740490101035739295160274294640699953692333543329311667829910657755539245099617517209446749374032439872598631792832875881880552605171059357207669682564165785009296448216670368534301196848963901624069504481820145091422846641566158187440695181218277841950021803800515274222254624997918034895704685860272175685513209304990913656886088881497031395103657967357233988775604429336243440603703604349509333828155908129878255323873588548142095094643323691273967450624995716220927415606191815691637224471113185180289998571570506343734467266964192619055977757696063206988466194906095400631473606895141123282758182191108181561873669172850636712935726408931784250139423936200964592518054326567816134992116909965006044069783816027929615391733091761321571764675237130806761209764596752490192557822244650622001555976424875605269487493850379007117590784693072547224261964530961252006215522363778588903661859224110746639249688860167704995075751287222801442897075664271573437931575782032301218289688317727724952574353739010814107459142225646655980728315755784264480711224542070771447443224121934891484078085249345723758220286086930889110438660548219590095085215821521488219695227972824036933484463647859324292923119073235603588791061803289350579921996430051730087803334976683957280435298882779289874293474574198976139715135842741044763362850205191422515201321179176661783976305698438154788628653297341951044440837952194754135291567925577884652673694614017183562382501198505261943026530513567694119514172665228551360328817442470994213648043165251786178014555995258078097544228935107911764080702575647030551262630256921801705383699231381193406742555146048764429581698147861420294020546202479095192901778628805855575092407536569221178952707713243315959345337434837192381755391229100610950714376763966643087014613769406749713182088415325848046498243518809354185999859830681719369734205163936098234300416159977383625249290408837621296185623356702274271715160215835523861978235488235037492129754421710582590927318634256381141110633701594787293649500404967112479471511731960773799191446229524435205950168142137795374191310300287463188239601393283149936338166622654712132669468597900240947668092165433107367294341370554962519245712892031605493137018777394352184120600531082613825482438612670370512718014795378440080606432419606410759007702263086074164071173546374527540386126865041872907534179419019893177370619492476406291488832519765078362380722395181443144554765095792525321865402813158180302095136354779887807613707886399200440468836617357950589728679956126472050528909409625274552476898992626469447436535879313029466052935177512753374627480380450997053884951434010953493433908008994875725978507923022267795050820655860575917451026374658610803721806108780066412796367404549358322342477826308554485249851125673553149603116586826098680606470831638789380515021036158013256965536510448801425945732699999316014468179602525441212468091957005763198980307333370693892842824790260208324906541799583942388330912228916462078351171679298860966629647483082821360484860790803065468506330316489895852153240636372363163509187014451742304322342010834378474747963434132153682112590598472517516381621586870916501332292555713124203183154875251893365255153598455141114662863623463753570114985538713861816712192074996589982149389140384170397204297413568321503203760937331643621735811749196246868834421793202734917392131989832818722586616548638416975980870516087814970042041116596979385706129999863042281123210333606521982324761999491402781408909780002102684940746433112389873554051475158485443453077268874552258151836634121625037182137297215066778151189686150133715326398345469397966825767636005159218018284401648588282553888060389320279025017034452769442505553359299528794660841005853646463013710282682918677429555627876540192667143203382253476260389997002439064193633066899579159498696209435854958267078468969453415584916299699752304643155300070640527844927882866332114476885622952337887353456345773015271100492773767979751523186701257344645562129187461876777324280527503556664086098156327443592257558025175542650028119254140984749865727008423692231927182204347846370994345053830795904299453379040345136045751755696950366682059570975551937947112436558750675415202762649274535809141351231398801191358777999622833895098225478483194907154159320940200015684416050060047060040379956222791838283858219337585044489717069932313789495049090264548610291294273486837910320533051200759913422018339736226719000853080297003529171407462183783087760072985073784853129478908788551955424169116076551061766580632896108604440745755187057317515882295099959811917496031559192800883093684195787075407292619367974453254349875843236419394790598321598748072550555489144047009345738317035724883344280647176059668856105413810339080959565237561360314934436760856201557422273477301104104218176419661106214381269178439990916290759983133930612661731075739043262792614023705656080201778259056233420543527976894261094458742084823443959132720213740809633371023174892627983806133112373999502820449908165073881401078245710451436891136441834460485834959443611887296706663417144467373175987237689953470138124665549933218128982867601467158953218320383947390822053232966393210556459067376846636897980657693054151639022696146190112258887861596282575801039504841831091951868963359532873055996670419459507902505764231091248590068785481149615885010994959139556172973641973333219407481035718319969143485252284338898618138076976700627423542260207776475617984939213141767741008983185724327975347345957752688966004847215276420707814446490121535232063815283171518607906641062462672441019071016575765177770398395626346128558541442046032030291362131778658714010711912615580116084814368151484832136631419538080449847144560017123238323935928736754527944792436025371183492923394709928418475998713690776372591525107285709031828542680712557326041006012855943361399080958074367248466950851558749291497849996400168115523305049827804455868263637562900033077962742176714223411672399772678595232222848828900585343118835380536215316033780573229681694095264057627398648980673463507724195259241039702483180263805755038351883221815177996985817457168682367159248033973531723106854521214550273964610026358744710624509958910759281827979615114520893424150695854780803109319634949049145456937048557329809743804209334557218462088499677378576413264984148490427154729350782846034972438551981779965424869060575526708635424554577898435475770171337283714838689550040629973540838925569600382608509311657609880590042863793827532652058908435401909614023436571787678043853708011219843394114641879826277604246121811757672409880597335412461778643936474626426293264504794695529629354044397412141008356389804768613781722299447049710599378993421793544944080483739371992812701214430362065398514589227325377779375517570567111471949844008834976880609608777373475175576183205598353966894381602999540205051081038994698584765508643694989931923784018892352850739520728054861324663943124708252464737128529142368775064562703426173554415283192504741927705961825143736902747201238405246268426181708426339462864731610225030405542821951331576772861121496397082486850340927798971483897816839923561728009850713095282783604994359393926047264383745788007848480392344600467394441093480544010425527826467780856005111842376882105813572946319368531461407866053529092593935294719430624544126091186249443529113841195454403927335186591803722388415025675182599361739104937387964558145527839432125506522417663401473871841376369054553288563551885936238394745605988781885125179416784493482905343435200425441676073056260246009453223763559401430803624712979634788295158652361720411349865564739631762595198059021212868391462356523278262117105724915105232188056103685326999090193252001957144996302781018256206677359235702893099835679356572369826224229302408438533615614076151243341199666595791507048313026502059468987149185865747488303455316364028485114459988603773970797345417220021705539152769345022599923745393583830214085098647378432840735188184362201715880546102455214726516809275272498628747649274129662470209506268066545778689039520913260849578556237896182343713918848413035283727477040966631911314086050874357461800597471912223314786422262045470015968100738955180836981024500508765677487796955558999668663372271727013354880596045907632942524819688288716023314047088864344865984699970535130609545057905720057373591364309561099154234310952479898091010437712700778113196649628374830158054562162932827902247020241645474707948501307401425822621052914824162626174725023020620120701439826944916390166379957063852220176163098302842882108832988412252613661975128402796494126883843609744252282511293587823972471261207369565303895720235336817553686446242434850614938456143227550041950090948927991456404830241599362950858890849663318820800778256407877870378176376708510737878381444099079593484720226187352964802563645801533023864166742224302323374456092155341394384175107164014409139221211458172760255214509223614339993605448917278730208801524259801253997782919278979371274147016427922607627512132141067386210325336582229342826492037106508353632531829277869472921664440464151661965593189468907365848579472829889384391450620141591713075165378669781350454560889281302986709490821795288068048724311990231795353385405164913804693365118562776559620909664118370096009458889022869791836735063287954140559256833451523131488588123328504224155805561772994543082591739608398487552143212477661020272058380670130750597970390177573763250347606663477918089156496027316371203488989138064186050273450052587457391162173058997459400351484500172969356955020036045811557556480328991509318149986728725244792827785111379060732328537014350651051911367767081805124494601785107204386369879770436382254062477331569243624332184791582404718989862641215617912389124640683758612656279936428675635091389718496815780970768466425335838570275284285060783966936776503597298668761962662116174695900740584956990664937223878799501043862719711452367277949153429688539305448820110933885271355530377559660712759336262180026934242949932072011999030696190274616992716558047684155466216302230841985328601508083938313075947514229358028467425773317402732749936074334972886576994667901847745850100516211063267780061374891714232050053607748499547751849903692305018587282263233770132379223724455714184683101787435755153407790243482965852301615672721197665405536761412432295085602142160568747253457075109278926032531650682776471314526569779876602780269815414416663726185497064284965610404411495396186344043935313167861080168497877869137971639260506254159446662684831110686244571718936880446373066216438328876448758440687638959212102448148183911308923468825929483897399880054031486477238414436024923802813708383561561575800998008588662740989299130163805745485260071564132640717166677074492132987488798509867554568107175945159275002255024783896377250042572089844196772793344835301942704905231813680838522582146728389454412352348558931691202105985364471133185696424629517822711899403181081665333188142522098640098764301514287798188755973503863081654614155977982265598457880985130479969349452113622612524403173400325892471755166098999223778866989103343721063702778171815378730493276098189975501444551242422601997092977037974759305440582626494261074019953244143320578441611340570731380676755335948208021285442863011752459113836413458042686622510280394246898370201936014370732785901720113186061365742577380986029050069397540738243558625164018449738966719710949410387838480554284582993969337286937579510726815209370676561428388917596465763986104502938890634274433926345174775988151836678011421818826624156305259002350612521258619227059640264349433820359792206496815829982446828089895505987599301655912670304547922979831290644083274956385556228237848309417227175831138534349584019424204301449615894094207112065067572496152947124866662663330492386751234745179047968491966374156767957158300845791669507622043268763634849267887713575530065838422965576309847089257891761240513683023723700019473570910752049654842689448987120024416915066338537982263673719757010701781221627988243835402744230824965839405812363817284715562056138314464288615576672179234135493211578659479776159144171220934109573814584708114890129801565935173686598396799033241517159409130058199354365940641971632179891050968288533372554967792993047189922780982593173758295377137257650466915557915490497655540217087838456861915721069997581354220319993522766700448886294386374832914250540697281991221585941906623235191542743785240251551978514850130127192334910759340747639990513499880656393517597814609200989146777751857204850463615153052585459237499054367065962123840739811299460471774357014763384940731088776976478293182447924940089560053669530793810813496774088531405551168052817539769263579510941674408905355490400745269923377496624425591312601276341379538236031828491420338020350348656464053492466020117513410276864866717345861669816953657078995343420921315015651724486214223673134557657835983828769468619476787272262870742513923293926458117089204091393012650847161699845625698445051439268717452790845458916948462637253163391815110422315860623967598983465380243594264186704607926257910199222898349027368039754643262532351651713912146503498775672981538311320199904701301282698490878822617143362245100712222436632783082862131869696775289965991360661241473502119176358730470978817643077380939843801782853901376708928097757427642075081093863749043068126369793423268781338167676046621193824421008388142213891726411473905324697058440339389151816629813703695863983137917580028433516217275134979155793260314225974426267535836619950285827588821537032890537591279536067406089306823316166736834906697838329791612649305894234522643197103837543310050329698856620089728422905770289910907749236244080255554780882456029544577109580919540656267201308136585929974358470086764703273604900665027270593020196405172239532653852829096497007229337466191910476110154327509396463926585719399247959635654428578921519443115422258308561896675670282691404773960485799598172504784091150620122448161018767090486355572414920395051576033429371571603509628865698822601203868560562898151316818474991580231956172809342934207212069974528968901534658856829484245106116998681494534434172544196501007184596512509899610577929749517829823374384049458533168772283334721148926515642683489462541026078959252353334750892005341227752053284652406110069001466051589209748586872228602612439990883061669760697049663999645652346773870715530069871610110988761084784796843395329489079350985526418316021862142648774331175926273918713775032210456482689170831322210084244365249768976777496598684249901761961724716360257836220794427711584134416170028677516754017155368023153957927161211363860783739133937652326530026694284924643866516764020902880908930962476133812843100611603549841555863107894466953227348805839672314260654734158953894743751069049530983797259000435889833556612978799716185154677733885663842623796499463237437902058390417511705246491245558457817229663466108634189026977666347465551682238892765877940808440378337088763426733804780414113041792328962344191773456920609581976056236571347199705398730893864951247986495107516047114740501334238215048255646410252480994139475709704248473936637451562836874968966248383457465157978592821951803729579350133378113802382946116662950278418989550042205060783561594722035331726446113678251533000589222948665269527269361128882402169471044295882568662004922440907408251640862615492949143860824564580883180388310089095348787577726275581772047667010018188287024334380608700543692494017366628227128653714923694684975721496888366654567103453122842178982487642376909885754617464889068846985019473567484796233188885412396309524965156382117364473933368425110188293416617772408387877821888458542492785908205356873872394663013474133117210261783679249243526323026105648614536940836280313489615417111499888319863949017193937248525415728242017512785939412762067236990125210645008355090427535406478651322039944044701313293651109970090114679128375929372283797756836244991123631808064029865042065400911248832772879741268544815496355997830396192670641720518489772292686912477657417936637717063341999588087755319732231883473652546154400356757683827126433212097695659554084173806285695858433903835310211014708680822074573592509271591007318787697414394814775335914082398179669141426081670130310367944541190572417043145962074261560886687342902605344221002106811454183593432774343577601392979161997257450059803246169274267122049190730588244217538832540838767283260474524176157048242973955612949049687376718356688612606978637106844582306392507181040297030734338706201102340453151847877572356855323108201297602557783216149313330337127805382131265499563429007892181399760494886390646056133226581074450317126166454488123429666410478317671210792348081101999930448597839641098802481653159772098309795970785235164256201769840616676674441246849643429175759571470466517498585065221483407876155618638607828658357483780257973035634477560016885233499513577779919627665793677578876454492389674110227795464740812985971475791583775697645111904682162749397616615459184182768961802818507475838775881576935021445084832669240456430579040270739263110134272224123985312053303890172334642446423607155892845134965407190388484829158102179085902271242441877064818408637055497592024784899302337707594981287002531592110383427771229440051786786389093902485924862268450650166368696011071683408876038811999563903968752583714840170874288927187786938264886102173679485722997992596862873848589987789215722796099387567708298933704264500028227446893892347349576379575891147423754825799756904745672919492929096575317047290819985564548297049730821099038821872447995596260321028959231948887983993877257262047390220473270563683430000848321499982204575659812767875257177087460013391106295865913712265018212970424833803916763360233147325731034194180436034607118565516681951707505654891869857229813494316910652851492505189417955313616191612102756691874362389582044110875525123789196041267197339153108815232229707880880066670054997212860277193807164894479531209750985292650665673369844960732903275992796819646681782971604325995037883978290305995084458507784273355274438543501453584755928840236131739223171363171144465836785682155571642754751454092453903952115941941635539008121354137658940015522227926423578225629178758539833725048794957056228455047328160992109022888212086712399980599928369703206283482960801557941715749893865600011430672082720512263912575807726628514390567368526697120444011296937933497678907310066333930152973141709493835242518652334050077097875102565492546561859927977331799659057521132758737308896510687552901171083967549707878438043245902226000974134101943173396499019540468652856175543620038606725354239561866745069729810940626423264681841079392772139734647464944469160297663228488490538104450634200374414595775238638002167499910796785355930013682353627768429857794662448903196167232856041355395930819364666822053936869468608036616005577147061747948699675832445666328682578116935350239779298391920370601894293961307798732880151367363455378440637515618810899253609158754228646140486195357857317064089066648166416350632262667747241452656782274900585775932598602766013790863442354914866844302965236204454155578323049724093620205439167575158868307041885320138490715900284103246588777524554719761999765049091277981840693786261399203780385742653167123720888284991929879934140588070737322022275781140459727393223013237358309557698248395708896047163964237929207345634643310587586100511512779614953891306108510299353800472399496689753808514289068312243849632131986793756932302059885174064304354644709594000822957620349977274801570208864325125443974125993811911148188218409928989503336220758591942076452510198852846721248480921805744533720174888378338004993146170757341265590105597888095611533666068541760265742418230700638299161380505180817705198590815824045324854698728972138381848278672125500061857927349906120248719628163547192332107546513786950406936191061388494745412983267311865502799563378547599310547744670177825886052705622818359463262393777659329314067239884226062357860584622043300735294412373013285500954028107952018364421223325547479177420048613089869295769652142579314492582749037437036812108535299800922340092834920682144078509044922760496476408940655677265707720485208558024961604308023465289409397841523345535608367284449721542958967292357129412919042291278659564313634209439818500323149444376796646381596594898321625676804241932893042390748582292691680210301940134707772202259752215537949015583747722818340186896079571021744898315786772480533549014018049153291108389858625938190930478097609211541153625192341482043795834664157737041814751381196642260584729301852658323560426306122588621875765379707273302802996318216068373707781384518657176831314319270379455509874152177632594815781079160416476845448429668986779200882944263631544610200974285432759314610395539924582846011897878539356116823785010894967665574525459908425167070579097952814657012766640747193504609559606587620709973765522112414347046505276135473060062672201976132944977146359321526706547079884886221252828727791996333941614370068223117061295373821231637255124992083073958763011652121513508852606813627001281363298763067029170352838773142633551068002717410966912432309594481565200391708226754088208369954912073500167779976062643206735328005644207141379050201736548152016264072195561382928534737811265380458910120514376284007456707898932951909078176739275877986768074315094192824951673323132192087007091630038489135103572026632228486331647623421696731710095436638673988211133441190796465284893250783161502157493117371738506331915413055190405864530341350647820490044563628827594945420211645657498982845784152061319730216593455309409143181364654271100616156407735654534880635551219944314912678669416142082865081186499821752069808799897807153604079391994186433217474540867192696953834480269514482251487135156865833551101819985136075913550973443783576157031657187066003460241598687825477346583975848636682939749153437634644160796031036238796946936769249243850113747703548689596093332450905144973288117288595352543096752327165033843360297491172480131653954444659806972766689467102201936302647951291510830624188462403922395213863526597605817867313737647877718706379998238843093182619839786400278394164737882678974157812370291612093034701851403057275124625389036227971450801677483064263150923329150535858320387983645580600524055800336602753844693020969277469379145830451517123820745517530287094780712982836159129241564355789312031683725186825361112218191639847870655067784932097982475179054308236920339793739984457746009543798993893159247550515522853314867668458919894104437994661354635746147496427589121249862839424596840781181630228505394783530974108153029854308281392014682034109426379766988473003323556884614928690915496942824731220096707886483213335950306893375327735219457803187830682552397163469666308256045258065767743732581244494455274503312128359888408283901750216694283696500869834704142776501947883301745673152083907585841881062780317444357679578173988256996312739623069305364688998747688325184648933531899118538965572628964348401746404497448804332208903222686759212562687086079899933013427225279362146866487267598496456897835788536487174431442121787501316095217547399146744727412517773908337440549738552019093356626306512067144562980344146615319764677798566201822502315478180655503804788843564965126796568507987818365779592720993097176953857151516347043732150299176856976893717245355442172671677186822618109591351887888768470674891431519982198966042202263095231498229048003481031734329831606603433561187272604828234927033712777636856715778231512236777003291259482758212189139035258848363073049169463125731435226781445840481567591639707420061914490282638142279059139946015578425722035574180808388070190699920653333914186404144434129901494900696830074738797639465173302404448222061970777491737952776067301520919760100076231177390928873570740328530609680572303241507745585043149602842163609807534582674820465007170574568854561873522396861289572881129890296305679743196339848241312225077718349519799973636457597335269691267302392014113115188920463575436213073083843845836783179363608189711010680285327024935280755403520089323427049620066120844705813253279342887665701052631678171966202350151346763241884560335384279672607792870764153010443545842406953363340841012415110674795048980118256970877082573535382879717477889599324847905759822413035049610814017633849202309772452031122793223707750095757537784696190983757447432631445572175727578226857714214517006609349444521234140580833954868928505882893260362270494486640956496783314653841574270052599541242659786158803555051319250576867751687246859990739866346414155551874174148443493251923808744082491896919625652750736599802952186936764259555022455017323737567227011550833941066636385574242812638077565920737220971836705823175332179017206498301277817250349283720049072247372888047624480589700687934569459127871919453354492907523778514777163585942002463133758418135442884318281053576082398473761488716042270732244711994363416559877681392640910357907603134653620363207135331164443720215314490632288982311540247153135922249513807255898202473812803530821440835032184851058754674941406766336390990535248194213319046921733347502281862382421608612711764704851178087564306789334115880069956375439417617974817110050604283588698309779517735831214700044354079547649179402417524273989414949159506298106823442867713248848029916386931384289759163222047233900179085357999776503441798809486518284303241624262425544185499883580454668405147515440726782124637900293008173205841296399716968978438730742072516465189700092070734385118189979619454002495198939592047682223421827147329948949893641741123781391820184922429534447474122972635237962420267638204936614089703343015897226433245271401007623382747896304368824301455613980955634942765969820239535806014655556815857665804706130913054653544446393156780068219577528424685639535000598700853818126666744242596995688233191381384326219948765635582665028233735874411176328421454274925103745649777824054189330882911910176424800622081795380532565955886008382243921462277527170561648618621430191841743991745200653191260463492782265137421037802747791842477651675212683311613790160120183453570030459716511328058182514805925317100848196526763862203609741650213395307505672329867957506420625883753138365850868397444337047603376213200831094442769747043426840367576434713298164858625388512234882281869470418353155768158633587231053141711126171320648383710850049347348153984351226183901357529196265680057226816551837261129900573675900028220771446961136741037180643347418677213101308191093821926334893807366002163397132582658823119759488322840122307312500166518822194470193098723202446137683668156233298362126788038800528723528465817277724276236840516066533587060313598693990572946946171430141229083255592773521963325675195895146954040585369492644520091594454799709287578288314585910076286631179620037538325584112858353102623754940923981830547205947193631885315144127358879360725311710346752287339420410418309243774686379283806972529359472817612383311057764508849819427934976228875542271619204694738883394834933523563798696322536883366443754553957704831298482749328428496574686277600739101648449883576909076694545776595590510590630084772220228691680820036871356805171750292993377956927302665809850418568992035823017397815960353830840139758172625247801290290131522811498374819691150704283606111940224867392602005403484733716165795116362713830155743644491066873341685237337042174851292886419970574779553136954406661030684616039113577653796134253553348733388421224436708582389227231221420004556000736974130183254944818594924017996768839736109881205095509764328723615105756894867764822014577860499832186308837784690306394815285804060053940456527443645871094616168036355147823523061052423212933534523355909900412456131168769048877091568468876961174319658331083916643669119178310548769675513306640624860031000138947579265949251732639566416238041740959983841021500423496048251148496810588494712707995443585944332780103606557747398318285405416682893033245930244124352599731773633193635911410945398697917426384574105877000396171997078780211090959224911654557386918107054808859348123347880291901912385130277259168702493366889136086398763169003274794679971824623569485432000789186656125089534676042040286057000960210874089912732674468195428590944610932509508906446930858922619724016236027976460045449888678433733977257612843159474633365198747452390008216004638471935066090269630899642190708851322209680968183370902769101613391025412574747731372904105202707594993473164026867375133374552199550550137457152741302002710514758026048433195944641343018933508000575355147078668454129325458672329680208786165184693169188292016210020540991153019242874046398069078143374944329310374840226159882343267658637950636560005395817231921422392577196991061190181480742127182815337545477659238923041331766479220494775017874473856966139263042699483990782696668237144905310004716704862686358369042938301131348766909203609649296730262873920585245431954045513638506456451774296529406582774501656839950839175960147888396458436225449637196694917916057800884317821348223485545124304184341342694301438616481524017042361705931056529825837732219597466514725629467311960172436932275164117574805579251980337499417001640373776221919562220715305453504232245326883113994231770107659989573191061974133484716728126484766039280470511106110135951592269010556527481891591564184424194283166026704074165605923709668684897154879470313741043266703556517184935835578665943325394727191950231274877382720964485936532184238276154987099778045176235791141866892801137118429755292877866608411072409574653564884254256529756246721214081922951722468541510552279475067851950855701444515999959448239063002797844212823683129618883714229352667253507554299626649902620544951823587885728673258005836072466370761662703552661334446993948526560103166250719598304480782866378300456214029618631769234780381142122641189462792036570790246371788896724009305640534517537388502036635441198787436324778057198926247132369872410676375493445706685294329072612345413436201770536365380076200038879305602402036077360525457837744043988552599987424320565018543487893650436324225711280893516272024981593205962163112852229896299046048179892785771880604245033052054781920922821893909079896996396626262559642082703937830981138263895604657651033110141890398534011937749784161959238506403060028103956605540818224305929215759289571623937584496035216732591621730438159110226753973388448015572949362520731963236304381560455608506268329612516845375099934583193983367896575049786504776111410831317265884554358067150792174842794615391857674391465687182059575012851721811482820716006749459092424597135619437359288283133480890498755592938652549793020613447966968763320362838383522119655093528484060855597726030719156975363568717166362491969649451317126194124243054374872581273706453745188084678953263385796372704808738583504523733018638350518350855720902920680776729807245075951644010500770343787781399335713775843732996315255730290370313379742085285524219347691846264454584306101855797153725180654715010873129504021106365879299679626893293203573518228717827299805048523458113743862076471919960289048458674679040772761069795243930953040382306174626993961886105471882818895304747679554346339947258559920927240302366584996134789058020077466896986997879921223109497782898908837567033000604382980623040212523443081616764872555120500267005328765785059244902721379578168164361998578877555904142511722114318430935477738010289611546528849030036299380955455339016088451307659875432860906810170600911012452138481249860636606607802159270156963640303467636120058213215154914298166619422779071489878877675181120051851337270503516082955301486201704702928522577387722884172971193255508019202105989765318298769090021751991044359937701871433080733925241557604803954261619996058508099783468526596302023831588012769270909872434873698983370999095669782733526132220700558317909225148891722556518149205732206198490337091547627128876157598944331036062147124474920193902926273426302548591786727264859122398501666088637037739330693008645321077950056539177491944304636629648885513899864772051137290693522420048439732301864808940973324814952637128794081547529721488171954904638813294806766050793531429260712040209541003293975587015035757933683988790380005765724200009521648232478696709032936808283672513887735978732449598487399841258577060606319826092411429541560736165353608601961429697218356546050949536961091964649356844423375176609966901560828290474479113552262402129501704095014463454441043566600020931079675541453171938033660522535658438238181172971285703511242056315370416116546723372527913144708423972491216381106940786932136585483483864374202823923545193456128083007015710501133482162931952920964878473694863756377920706122045371649412341827009474140534008172593304061041346852785341005553474842454548318337226775423430008193337065825652876813282534512315528410262366627516312023215345681199734302172498722301995470403846365615419739770491295915079052549938815056556230312757682343623685706696173507033453104032063597095396984625914754159932904719176105398075642177355090654775352983211634035920666455120986648030256955987659036905766908266874171794183290005775796235228015730353040281933759737996901328391200915352771938106749870528499813570150665196293525214967932845339498053061266822608270813252669270140235556540426624310241122621382613895357488459736201676648228349404200827822258865765353122876825151869319128481683792514325810608252840313784590403097620663207000873239202296176962829410483918008064126344596006754728211771041003091304634620574676925715435925507991427270101981406511098000589491547098293027055150233843814778693269343419183078440747613123666356257930829868464929005141048371471142673615076249878346501229570500898157550319087069236361818266652588501170150251180537952376934057243792097550231516858986608596520750058164543722650480658913838429402131525858409112664010423705969490529655771357352533424338092839029310670615707393544516101159230746648609684641026752773862987551684424924270534933011572878220133090961118362799137873331413610303181033686096946189765013715456729231662328297184862354555694649965442653147410587395752942649255339403398579344853296265716514547417590344262499999065379260336420945663806247092885149549358623311285046170317808416442337212060548498194788980104255511571267779475091050369410026110322394493475647491091025984011902028234128903741708256497591256753538723021895075577351943582844925008847609537068312664882399400603601183810188567072877473416672276027407371830878396857384511183446052366205608873192803654168255820315125442675740889508686696535141265467145321204268534616242861759905994648158067852383066914662639050565561293892455635988484900870328843714426437985225804762434260776660230684022714318100574283758201389906527887872647539580456434766696124969542620201159940857213011636673285981576727328448896889209322650503550916668918640617334949358920770922706642011767045094721633037470262160339497310221603878329884926253835109593685684830481507670758245626621113978265956866594487557540866803571870360850011651581586679827884373042579838762055905703807474408274091986489826668676535449395030133928229487629410925269455120459648626247200881425087792432075262854220643033278294516165144648919170272150701231833001119590210108858420125763582908256567894946630015887487159861007693128865190227541092058453963283938576620937563112023217214639203323395285903074858712038509828987855118520086703369402768195084514949471116727805055760383926859036602691423849989445669332888985413220772350356402246573869271026099053135393339863039882697558084208712271708554017191010798109615502754795647035218388666389794706081110821683222726625508871588533291135795112194434321179925203167359478868826553920003016752784899265248790717942491986494579793172837437758293025707418583867416682434824486008376983331178694064670418954510113714112440682525824296930473476807453048615217745522908097797004963458515062751537365913755678634212409299257375215706264021106433257803295878430135255611502913942714895121858466201869332521707321664272880816311608730688978570622209684389501490267173659486506427568814351626801807514633786335198707756526571437911268528690114225423083241590678455683012753722321809248269828310656085533053512301652530564553513133962761900369993361563973449028505399630240623460329097543867569581159445517242772716315128385798757580266907535020085377785962190918622669240055866100792160444691126271624786033275661868047689039070126701490532097614666504592127261591034616891257903829385330023605371978286396035096024846761392614770439601352816416404909599248448024050703217627847545361228986128559219802654812885924269482187422975764183903296695884016690387836222411759622612973343672194969953560731045703730163863658280125622284436207218142036807502480247351732783768084124020140932992607404244930982685513810430319318329408278239305698911026216992265856106215908614962683062344174252609716726075527090138881692008148174143158643521023610479532831474350227382085593622452155537705700018246395275834894969939125189056743198791335629861494367702519397018728765134472550866419970753792093298481592833345338717889925981943151315731462280974106101048556390923332449295144695867639362108436809675777241688638388050748071152957945820029565033660638997945092833945487269959133283235525766521064545856718703990463447383237910927431375444767568827648893692580497507738881193221086534721477291870687057756763480109767209138548808633861074040939456189265120646356681114914860939314290888210939506698590976445569590491097933078304559110424371338824917211130201265114220363179225988205297606376378095924841118991229203401961148838636091526527673317321166595154661408959220311884392713153387680716619306013594432264046863709492996644012723607937882626265719054855178332216201325274705223169432880466301843057816260096483988622677108397892429562463381704392337776019852720776484622625332333734307830288519686058343253032582746368090539328033069517790506658205721762877537467104355186546717434014882882802052577658517525256412319809791779746518397529924205838822577142315404743916367262237952590703323453664942928744213222578217915295012972268206272184684138946418091781494498390673475882963891506346734341789610755026970665737528173982095596717934744374886807102970781604072672867948509531230550469095741468086335723878450467422808730029368247310965713894674424375718386528148117119626129352504218943653974022032274855647003474937916105676312233633509573367380514910822719140280191094955738942208314576681548988563676765410364282244071995185433850096677829682729580923119278136459840029107759655912043353909520577750350945385906705119589372984329067797137595349418602414359835149880129013306692148230601535337701553260428893133282576263017014361012252385804299700289408941260947277036679479243859988631261715152274311322879620279216082197258802927030995191237873154714210717908284059367487262384505205212582981850469676242778289635181013256889877706408794938432849826157565676760195023442238280284408066925203847742816468829135244661635457705378611588076233157002616459492187967092894670139977636866885251493971873154619605606861027398928426474267724335490720886481135478208553375531746455092219814485995583683142095011861047501938524210851105210989460255647538331948465096939570373099307279397434379429820354420411133887987321324779480291673565705109344820872810859347473111742909163855231643763724099375380499385845348174139410026473685454716506408737768936764776447637936933928013854920903577548161626640350928579471944277584689863758019367926770883331246156087755541006185964046268663499748526784417068905640153228240868787308934542906971776920874337645664232721208163192411381886132615989029426221585965206302885617141875395745748431483720297099987146984756548993805003261535821306985958649623878277924017466870488443441313826022634462391844967181614879197130332610684361725854176338751329989884575508237920020534731173493317884542957344642518305437884280715938935512115067916110864075800265241972888028780245608692465288528550681985069127075401333455448085337267575221278592346312597120442883534842348532807759489292384420418152871029442051966182221711917739273073715275561118689074478069928407092868753225682520115221317137463261316582431085827444397414030336771643999468741318259420903227226353828862548799613719412029995553763112910934561553810441475766805063187223549644379327196913483803625166943261549910683181802966134689106701971857198578343101524887219565510007187651384251712692964834957387294654155911085742887063683899262535176911986563866998297945346269152915726196220859619415549109638543940456505001652066802074721664807408022178992842088424498097628388077993292837683076801501520303944261433272877426731778031841564131619605163634708812287016886026246857738734756122389384385837556840105117320283502969333315322786956313486184115129188496357895014979855095631466736268943004252069383376917379613505413320373604265897132431104233587289233460021937428380898489013873546506885110839385657126641722154554662609569409189620836128460196779832220873249634954059038106310585388492449117115222525446893153285571846221252384915281638714041390799436861894802599865920627436770142891606780775490562590714321386566048410073175985303248095967447948885609696591430200614849863218724115717768815361471009226599272607541121573960041675816818363385563577938665239072364692092208575466621612165387447678033341103069819866204708926273879615293221191945848728619199783026462817816471630455917913607382224623727828126920762430942382687060750961248076404942835433194325228441224443668381039045459211300052675796225799236394970450886152731213744482369396183534337336763508642909387990860045572237146388410588433192484106172339571569852244903280570052258545492546403079894665852248596277407367395644295688668201630515562495056452833384607825123722126171903799371796561915198952733970856756873830402545153983147901118663602828601197567684109017546986718149603369876694208776540205530796656305713506929956308145075095974853235496709426541507224700746200461609754520526352059658668100265280034698064907348000408726788656279260002029758254769429809711455329051891694289721563476405129104442939692761502432334918864270003790657563680332925341990479637089857293742344928324785824689915736009914856722909747320004431486501156496237566058539091497525265047823802097334705139003217644448036725333268120578459563595451294609591142889878842159666367357062946563339634135198997659489830115087386037447127512463174540165412350963856316125935275196628394098754798586781987495367575089425152128083894697985629179446981462305536021369614033946842569232085856729019787824345290466687988622898782843628777563270874252353658294363989771885412363253940785905882328346527535926613415133557165261991849436431522587852938298720977203334770167862355525643652665588978435866813022651168459741851120701714063469390505388800574708362596596658336928690618393097700375625447245900203273669081751152529195138812411510418626724075762550868871305838493595559876108268615283044570043462915992517987052462473121322281614147567249188653084349972474746937335462879746120180157566665292378438116020024850538026333038043909157267018448125174766915870862409557790663449262646017821770886795072177820498751969755796333367010091046319051757130698429383443406355426301450690543853072924158729340887798302890242529203098784803991238234969066228511245439297772788704226207344977922749468846339808374307991113348217106929089768645830428722199708351659336537937551726698140501940496100572894024231785364204109633772422963688721144664078669934807048888508608188788415300371041093200917790108092429547176017586458386645659106389465598906437747557805969657810004437053159902189594514410489200539576715579323982025544023711685148302538954165182064430426790097843088410482349876705376545186904845948764122910521326341717403544077301410910578407695214714963408533383506808542834363859099152295341696200591212683124897986347219554827373765368988937892773377679640419359180947378295139734716604224988901186860760542831129834762431582712287125561889125605016836609101956800302218574559923930942190043986132507258036548677179997353638965530146827193394997636141329259472873422607294103566024745735813617455898208580116168836888118364654577941014426469919569634828806447782365632580007048689657617985953332642933588161315350433356287218277309315369463813454686769418914729888532587152287798307314092005850850553821266079442172397767419158858306142732224260990904417818934164239948526593526263714328394052132633264977823584846793889760178345175285342248873930670720873796394874006600132241387037792940310821464527923257836315311718763866032001847610298225106478501053676320000625034406737795667542757215337374279347048338162394365419841990516346141531139077793287731180748812780949770321799150564197574163644791506062028248173540222967766419757941684061932113802349726003180392866449789744327143294050481534080957930966028852636801166106580397752276259560488759085182148935463309651712228984209227855640691712442345784780048112700320033299398911997844016966262230408468292530550760591929729687328637111259664091154231879305997777768727409455364942429046508299781627373738407332331038917749642536475130817086725999795516791378917067927210077705007304993429187719851049645544259006434321064717008176600126912428193301934385496418044311023006433211860044928969074954674109172109914693593070279119905008880910789721695811561298494190704220599513120525005895258537104714758053159690821382539705348619934101885123744560087700033731412147345428295324531614790321098460762796455700610757614436941865040028362358069149784004659446218793660505070409648275840795302467596973592354156810259333176631228930698373810305413686121409991389116321167384029214706984213039553579820248277161246742207245297035096160633657364953068405298769595165262513494683040288361063321383663447049634626588608376011330282218686376092348790721271625154326157315318152374113872939225896739986349737462257223976036715437419734917464504791778612110203608035867556762679829675678285055744620821537399521132088349768368730131009247302657131877844301155358917674015528773208258416303257150599731931748057603528713858330219052278901277063817893800121425912331285386249765781298514976412543132944303228941833443653294413566691439704624875307356005267385173073203644798800824074493615006305963788154719590466930391219515980855846764311291501996294884455509033482533205308228302420615828667149429016582926631835729088169754621410062340579864297036684434127212549632125239959116699334477530181766844124785418564675757004626985252586238994995954302822415002290608088598357356304401827055507420810098559760568278296155495007769553997627660862567760156795284713681780617735017675121504041634908510054191448022475610392260878868838505603112981865517967766529437491774704652489827719017903093968810573439734358298972430050671463759823400742882781452557938193061372664162962918957843635056854377673173688337496990938970386580099273688145961097488682034025109162078081148413695217528648624917084880907598911105505887785213972668718083994364798083686426311457699462896778016193782987758054492520446623153641233962470603479588373217218644325604605987998411772999559783434443070770704248820594504828877204341011230659794970206676948418955969709267628521944883770649698646760356876123486813627531674716918884252125049147132277066904368641809704901549972119441013862784793353176546526678437609531929624081856261373745516376963631151220057862411046887340557899596294297953679860193004605918868191675962646761117788632115616134460213612777077150206732004927737064261709366587122204343572693555783106434470904055350466612691885172734864034670917680695775593752752938128143214398024975775524526935252710877968783277042661918550451184792369990956174617442776782500837593880639133169450200718006120818551587633162385545128221764132779548747020865304489179535353971179302144418421045246865053505927521788585711434040874399087907043154313442542952997823202124657234374475973558781429332234634614844189409577379216140801679260614653060468759917567143674527430686907338984074079703152298559712369864086176696145882451834446529568659756485159738444570997550321893396543457999669505180390862544223302999656805381126537354499906506713015910862991878721219447568910452099116920809081706529668810539114198571701025439900768895396892974784568081332719445007124989124993611867792702163782318207813749433213563603555398972353784021305578580786703749590069872945416250177609127819442925223869551558891312310464100149264294745230171645528419050232835640792308832977911250875222918623698674709751385780131789523586330436026997604886299185481198112217441407307326369726277185700146078341548798276887448330427835381061823783630435535858804236094751112737795313777748881097250911099144979873386024556718483760751617558169343933198757939326665491982268849099892472677250303387186933841887378412515256915120118532984717274317589737791378321074381891097101535047515928569219718934312702513462665066617045694168408462633070629348076536316731195083400488874567694672086676575511540770749917095779232808939980226222107595286169830969006221711084943433588196918495614827864507178029932271115453570765382492677556138448463858134539478467975256530229769441469490950053656697519442977611049476850041098301922719688043778091825432285605327415559785198169577655879759350692129949474730158835929270957925687645261738292568694531023911213817308986559465287198020857445778516707848666601547301825349795153021257413427052203477332134166940566550496552385055896534576748826365328972833145318424264405106154292886472334594596198864042172863363986346954232733245076683914057927078888928839145047292707444537628339964693259446138320601152717577031994145562223718499668865324030883745728407921222878512198385719918582893436525487661016798773229535960950981399322387226215009774293009372582399469595554853383773837821104145300475674490872145786711912719487167477392347787228409957821105700065150323063588522124441610513250799010085971843995072858595045165307311594883975819500348706631028241239831227747448305199579138381398417731716716335229320607886711248481620473408455147247902344223288140528456234582919480319115358924560517579303669712007907478517551454371195014398911091968533588344711041945034607910989835735141925673295258209616980547946896650192337738756003674593663929042523487409971239637129342563914586416898807021626997357071989391003308176270196312588175997830282939365213636626039998418011699742941605887153023008386427902454427146861072257005677296717262841784613902747051409428241506719792097636995108446570073942734307626739811475878423990008194181774156619617790979401745041747555863251946645038109478255719850816439439411988464597999396738288970379227017296786031061074132251157913915810884031052589380946910683922367304160713199622298795516934072005780751616989211687603300485837557024477755944590495824796273444901454535705261463470086479037895357732347770692206922119290914276691551275534467949232060218520671737749856260410362731945896842203000569710604471394369517648857041566316827874268279898729031955653166611330212149748709055137059845004142006624882053820328967000729292109695357136283832558368328111908087589715548041567590693100173197357549891807279641567114294191405178079870296393982999384868968190786394257365264486111283439729581335020535622554405826407656795490145561253277424686039477897177931015810415240048767009447444497414295187446244195616909366777487403015581083546151419457370793395815214694444750581344160408242905358408690044381786331263033505184873083593304700270207573115604692846003714492115067415264732097831072710233922972978451899225919329413703272087495516507276797961237648758950456209725794777470886538279196792804238565431790400166081514991828901999653223050141960392830332206935626107654987958277574192482785671683492053500394762245040582312440060048724035346710948421400958998367171533516903846075906247672628688265700379422643257297776634917734422744467389914501039246858447476527505587305911724202664200102799130360476571524791331356824381418066938015802915503127373546551056970908427628263437374230784840341752844696478184714172511960484363278418837147940849275130745601352038315451623460756861693796262789404389614683883186176288671179048238231817308929327121733915985412662499967997032251292835936467189675723295966670788604341936753252334737117262453764454727869374127384461928648658403783681318133676631466229168802385376041565770871618057580643128380259426125337744387802026331416056327089955280639711346516121419688247355623086364067484714431556277669911124831108788058708827029066807808882857999432541586277266449389980856738749884298919770754481207943241310338421799142506244127235739290467981601919557248680584162891239667144585310030520956217352522059907772460436922640098776904276529018896131984717318664611177239255486542992312192884285361593154312160887401417329996515131464743647952666951277230811808193001024844417295580779634003082832292576759467476131645549520074305360920970833359413949033108058727869041541038891486572934616393047702650028825022794736332317618360214307760063278794414478677830828179811076453615998760365064305329991289332661355550087114675788517124242818903095058066357277293522980045057635525202204259915580591047338975696017246631418805356586181468291060325238469495424824972219886120856063034816651296485293092564364371040815672603223813668330217402063456872370921745800288413114033591919160659199590904809223271438385052512277553573483085738861626258782792147835462793206516305720519296740489102730443147266356668115469131507965890229499638677596468550083939685140812829388804117134538144415265697941996373019859275553374765206819268470479004331653418007484580859802556914815021550968757280456330623620285210943239610772353099454491419618284767646314296835057276487568938309897850502935855718624116773988822373007037493806591344944267018558113720914163880946325721442952408196617310188745102680572902331706902340152264086870085227399895327875257251205390773833218744198952208680083267035079862950110053377941662331048590115569956329536286547937348341407228336114264279184030645950444000778928300417989735972347463058747701763940896249440517689794816353729454866075302269957077424785061078403672968120353948060343744442120777861322618417194873540207648977041966949044225239898920305030117947235664853491214389468319931095856034147146277471367519081433804157329091749078356387813207292994042045483132606218389597879378730572341889906718400903481791724758323633441207656523839566972195066955497351228990840952473210341602864543536686399954212654169880345944280401171620560984793773538851995126515610493409937450183610687817415392917888202723051176519427214300476425294061842083569993771285149508243000833280602311879070914427838336544766082410473966501512066259978154957919560146700011886516087040145939566933044688748670245538568152543350951754220280701771388620309867569099525595122675702271203136768188850548137311362955337965418786758673938612824587338785217406651153132888712084872779713102503580557877593804252162710234310398402453127026076529311089792830360008147917085545753972206652920926136508953937803894722704949684796763494268930694195636928814793111153032360310895583507712350789454228371232352788783405593820548245039586951581008616435334025304458144686491725683836426966260422271410274930224976179587221134320206308737961675065264421158866439553705196388914497311026959499272938880699654665826742399097085961805944442049536794710046742353084199295206206890541743281045226951041241942929464513019675418940376572444709850373428319025087709314821363011408500446766467201958080722546544608765837816968602878521915588370846461860883137813382194010751444924270984416135178492349630357995219415242889513905397014186547094446785254800756189311286150607178084878515008038412257376052154104314997259073229169092493022819853414721312568418963929553598418295059720399491382135979317021578380188121260877927643663822248124379756622775990876234392092403796227537175396541883804685084107143412328214670494177176181043900295025891514443491428736384059466790006566754212436260630590493843036882080155837732365828920854168083417029543874624789045729142381198979690693138940917259458715751144384071696691159396787056401427160439721454509975666250600471710407367258200317206414244270091475401157281498054238393991040367002225924849901378979542867297138715372458171961117136315861143598450614048926330064564709540834195252442114634978706051963964764647177278588695105852595285038122964148123114364237248828666242708634283713176486182622982629024069300339883328155779496805311562483127227348861273024231814123588992365904784327203443904696637219212138366866039554044442926042549568718970808396504685102719584675771417969765348738739948485895657164105823946138486397494981645414345516685123124954871410072896031196362532722926883197596340361197242908062732940948105251295492209414265847971694522586764549062772996009434561410437927548044368714557014719473984309606306256667526415143493648347186505014533901379187852040500181240195273714668968984899674169578874527310250374155561164175531111936001411891729266611618342475911205103409202268586694705247876030379272224190576117344441615063227907759860183605469483599904051228309695123528599936905371727713468946593055214619419072522483126129213345718542715479651087662365078499600477035640183262098287636016905221262388552166934415024684860522061293959642127155313378683054410001415429983202879728279692669597658569822432195238591072367117858122503289167166859265989915875850478705265328694055086007425367915392832013851755579110424178242906851396678354385983184529001744093220365842382331446797324683274789612524426678554948277460575462428574314348446907229742972109050028231676852810088376595010623176962695745621737188540542232191669142824780245791211911117678533217246365049854240679868765888063881051607877136531705611390358482520766325104653104804085362473703930780306864696821907443174966454394599875504411619059545192770351620381844342750172926174724418630016174291584070272050554224855575693816315181254366276918811618301977495665019414826060146872118414349514597688229541597778816531634152714996031597995597761292995825580974719617595846746295626459030627937265802945183010596327744083247981736211919829385875167966442847889361467343328552547103499093609334492521295785391648366305119325705936759281646979513964054692529922301868791218566089583759220563033159230773990078540382944507202638090173852524492724494959541325621495276362382623682560682767715488458062100211558676974044990384779853213720909168416374902668473376332036571433009324763728252589583814335099702046499157876486328668950987604534459534867077470800638872099440666124845958118316848786509278905342459382764318801570105019821927339646048784372960814612662690756085179650258496822706688933375935734743315201560371033579515798268700022567896721226196923717386960545402719938352590843648471660155543036249935505729592881823544047930123880369456001224946437830700339365446759327359560445532217767389224242480362921102855793609517419121321058831143138294821676436295232420458695653094827154708764569554276541456406166956697425771987349912656700405705856686099091966121174809234470329567064638541490814554665787422735762338566462812637610246338851985594716217120076901667818906102825504537830835234953661965664965144351971643267459627651015258688001781644983823571677207903142944846749229233132669149558464057333956816631414154645435894947447134506692720391783244466942492745657702918969645975881629628672697458369167766250118426684327537149375011286086708341460629257157940917998030023757386379978607870510058893134663113436855305540789242541940850281817799050605045035608593557532221488897228847374628797773284123215179809436871122897034063505361762690208307065345387346168864982771563526797918118230290296827676804356631829429721169476446175079317208373619288003251357187862987594768818816513402972903698082464415135631699153141251590095822963210139977673233114661277942111860762671366923965339118933361090586734678703149258234460477027749233639878639172414782564962207399930763204621487439405797086104418858081605627046284499363732318786488211817409472680440381874352831283893705653654756298240310780158920620931010050149789430398170452338155492741677753627075284258579273405330926639826015038810991472219086362401070689158236580513676606550600702737012970412541316836163837511691916013317752173928245060813407877618965990328795798785985225957349382059226143414021890412824819118077056495199079859369511063646708154741074324963610171583637620645052495072650039188774314128622370702080287457048521956793147946971434000005113141693483265239720137577009332749826038637018944892579625727895480060238646634841756350633644759075572758473456546509220772206315113244473368757092353855211543606205366249456697194913715705312268283133885745733032606209353690361224589323969294300948635023119364183721138797722441519486659164226867645066995866280609720779396678948016777829152545848032986156260310528426000279256975276297277585657536630582482317583114139412767063784544893085314148678589474333163269707244710054104421950007461063528789018073485123126204796282572280236768024525144941239792920578119573771362401479071254118609387904985742729166720564496688422563810537138714139808150992453513779087960281722613299371249836968268831869369731844952041671639616171005668278994288201891804323586282821288270746310585580233330374742944164564331617815455655081948610500361861548772932231830981827189845658641146862499195094534674280705891458322788205240769359803623023222061470750481352828335511503785809274584548474037123983439853858733570295455273491240341401424476048845463677960732545954411235378373580130156487177079699265358659131313468034848352778067019908504191852425526556147093166874385619089444285135770463085687579418327859759469367957872310995738658834542452562518702955746258647190660402390917068703235065842443888771193511731284362087748903689980163250979192109854221025181403127802314083038097840357157503767335844001934848684621000676442892164146078563956352153069775468549769892086014791899595207915927331870063532095395303565402776834903800681849654650274166466648199099935274192351849342824220950426093781838789703335071805432681959290657635464670686713910902905130950744638446451316288433865033790349088645816192336289176646272677546194351546672585969041884832547775826540270171933221038003689973163401562617443307650615863110091486509060802344252376876566606618341403686371022857891264099330444387179277834665708205365440418594449466820312184601384177741359112604841872033829409297725196633092257031085446376608201182551504113797248909804480518643287853697094571049700569233547854437656822776337266413083272338339842546661561934400915572442498302587298411323540110115125994575791635718461629680283264340268753112467792649499033747283567656044604477181499965997342146856934054385013265196673454273193857117059333602544642375255083038272976027766151241025923142662940612697504707155533512208931201686071904476176561353283627340525219482236265357093799108048533686225997565720111274354577689765236141684267311397465638336105782571540512969677333843513824169985707890248546782454581356256624947714623272379451769184646392056258144809287135327348292512169452197576343932297515464068350698091695743505739460553632574031523013190615655821038462933995942456644856324640386662167392385334616407704887939389896386352612271049096440618538026834234088541528822713745437145853319927718096306001045575946631703688068659015931095363651366334248958515430254872898756420334602736220930384878049957927155490797350617072238855078470052304455883130108610429272808631523903801343117115825606194492937224577578417567712152361800571624223926131260742305306161307260193282089726782408383918505865367075657417286298081539823601068798511899433270571456437716810157394209329436101384679645311719413217976755723139554650967551012868187619126674854518738683932705890656123864292030920364527471546886341923479715717381574896852437607921317791007096044975631765665175314364241620737166218612215436930802746847821126880051126941845745070480975460931319522607749096296264510006281250164064179209976849446109561152868497806808967431613777362097433514536918382246671073266858036595921478940554295555798924067976827781298427807064218172363165437016761071258761628297761960960360878640966700757556991164451428049352984064892026181377193035022671185047768584076730389471701106712696465529848746164915026596691398121582300314759581184092004140581885565371248467856935532281225589350438733601044385522860925709002749671818472440725638221607675092516876985561656823925532782341567003100552613949357486596615797484676907353486811401526045614897806503952246216914670588593908887388677508221243259246593538598251227654078733149851290518988598863021323548704421838674634041212452828596478164775004143896261468261699413575498024699290360739508049117829225254197661545411221495540943118401786473774630222239948591031464884338699947086164991987810460409049064294721172959929692775931043859727441218694048728862125512627629439710293938977061839691816288516040202702598343041991279388145071282628947005449881337199755974961704614896236316876266415440766740913473150385407196711749336794538722099802254945170181422107541979716822013275136272497282860863079141812601176776756789696088355230730572248974394919512712763920184923889143567900095716138895931034332691954334858098526597056168417284124715243050927352723282378706991376127483041392891638319154706238508011601623739616222822255862941843805045830006482790612774676979234624809431733868237033489665563662714102877527441526438516255973403447207181399281354873757863399724792418205661341793319437364124650964348918005169028594559326377399307640420910156976971947775855252035509510360766539399273820974424122542372683083295980723718338910476713396638171110850780974159645123305964343773729182000952636101700927807758559337158031498939863894597404960973377440204723859466422376398175404995193818425958964010634010101243366388836387897266120448791467757545945457675447412546214625611269235349415319175521287362592844142641678679925817059017857427722967900168634487263748766423101270499365962359382803702011419354543364284793627286210798159692427384560196722634140934383769317864998786871167720525457951354200299853716389042639110375467420930950212995779592590583318060719598951985990301529788050116174242478550853472849548360913631834384356612670520056379037292476516374087048928702973537431492450002942484777114276069577602264803794267389210522519867939851419285697574200036832639381991228570067731731287740212198063174154466185789129434862905512256260019304743546714719233596112397980794606847540947453117748736839045108566849259566300507293059599994442999362312075046114930456236474508163331509758056342097631177482377141898451764096019359631956359266741628650585805839000791123114165869600073351630693654037594195203276952133983551346684588961961309710390567257468360901022809543592588732912122439874546975680534773417062743218694966586895536082033767076600522073422569615997535026695350987004802298292943223245592638079799993778890756925684824009082882987916056758714927288814161516353121919036238522490929705425772712822166673965735546370051637520016462978266092826950657404226097603467218253555382055888112809465581014618504216951707343227173160502672062151522038376155106109735465557065718292932068704211664347176490638070272072716203694900306035927877224390334912630302085964107260203206007625107926703307689145912827233742942772714621285705741956542663601174676114380610006636715254452376301327091050147136207024278829263330514346133624823404680987410832918193203087023003611852105494433497457844820912274497663217755460556674353060763123954673098936642211180960493859212953798978517382768576016158173752138710607381995930480831739179476128103813304184115900920404993315108395724822119081818745404629653850030894458351817951575632292461426504888957122670048202790220767821295334054798721944512242918606111513572798718224119881045367961023807003685892167212426586775945148576998560810316511856947884799820053232118717430167411025890315196442087487659529692358613888225509938327131594766934122948848638940273499513615902087054231526021074263590372945244338964477882464624304981138686678625219273315278734932256041919555233014358173088431142432562409672586962155971847044741609807095830227607326875549435933671782818771629450449489823200574923677141449187363929224573941776828247884479936606366879954592887077193652391163780545945267322162362087354160565277999952307590148492796363048897639039173951671073998037692241756876988931515418372285248939586896050923540917609558587560100301886280901351202786115999763441214754033195433217531212199837525103199827603442494376835142764882554116789613788459679622787435013671954621480377436612071228622806901737559046904162928142424581430588040926991227700357353801218597265095019493384233837629738770811243790026642827713347532048481092128924166363872140645261976229272173165903603349856106236325884249131078983466680986595848868357870201968278150508801942387455261167060041107555451290268444145174788403150339987733184872363607081189162533402558452721711375762975827023811303971878273511614225647213484722019417753666313466924107850765084002727401503017309823179179814305379077345255324369153143070205453700493447119982654132016927502432254109877401297392390599575099443923268405624513996155984517159636351532736331083535501007199131429532180153738502621074066156421099635549172086224299495160159684436856493519193543191459487846458079072139962007670213139330520965974870881430425464670973036534339454606509750075484449215275529302115974426676506037474019275768499314386062829063315663326345928023234847162646326396908694796305397729501663006557314963440264721712315660489684302759779063699095034895598437183108620115590725965413152704834038599009414818154962764078038363149389307958519752628004115327533451681157655112362944132448576436303905896319006734221900473793399385659027396152598829437958349328974935625377525066728840566408944016977198165782293514774267081174113378156769150216922858598691014354137457874311280130583583648284155710120691926845656918581739319350313572214749170454514827592699320794170529208400138426500673357537209767442510484202787274514364574987355700750187091558548951599978196915436306902055113920819286497313978348150997622772553961419727182160365025949474315283205195997434095036257634809110879136216196826724440188374046726849654883823786234489607214706065042578845328972247318552125983976115721575814129795929575408776378927145238984722930542927876895665066741545495400128294342484502762543634262571119106991755325569072258324132971402633079960545030857743041156801241259661271495687212552059188049021026111869532041229726040066124299484650166805848066434141531283091556548602454987670857117038035795466831187914354824035218036425869342015372395587421585058796059722351209754076211349196410921285759007860071777867911943893456265826328911687090071169531406873901061316342325312505215302531809237176007460768061698217693026406563553253483110432330880268805027684444302358266078764867233075584487909625989083974828279114106039254053599958330422359746421490884302116886583315859504460108115456812815766700056929356967185896038672955643659715149988146682162341021546780175330421541487010471283364947761897700856110787299900345440461406342332458890768994548481728296664490107524534924890473462122834143696411933156696725777966925076596109164383747696161510484991049649946289018114239290883765026763508710645254130600401939680170418640124586656611530906047406187622944131219429638359174440529006238961376451300259651473057038479381709882679980672350050875347048091130495159325749330019594715229760010245322894209195270594873242454701384054042265736840527138078150439297479714490158379431067840729489492517687625548792280976829187574831079930808445419055663508984710625382030724900926848405901815184535306145003750590338575721829441142984205207426351985345477797558623053606950865652529497580807878428839741403554841276673763581234601848496799421165831997685357163306351032714330169916885812918121843686296447770766547464027463829398232120347753373301305435396739991176974499782793536056943655143937020643051177919529763950218847042249939080527417107767877306777657336979868571864037795339504931914515912067298409131745269504904412733468478619807969191497910030368391911417757883767971066275993236502862440928818130780899268648990521495225977635170941121476224423235532050217429608931264508597247465756876302913310615633370514261816717893072298402850730660884996995512936102456128206210747615472898920141906187399013128436190377717276463229136114760974081299640518038174983473504621692987615138913740644650997851975112415713184568509366165742324215939240714939484531899051464691571328926054495854212625247847937076719708431609457958194882560491902722306803857023338815077660815441442225926641076358815281139945359287777715327513912646929159376432363606999668574820600588192015731325049897172716870154932769421604240379251938370084391736478186042972222767100081050000219774354607041244025648927619632432469901269308522385281197137891682841626952788308306309309237398408377314851801036983990024465167836394368075117666152963746579577179943116874965077312638395367560059032615607011855073984996381812674152666730368195959282540540531013341137572754543752990070323902906323955730506447494857635163276673826248735385060980590517201072182319366092008959912905428286625901327222210660067104249368193472617284899303481464244976586955008520939050248031803379543718114405015210800806706896092506467332046468364276306439371771951795947279441930031287701171707823709076646365626344497826048068157039032358470471719297404519386883117656488396384701033682071561056290356938450915746305124657034136748173078100694363352578952530274551623213947856395808416784461363187059387479998632712077020134760468417765143084964419540916230597566498802227328082417896898321044456192369150465105668874247429260185738150604769993380772938524842027735615970200734542917373535663598492332736090789059774205984161071393147851420519974922324815726783819592753635682014090840078356650735897314697682983200199997954518138434158391211509725812227921295189535293416826323236783274340470105320405159646190111082000509032405400899047364430858869872187445140368564877326052518070759831349884136511239907176260063281178793648796852968159049144545051904663995064058467544835218212808571466545351836902421036978922321913113450639969930830500334439360297965281655437780878671018353155736903739055699008612434782088165803847869240719935956396464099977595466347431069720347890992769128597425332967704456805430674564870005436523262577626983376446979906885297787353608608950787262948319228028448926549308309596932224267399974357511050583988511339558072975606442432143812771294285118802850635157799417546757840764732935012825354002485444816518648952945092050020890062131763029603025151536138548534995567478045275246088590736659370954356398230842835316936720978780351941721342754244217381537595969162329073181864014912540965025213691251872802484542695007364482296585781685456995649141171452151976609471996532912755683641509697586587178795313684534333261113459610257396728098333323041152393999102889307911490778021953716875169886968912471941128996021867208120771153844822667020046613598630422506093901662578939892193179014070336817069794853837318631463056823955281598588018996343900172188885084976312781472922301667037929280226577952921913173149742421686027377817812538869721956380773837242959682442982574593292615523378690996592777027496335435636606225327893227255683898102871081266004181825194049647086573091705119243185614404527796518096373748782666479347431400076677368615616552621976844304914130749634482099604313676407985105006715976559335150136654148308014555776465381949153849872521553955506979970262276693096667399641685465938264478393954582872937684885878321847355617949295025867601547080983183442068376353613209589492548531369422064351623091008404404552294730679488489555915970706106935691560785495854344976506430397654506413540163092178834107615789884202913487743476680393768342795959146989186627471193349099905718673486786408682489956982496196641342123186931116888441123493441981001878830444053880056081893329904550568850405155513544107331454479923094104859494541780817078587404633167797413155314549908275819852837301176744383789347549123852390451752054366388793747735389691646325044097042400082579235866516539961749462893389168354769716843332085461264547885076092662391890967306250094926640434090058242856539193601393067510658929442157555603762684354673535476717405327728861018842898747927880263431427988347480724558193889633550379910884232200428033745649331773254657406858769693363019029857348278940056258140123709249333750083519230025368019645353597190115695765416105350118923966113876330307323946958959035377602852437908757268694009107592072200447113862805989583780606410346269292477276633749311819652282075311272936858814061051544143125600728603001652682831386842565277665381200298032117530541925675346156871916825930041428605267891230817804881192375885138257360749262910937072005303798354035856746738617690224489700524600655700055655785130135049102322134004291306904412133835289291371565150943086578027824157463237819172469366683100244305240503148383973389160116740949125544080153010439886808620277526964306646083547850674371436840849461300006893418640597010352566646147645190652516394932710261459246201019301679109255401894364513364077491236159148360688392542193362211905085176578574489614214385329699469948166133219014211741426844399202239737015632676785564534105110109315141005826706074966036910103807801554548394519136236049041090040229848451776987357784494958314097963991328588527860044711391593927815161749106183757469049906052451383542517657839799913514016950436583619401374685827498487372690560745818522524948578542782066917025020828308062612304590701468102321949569874569736893759939847397137637551215804306307467119308413542999215226373108512514419579971502685268126491176835459656580894282822509644743969077086836481363275094198147421713856410145485425674263988512354299828770175867662887223098182815439353381541516523285629348792492141927583658939519646015109682982683867853481459583394845846523672726357102390709093965544360743107619115887881148270090577816388525719829396909016947115649741121165125049265332719280377212411519164877834432949280327437978820104705267501559124285550717740644196345561324442680677484538969336113943123549074434895539364431383250844544971950256722749030952012625803139403368116505287910512424406137347578810086441926743789398287497459437688854803860577546102266024478744898313726367525844866155786060079036036397805021301556525122894128606350758151250931042455858754478396576120615425920259992280161467594963433058976298965244760708782859242089708340023022280190507271310576591566680507962867138456741122046444462948854551711766870397977617926005361937327008525204676927370778128116837304807263115653827678075374886055320804457595559506226249492571686185526786925511652217462955898955964097685893799356268814551155294690424609273232950690041458594354286723432481684947764599388362684588462269673485473348315775269799607255130044485154538575810737540419654384717084814970871291483381883892326962760449158536815106027496871448649546822084592898286146466318071641401688290500932692201071770587762546631828382770249131781998706304702539473161877311951600681921292481952751426805184542865776468414903089523452415759499365961581433356913873532330022357830442932184153578410255561602127264635842977821924613978052590233273549926669231543911648039820854899003750186223648909949885379781194585434960724768535835688707936026371070951201790166696378150432057686252899494735702689969239898795520644191985477841416470630680537474284325799081059744720990131003053315805907756539439988742694020155155032962545565206990554934835481177447554465384007615493296723376852649131648232983598873671738817733294179695387073937173730693009057503631854495567326484588932060979798237294555615838123523721424900790519760289544212921157334248343910529521329389293696270802701560648645867419353113504477164778785476399865379725988566940565543397217169364248424384134078320427023548185173638832823244966693069120486069530840757993545064873526249212018768941469593971287300046653645165881111050332711575035005264553805916208394660648806255214214530537575764954304721315925271575896990812775030971252580221768082839200005189996133737554368327555683759167140032779251308747382639727247199215757363440030795191038927643743464042963121080953113133526668453878433115468084539007488683909929276260468617072599521424506565538902073118866483586437641927683727803834067341532852567099345285532778492562011775955602627834304467559930424774377355609011646424259826319917867834022474032994985010759160520145325541643546496262214616053709828479629208213274569453845936715139737220688679896428510547601153846457287538368463816544814074646184102733172673396807017481454105941584108047878364081317418815215724555040537721183477774275396185668908146510904721122091071870145217999347062563636726291698745891232848289024519666963608611361280834712060470608282415069722364130658471830759526067837550916379136878656309205284927751999438799596680882762258284012511369957931726460865561417599333533286417826424041158574778564171797149274786602044279948417050895781114103028392307190555496790625223969575123208215978674203684205865473893331919405120441779982545370339383637431762152139008015474230487381117829328766303269710771011651362709111024149987238433674284460094003463552132819846331625767268279955831699513925411445345907132876852581824142357585193277311409108939556267143679796014028052502303103512415542797740862794367529982398000309519099796904841462379518378110566305383714488635938521494622766039495580446637110128142804166499743516380849438207977348460111867014210585764150172346310759837779965511390031935723006492630486196549127269861704291102246869361794143936942080999280175205313538413093433090423392605302812103209736067153499703936625644013276716364458038434091788839212477504761602402446991778431211697735530355326023292507796953065604509585248914901701164485312018307033680889415647654744598368700602177301592777182715165802517624869501160237741358481549155442092222276197269412385149130190662761666828744549301761108308775652966265177285687005779402079337485358255529354768323354726559538627443292231777967314386246583117648563930969807318999411180874764728445769432908475286496346331922893910098450590632018505442186725590215821331023159028270040771636240318064737808785296368335480725614264022434545294629313088121243361430173328981046177400002977609415153563261405917586425989070711038402080095527366055406606395624760152004373879438624311389585442204032103467584287240756276984164559230920692367138980184518547149291003953396533717301251869623053668048404459552319601421020346933292478057434966257000894787728883306491265985871044718205186472308615052951108397135374525281659756088324025732211995880413153163435403408954275460141624903928848069900467655719437745551177070876817812521619223001399962568088911269281407861019687068309024918250566892687019305279765257154587745463622991119075514927899947331698330439754083129128060123675624716212916230025695505842020543155732306072036045760794361993197305315793058628916997018246313993913400889040375489978554373076948734873380964551079859699750400112705009162115947684624953583981888676465750890810815387940996365650211588467694814837938209520860751276576110819559114196891109892086518552174202758475007832922314533940714493437293316061925839129838301899915216083430776311548950155338384584159576962218636676392582139404433504730460438669871663156128981193591271498670888389907466088912133168217028818181452538452051282195528135960394618645003164279339555980439368149794939593418110316584687975419810677275961348746619135211795978867288368802353304207206488713573333224295133878153540781083288157888781916959226344195751546932342007813537618467066774080434802322385594574571122673087025419992620636309081897371126631741419251730552231112983103532387177575150648943674159155155215176556249027758479887884596430583740371925889684987249523126900195897478130567066052940702061672205284838983670362119366370499048933802906154976745351741493703452481509547701447391926661902280623356789894029215411838159255328675339469355555404530459154574097508298613516209608714022825921024204233670185148410380878446658228029550188166066415641626242739189805526244251599325898083687253298398416641600702490275575984459866538115434580865911535214529804515272171243068392577038266995628849038592251160933981648526408058958116287345178176118415453253394554673795156443463243050840494227878853160109618770497179036654842505085315605579631767096762201348812784628954077749141169550785500895373635549586318520654109963044096553609417353785472054138480289669685637950975737574688182636728644709023810165978518933394904199913120133000011067415407928004817664511642754918515469776865593714899092935785146867271449353141510752671435708533895303489480003199361020364935019103603623638655939932278773490462364015165943289775370442995076099986711849064237004197365115470563759714073584139168037246651123816886139255400035657140527516283128654689219539480899197814673897453077257107149781490556140592666797361419599522041335841163306625172393771290261873008615254208805879817971097758428206851229819459293878955293959045834624206045372315524038867219078000644545594047443546327004257491369760372492366719463300752224743061744871456727783407910939668241709702599862487240292193156413973360730891454130993073965475158598888146060174181818476284732582266341945314271604534866983394105274944783506710247031355788824412721789614338673790641687727941328366136389139882574859130537875764131110800374247147237858160600110749098120499001357154784160350876993396060596179958997683736202436659384943768775558208185353965642666527830066580477289841801560763966091925673664976082042699760622571799694791935820573728603792796466494612358617666074440790552364917923534375985864763844820246082024660333397543860017329076770305757630628345380712249064066443915381660920035858583911492401105170629540233446965483471370745075466236643285481253463241048257369961172251938685148662606649199406560547282279808474343839348276763722708825049079986194830338606008292075041855486629646778101529129355940923324695970081279411534210797688315457245948468815114351134937760076685589840955642230887402184186510526534224948517506998540970669642385257593218157086891182933652074863434932233842492938594354653314226557984947878123206256945297823855273102430619408510787625184939428218932125831572927001544116989905457279618133511985408609839853786760072255258100023013762898733175380348644459191895579266208339267767587113860802833859724189520005919639152501278716454805686873833220596490123917160255724823282778165841488833656791528383330301484065571164142933200100832819421499614119779838592017063917795631411353197820126002865386276873369313554179592428443120406714414318096212627927048137036112547234302790789804723363176650459963047915433436796658809544609089704448789085548007691630013958838175854537027826398029087505941353268480926243692812556728147945361916165403742036044983375117168473660489234345263986789666398730634067334858421219234331866719901236981436209704724744463386592818265307721412394785885520996946205594074582068524710577559492752778558258450298839540601164771793111566617460401078615026297691404049678295754921728455823421363130755889782601195873341620009796244247096980576373170721730989304236100778706067420839013206855534087390486237952908249374052570178480622113151814971333045232485970534320754845215284551744745220273492985168990143673161774550980236613005592045917001014446925113667606064463946939246411810184396589689288233711423952706995928458272803566277365758967717857122385801500982586022319159944243543233391580492883280564133930911613229294563601178311360399407068860443178833117678058721287769650456313266640921345597360412917780894520446228812351284412586931211596823484941543094729639670286031896259922018325272931919348931001459619916434085420877185560548375676240389758796111242191858915781021926964920342879370241633256052747119098652035649176310610464449948678134796709758430198411856454720994113544343139732183354273344292848191953410898587494634835532870730923368984535787105455511623823040188226901993852589725596675683435036682426927734296761127584925722789045144825307743403803442865736191999683924477396007943537787133855456255881836883347685179841711382213017928791328571542355753804466367535626489394063728379689880128046420536245838616487482850302514906808797028626545603268155941283755910935731914675867378515778354260231638334332468942912059695829893630125024152162786607226486796429505705044255314992064517023717287498041614384017375980336998487756031550377976178788941085829704134204987273747130355461424280558752437847158430178028717194939600437472130627282628116455669534565552160927452697359276309057648202658584984404350245441643449462121610345149433020382572087386496455577802120755967374531003712585095517008576558346009762365390416510619059123120415636054120597166830958046741637162103971754407255088618560466669033474412924683620726192765590117148233542571495505112037055462207462786801062806746543136680741831920852873489076553444567442394805667674741308817243073144973521309555320829709652310514617044768369225479862407692457228807911260400395521271098495307669681443129748460695389774587659821365092157193553425284896114129617543719284533607192529416368790622630864699207021768257548011706999745520894938777231817606093831377016710609157967772355063617860495872954968407340888011017362406307768849187829035723782119144536906649466453718450599397505123742071771465554302013357210991789004957506593887971238646912413927072534192237815264368510101514391340554858966513849094348549037262970979199573988148675380122413040365145140605232415878295212121221452995655420875729878785020265481676840825065859846917864188454499558924161384631395033778491218967170825552489270263290559350708122997832299079469324599296188945421565850674603127765558905538159857017327168859605593388072955467840062798710305987187368033192007596970526642445795118204037453666228196368298938997740684388390353672183837858060607251498032239723391105607470971690085394756046133556594128407701416706985471521763767831457887177275998629510420257903966414381418953825979014929260472956240765649157381445737635874933750512989793831380909762809033145522598807283898586738986841522449444749941626209815285772830190109645885065072825631541740089464634531603960910376681095720184653466449667220485145676908159074242621351802596066791006587229631209439736601388578910933924375927814487166586772618925384267859715249610058782180590303921508806100012035534881556094499035948234657901861877483663586711870377984186175728011956827390263316224675211032785598572324670475559181909664108425383032140044755951016952619742552262094657995071788074918371843731150790097251658728041316302994262672622402715901533616261455199021782271657851178981004208159619746503804599940093026246201490306524133286576902393237332546863984382956537496587022239144454555375789281755301800888542762435712874583908655343819872740909895233292538795777773618310537689275332033852572925934280582967053892358883603893513566767696851698456659887099989789351618252279470763514401973830105520597041349539917860978840532855633703301857255009394045018414232487675450223023273687508033262173920228364319366074955497530105772491792686809884470785258209482953068053339819791319713576682846328609029340543903851993735873381459291781493089107932379435446059046371370804985341933730811908746391311217449669826442653688190968833221891618668524963060130881431358579264508783563439449779978847378832134454106348069278279538210008111697047561533156002180028114103145766194932882293292555600837735394325447904067071553102702353312683464910086820844285924274989282394170949870663316878064264179277199608732033384377154400903323163177547577227643782390634242981073842849892854234317658076797539863725117903968600759237382153330579019552533756948023113375350426307477296220221915939777216368810707250345849774364655136604061686632468968068695449530183700812012700794907704992513849181372469831981930231924902569006569584281170054013191883772327603105606694055235183211871679910023769152988947164541825745098455934539759935249426564867299404886061296986682137831327251701842555372719973044055226420766337970048709004169357959400752869610111207804220609347180027260315967379359363119336270530314633818548561829994332084764933416628130906530736310067146228824686349074023853975236541932037874970663685304921342343251780380392739342965507790884102529175372860059384498428111099739968666621110200580926888668919431129926656089271097225885224203725911594958506464716709664801045838143927831429844050254844427527678173021574318727615480307481812567494883487211154515518431329024597678527122910991488356930744059170628469428453348429002354699065417508660828348053411853792147334864529378870164041356586821373776822544939165867177595738001168733389425359183206981737123797110144586935020238715656177746773251493021523026419789419864137309418305946657807521754079056977716982799505903753339183904794286894983969783338869896704296426380102637315619781687021440490583212333621695822870046204372793074645544240495753844360887007547734114865971103530075265212955674823742021381031290130467698088718812189228642740267706642002571987313834490126248870987683269542803028556053872869769516079443159087837902247435668786966176059301574535438922348121976701429607585615862929932700854767878424112125856757996840826253565320934338833547310015644076299152196264571910629032508222773536800130222414931111260105336498261739857536722905943782026749657264680347053198856776805828496370829654063876701237291864386254994943799580025985690945191286014830160295149664524984682300431577165182058168070464656973528046914075791761557494297322222980446986828110848690288650876234485632080278797188210409986125632575520493027787382052958037512678835753991913552578518303667958643279267457692713964203359205815242137621507169893134006594468700049734927031130332892191771733662681619396491488207325721086491591887330698396095348850656619736060826424509970167986627272741597830264019599286747534533569803950056765514738445077787297912178470769094476245464513737395453057909439034348626756388983465013192183047749959347970424017568439493522358775362271823299705998620645642562894290295364429634500720272758840270296562030989787214000384286070713337433406247601698770497886831320196623822431648732566125423100310438525287514313529270145419711659428340647206008242760398927462423738037589822550042352078838458058453987489999957168331533227670230856593289463976516434472631414653751676335397262971942682721077831681225100624665077058635108096511468897598986485551451286509810013256040946209038922676193748630183732027682359769210154993302324708242980837785847932512232913464585920222585743782865206953184219191674611972684753889771398390516858690059593274718580858295319188900758139107218761585387673827611636619810081961183438002722556583265747707199680562168493357365526817713384278564580665125442329267312519589883635745416134360208483163017782037322684923673148169781737386439420085053843535847066501984286336894852624984311274553582023107963860294318298906197229401523308619825381575450636647163870393385157761991007227088116734205639818766178657960496143170989095030787800749400975870790604585221934479193166891129859123773433007224151970547231443636517193156007055311257484209739067917520962541017837372447074993157815434313546037364790849769149739165770538286529729610426513942924359464542043761051535184003794499872265437733870488476793323275644045346073920824757802338085106856312397677920769083598138173406099517134748983695357616108325061999925145369220881242528461875598637290247346512785422127713581868691410768727449314678937007616222492377358646992863745416243431416790193771863767789041332706762900227040302991919402146115916863978923307907606629925796465111529033795508010954242078530687722975956768400531251599027470940426224773996723490565802294691933205690078425046257329868049215995190054785781899018510395762938980527935121891405081080609887862773890858492353626329129884686009796692161196737021545688631779549803924975373779513151509725970128392727665830395497282947163724626200511158382973804635816826619241512001977714573707509400416009617042210987132797599368585864347601027073423322151262933853994352675024093164852589120885423766261795265777908596400864600118572036727641811508094709019613587750651396687325450356069421875622160632332898588510491349224156665401944924786592402901094812647609782514881283090549819473269994111083516757110194133016164182655469715440364092929939769382650824135532983056769555484379136227873872017789263752606845392302527438561571440814292088049053349730037718616519849298842521127433408979577560118692772271365265442592120090454022446304840135217280361793525556619120192734484755217078709444202275910633157287869321610558850613923546382757952615651369198675196184078893350660091504354868614613019711966699726538817331387318968806465082194537105693132729749183613142642490095773447768209592581932068955491376427677844028884103184762398499468925435924502664127567651486872639433871979418853015806153278379266798170298512462327538903070804978690767041325656401162001300628075402999487326220896554241284545834017456598161512521837795972130457105364533121705900427003649301775098353999123536743274624912291180644519723707548835335734994187398410280097230089456539873169368131133228087205485873903209383533077950052848603416917459023877010230932038703726474684440518278218911247104883800477702149236165335771432186713878748174521695660559043735786452256705465388191053638012687770079705883807307455868992764759243077460071412149512945788955452455641049727950151064494504259305105160074149563867689916194527755711780261017706526533910345036931284775179995015302574023167669870467748380498897623486883273774760267798022176369846086699232069973380005238581222278790889863173280915510470495744919755183165101103765510643190918108398670076623456204411015128222871383613702997293521166338418479726030200656004696826141922642638046194019136349582078054681560688640715871175306609983443525045602413099324728287081949355732561892665537392295754858040793159132253007406136467211318686384311836496952632223615180874000673446550598362956665005570340094877109988761058515978618924278462834248493978871187322041228995944900537890955393174160178606730164371639081672127097298013285024070657499482705514292244052395469476454102941299708203131060415164045148076062340931842108417714219928065889958160297658440927847469177243758175141970649036200751101258841549217856807640611981667047077081949746323453383436611612027283356815525944369086125589267064753651618111339496179104006544910097045607477926117931857828930864512657739235900220846954611779005211666565782216001768346976735256003358726409081852720885284146172547554790354957189484287341178103985147614775711682443704798040986358239409668040363363136482238699618268544818054131856676013510236364050238441662364751466653513262750858633083338063986518190521950431033587336544362582778266450324741247716499060042602316866055852285455003363034515163848411416905250264130288481536314592128561975038801355171465723363519456878836968300205925880979997711023594029734564608285817969596664266817529079097711085838670474457967474160498417364758410376841156021552283911503164896466494951978087693992921150160832295428986210760699250500625803168098616692532231817146890450982734302777071968815066385649469485808494196397013478367707912912938083807204834919452352820659411641979147397542216599823664239171071062086867083903225843345498569304287065813714928651417706028858017756079026344990213812928838868244662035362909705524841155479699714545684262869149610838420079224414932925366338268760247472404209240640882302480719988468137777449605971928365397542820235539344226895481049807703580862782970524979008958875537849835696032176361884904661867426680797379879162747291396040138385225347043964738496676451660218578778012341099654117180378212339852333990294283499025133705660997441149547868548134835941305567131669130794755790618749872078315653237992863154152121966211769614737304313297431931336581384853063400532576176088133948861447172473980276715286001255340807215001260306631665881687277080271026810801232394661259633297872492513047778395733263470327510762749339543038528524924766999043753255668298654270422159293178528700374432730840695243429734929208567592935555240231759459414569192963087638880644882662150646162489020566651211894236147483575393226981066623511493256237968808609403220342665088165711020765168232888861730257789979474089611125709050068852796972360296511777211528431184014123566423155671538346815965467787371920853152823579697842631700702041178767112768924724566318145654374780676267677174546845875998730690561023891919115670682505109064458156977272254112005948038840324662207843058627278907857057608858239772388034580578245566661129138240401676699548487692648672415950064948328670588146893153434726703943059737578001650509122613812562687923600687835470364489403773177785196858460433663956787509600229071150758421182973976670922632068432817060011192527915975281512486595714802942771155140958129750865419027006287682492931491748918582171718444364269175389197054389010919707403652419488143360129006627612973013854909256385593929839196377663759645526351408553053890511349413836327554454781574649400530051102631164781953207429030343840063084325798585987814923050493895258669617408485513516009187251492571076667718861235084158972239519970742083537683150076497114012050308853300847020877435623413050803981148023545271945671353708967408026751635429358087610196797560191808133202572244644566302790039640833355253228266209223110227094876467610631844354550764908387783641700333746118499359042589488315191663634529830219460406549610658846178898124537127283629802736159198788566016122803738237622014016369573495092194011841913892505776921552676681108707059030434444595406351079009377153653334169344079361036496585498919187595393195534851017278809934366789708375929080196970085138605303951543307514437275130108981935379001756668285741372780938785718840248612921014759664031989660278837310142677760556172680613118405775264323605971677786072149779782358114110732710126236724718229465202268319701040895878004814201078577119458013193847000149336929635535041200331052496251931174142669540689590148330093043970604932332331977004222839602171673018008239727918802413884712385294727925817084132122499203643499989237019066108568837481905311131195426386753841234585062590566449567901222271749082019044520332821282132210403995503858488248491982994922466252388497460099637803541268706167345721792434404766866870125749949458481625122657979099077121112358636444070001547135295995451118733278240893682779558799265589778843417082583830188658936716745203578737137626842208115191946778244140584627072024821985033188916237957705766962112984341256102299327141232024091116949363712310206244201543747149536881943971176273591913099602444068293165176801119671348882268046433096792671536193635509647599961519710251042395340465251786888223433637196657176246451403082712456783826533824064617180419150628360487839654988758483464485178364436755532995083431979672576037548743317580393586461179890633966266728543339424072993713763854848035346304458439408506679146666779296531280690236070081415096413878579038392972596314920194033240276205585145166769757675983084993899601721337826079996771630815289479479611576457547812757792686892459777664903113083738993131831759251233558694837296864983338165936560319657002317745822090249188486904704408322689135150730136231731466987750163714451754929787322409485056977098161873516478671878383185615549037561005088258818995159916337697179494358961543285586239555075850073720132579044738388311752722792809800855480564530811262649122857539346406336985960992878781181023908433301485174803626701343066583914468080144284930383588174068633372250765500427844346364900422231684721079927302301566747010442956281163958578272760748475466783157827551032369460308488321383370487798254489594338787467101670787876441635640584312882773289328078677831009431570273297722314668141509305888209633215013313861851932675712345447480549341618523052932187285720207205312868023145443881041696633772262762936496279778220632427659854050609104410898057275252201004557991063084683095655229880005342519263895674452740072958101259778021289516714770966550278053476907123389241109074163394065827471585947837010098661575678230561860902906832183799824441034226402449885000914687759782135188753930180060296699676445996204596723932714724039764390573385830712399720370683992205810203872755883405468321178022027794530099777284997457180381112594640639330976113111142784766717776809711070805899693067623376856235307934364894455624200765074903287814776390215992089856322122762754273251762493453849167959324380786255303488342570028901610514846651987944062944265440838284018348673068205149837556729717151228447118472677533712707669138140248901943678948895519105883068951194850124684749235096458692249550739729939846526213677708967112813097878771869604606865551496532899974175317550675968018768771083722051788378806678316567267386555149637107771980911744468538967683609222540874951615471472142642884144654943381399878179335636771314840408447072099876827183046888969856887331985381177442544328694697283332636117486986166341641586393312823377473300357306717977984752600661579219646144005711630397244365336180317455938746135513551743096576075364028802996640418738157913913482278453640477387705288755458906053214391787838127707128324660310205367810664249171568993304500066432672325411879761802095549425502216511521795388946463780346517710447373460670019914814099828496235422762719433251403439080864959443189588565978159001253483267725478007291615474336858444209994767444837703573050136729227752622884179623800584253698596564431556245870419193820468665990076841630044357229776986204740300197897367429986326347814613851660492045824123828791695380815859581363567292080210589893716325774317287115734103317945490957794705247496424293009279141304973042859527025403218534196039952143451790512112867051215441204402199315885779859270196394603317000937343832782131179805830952631349641563875469099467363726269215509951419974059651283950091385763856893338725815581373241700160441331341039551662200397863667187389486424706105166170391523709139890010648711920320144384343730717845180562512804263657817965215930362096306193495295809821296944066806570046232067433817989270849622324579963810599886318610135228783405225100783726800614449840719147630353659836453486595218363016291330051830834199170792450371378743975121477203024459381007354237616967986079420201862892986321728648756684663866817129465265739309477125424804811328414562681258231394457759994927260789480607894852456499041249419270406671655339608486002943927763105322018658530860877914486735946408046760954496269120916904634949759952741479644987706191486043678375339855723147015517203836028346678972645674270545763362091512672964053147825157989351888830860600053285167174029909496690350877141545480927193660002249285629753332118759232562216542186347981526453640124400786571752789915309022812393784523330548826200527414893742375621129536637995897668174037229550353429814255617246768130073900852010344996085508548570405421345962666567434589124704761561445148802725512748511656106683424410576766020868238377572993854002371684660324341541642531424845329415644227976594220821620531914573826781542506925725775898386627738129128766637717808126505223102856490281012845141836774628069163610797593228804238449051005368099436362376287976543271318447242551523087501851263130196713685143194580031723858562526407809329010907442552102354250484005963854566799218998489835163485625866746877842650704995329010304645192929568154960753512971830997050073705213282480724035120320210341587628411906380143615454363823338538816218091577094575068228400223247598846529712308848157579451350853419766546866582596782083013973414906027854376547270044586472904336611234187870939226334930914798369656694586009274383890165340028608505955532330218458955751322997171454036525493790867947153104602967454012464955563081890659049539399029815468265505050680622408958283686864444830445503050403314085454646009651241401499238880995510641261153855516542758426833092762865624588717138544471461400605324481172135711762414761866208527275919156124566986020097192299075558618307411860551900895948068046797280441634194396181701995890839213620955681296679225050467132926411099599714347253213685275318877639176450018134256242538596252589966358503201823205339124090369748375950081352601927716733677993028611591005639598595964149939913558676505387335563649395305618363542792347602960620887191772052917385058837755063202627402422408176559971691266525023647103804868517109052602064269033794994591216468165789155151824346189852140722634040960524404661558340652790085457507787492265304284347200062852149411001637802318690032496881673462798575519093320473114985470265974055828053016062524058494423589170757053814073402757856528948046563395535697436454627371977447741957358803581276643687906485870312539062481052927917942687542133303376623828047662744138860921805898777799880997310749058846073300241359100245303759605669693318875048237534557550134586998096891169220643385116588526051346261209863474494912782726154514774476250729944966412298639874239459957921065835761702465280718659344876095262840792037461084847990937863326107963353666491365845252308900142223153054498122715846067688927112771150988711249995637364426624168763343936339226202843927754785715799762828754793014264271981872325110571262479985951206446898460815540938533886961965614908441473721960901296657528464549334031392823712515821783661765719305856048382059527621369256653993619520612056962063365427245773781429001509716615156833091949169275587943867647461610595598972541807955512408424682588528784212928634655874553104225279704238777218317443096106166253440336966615747533778334075653935370418581234874201606356949436788880121098734053539979550105897058519532310837719249211435588288856296786682309851105895556925849481866062514469198048307405917355493392555313417998232306591571418430466647095895238997143210405028248819241467595374759526375005843981607073531860080073745392602287926776590023976814721896390583209494503460698914437305103874231346741770792718311222362852443845791381408889277509386916192520842321167785074170005000142414276330508644058952129246223163687906304151698761150856393227536103409464891112424074458535758458923923713822181018679020632367976699973136858406942374755043166091704237183394814351620084134453186452802647046749996110169887395874854168353902088717917248617754767066775419186261659100047003379916705768667438669607052856296372631068102882482977340522485596252014506327880090880212520428186050836111781094559367791322688268238320254570041507432572607533891059079029062295312512264475056676312689118774383520639251044351868372564953142014110868999000442881517928669270779219908706893329331552216843336119968522467121925763428860818082150029393453388689560512513690499836837005456530614115157652316498380084974172340184029538911732558523651940093320840120017361942699415191820851137481796183799123374319034170575565875241965060838362373611617952116308250732546161963644663942194451964004148725625161320554140202320850618698649483285589316773922996295036800337740687666562681901591295207879156962334111477752563320337123486135962286652463991418986621445499407840676938370527929620527899958436355614034768058314205418836902171384832890937848446077730582223587059006821412579409174734490624231902439804369257510426814093231823428184892657722902270114752621575104423916322091946827699491162639621249911347743992365945794811028549290651461940320956289073841908495647037743607271040145236357847091959630472442450341744979432568492705963056999815221340515038186655738430301019857891782862618362954377506822885962152225869022427665362512253215391979334569008502838626577131252610072674263415793309093496173634103997815003056370530237048010252544091977390093137995665394209013475513552854978496482855049626253254632987940841251641325789947806354300867685304227173850183540926810447921598020618238505305030905371023292189025686148668175639289631436854077154628193241498708095315274389896825204892710197047584313573381005744767853890119327277707824869570985051717548180650194902687807852447920142957089387300384200182581793506502053673880009303448919395584067970619862303930201941628937269441587210158171290375761028149906815063190709172822556483185819232914804014269305623420914969836448899604968124133576270825126156439249618145974256255198056588601741319549892999213139490767330576509733113742700623788041766559907742231179665176209170417371681490919714077523955842431741436406833129578628944373263705543538622163177205262102664065428632444784808939665627304065714339742558768329177772797806343790080189556635792752696930977696346090019696314541557528614245821905508059842357252502719868595486948353326198657359132641643336089395575825921031127527600168622993634411752571815289385588840480752032823553528792459713865097231737801341629196298769130290144237100829755271535522900404356966374538089998900936351893834858591085637184135309009794506972936911152806060709799518356533094031747517493416570807360525655454754635370384870338270272852763416636508330331860656059512263671887505049014746554166827294202831215701988066472213472665263914818572461167531168077923674742969454117532210681220907465768386177544263619627060726093608062212567420273102753738724836704590074736570898169792816207345167798079835995754995229388468612829344613345398220340805844949332125135548556196840502365632182350920687697826760078128077566399052343800523507635653383855633641969547270103510759927246606864274309650945611974442729960641737647051683430274012627275540329977862500089187233839135361103117093127659951965967005999552499468030340394821725385775446958702982780435028715456102536819319958541359775818188372631073023526877586915363213214294417678503896921721576645468888951439902798043543664815038089162591255177699790948849684582285429047938380632090139380366739852509846608718828461952342455543573487530243742940261976151857084716664711532476459738946377946079210945188289740437018450614593409600339529637347080474050202267335959896243432035354341016767046476958719452419099595959892309496697556905769004601329813999690110101788979066592824433893485894610010333429304697149013143089551876463149253263300378347024571393200405741525507529642702142085972140823943210228768424342254034598468362502363788662621142140260216342289445927704031653067149901067273550251543390346568731027431818014495039853655901707944687433318082502038624291252339787169695962050161021039284588282580391144773484616913738530100247036103611520828146620582967497323106012881422612019938210137419827812931195291085150606918685787907866111922815606421243433177569479490759622879219199788727031901737264763024581957024992368047252422354124037685927013081248087369541290027221618748779479129270663928991886872270137402749833878123576726614970898706988561593462891421580933339301463421943016899227432203176810963383297646042944742401364418565876250546947058094974668933354802515395680462629510569873053616568812582776810358960510710573063846848621478493040258218476912121381641299635204574702975095359405096680467878275509954835222101034926605286887551760887810859913782379042062303890686478979935691297491055259472936408102182613508224084736378363542802546970742991239498490242417501720623049640573664793724917669333979911069864365979585900734403164348415681992596197286391352978898057067668777044750914387712936270594858540615090586256457294978527259361337027322450566107242985278011027594664404047936746809220301022369134135389142202882568815656633000667946954837799295076726244936712204633372505572510183799071200794680151892218724889252828417660321311301579771747336671183541073909550268707700707122608048453848538193114343135997406993322679863995049649300593188629431930838372371182098095236649268079761940505228239526616612947223487817620073970482400785510664124723893696623114844845777673991202479033849906537552851787962488442456937708253859919374504451037890060946967921431367473293759803656919144256377944693849433273468976674236596755328897018296768741622731651797062164890136973680048837456596358287295894331496515665574861716782990881301340870092022806072224151226942541749626646051138333319807026908230945420544787231571564363377036644292365992523904671518154698710466137534871048441678301886480294482309040367678502545313416254512871281272750463056582094411204556503342818379854467253787668705711700320869361525663391167913026633472370371791136279128660082865144123639983007138575840132435731777617279179016659852851693663692930336885639456461927321607840659161302869596486992438333868120246248725943235172474851594399725544002177854261694456193073671355336149142065187919664162266840088011609643229472034191320365531793633560551757534525610543670724995754816191768673339942811434425564406530110673903249545599973111947134627801118535545284352416406499780638052779476826408595989927614069944873202567452442591106385425992052231712981715775129537300460846358273254039074078846721696062027915588144558117864666495784664710185373748184100109966217411781586698630338108456714665220059435841625062183125433782483570657649103121141744414809354163682191492983449060165691968855672727046535178620203069101847434731191368911262287659299045184871159778051783385565658535698492965983302599170850305612977428019502141182816317304849509131214889213686534424752928491936977227000256912123921990310787993408295557840967472599608298181081891616467431454116053348822491717867145431397801048623249210136176382998778531080490078381690344011464972155033665594439288830617346770466396186158332856595397208158167420530511166556651130483418330345530526962155283842113235067004614153052436340843065145143921940279498666038114781315453050620983430248799603161590327885178716117486387420670769691616698781007382522010605879770102577021812559214184285996220017070411023526247251539664589609207449606922148983717981173556343127430087046045918865418428355285758027267288820382030742564551215574087258414459796196487639840008633719567780581002379169884190174217931909620930019054371399522391014143823058139079892843706669119281505080553844337020307994959105837541847634142454572279529859665673487463273959259753490692657357353747009839311997969025429138173462712352472669766587944398196384503599488420923490247467785921632517271069013679579881972222476610820038279998333871848469164846157109384723733514785183296830533590288784896473000087870966739789804106110990708127063753349795225705962520500767908135584807216175687726620755577885014839034694266206331102624373711170914783847198237434158795593334949572737383997147505219695809295253959090806268193632178096098385764361064407461758019782292358176843885705455333811569378095945831497758986184627286079647072143355205377512379845496694240800266217313730003149742651993918841156120096530311839478963865635654281983916114022421958407232907411292965664179063456132462247589641051534878284429848692440661196747741009201248010647749151195400199733791718235901223997120928310080121855951926382106848749793590006255747170832185298049297161997391821146161674716233320789727301004089922193573691046374041587576074117315540991422198203817806184779691161291272997241615508462109075722254852246769495967756171201506126273129790905375504442491811943187884873693063576973462680339021654576656621720920981508234672039255651310395580594254500463985361000632784397242987357111062820697511679692601790290667052865604050713687461727615412884775761173448732473823681682371347265402909915122199788917177418205079973314785944779369638996812977536374707245693605731325681341763753725151556683911856043558924378037906094806765465372917669022974539163572746491604117865923342598703527662632746972396477328176105014209895840620229618405375455631381330210913036047804824265848498556392715080747124034171737936425985624114213664849638879945097207553321539696836434406590504563664287797844123277865419047146925700675316592804920923987399120918855453924646282574821800151106405554798730848322471178714088871322234221946909845863478448923958531607813678612311186131223907186380035360359097620605417311686494253881867845244371101288509806405400948801545324315982876458106063798962335546221698382047374881401746529599052899312571707220767644351805746847633483480892712374853593635165939858438328183844974682609108407895697557433048599553108806193681457920684041141859230022949593503125119131871798648044478090196958480530391446391956673890940764727579346703298295675221374702681425054762065562724733971398509197133932933249436465737985749578303652074098792610387129619209510515338905572439857705894549416818302265438531403490269039395027341286934577738642315345870294260800232102020331048150102423124278966719496071645795354969625759792112496110769952142981047933817935974875125538605836991487018827974623136352446756100931595599850831240258947059627949940149477503806773074306947697769426973916556870608452606302297422761586844959590156914955165614859644753022378717164601665963096074688021987445364891520970890688900184381075763294369264701166254128963412372436758174182556095106532395972189776442944510891344809112600085773216552283580118061035284009933924254094409740066764653139793880554131085969640381080209685295217932544080286950322964392319157803939709979072956567788327893683419088953581612690806526017072905236065769668126216357160678320538675451612609029784111489839279373679617290142697709143727713605291978570258533197398588584642304585507583996051425076477575268172707469387495510424762181210439430035418902346945981809548820958305984891704999734651809295560831217096196828045646714661003350996720670975915166028965642666148040920651200935845601811451249307348204001415833898234958233307561537171950641461529520025573918892050095385555763713562461324320928663727699130619445349236134352736237328789018648941713687137281276062401202116972813711645015297682183820190406555520335044281694374715583642638180572487485785813963394716976720199973578888222670291763282201656078065892483546078707130442669059225554726156919541149257535327534395646887310523362788645135335584508555487848376311754579324565123433815122639049250446999350949378540394849928300183316502476251976729419847286159547570942857951552165609688202154715236929938442929281395095520490675268898851565710286456790153743092070658402437691528045272716972504952329194815746903242919827935520167222686308959524087385149509249283156392119862490734532916879970712606392931549184467023101628220521918500217812779714826401536682804738460726342473074908995904409980446063913129519751583984611225347149613076600915467522793603766123338057239997313197506549365456366755012035053611010497680263930967943207619017867309377221850847730626239813111177978772266120054658272445079485378107701489153925473545597941920264680464606938185002307418669942786303036852561741662991223683831843966575331643355055259791666908799138007869618550195562260651781271307513238314502497634590118911919928865569015153297276739983933674358327107075427755949959620255442885774282345860769299904866782285664123720918766933715595305125370587846403295871025794317562711519547613110181150176142735031585419793524489609550468343690915339769624657458981321217413399764562156238184427283676477971352387910713152125850793116345179598145756897699187957865267413394827933716847187438310917460841261146664654551607225610540354184585983740257529475914058869112693518769557466894185327058900489543589626049203378668460413403226608563344899530386217443011051686667615290776257435833691796713519195884306867369314726965662901751641842197026834839279822898782743865250058892197036680513723031816978131135387160397733696823406399783071124766089390994470983949380591669440406867815434897479682183542493910479109179774290101387642045435866346944586882051984913794589150396758731978970429158663631757903320866486399607245780870161039442812516019707692355709698066988375111376389428665692726021189237671768880624122230775154741412773244704108360708954176291760067365874537026845480587204558858440110470001396777430349055694227566777389614789337781669999918518455609406014996391438831321675816368904744038969955570033156082296760704554269069644780137556567330465762292123379965287693966889517906040308768038757634280676260250765097452111093949881701053896483467029635342653806557533970599694283025268688833610388077684335185841400142982286145404567225931272007685512571084785746390485725775432632098892635968784441430814135696650424024128208279510866914292245978716316841055831789328555605013362485926979628100474247057443120931289518580268575564785219822477250503973349885805159691481173613733947472017436595805645428548233480113613431337803278319477696460340492674347192038234504175373291253872888912706200062748411631591954646303815713189742448135360410202374517238833882982917328891762404371386848695759067402561168009182466564638125518976321665610064795226688176562168450549099411403659180400913068885823810805523623558387963386182088044394973732068499086147002476098952472733308237029416866892448750567692685856070568760622017030169194824923324671982908560894758580976327960105670765501260028915206113567607268280142193064612597008681229477127541596268488304794912699389716058652075455890959156454491384659597869690993022306284570114899588880967463104556978704773047876873115065786587502739471643268189840198992796818176057564630945252954791018722898623701290706869826878087474934369957151720293932155911265705058084489846616062831125783504196417535250072469548008790892918167862807121671215886249901383236960588161913230825626741458359411223549049381503716062280846294970146812514637995286229926280890188182624701762186784439561941036067860040804439004751841985209478399694177919164113781487146224021339910829163310598962756727803631821015619721837261861841933662955429408299784778897891806414982746265352753923254784731139731599889401757194870384306926930138804428252129070129192311893080266680648669869918493192642613948737496642215347454122243825778258934371528642287496643666991131273075718863931705190136387480627803153830436234988809114642457663425976281370098872823847339727430202510311429664387661843733633035192437505509877883322100489527993726224588917237657623966992116837400775613115488705894019532161506846924197766790369426380864318611446298281428168065715487792297224010346481531221042717088489282197213723995412088531810030342335171845213457627017568821249719896320112184845590012826686473111798804992789475784238370571738512305467769776544039065991911439146843267502667879064570628278117300931764474137394550281110393952137461561452524496875549142800910225967328047261316429340311361457151869408312575154023852867430843810371542973807256602449710593409869874681209907430188050475165306315280356645123652573895519945219318423941196486902317538183761131500774225272328629518027253887082916922206388664500456101123815641760527254271445009318460506791508566802652524121664716710724806798679595578584230481954697772700324600036198229564225964273195877846941845069253060867598025528835624975056530250361576699789808175573444054344892207741023185688305983669780897868539250318169668972043889589221161502421584310788112670164516524560995080296168137812371399635900036119547332785900736614417997329769769014279185209165611813972490307809601783845827041549792097858137242034677981794431402736407304046883888461786126271981611736731697721206221009771550132993291871297751586528840344188207915814529866802945207581664529251040659373908747649017829721254136075539904651532927887447251795800008294198741247501568669020017696387475248617574440016231205284014185540750432563167819930836409129995571194311168350043462682276897560966787404068680759517888702430131219769129777441659230910896473403053536557899922265458449648423666873322279430070855287186658425480107956969934927941750123325378175196457792947932373625049776701826116813374776703402320834119404874556066584918199316705590722290840565172236908549695577186984942925488777456638504431376517393631112147019754144093227913154154404425479499602934957107956166444028619545442138865778190270414033947103718344876458327036726998792632426161590869651323612278374760102535484294355660247480385157139911078764711437312286523502462615008278483917628576966238041073183408851822229429807693660201549805391089178787410795428119504073765261469660047669536635929186456461149875452090397689488068398153832220667240412780437287915778778049257224770312465368947750538338722213761580341554638428534755262961455539988691381410999962041926023723673997513591060266468733204952649802063483971218503163435728877124531114004469897192484436575272685338653617370451932696157836584413190632563353238608056595012252411124632951818584174224063736927785987872673712690014069891974001069146743140944730864187331257611230765661744058208961133677230910736839570028182729471503316345361149784120894350489582192817005444015014718684369106944895342055391594088068399710638828867837769365340660584107284697707668668072098419107318333321547684827691962855522176118923540813326731591741186203292838462806417210806200573639953035561995253133174823874050107556789896220823918532462860095436858559692094991762295559682259072851930427509981775591681802642299250641551306491587869806254841040607579623899928753431593367714374784234425113029689251180669737189357933039921594141662857924806002008921888878905265804268871323498622153205312435844578949642317414088016112067779878086215831520890157276465632622644937626760997638267845154542238075131244163550707190798616275369499882430573263877337011279385064430424061172722413975418221136384511601458866169599560609820517474790631226801619031462943850681412374626045508517686663748922306587512769709857710188431335672668020393893709718225475166133070105590695853769745339242717907581389298619464003310470890905763511823750973158362032608660112583258777413095235922831002678515738241034298060373002931947658893348031366833678834079415227358396403833308438495803200797222160894318173582072822286598298710487666637759682630777808857563790220393920456847957135705804996551592661799954999161238367825243556119663530840068457186361605185659393928449083523460221468205439331720228113113096131410813874879599189333211243173315827649629423515723059439621048858334792338639045879687507259693381624675964289436096175485289292958976988096860690124947115267431230761607287720713663942659536484671830708326357411622191557215229667352071213225406373001567846690461953833831717315378676917801636515060045643778540752366759336675730873756342438911086878318529540091108170308070189080472210036932039583404434216213188605537012782077499995942413949222453437439658758997021600840249740723549034086963958455193846792080432854381238480535730508895142697637247098100097430130704738113942148125897697207369261505074553736935116835419455011184211293267353039503953657002969678952576405020348807455838946424977409958412438396460471627569065231306454516743309271013876580111086658736318426721618315742126930414429690046135244750207621152466259704866420598185211740055126959580926718952830205588434635743493562592105233045987494233775797231137961306445758479207780229540882685947298228737792713672575226736152913483112098682836267894691779772715472548280337563511623759515681607882029598530143370660055370124110394033026971345277382278659751091103218009748548232821388654145567564102628137834060240827015526768381779200229244368652698265708397476663316307661378115126468829118151311789142589210295536145250223429900546368770733362365689341904695663533515180664640201049873767008603719123100137259209101399983784721716219332307677150912679126307368038830606565446992714691041513916583395528697940668212122398703819822727290453156908711849480870153328543660342234099354171959916574094389997135938712242394055163354661500452825402323473551429315332004946131393760136165923466402030309439034023350259323291318863553466812782478204131475624667798431712933726020615087395313870841212793956972223578199415369182564206260743555395008392423073952261458489300949506979971931105570645215252264465888574808079988904545523618834021917545180156916271891580770168498453571702870486799498578932430401140687615984823759720788232383880307440838194816760166431467698156897130562941861060849339295319410284255373215599940584111595416319578905340537751761890997035682783443086395166459216068731414387752086402561756189787735074098860950603948352568581026826902056728396977126130872731212136658077521193305388785964278378203349371573550924295877518826969782462797071121724879165333392601840235678038956363807740424225408565037064677853573124572090006041479276214475779402352924264595436340149649145600246697100596292596178188943854508624062345639069141352912793580165591971974876637649244029273582013406015569373223140662386165830893141174298723242157073342866179545618963524242004979166691798930645734833864821527275449867405164366326488259254904461493122659701772974391050348926790065943646309083466378781152326720854651865800912705652439217464965366351676744193856009449441380887915422661606210447214922108046517589134260257768382118113438460578490300203049083112051401105586199442735997642401839720233323998891732873667693863076058388022098862878862870615970308541328981611169154730512739251873359574164308903054395901407956101792179100853298335275199790778641582276766022812267322309556959865799822435208440371239764246302033203959787730687285764214451735311663836190933872411674962433684191865448743958689770670141988269366461656131598548552945102674785564167115860326178310517516984102838393348726566178685312727389518783723865164366398608993800495582128348949079341744357896628475466682589783957108614594705341917871982215852967267103825630518549977164118095150023642248260911455846330982660648066826984644818625184416023209058373461778471191060099754838163997297103711373385682320945816452199617844049720336926695595439159251482488116552014797983693377299670131802840216431309793721331556224119723265457833212702141870598367632040000371770155836694916478193078405639609998582099685370383224843988468792674598863315277188842654607647329005553515682204092551878675047922199310064392931314222720959151025690450394838146928073700585981878724345067233016732669978110980649222037563109482363604894297533701774766768532228477251301651504977192147518893318925585939166205990542690097247936430032827698149333614694115510698964622424813670434700427834436746119327524860408728349422793008388467662579554777848487620607371672455948404689849838202304267943096280401278765903747940485599357683824181909315945511570050814103003794604230262740872729441998200257128357188892709710741944427183491114291872229743521920713134068045152204617065607659751610379071427882343218265110905712996964990470744086533213791288415948498704892543731026097226223405710398707063928850436317176464446245640924681616668760048550708272844795762207315198728821233477901673922024212681296885386661309674937812202927594631137094160202719099899118737897905783768034719568581903820137793024521920906030746917864005654074046716606642710629782778840348064026757943585443209026429408558374231393355701283610900596567250651891217250312175753876268303910769991488869962139275023256589264049275532111815632296239411611733708891656120520542125400766408127993753524069350474332097489804803344193942541382174000994794898108706750513501662483007521508648244492603623232913951047549530323464755430722039912906657448009606610011826661081205893378882134925893887862371977525798974976352593454562200062398889474431339218896603336243655987725528254178680932894908674311639317155241080432268801060648298927954493423000268181212700615225258475402167465364364258764655958421349537777645033589614170270296162967115817580463336538178313606977644972386605778122286339422169684511319632561026166806575048381122906319459381274650313298477130151441438254530509315423068377327584334019884173506821448274019681120453876473567003803642190410259856470552133967602733747354287087752763725293811582043582740196873972512347203347925036509540284255215448433437443411526619284026644136005814361188965829502723969606934443620406290504359383166089359668147204096987625730293844325684276657603791731005728759356750602774878708285336600490064328514234121553213360566626209403795045149554303122948407965412168861949759061448012317194372107021908951279077311329546948523661271248631896955421352807050948604715378302056574967244327812226363682518619920258794610001071845346420333921660407426197518744467518521544300973744375472095050548073064858787261735618608103369527378557395194230920203665530388841881286048723883648612186023918928612059967604519049315947108409305171110737508763853468438394246154007191343701122475352089448920815564906417527872076693608104081016155898954379137329003251876323045778574147701698041552838787777937500272960840374262544673581182555081394924629004662423985685592536381842614612330323207360352899048589679935464293310731088439243910889365167274485956255423967534966149447505911473360454488793701534347194347966375608139759579799952689628914260030827273983895596771780459193315245006212616517806418407450550297344038485834378813525945911631303356641963928017799510743455150706447430482034042603903161227971957868415525593414803317512805698151111586688242001302814206853368979461966654662377566622456359061790052417852660777016518932369162765088033513483604095324459199766204321423991091069850893334106399156570701343055598540703567646746564743424824741744611829301274322958607263497551064288346423222274677943700730586522222923703014763276847364046563758957498768279489131711696972286605369903504193961224505624956833552412384019416992975578015857501613191526484486679348471039435772143891822941265648291396475292997993769046312455054099870540263473430595949878882559952249575010246493611443281786289647227632750324732950692928589567495177084426477928094667876342657421082510385087031416735103953086851698494504737917814401037843333169672141629156872359368199303498544018458310749934730944997592292030595355624252031867880637009615630677792219893819967473250877785302467852774297122260843031682710599697329206539122222280635582619111154141148825415754157092829813299720912100396044419221200423394092562611360013704893962306877018954456078654892699955721457851115033014978110824827420135073740782332643304355154189430165000317473629390035574446195873181452219408962089573216660038508461188149475731020166431180897704993930211498429319939490015989903183756012449250770290107969482179208714750703514440818746419994696349545041443223895841331216652856138130543372125687168652213126890413389811898223684160247730457620586884635430762293470018348026717679450792467102581467277968692248538172340078379298436453729795343686824030144576348771501613463800563247928756589096366096589630048785530195395836624871155033236024758895494437249420365590463740705397766748090510460377292127489870470299143453560537010141196958406019085467714982388228854985438956893699731101520208183186904596105243459821774161142963879480726037449820753404358457842375729115846066266250395145811803151013138513595495205384769407782346081450560581608871041162553728279352967012631864770223670569081296678823539516254435650287709745249951076589719075844645259460015237132194501365059630253906127347056523492015546063028380388555430664643880672950016795861174886239155797201005719776736724426478981205772698596728304258088572405909474622228404808344822727527087691590170623866329573036331719749084363121832803571037942518086855523038989076220158468276024267829174011668050172951024059706543325042939334586160135432967482290662271249128554825088825191245041528320195894397403504714162900407979571378400331561520503062068934959370401710372972190066564166959447162821964071562021054580720269528782045778663285110139631451353151329906190557114803746099949944250772248009369295293551136590828919823346912612033447582381871047749195231223058628059003153448117839548835984146645447033481921960343293308426229767991944701748161342655915603650990370935254464613847324117732494891466984018838320167496736260721080630176380167268157352937988477469983695410031744094897508282223915975817072429355943882440765874651670542627510414553238606166503971835613462926625409145104075774978834300365089521716691184301092328701908118866952706732713466676975735919236260334453651605737759933143021041722259908813293093542202860195319807923915813979644907126943929370869743941098989742810040203651371262048675609157446740660276723811144175805572340843201597299074457147436340019518141570960885159236267416347356185814355450465910620613365946609086698532533697743789456627248254266717012738826537532000116508385002995462971841691633251358185221576837167230065616013394388468237638486786402047706681320227165486147409305618803780416544551921206583099792528320295119549398143064467661170043792001164721996631961722782861795175613752354521082067524687803096290278296999185777676317486070407884604754689365289347225238737163959416121917368596149785492126658002366125039101916629448136872665171062091115344591160394255512989579224893113864624887954035259932963881996343963882054967396135801506885129553701093037604933911239416788259232250512944938176638682816349115430133985187088774439047628106432596423317357811894474748103155439103356975525205854443482621195666391794425746534503589972375434050522874571557237035385891552687106501100373758659555835418460243013053047651343344522118747179066008874879689898557567497525545041726565245234072739997676692236929979805185093853876126829995126115360747599068497820745802053510010507896683223384622694224989254657393110150146603426986408075633082915364155032911575844570909089329090825737215130190720366807993504340455011800158038379627868111412415509362585484014965913355799311565413657245027440028826351988279063766916195221189910896887357610343633025409493185952535989777002965995571902127182617133851257136692550395843062878764549064250552200112850562881730817313339729766756874453455114396869166750603805057228162617916200590625114541140556285637267234301421560663998136759653703984724006040824714884944325125976170297138952333681607999040642389110022714182525494296377180890386377573292332171517432829270805876815540757262484310640653167289953692139135341397917087218368676961427699073723098044702448377692264873936843728635843930004506224395876836825111833277667766844539982517327332866780084641528506455957078592656616210706585762962260341875373079243798059877495055058001280937410916012536771865707909505437208619251564580695356973049144842707695335519957551706788180530131878195175041928609670626827005773569300383780457261604337147934668849290310095142969037244163158219298671040762187138885572376402291793865057264366774618129457587129884233222230685436241682266773697265119067740721500410776353142849308327085655556905397290568182797595200462334951092494197973249881586060322963036809876680787752910186349169489024701447161495819875004364945531331701087202524169504463262235671671222248078325189268847556109717708417193427747423022750226459019973672139228025265754779872014272032679871050425138184423377259035269699199662240669521014944591667859338866519690267779040414125297442264490745313724512460317534400949757525567603926431859533936242463607752914077687886783469477044094155141066517236135096241918376435071524709396010787171159494613386368799706458463789864569204733324300752051587143045750937826272728881426998153253222403510492192203752299708997376129375331268791134022803523044147224634480948083464867614859045181827597793675586688902257123468424627737431784204777076936427847931183090309536787495548723589353750302735581723721770465620650477201011618328915372060635468743352590995586861264789444149846300489528880549643182672033016656620264051549050405778460463685796801141347836237851935895986757350287416020365485528931156340642819096174717654450504980549394026356936574242654230029311278424030299227627342050722185623736674872009955738682016596744107631216813358364560375480724125290568555937043714431097559339430198038646671256816652425849623807397791811136027965344473006285243333853339685360711945890006675404828870516178466661914617471928674938698399250100814424904037464038225944399754306065353120672777161714218186051176789645984948034332954312612757310928769374011947678851342816364208210489856450994537606406443502686587389298808139152661955868421811001713504538116664273279452620839496463193446887215998250453068150677983417895814818267308012254644021661253738754373560427280555037580579314435516753375358497861431888936353945357925802547950057501021319433235270015484836148119061911464113392254279727814436672836471105411963525707495041771815102247565529496976396214344421501130343219278612011992167379051310227795279127849377037188912490215516978464393943209708053320429250996754068711160537666034693478750473018666048713673289498947499843549473671827152092592888044064988696008793832395425358848353148093255694909127532842075166928775982816862267408237564728322965811633421739364376995494308891050841744884197122866442691533988693135154076359255168723695450592906014230998532193401096087317818948960522356612430391044791732334431513675862589569219267245289462276095440092074831832744650815915520643552027414144598957051398857308775688580218680084003520281496874814980742740176173912663094949721688773324093254150064099701117310624165861750318691994358069172656796287149710200335800603159932274633459829403514593103201374178573291802533202209095740344732756614217026754007886968660374629056538547020534527224601152134803120354450832057748051229454726520932365979231336992077407566675165316792093900062679217582186783169385009582266191787216994528433034635631753264256706372015385680215164426323979128750005642015306960375763144852149493572651192669459909829706306422206612740694539720321482847432456281326303146272719135204354320669989482987387243500179500530400563684902704259418135709865592953355178308295442685459537304444094623382565847250583943282940357172583350912363324264825331466641917685795542043552696992822930655053397568205005604234744159419865131505696572447619291203931042455069819954049182737941803524196397668198094503228705293983759717908584980150618344687226860292913653843915714435681931960815661776444432126563883743460794563129002574029906416888788157144270474680922220296023878218856511122747220366968496297803678779481121085251502585326307792998441078748719511775831654083547762889827977063758322704798575102434613382725653398689121706832515684637304543664138982966499473642942086786050942127829764478801709312287507523322241707209901553102134579157689883410814708957092524883231527003624314900047725633122366523438411868809703693748363967693610768234234497943423448208262359318012645348896478516565775348144861610289058995752890922538486484049487844280803801163954121470659383289022218057125941490946921154268309806486458858567177774723525130762069473866926645610311993994748836557948496361088078237894837047358722718353738107375236438936798328809120404622736753093433285108280370155250129841622433053112727610952626335704272106639260411125411064896445225145700085091995005066273068415448593289023686723541390894356259571254351882020190770583860851467259057903954062663006670594817969258437155190035740674186158699747356184147973602066209132490593915043927367491232147030443359357705492079440822596027463012882247385787699604199618039914665972006736171895417969295653802259180833704353673473046276326751036856244242447458529594215194727894349814366890068876844021762985445769676433064043924053682531173411270578918477828221275382792128305048105075092502930391258534049209666103590494737561204265639751066438214570653138494844224338862019117675019464736412618076116552850411186188246950905093430793743741115188785143555254367805372343535275191722585689131257263817352252958267319133243947304573802199424436593118044591698337623401946320452684653989037677592531109431454327001105867821994614443354936618599051791251067914947592801060468822155249047625536250466575741885760006236680576393124696632525901712307841863016960393220009028178018110380565314905952173506202572082701682535141476992744824933470424389514935611374251670825842189988094624049692347854794873306171671395473052291890962194415023812964257061849258211498364631624412984983898712233181579326544908387823785746673097888408183358800688480040480831722038317669571817724299350121366985343412161132886024856028277776024650034003869838333323084215105049416458848707232317970109793450176771375543127235440950710549000889965565158048776163082201512131122123936334574169582395407549634684329338976529572006288785762976536464699103020854454450106395624559446013860518870250726470059179732669078889195135370899712732319417835480630706028582283500433884876338350870301852686630697092159584189044907988776136643182670052388474721269576382522218525047385752973507087325937833174274810810324575006484090767050226673881652948379734153473075677499317042591730892590292360754524568452883360061691143062221876348207375443835813475349852252343053866847719861650328082560852909426646562021630532421375521540884388303120064871605010211234610650115073703421447321429577495276510197494341506643920771072434923718447530416006027533340247956953835793448107806837804683388042808787177962742594773533227907150565607637686796334538241978802946879210985670009952401273008018051730502537248461153898674227397529615533320794201610924211808533997312157934395628418580174708815494800477294333726999736106739590246714741325881870705459446943206398149905241380001483614380334930693525552279091611279221346416012922470377984632821367642062452409991122097709008123647117907348889796774301515580325063311298126411504888146611618283825047332734307821876686456970263107936239977613179071857106986288182638298318601967249296235653620758310558593551738417082050391791160563199256180800792941685836461613460925009416731273798182578990425032085197409775845331513019821867372068613093519761623767854088852311473095059224904588744707250640391072942032481329189204461591729883502531344187003216772340539400891534295015672213037654798007435667992228576803051606843848341211015461456764172899289800695577258419823746023762288336892259563347659985149974375254635774189059185447778098341229533532040720817302521066605132759518599533046535124075949286187250415415264831967433499378766752647875129889299367231082989248031661329492505654281011597816687249326194449666466178882891328037548102368126395095723310201941938005513008989131133552626423841660905477586059246398545313718436943253892111066307653383748451773542155872674023693577863000776709861916949169509386440107107062026471705901288865851238613428809163381271323027172791821735488698833410453282153815080997779376839178608700933224098167825540316624233628015000256550666128786641869325773183369028447897747759396477709055760704232741400636994027213457819829876691048330938776546486774635624862824797751599366225617631617001472286355991083834667098799063351959304715499036908919351735574362003261146469688097014494123670355772938224841568220633773456244659023854825099709159159131699677083835532798556235643878295790453189383532086242989731163317265484499107141428768023815463690688294128903562474327592557404149563141872018587638711496873504517500950253646223707349470006915531704438997407153714049703501641966270779929356240368875453682846944075542748174618337870042089116265998923781560460752073135220448474578346119564140437278659353052693595404617377356026461014574993082572841878525727933073526889128267839231012672729797771485102242290869532935771133105312955310331663879110842301054192275697746419025896780524977681468756714498950833130220677563363196086659848754383296640840099272071982161559073592088138650155932603274333696663105346699244414394862704068775361021351157650818487311247179677336751269008977198448301922826408124283481875629730342621707260417122797195897226169789852335965490850945394862469439809615011510162004432759958235176308632818128246497646472095997889302423455602755227464884832469603561954353880925520065046628502663456315254185879910008362155880436221045728782120385688449943015263153040859560200787758415610837821599930607629509615915121703505806490071923228813755311693705236543832529785153896296613547308702067747540581272613673358567966458282416439849911130170769465975372177568386787051831593475352998647178586126032302813459348261172946593929843800514160867937404148038162043203710353730250514167437874617876142802226677369309526445188021424577351631907230254174163142998352293493588092408283364931573648846343160383482269388209629443974715334931676506149820548389414199429496942490714236492280979433052665133079400759543676373928451713624481098965423797370284192992147552772832122250655609763276035197715186727072949563373005370718879213212430504425925244114770716581715829452740266865321268032412121458558767118145199859399802597144810882508725266159200257168344288220017644205163407330956330905375158549163809094191331384984828289061325543023122267190747728458076648320223123286932249004468614261677039563375103255569365085895166214958089345648702681854725041596601846500457529588092086221739869088915314816560995900708624905538885568731663290417427811696937244129559546414060461605629909199401667422056419628292953332182184068298765053444833927830222878056455571443948827684599628427738191067130192710978567665714022746734925063754618805986959689104737715103392546052159777523734218727600969470368452736364154022286468937658825232897743442818148228159045494657476366470484127256765523444137946507474114260511210194515863314662047417048686717323796626378907271209476005704407540179053972582840104697536609380803641977748517028531735375497650362205238397077657226006940203627036050596229624552951084444000389378650308138010144561812435851327305619560154331145671704617375492899449136961733373662082551944537117969240917037184983795757920772998951798608586005842271286234962201352917199670558185107652325984584514321612447261445015714446906097157719881987094365276857400767708141004538455889336343729824928623784065786683878872954612436895836636058193245268092634121563216062432702512797043749135345323084882174908531395647115601948250524077336404361133738370722247265914397008715283032624070895836363171443655523320149122889657370858695742466154130967810071201002466124279464198597893845490703623256237719695970656090679580738098337334474068241780294751283612680693143846413978379676039915787128823038045972547357024886921780851421282530429802082090293247076745374303244139667630306526880610154125941116016779242429308228512428158726556728013017133383175053335524669754769485611802611296878166504684652564045457962202653526925132336964747606192353699529999067613627101196674586996747287159518755720898519469506329416883404665958274079022931493411406125926077666376591742829593433984245990168300555423673216076402022340414610364377412141234415652550733789186566531572154629811346492179890807493087276604873997292726157310915867854113821283538781745131035524951875043956341482410866719715997661893509377948529789963919149440927971152180760188334911200425072797125212850110713208218532252968944260334631293299234839358978379556672009322283441010301525414528889899950129930771925251832185988535912828694829757528100620424074771079149420472997754762394992995956010007905578426442403084643991893030281823258995089099373936726355034828976828982117836304657015996567515009548727562168392684215372584828581703104183973739776349706185107759145346598453559081031883519438575361323672412753812580998187358730744770361439900780284823383746407775082812605139711108016167505879279927824182725556387891526495892789806415212276382210854852672634945909417814541109024881742505336150694941871278466479083612160637127787947923074068662321431045553616597625134204875259065484598133887815124055200127732958530177598935561155144214801876909482161421402174942423326960979085741858892992942951725348340604162947797570140394061859226784192130559282324910724865182238601094477068100175489243107787450206055715640800801720521253473834507712938936232582220734435590646266963208761701443818222694024462552222473687005517542019486710940525153135896679135001881887052403835367764719647492256362029148776163239937894683823775553974447863350905724866710157822531136194354370119389204657592926005042363662517643449634306551414921343755420354445288008377370171796782214680341241423125259098635760112860527948150485451857936776127440458689212011366591852305510984599263065380700146845593566562711042299820557849936999445211498791803016736995464365533558051604363355415154009838193692056560076106399496346058038296136964304406931869830812985821447767141573863925289044517263835230434031179190086589111815003808857464680109665891908662439862019785605433586303983949838422395790350029611822857638688420655882825284004031537806000652561704466430099222553228302045004092908507936401950536538446109241785318443950656406634289878508193531406335672161350482997182477273884923171014040695181959279078279379412942421808765810005741824634753749080549845662493535308721692774859809462307250537411441484613746856893331813587218626338543315634453778190040417688192529596350757215800111327164997531196421182052754898973002795551341557559731976734533645187501167100325373971728657951927715522991822588806048852347142069426663931075968870590098277315233456079620522964493462708590631824011235224889555959819795101315704087450584857629203701881887933421764068659243959271188578699864657686925399105009110493261729866366507378384196162964808920650780995284941293020390011113453626667350762558493903212133189568647402663683962336674313642524429714753983599519808119709476324135889416468269041941658913987501531442180396107044542133084800084880402208001813263453489037706424657804931404036295542371178577127705228249698666548375345748422752030144729515639141662838950404976693667918348636645976490023704063109130600150816165126771912947340163154100062426586299001214934561181351851679203288172629776577451625692909725361176128100501659868470093142096118707704033797703110962381760592826448067603506846280657504000522790419517932336590355263875110272827003843610042007522192633388075062502815108467695120670226241231603531670575510648167363773982610342286626741047045524121678808414075505052441049813579812560059834614018586083984306731239584557553573468198001289308337306446773089980182488962215009553877269466471034259476969213923688627088525634780783477185231581737164606209212266430467087091162644982704061298565792076276577418202800668172051423482391705776502925721561034413469344596772418234797195889646362507668742240373937659056237035457883820138768236077718553967691716332061669197935175135674398185254369890577271018118673564953779985456700157640959817833727513251845443014334629067606795779454640675352910111164317371987498686398835054083354130074160103143157939811015140595294308823499849456251649647031525421804762721779531720336452738327786704702201730457405579329763107332747117997075426805370248182858023326734123491665707649340741372071418338891115721309716650607054152907176736278103094215844592185835449400431129013567721589524580099861099167961296110468950191349965107789042582762215973800023439356985348925182270400254683259759675884427654336735629251007809232410525873804900473328942535480256883249378977476284584162949774085425713396528099349275846864732041799285081640464461199791513398426585853838981629198765294585991540313431636854637433953752826359248583383962191132540016863096102039198577553849307905719234250038684810357496664932435252476295875123007330391974268679201027984574004480439137770387413507178570413911395220933300979229543138094124579982637427471893345420396057340114940375149827942174292787503514650885574285657016680454018543309143238766724155045940794214258707256092739856715719135092456972961314423159990982039511626531468393639614573018712178589964713081483340605922601124108517093486716813220473727006406276472528996577759542416934202302656155519454200962531471505634391026632612879796075837336983313059025377243573536708474584090579426667143658809427355510128715350244509937522902802766763235517865998503341763147716719893463052197071879023833519456101043810951689180513869588532030426528365890557771737362645897697033595836389477054685037074375481558507811307300256936278013780035185406313198354320574282939055940204569951613330781284990029332054731100495034106535812404134052592108885972074928125425510175916958840106872320805223261265625190977706382198249639655711237381027799843799921941823954339872266383072946153893769362380895553281414988541962843627598003121539773316029586101061481860505317417827216795309504769958180980675426510883492487458380230993709526554532405485557625801757345031754378108769787268266961882175615353582246547600315865047518987414241955155704777245585899001067354936536329835585878639129847349102068384215296201259110947864415198070691290564071497895357839668211463916330135419843812033781623300392920430141795035361231289537789931042231560828793229027863579608864836471564955929011659311378500980456615005620782803243419078108164309764747152820063101374854858186908280528861426390514061829799442221562115504132350563508000445684019924283312905521720967611808443732103165974685572474658928120990867672416778037570649006741494762451994627925886483154901645048561107830826261131677242905968406838850878235133523715321621013367647354982255770485182040995769481054747861698513859520527864908651187851829817012785527780342679824829981856513821021630921246781699894023523230873174533594278038663497675099681122669576049008848724751328182415412754940259242844444074573422256347484188508639336443598750696628634387446981853443108350674792183062041850700490900483997217643960338077786185857408555252399609056712226166159958790127030719345935287763292364013448865821601490296379290485042481081363176622819480771597577694470036809567778231665497157782195286009044074547725767351047242730062572185545802290221953915792320783946886139301888726291640354851156348009752716420234375590433841096910545438881874473105862132920545273559857293659758886802204343814566399968384682389391118680355556002601984403021857579704174087111713747188048748465580220941018099376975725161749402302328096043024259476375323835544200483803741079854404560505189091989487621125925565941316217726195080254899847978987553348513481752960572904147338775873222594565591344192430140181694535301971137088815377723935692176868195957283440030905823830372429878080722331949210161527475666740208990044906625994152067089732980944586368004306977841364552979201167696551295794992789434478517731922601453339584909384908426962720585710492551877277243803335995137762839492283750134764309618622716717569153253348380010271067001895652510015454379503400339486286924829688541463101466532097162294596383857767775226081154106928466358141984686376882819945131650380011331230430498496052231607932508705971282452824930009166459724533119507657635728179869917465190724551056286040242956187812136080170254845573385161678467466709633919591011330373842741929123146518847019211558141229299037277678193622012492362161841446724867090302161728020831963667735273437769204974820526792598480601784207058520317561239133929883109297692352990768781604340305985283509664370012630975115069106140849988526062877783649816329353480108096336321673246922056464381345163031133338404209283659638562497797318210064668204856319934796264291703299312330702177069149844142250909886430635619056131987473199702259994495414783376020168389855831725443714352940186660883021880244128106079820958153383361742759266987876928916907429216243585918944705176984637563589183087956900147723345622165105961518179928436261488821274785357605104466824690097955289723491074499046099238240466684942525829793826979631649034800494185827599379199459640091541702866312500290002329249227707896165822756256714766928913705364716187055901365399952926497899041414106655485050229134835081494979919016719959726794913528596844183964977159447183927258051474374414617490624854553695092588664633812057178683435677584268983150694058647411749428039132212624553367152775095026293234719115692895248824108851938288156141752640587491532023685922490123526763213006645612540378040960432753562412936660733360909554844912262590406647545072069659526736725097486770551542177094197312815796006803154937027558808563793428727899767610463218207871289301941638997190852282284377397676175204423171450932083233516234636181741845184036455702802948475682686997203935671113298023907330487849188908908332933199143214145938967683711423204679304292987577367746134979075883963935015884858191735419362521729805418894490618138896760729712545238098483798008797731310113057777132134623714256143861329447715246825684007563543026230711092266129476404084685067376944426105032981232356063869042918107972497676944409913130124602425381309120733929114170869682849042095147052814234202175908074621276961842128577827845064007788018839543751001280328869426633317760518530669564777868389796917718617724541547695348483205627456590373933080117273143889299391014195547237678955361179261224082793598250830116253041084140507347485809132149376956500105664000227270343656489889682081784468685283063579014351954295232455958506816473390932545441912614834934214426445593912069073734102132939078685059572223789286636718673929869425618713555614255956612526029976466883305829228050168218019576871587082480442077124694307510857229894151856087732572715933091802817379902434020374474096454737728133853991562600127615451656271200753902931767191527738296922113936031917958369349496311545924830506293220045817399516369056275978162376380874562737103615082403421473805602347136579724826902514600185329753078267487706442553383530258756198810483196991780505229047307000985391495446420881911865521553434716858422092840125889796214599701606617662957347680077265289336531861279847409186816557950203844583850078533288171499959446258662627858682392842424837095531730212194072727415549317270931966229533046538731011269231939923961758224942128999292946760056640097754630681015367533338481035058157003978490307139296386716842503701868132298738810927360173395586056138133578392466032078590686353402655984638898421054605757257219104531405361837056295394833709342690548077688665227258112127236086466866430999309401915777382379666076127146537966951442602703185944899072198626559837611819992071100737651502721701854584092156078362148352218341971764423640632064885692809252099651188234414434747045228745074244378247076422469236978453455165142341381227684496297399158606413726302259661120572999422840517110856328003808839725858188610378931514199820030182028606286603564310638992883785735762025863618338443736136571384143432175746918256070253245339039802579693119439594640420045252664620215710861580875994316824066736693322658339786029069827980094369556438130584999385357735378395664708093209213983551367787576720725765085547549595951707783780869935758766034743143534513179602620995011333869541923226074727674837824462748357798244991761085496298778507960424316388067817358396399576196434289996519322135696744718539627388843756491045303514806706351634213856004419619094905680424177663490180977879128978086716431020994931175957189028801155377415746799402067806788966464104885346418521083612530081989381960713829981609142676533084615051049915390155625650104738601493395392995258334280318005684080315316666551362336823593053106207269967358456506137945133551506755206288345948756513744351048417658084990295641881102662694235754003767036655165276200218953756887030772219469720625099083893611003328954861965114087509066846569917036978327053767752080504574129781439726141067170431855824608431322422615821163407437854637379441211647828098174389599839838355626355529314799371005199767083102026973687855407351034494406149294656658843167394115459720443943735788406086567615987369190422478261021301024964736036577696074168709220823347859283339857646314191473844362529370529809327245567161757543208356892380946043963938883111403754127427502285054989554887813988548120212748698085736871123769954438165776895675505871648799797011738459442608534614527861901024816933107126469533266226688876583828248107125608920795181694688383639159419654682266090281558178033896656997311888630089001538509885298441067140520766173963539131688672862254935342053238476780160525661622257219932656411812822808918655306812652554692908504030541041753431676611537206746401528738906897624695284763386219903037971333092520844278085159192487282857550250655353188404772078809234163606658299971957363453448792498206494442995694824113619171221241897659552565747468428643469612683459233313675894965988105273003618004560449357457375418093000505604672774655530522756463216572242819473946465037733002175653205347615261415557751531961937920905782739596917502519576432219350696632625253851669482255376811560530175356109734462223337871919905756942119863707675883266180874428376190151906303378021880614923759222987811068047510200126045621275420152549814390698535662017515537876618784816794149745752168369100308521626018253392354314266756673433313809434952775451772433082790636642315376741353290759831088866847633807628332561424609857636327283949701023445832383661537471818726426002813579480593456381892974519101473990344982510536435443777607949627868993288280255149347486154213902112125315238647570269086180134397047957115631106176487398977762539205403136845288817144460023568406097080209656212908411134861665637006891003906500478987362113957933246370850570742751743478691822255438207126349095928907443875261402867348258962233775940039245236803125099307642286110727265672453411622272367195408720120739307779299840824323977399672056108122548072893308039813715523572500367280561682219605333605891174665581926514582437181728704892023127203047564893241645741212967295517556767825848837031118399274672696561126032930982233026926758940567105216654030873811980199317384814229959971939185839736769978433718449972782847639228716132232511403227563539929476753620801045277321400305934298954025055116993467925434383719968844898287522659306448270980121972253650007394794011822036942284477640794389090834574615432148323216262283022932931207886658023899124715986860498217522760422404804239090768458930199899312467651985142237368420446410984257772187202890238993900388434471454517733438843573208813754934776422470904457819629971449290693295863434269345011058261242944288709943941392046391293743736135801693313320295451711695611321580310854662594904726674824484532979051720561482588358906549396555750015985992113619437221151909605027485551945742413561680802690454476042275730823745256553360464180507420114778635405649222525830758008344816094412703565910260540661901599853761804407662171948887014599820752102829122664649912018969330349560821670608620337185611303467927420467954316695645363386192307018695930567265203259807191770435726100193888780097530910041160406611670813219619119789791070806886717356979058701724911386863894802572897170063840952243542044214904248598644721706050712986022084237482906395294389532803351108016127672079687037833007691736355492215655359219416285511254595534636826649098267445247178052743283424725874502001213860143771912966811376571118176218679784598844002735061975238620934374519161959576351961034049660861679228757321470826912026622185862352725441375241289520155805965459413326434926759654818631285370427692848735151704235513142175323090835634646637658091052244616266662296468361379485936477569103007771343127349193431944725615920169913441097526705058856615990824688088397358804113435783597600544006057103650588555382519091443589361775884058829235984787456676514243315869542533959029725539687960732275235462212344175989196865584257887508190916430383217539566937206595633237969068113988449912515380755814941948466861284537080277783747508494333303583146689895212128016893952642544045816045343667905368616904915388785596911597667794927561440057514009682836455917575346728232776503396733480799467122156403403871826485472271859142629580160268330430304518707083848931742021464132398517584325440276305707232455845946143991082546322634925408962448107790375266325800988362620486737280488102059638843100050638629722552933023555558985680082230366277456761530464653786560129273561696565297302458363223274803759379651235015692609191111228708692025198324565211271149396637455499877020638162322666046142436194606519353264172614662814620995699374258553887267928257006996360700543564797801647950892469163559398013555084008883500163192576808361541477141846123739196024881896644862696829380909545261541482742787764267704291943373024952585839021721259618637824676576055021119113589612181156443849739002926282542507994468403315710724904032234989451731387779097313092081203665021073974775746138681788789519679679730459984193992297226657842115807274936979498125944199962716956650451136403668904952066588538681200248864329530153627831561871597152539610168376152293726112707027697048896043320024232326383894798292608321767595692964288423247337711336460840204906049810281429755694867209674993218291828425417080799927413831368657225797130206908403844494866380712861966902170419193139948617059691797944230229786283189342936586332907423518830067386983869054910173841111164898684674402309383323578014364746243372647175651977660789751730029053227208944572220967998559591741138760118282117913340984088778391951569505619160379713930562232468656951419055955520415941951186673247845806160356902991560132487629204104597995732910905498612305333403167416726253545236832231296973982100011684475570838438683446591006771785066360975467422927579690371328219649877878918991427571054621955331616765136901324078083307504843966144098831868001205133661291721927623331101087479055925452173256106948770950916849777423989864474457821889472372915957752950333573727469479317475394274407339299878958054123545511117656326049649500347506286419875051707658059449512554018209677046716057716671699985436504271250219526900714933106591663452458260587942828714702463049129801622157219136606143154491017019123025272399771305917334815170023414510897908454806985737688533590246721338452459938712228227596440220819988877344977875800968480722595999430710515699103678667636565069259794446432947791721077434973426377911034669226122117424694824971987674896575367741955959834882673667854969281823543375865710963746210162274951440251971521890816600831935848796392559857299204310228535663365843556700735592666195596545560303443113839805577534620760412537320172563075149158408061956796744526809302744785713612994004647035510899587260825537045914487485233858212267862332333623263073466051634765646629578925205768564477562993858230271822743865669188065112556215953081395759273922659499680678596312553564936102996739133195593857596477853353780555683457432380843523613390196679543935078509233083298777574029015445651372598953846095452265850879773495641353084815924467478003461817291298113758028451991785869481115405860252655457982581446596434944622455669896251877260921608819322764373981888765548322906789279887780807865378415381097093995989147929451716716648438563824561920547559622441032553693129879769994737859415996045406785404301174417661937995745452589612863969920561072239480674446487327742271608853113177938782981288721458155104438253782379827440385006926019894394520370792277928215305639019724954558272504299436169914117320497258780627470117161868925268213965761952873228940722945653198048493099098210098485080617070827072379474431252682649827599718216411144710342028620002304676586092145061463339101045038565414446567610970605369228073950006262295239898550407150399996816370998517656116666984048824937918909008218553364487747105237203427831655175765067254751806241034877304463494342192918529292360677783830774766691256972728573487153617265524245043966985472509897710741677140370697019363273757219430033303642942723108471479931088660596063005295595188450048104934602800328190774052405545306546678950861639953988016431280349968913830590519272855047756524042250337743484496775642658269413750850936611331660089183125643523728162527848017452808613654449246783511981543906659237235801386982421106392214676842641667973251901046896358662421859606584506386457661787709981990524116086660831807187546286776256869895231750312350859773241898486466737831390421875510750791924422068181107945947363375418481026571495238439659355981835398026427196441102314690626896774115527372336859147344736271414468808133580643725818206247196353764481809657845339027125427785697192792799952829987160005198579772371048853671103758082950559804500476805646443633233682453103942945499675930183143090229168246344819682725351749338569290100005504598598306226190729296191984806803964801715289228378905375567244703364176610167001243325108434653924047128416021140194044727979290819084334984146216855263509467301849421038305863921151753087719174834167668986337519693814413665302910384324753243115936528474264393706808750046563475757694198087596428676335252092910791626307323493338994593723247394454597538493371297555259459090582869530401763136407573895848393840420516925592193336202801020024713761692100037899931235254664109041989651593740716626280635215200249188511380493933202693595412044119457007892409556874980561023059603232870842387356800764205733553093687435268507101850657177697073798518484062477175147159625353021217342657182458972261262092515701323560217513207573986815072509185683864419493733739839983173968426108432503212993652071977555454077356016469635016720452334997937528651240295258990481869207986034180893895278837099212337134068737451085639270006014597807482744204530114523996315813821428163767323365688545325658277936520888525188246581996955196089273181458380365443351288182943915073427137745968059789354163462310104316274363304839292102098519319380869663897125288004565499260683848078343861333955609101469645351104930940295478062307137706463977690540319274169021140970481922697043960038019180665048588451069955575954278772442205082904609909851844374761337052109664360871436232003590600407468006501311105104550938695666668824734385598908129797734502674177782381094792371944307215668491887962419608908233282151373372776493299601142976453465087511622516536396620744561405324597346656674895016790290974778069467680710657021539334661346825338425640716139203585315084422200356450089421123279179418377919707639637722533758681081097601872987313496961212566563501325423529703319305015358048451098685889864699457831683536081632785243212826504885152428923582911580619904447380099879460108588532549374849994780705281903789098555576257833427530729766855502491586633808111482011093008840837060506616334402846660419657056070169222679445606675848784815437349058242499653895045183729118920646754737164227058864753287808035988438189203498905850193839537527287741626915083298242519664608649799192736646425094778637254915989275928754093410523565364096217000417532163804137820110196717736472175641401216377603394540053874663677011590816124850785076566253231723018497652786361877163876622079274692612934347222051985060978568460938183771391332829994048741399175368533495986664798893354431978940771688366572811141727679658419951521640785664942048791900405611745725210823163892498193583947039461718835878133285185809732148568375359777478371695083760395053442687083636792830665089110740307890489533596521520347444108955640214733323836792483710376431562414651116607094786285486841509397067561720875837902675575528563863932824806379398015944082724468984128035100217368262950356046331844408010855040736863077184906545747104830193923699367702127591940277563211646358046842185213176620390668949420852311447771728936886223163998396063082371083352643168527218654019647938011394305477560725957306850390421192374818634303770387335776693841282344871525570130787336529959394575043017332323322551110608603107714933978461085885145768226359608882726787176135701185963960732857780082655353977507930058082391284104524923250045730896004588395485335730426345889585645512620054157506251498900800766702118614837635766995876389681296385417002090059718686746840969667037333792413150439001912519767898556960071755222515745153536429863551980939505226912170301862503954722262384686124050849211858627090671382682740814049248093298434779543170601604404435990451695906618425909186837743729947276548091247358837767449253404601575927629761293005436773707424603833653778978139448758231507539111876325672069198880985138923290221697666528364257687815337597833721425773908511391881998457796958495134626466975403905292765564758305611385988903164409618753433752943045527709454154880150029006234467465528156849938507049060665593843134528934908763486338465589282079614864691608045351792245780293228244254258172536397042635743863295018881513643795309418723887038463685713858696788200485646097353556400329539641979313194278345506137045506447756994897614516741447747188298994607336977310705948649613743830765218864469431750855990723204507850301982020112162273108193467140679904656706597354021179190522829279863953675864316762000988040173341451699461847494316258661495347490193593625286370274048061374068355692365690004438239530610015275950370506523655097422235199615822531303984744702216530326928520399365460433996538590834002140020389052630962510945695769296404603794936187997373038208699741985872409678683125426087515061592173908819066782657555745158304705815278759691761309291787112076803099983943801158296680421391501721323579359561995855605555909029053541366957461910347892355027840944237149184228937069617367434882542241798440466999793792832164591177810423777117314652504762826598913617317505321263209844636553140720167694927061573218697886504768742062469500438112367286006615869145532370371408563472126372792106623930381919057615804255113319635459030660894330939733224216567208684883789043284516887353527814528301475978333523642222464914242776438941225558466323540928536050741291536016467227115608536312587797062076671144289872041452298358321132587356312533615358568311600890848914114744281245091954517467211599709330815365764377915904100592170401480180363329032453967052924839307521924418441095558122098493194228013685894033295821376116167014464141535308982692229601153815085884121141791497471440742978448428863033239754311919385873938999530445492991843910963240270472087049144944208580536139215159352219356416079770180634223916655979430717386275996714945198212958457299619482388435130353438255879437049386022659361347280282390118354524312880663083096891997762794323985770419745372173063630708145837363242748791043423734637337773157125458484985568233846965006480663600799507701296737070942591966628891084377098711359839827232317664670832437101134093542696624899590392961500873642197845592664417481612301294144337333617744996187694880845445031759875172015138685511915472119288583689654873404463390564631067932521402563550549609187150987790064076155297416557546568999781925351007196994395285992334199999342129873763947858349902546110411433373263030460109317251613808968510900073493707029349187708706902808255011196683020851484534169519806325824273409097784897697248003568285144886433861307288669297185482346381755410382856930747467720164301901853890282482352348281034196693028696164562626580780787922091199758481258009497136856896399471823334681620218510861080419501703325626970022682093030427713267918680080651552581172978076051398274534470842848802648154272323904145651629779264415714565341551206416495052723974705281145870440722739108239193886892954097512872556817726914785669807300890236981037516154655521084495023451156060539457501796381805235302288399378289406046816959755472702338740476422635198331792761755343621182769665302286481330657871637164796905208504751812763532072606302235195301244028355238082782711113092360557909736353098923282453576951132998419900418384314595079478741201291409522156916454794550484814844105876640765842334965805797902883867125696660018151825671789016851364349518951867324100025082788762187263372314381889250885230491100042328910137304490340842898318188668409058689918283731252782455231419525482199578975903334284372828063223713553605186886703696000325655308588404923036473425665765085795378830106581407361484775964075928559600712621132371110031594893163974952111231963875966122194081231725935349992362805104400398386999000795222000410058755749272956479256179421857585778553600309942189751409366071835426252329295953301592799142251001573145317948329379751880779843004564106190986345876977010846587680863976717978348477436152329809215998850088097792611171616270427146660663321413035638886746418583795953952959456418950320458179157717689568407533971105162470114213367337388694398915864840969275965346239684727479129161982123528089508382727888054668534084729161738290132184446107545943323167455489805312202537563461982457353895884510787445084068882985198806222461259120997953437565475704824545726280917398536470545664532260474532199437717730221560725745440281829528958047146087288426787759572655955586975940783677558740157210129633929833954453108870600811561222268212850503170570649971492617006075036949702895367874711596700724484086901293288336863836826841802552127654267749218341588277632175525683406290315902708065203952757059460358524779593720447975233361887050995527658650900085820395112612773707596178873302013959378760466986036365474527457059055285890252162313217661157795321241529601775363925865180180683019447868407156248853912827523396282102096420698023622030754086428635566446708808103961496039644872788395381955202084819117190811665363360846880323322485867345193644613748859125980277202067129876674780961969950801787659948596427026215704768705807438118269383875514648414267860978287238681614048827807747927345702876130297599704613573028375296540908713591613442201824557636933438252648765933688142377150944049032422266596120809465154274604453288981374597344611209669818290309193005979599664425054676186012934401618484310850087555613286154132040730373889951857404609518749416128083170778621478577636544607629222100652763565885696202533198885347240961359328285245542615461399406265970885193792234151792762567333990839487579845023619853963716538741794722869837457235595790048023558576640020706096641123149535641305400318284337158900755314530400934104236030254466567860222295193066256545725564252017356459630436726776565070822844430462310469593101148921383384542864909806894160697716785983252554778914727191585925853699875098901096026282805943723984194693235124443627667167497608217192815785729127727601701310706626977142525436546509564064979112397886367511569441455945216973172633499230472670275462686556395595644582597050259338729155244573790574518309797457496455511545548443786880822511655768016605108943226910586335625022863436421651671056900848342975295255614184289200392948889672971152122921997409104475345146813066972155980165526508240440269084426119696812050260061014586378408077642389726919188883889522824705575805430185258768497201676213539244389825198369184225131034044619934089755276066393179612535371799837582776895482943735078969086673237359408553684718746170797091584269244005638096886180624335440726361559602367719057562306941076635698197204437839897270420313914447149248652685359351645693372131378143324259777459463212182244716604484029039026549152540370304514593511764975466079402278902143108118503736412029888647860083347456287053901942297970080928577573609829101903938795382294690084792234394597098353819176530167931335435715114367744282836888574045618863541463258013676469795108335267450573265635862560540992843490549449000974463019319534278963334567756553387165509338017476983158129484863866970132067137101960922847151992779792708882783993875463187426380086351941486479701340569895004083534662530803618995546181723373454740502522630075410156656962660620573381109706160625321923101383748048086312410680461943859246301323650609095252727781737257766027445940370874523003685761746026014208443280548615708957235094998174819982290690449788054776657423689580095870823724113544696489577592638162491328934270902218782906100688974357713769996554737229595706828725201461549900892195118218275087741578319392303220388837503968292422674771506782373127604244986196532569556780076964555560528973888028321665148106345658035498786071419013725970644018107216096247226064279032488674411584724526361495393219025586043690503001389606842261246821273337088786864775326368514985848746791508278145910055406511513223580724919687610134987847290624078665298128378588186194117782964863379362377288094123260915293825130718563105868054317090051340747250739573669894983300799330424149869298220047860841633892464562195049980627824647033886103350889886644497076578658089768652425738394216644078407773375384816139906957825532565277627547364601883509096845623298275091593756184474791592477667478547608137668238994311453668013380161802230589872029392297977021778627193691312852213801072593769926323854289371429995005866717157207257461988721908340825523161406647844604255390517698051073518474074092855233506285823599552409755367125281982096820475716762108108772204558616042153591309370167890240346525762817219619129048808966260955954993442462459734119713571412796452300593636522293978356121676924290990422734330182126964071523252397566511905363223514359396908321324689553264427276462405465846882104763266836354099502835376765309703854544265779682561109433647884196294176820230822770900124518771667241609245849796458514497509850478302493810814042218168208756287797837484177223419340958575872101525900080904484985887131467600056321782736559079532092531056190873117128169878211533200075932864727452788152099685447254737575652080770042616369220183926560272122419827689438060403388000975344436423746005671227076023730213223302827130500909912748390976955655976217079358102786705562979732649858427022984675211047644386385920934333877654461623254448809663997492444464326271277636196927514834615691206869182827483835215764010942837916507176883058208568291546267423077156981170079917557872151378483589477073435004582357019305707029845444204616745132347149119256367930262987790631762450723637746180423897992889162369658980410016805185017910456613073528716069237977076555978177357331461724331408307569695544912299058361429928604844947818966921752879667417944745544533749766974862479221531721296624405254414962880484464396347366303275880264370602167005749218206809710664074665114832249206147708576344291537284686968079484449193685373383449684321854191033841611973626929894815069644968045557073946179898603855642330245315552859794914545761998871903773063359284592125460354602056217764202445273683105937437842573283451035475449382596332927842941421956717176158826741819767243070956360506402612736543923889984120017981789102714916500181267893053462791653846810001960698706827204877315939672945140226748442844254818621893474288348475874339934627144890836810715417535647318600148275398203122678069904076066041154336037666055107179639359903385131419596440638835950787009001078485672567139606906690839427646453016027376112078889532500887184173956727375716187001305680262682498950405502611634759942151843742745404397424449928455715718759926729787864654002100960505807474489387872384843813149417458890404368422990509748711179754704750419106650603403056376863905778720822768176090608609587113071053123942034255644596445120180051602192520351408453590191434946876909504681678351094947505023881614498584720289533713698529851972717140125722179059025017382851443104761219847063769058726053174753313116524719873532484548298362204938749279415763692503314949158154190533830438542956132699942110121256202742995271340490759684661325016965582963635261261456363983788073067735424195812912053791090090976673273773462750233307359771888779590508308871170693236983495187588863482583924088583213465481542324975481465053496044331160028622740435718515320203219813246559501881930190800251336483360661849723753696767391362818880971997525425911526653239340957640552390006538416968907601583663586245972198889458965412306972435270237258750017670662885918100213411716254105227731665004192986824169338751191401145742126471692983715938736307202330887283980456527724866620289853153077759273038083126704288036241111980880529867170821201016190337612186858212454794689749695599106789462320341161835933376091067210531309015266430653366261660398996069153644988030217897843228463869667544549577404698675535588136611619453566616797306535085187749680324072444444955590582168322521470643265185449390767663953172936089621791587565011073773626912117564253833851745136149253213586761297534493203253197851334302717988290903264170983986412223668587131746504414933180582144396635223009891250939030120941005410154094344224242360194090564124817766558637788618047088751992280433079346532050379103452448917027566296406057904114942172838444354811101754869875630748008461828888570436105268062129091713833984401940986384909659451778081414601296500898251011831480945963911179363213958388503635849904050062652314442055991431851579293884699273557478398327127715946296224174948454689447811338363899026956160328713320709525005036295627453637622075417566247665406264495034350956164442358127360610131643635948992959012042503155904894201908668578661222384543082715372890279204564501142205502720780800429500876241276268124446164792218913547405201124303266159595839548969618580417914648185569182949478096472616369184168557023625641605425464517358173064054404752686390589224064115045382629267479921886726311163363446155125400806717690758977483839952320591577658234820926799376172687317546419513351240264846374228904137690770673463248710020992653721807581062213386123398057832310635343597604808790095354511404501874291419003834630492626164128484209376171147114027634193551456893673527978107980666197552144053728187856604694976706760201051713492610684238245116224932020431015647871231854281286633068230205440315584454376879443839663997384415546318370352868421171007028441205077042802663818200853306449668355260920966718560386386499033673147811438740353788202450588831747550713924241620207909133640625330063357857880093444927932205699234263719759430625907217109218963292240302917421229376108093435190764198861353806998977951960694220889368734050055612500778065924185282604341171087712318242279861843628247042528512442722958155410983431238106752698349305333963202255330519013718579071210838003122399078146987560259573120271622013120568281268495333839885504761619921253129402271681542547628264467731935050121328443082831114887409857776262849068247499156794714307780303576434236834754709185347001342356138483559067228813185207280839386473771151615048080335144066030794733111938440163372340179532830281384633549967729445683835919556742352978003109313207408402056101557149496181576079347639817970318744832237864480911993758480307496630237765949134922312335700283955607306452536020637144093394033880194208172235045001617396473167793529706509123153848682126633569178851370069371880481361586583021495977245583167220271794219664972045630121046465233605123439844605345215564088483777418359693372557603698837452072397302803667758862744031867319908119773301324738127303314083249138978418713267862735024295744494250837649927069962522051916844097335808852702604671443569152412022964494210906930172442304022458448265441593685118345100866999079159536918320431037881639630688351598600929292349268717556290592137555222063821059297965118827417731396047964764937927729705814789055928897742488761088044730422285923791176020640278475007983028933781567458567606038146362018179798780875438626836018539346645625814541275914125725287805865052099932618944086009310819558120002591116674124257860999560123410487358321095189800902695682502105825443807470784840593149649181976495528659904658201938747286411995087400561357473495347476014347358728344254765052089908842366366200301017124010684755806797234942536929165375145284899581772815146505002338126486670953163002073385456039497965401243301733945884242188629576113606117918125923152909910994153646398268500170491722633207180142857118242512388659900762333840544505543960189450309772734143508868223073744987947153032193337014867130811415680952305789333128246167161298896188149273367589741974215737967062072626923586110079267846707888012212248774931311591562811406861879533445363407233063280995714463714309625189847620263259410100978301855806542899731390725139559678771628734159076915270379758726761696405261064205525971763235632402978311229597150938726465276244866554184215749189277260321893829445768030264973858041254113703513013173499536699173055039119263184247556670681185023579893860560239064040510793082853789882211776217006097147820837582458523952620733183360464180985431982848433831439117366672359086829994044809694122463310764669230431326967854017280873970663171336371513037301702652629859745556344570005904453338501573097245420785742975924738490835825585299229967078377090490746375295669644710297473032447504659041277008253153747073115160597598419430636652262378809592133092496284277655929226741368585519465204724180811298689179313400928022825801832861824148458751372963334873995094692633443053809463064199462278863084323328085399018638754618220442782131045092433085730164673599751741019723159634771150953745337936026585951890690519676041105524389884121255919849843630207301574049640072512020924185994549818044474753365218180961357493484755429388816027767393986213132107998025523210872258783621250825969405221954466711434232841927588703841261415810803768115435382625219541154283189861019651338034281902266426296344111832268185799462817061737430674309819396798710675722582852149555463587438002795299640829401618043331744837261603017894231561634212490634692304991844279731182419399377668050557152711755201513475839701836921017991006729717814032047178171917763620074637495158216890896620501750716950050509458584478598464803174503831439637323793713555886344742453338914594541165502029691279253260991863173256197033451869049305009404171688359237413718441735679458735973041307361623294951935808927439443791581596994917464234812629687840898606322729062257421926733028556315897918627600911414562396647616053622390274670905434920166935546875336183242799862264145956686298904137307539373111756014251625172641991471019802387692498239298308467542266816812099533624725689254377662339535417169474512319727531687936954563400033844143153798886265072577453638221839320075956054608474890472097570784207818901942118796399940677173022125314195426655824621030227598704610495795348564633559875914628818399547044028524864849260827265669038419171326216664367658240171188200665691656306393412942681715855878712823883701032712665617855558878304054427797164899122023137315452463417508372885135146803818787356804098090738042708335065953508145963188007289006070429185278123382010606129657602134821401240849452367870232264131276749985389970676743965969967881725550517947269176367038368450335400121236732345706030218667138254111784541204595338551039479669007434415390174360295529827333881161598861737439779971446148347959177780157177181101695515827086834547019742937614580304203534428131030736768236928807159600257450878644871358437696636725388731632290547185599895990424859095457870886133390203108577662704843472679640651223808296919376580652111627592456749386088853528978192897350468389279246335200746135551409658439944929109956809974383036435238040243054521074094308233039976101272312476466020238375259747744201602338124377120807311974446724565062057084961088000687546371902003580969616940775319356933856961150482075797930343812373086114630604922440419315960417082515953385078442168736126021683321523575149447396521718563816072545657383817829940925598303740774358811176316988294143946227608222367135252640130118068457018720703474863967996208151569850320318788865899294273940933563180348259939199124590397252439076908927735676313099058715500289484581507854738241801510269894307794939972620734967622476914837623465446770830549488615928722235522750267228939315304388588479948225274783865402574175409033371284891767484526924888187328346275849680114424586748834661043199377057463857437099611417534313940781029312866593198497865051716940040442658082975812392301661303871286751440670625167156067119943954672762041643239405391059467489486609099040802863317273289761273335203713540280180519319241762023522867732637978486491028441462294819542219423602131422111665137515914154884082547001489453214380569034673263765933663693315777876703769402694264391836599867712265325000618045501536742872136637493805561839620407536926989863179046096784179992848995617502499953519212054076738413425085840151745179321866260232617290198919760099367999736729525616323305665292703384119694899781924900234404687448138846037281153342316358059374333118812727905433965733025258775280557470721048319229620179113893773645856820418954636179215659932673340258461150023079759973746231095377359841648472677930181186786029790101150233973783634079928363615251661066700313290013456089353489543752653498963538503333834536151147208639117243771107714955235304909937670168678278344454640887035403356508649290415080514709488131429800270494132697175537970005830048762632523096948337258175004968615863630517160761016840784550926689137643159283702096153201682703380735885226399015561136674861735105800000059277587771416124575409952560349404067911515106170608355759091516753201939458186431499007840516900843208756143162224457208933070476864889811660947767712068220920688979031093048228584787658027183719339975619820965527302573769688821164378636741212686383908404713990365985175158081928231023389791879688711016569323177072639312262487059395750426071578027438788664085419321209283712487938020652927491620544455980656103433070507777948565515414495473492505710514950353702193919277294448104711858145784880362384409822190614568262805096966998454977366564908301485310761345876683797842356015039624450605540665712161261379392766091529274668109227489443662518648089126195993621485226792252523890998039920099664552103094420445899991873964528365065671255637809913077090410621046312404734048542852615618481031863381283076081737320148409411244401986262720360648590503622257370413789639659019501531373138988627535538826598930997985961631474368793643041350429189958616776611955722833751632342513149022253749446259003747326159183618883869461077324945903998753324680383597254929128002713839409767295008986698520924046482162894880408812180561658343817839627261057890256358482592847928111265650181730342383764668761518263590796168632386433544582005486098801201693139817104039268141274735702591596001080141542260144201435012857187671296793252447504939004902062174808626780984406175235618801860435951634949932687947638100013604077215966396419853080341539555082367528945578736918738673341736668285946188277628681325770751373767398089193859980115235330542236850195320327723096569508719568075059174912097944416911155477556753974785404121688879853538566379006041496082171782534867750357909630166182312910436369237202521213808901989103790499907260167039859566490346224580499543819350277933147735253146427359550780800271624713958898408692151025941798515418037943196064684624909967324060556586184982722820948616971188521740022808661169907762994902705650896791151343804749152800440492907399741756156220137461923119371254024490973200820752550083039074272438653183097801955313186977015352539009892835689073909912773784927059517436694521391948510540195560693535046243225398996383331648406243230326034763775001447496939164435434370777001402158558567923719935520482442248903757031194231517650248143849359598859404606939194397216608265026877278030236710382427483940292493765212618564096844836073521562837572068595701427079555420047603030076274904584960609562534853275175223956634710959077166623077083264788252527241397213449932485022858218500568678438443653217279195225937584363757023432063103704521371799799322696262410789008717697354990228181120441198679221222626017190122234820423688869032503710438013826269251061202208871297906052619570199355295151967100896293981084783991846175626128235537323764304766956906979286283133305236961609088191150894385689669309683903471680330058060288425195287239020609254671136308468250883387561272103331243586543352424991879974515156389506787000445143893430855380261917352744575712904770969113693812578730216416540514218409218315140153363168371018658402483828917788576233389329879180808281905812874411422584780468650941421960499903689493086123524979115067029135152912948819923763908352699959463251265996202220103721674837120000257725113711055201208336587817462630839142620832705361108752296364749583808339395285434924847728582350951572826298419864848546733299553384320223464240602680021634130318749145595613013560512399393417109798257187437225831508521672258130447918005502699969832765640297400221994877129631099731745745696495335591773878620386100365893419753835859161295462465726272752128817484733115740045714721656126158790612920752474646149272428643682550481080368055202468505607715193089136621223171420697039388112358853991232727441482781850999443811175916693490804207212927800003535140502649827648807659077490399500204210882959798441955942015125788342522897185697048808038471348824827024682461848963909662425571192681406625442723959408926438563639653941216666163696745335643884362281083777962499433220943698167080012542249376834220050737247517540917374039688064025516473629282310740884549018414151780670452607121216752632047652680809834410130471204283415366870803615056168003979507142915324625232182634211950856847925003706511911841297814466623088008480372414943259343683766980746572822838027448335711771411762393593979769271283710189907514774743228466182805242698406479439873554421304938941265356296279093778031856753558409211043466487015757545479786323265061261624468113391730611022247849830860501349894203272326910871264377834744918774600179290178255498385686189622116495686426177129467852037989348717997625278299425208414406757573008569724266884364032028285630078097768132763252549527746831772670966038693861177107127936330600841019466969611356892642182114511969472736292368854752852237145531560432808117411325441584924245360748828478918144807683368246495096353608052013062394987186525277266385225997212937780317377041190131327970279977776621181093011719219107013483392488075904969041880885839908659771416150848617491772277780564154249476188913708339659926416856466639033622301476617211324324408717068695771541814949039237594642554366146111366361752513860635037686490323085352836662558955116453565707057040604261192369204741705078018095580392182839189577329003808853644051905174751366474169003911759454176047474251210315137847533732254915766895481375272986134527494697324633310202868926656418458413287590861734207483182337130405251826655715525444043587393001434850392137577938344914573170616462758409783654810495201137889462250263978728965910219618492634397476027271939381272366591956308662675089375482100996480373563251269973525727353960999640960846619658851503176735474491735308263830294387071673843536876728856881115400887420755920674617535992810070162023787369810127112619323720582309662290564193433754559321180014495052066985479868897177250936804462504513930292752529222017977600414432827631592808405938790457857857192613590203955134651005172723864260781393393818886207856379665268612925476019359858092215911684625229964998891921474342262515276316450102493903571340570438117609593025922196324905675049589471405047642639710704499284697785978076032565422834867612644955707464655403896348989045544804680634000706011620714424282649576151411113289189783370752807126250339579054933751043697918149588732318658538900310901053193644087557173519457318727316373678125049932896374837657577216214726534523177061820317448503372783036590987025355076845888038668109262421145126793970988665219737665513034449720007643845459506485192966889201440113873218916013877253228292017049116889689415055949033799728931854469581189129971885025282407366044237585371224542912771760205405108560573763052372913488444310118007776691041337426802573027971170130332895883923682128923485006739795616612261435031296036608924249288126575996938942242638854888943158116779888287455719209200257672197618033923884310655569988548479131935004838238441790741719887321982609070424372940441588517806086269729733339776777861095759459626655213999970648740754134866863366205491641036409485248588306115051513066595827738702511794271646283389762583006120526751515046397594559840157555729749008177468588070856285645134486190420796435200261629999175372769923956546045040860034670194839149155549034430666562942023614590515928908099841512466967565580926469260938538887053082343135268551273864013378393354235485420210466614569286574229695991404564957216973989091678454431005650580755146553763789138912991850329074046320442001432444071484160040118076183234845047911273618670664740272517968101373593970628498386884231473507210915913557132505481967992130525317542794491696816218140476078715347660799046461712391792225502675500439119206880557004132428861420548665830112774082740661148450089778339887471546873408360003713119156201578125531362910933791467718773862121558236717798084739284078739890654451745742561256946732227367481939555799470136005712157125840237600997897910674999029969097056344781112054132358894129124065203787295495683682642271550453772498181063614134446091441649841546154933157538540729174588912507862898922161761160716266059972516752026840466695537311379257895854797891930723001917612159109151331508551884070267601999163052771404506124321647609483251725573624054169215409999108835000194050840906579522828293268411616926972301581519650854643670408112479141096818913351220028017371138393215023595295991787668783985734176946831655488624606112761816466901472783843559540011247692383478222415678057925470526904745425291049723162063806810364250362019399084262268083566278816743750761643573040072944594470085191869443489355721180071081056086724265038297589390870243285062027883876563580123341158730629672759150007462548725733972032722886648018867368266691351899971360800367104580764130289522797308624429132015800506829747234217789037661458087227755717777691984627631603861327866345551464846078686128036480016934968721065426081393820507110473177513166529225287908828148947695234072932891289297355596111828209188179255938385728675987339118673868411544442902102428713966552939047001033749447419446082507277929966438837696142406956009344964074773336380644924696728675564068825904778379799386321225475886930735586259253849766756676429096701045091567443288593870336379722006946036241165194881940748308675060295606094497178639976408460432443055533720182191904670357785137893644030763006278770345439219898204914518290900163843927303592046752259554416709350916710383626184310526539077053662607668234808363026985978761393413407149077057134062468151361708369058298089440952617087648431541913185866592874626584435343118703505990030064428946280133045926609983938529718875491617219620595373771796985948840193180620964112654031105725408886247210962940397814126872211428882225246119120686977436130804657660225621229716537748206697233941948386380929994979857573714342467273194760641270920377238354276508604271334479151147578577373386398524430075729732063486367414023749288787872495223972325791856569492376696032136271435541100064573164577970327102403564810569641073236823511574797359229029066628323356352604952358280388324701407647003398067935800671573698073410879514990455659563052326190032517049157223265698710467986759204086651039411837197208947000366847251324039623906347732296578258369495157193219452604976784522979263349083071445131784742872736372243052328841759149134657422448645981247752005072950907934989470556759953697350746445526688437963020798106294250585603517956628075348635806334141780947261479809929131556031489176297802283788908390449383498435781390306021975508090308310680044023370736676732233062157304225161188712454393689397416653105352054453129107354159533089356107625918419257436779519474360885783180778496348171656675818190827789564729475072362975469084240182081561809584307221652907300861485232931974534933379560444942498291824711428239216226123670135755048508067416715424236750352965178737128104542270574348690993011317468984240976531471517999335639771787518784095009978754954181387052770820002960641209978465212455494009793342272007890284275688124559799077259148348412784763673372747341436054087956599666636753835134166799029858784983608033778721084150006520008407202187509356712555328469428458201111063690931004717626415026457898959202651525168410315051822969714470079969735887782763358376563934266109988836017215616896202668987844922206740310661971437557543111911905559831619937330761948147653451258791676887166712691079565200985948884871154452339740922820810511342722301916438483038150308978130327803349819436368969349458090083422417040766327816365983830825775823049131625983119897890416865948788053792492741744988547681310172952290788713223578346793842040315015925815129575548948834555688372022431017884119659294117816888600993142922002740450329336898341478511277454255369640147761647270967876392404838331750036265096701817687888157146996992885101841987296804620127046065461499723424507550300246698069862156223354929314801378900279012282240469138351141244628853407277724953844966996770060552282317353488956904357972560704514929483607498576556278575013056404235477147114783343056280725503188149692581952133746527677185203988515991597684097888402857978776613329023601514820857379895489463256100489072646233972823394440518960895484353882169055797121273701156849513097782871128325684289857477118286339515028130067511297399020236330128595157008827024052977863591208775217660785110398284339352122347610836918832771538655119244780182572340054237591629802726232147224096175139595898074061118632079096346253641137470515053281958805491766239886433963223431406193174367352114363497173195853099894945820440142398346326621054196800258297353041097981133058012841310082647335772377751603985498843071162973995608358172770907723079206193371750570023146660242583659362709449550920648628012060823790887799732485407680573776274244839606223215278407117783524775395306214459348471615899748224953451784959227021633573289885021162669971253754371761806627034792095035717329628340433141574629483666277941539637216863878769205062648445944396782713013723650494881539826069852312699803565479048307713114331384599921333823111309531186567163373113289783729299196393714021622843199704480230759038033793443349710603622709509972699157984612402679075579210013920196354665090774398796506109701386767850337308122572149340634855395608342708763544687324835746286619013961126135220257995850627901653983721641478340148333293260137999262959656151099437013875173928749201736292533926834905653832065809150883384974062530798892815978547847631386946314897978936126077473015893939414463430197859165929198304305497139269074240789737908897130301897728788753799806225692630375657035224898435903155154478983991481392703120267757950036092409842444898744348394117050382497833663491728260922554902808591808514932653126773800847215952688937756142263933655713274524062046620411623521800485335237561547361465107922821017521260079063209791700696982022747283295798493530298916702133456584920348352228719674701570181476078275654449479331283168764454312909047606961379784512167982597800396021341110143293515677889168612069342469503325740143241965248926127025817518972461926709998973612399080055599433349687541126178337897031139268621277335330810204363720469306305114838314976132258656290061594131954721487579099430811252651513694549039133530044766504873744228313556284227256353912764044631276721379530999531608337304160840360669657346015540822885608589957620615183151831092337824077545043275828267167841840347423921344458955752088865277074742410632962442087850749820753496350448788805525806049419452831684185086132784103860592681135129462240712091691236226439008829898451975569523074436384582789794127992351587278872728580078076382494912016479395754764736036173208878947518056511722344269974141531907286376951872425676211969521656594188011211546222272301125659412088073291363776882148103011469972077743316745276943161392064037513684376420927182911112299819396973533953276401795935735387804247664035530280813742321709501111713661111328626389877118317869034598848640987189800437109165427478889974418920896991171630286919412706270469506743582193660706412886842654437249273370732759294708032178451572782545385215004392865932855371402758693758766080806458839029645158265275957155620764888773276879734683138932684912311139032956099330564468597869707715455804583139057820493255715324021074883430997331594511294050959348438229080105044091893989038014393459106747439479590699463076991089372097420042776346752923954643912488454230632273851056977083866978067304808620143317960762569485743720843487266379555031601000738818104428096089146573315313265838372826158670836596200103525280041787412465094493083089723700468597638322209434635016368627659319763663824605241533040663918611680453101990378409801089476328559276716514116674873745080877525239062332368182393332594580758017723935935496890877848473600671365842706762082332734405291874182550565042939508485260116946958908053177204988224726693734903038544434084702562555503287370778695361698740906356613027697061614906498381277598498394874268358204336005047172426565115974855094162639247819404845134592320817247644063812920265647370183890449631340688209199828805314299843383214813964666647653377798416249121733304436400075107102008158288124073313185883602385309837313733579801670920941508272265434466306827680148922015112299278893405837660464014573506453012461780410389396919525716758823643108107981924852356486532880171873182964959573181861741198309482721244200016958863277260563792189885496607780745435437494995088580127012891971565314717728401505374043314817557677722446523898010965550909248440549945021041261335479711442356219315401041300090296105740356957402891561498227758672801819290626895865470418530440129066163333103041787077225615809406583341552432386397625750138981882515620928054142321446425438302871169298631196370511973802963013222916842356338644460212674517766180322188190040403221422701642961417897479114776004158516401421148366716910715033021526239766102448794970857435262212299868958109866583619994346559637982741996108076876237153180667342498103879210724052771680907982045412461188162642936723664328475218303208680671020716531724253961915978430788964142214298855436259804596504183971737385695669851329959113003916521200698499921173765270317313991735848414635316470699850216845569289374254463885466593042970991134525955656703590076322974596499084275216373640601760290198896994740385301397553194327192863675246704947989793988849992274349978666667129134726320390471733524501640360590621890816978465718583783859912635112422275031119644559322175382845207755088629931714265835299173950576547048807124981425316249233956424683114650314871559759160996916440930372737809964117044245013035923510707418779051938726002712851066327852164108542592117580242475979163028948922342841965567329335476793645266094314689279331163563050535015344674295169953645460313488833683017241347151869105632768310561001320769039131191427976464573506498983536569439923182345823903551293662626406791781037101782693568347690372825457142269272780866168244944675069577453881369673699733999851590394889627447442884362306078962395152560606556469379615789152158541888981079092479596989795725435868488261505631231525331172901094928879348202056630669738949260238497229030963375327930810345203505595733502868907383799457602653037821413134630844869572761579270978946504996019142835791843297702624492536747195555583400846508138974648307995232405717114281843238501685366560434230409494904637389066603460707325908830643751791109809444781715626144600869446554005880720855075700381259326147304702151381869449823162772894190834516915031947337566681368465120240230590488176126715453018022208041994449632297229443238964463808577913758920568490476119589304395503047042719796314709393183091113057537037825058009343089990748766193329532848128002351750542902572488206745275622093611800378010558318061778084970107915248277619290235441158391580502503125769207291021654411203464430083196762313283237981653942485302073505842204041981373637282508192539438832238482689697219949931624905373580082654775949491169058225181871130103399823781243130346014783806972509787443709336892042746812994638349007516473114916223132599245424797146175628125975399718105360529918581893501287916336199542007793262253122725394934395860586257026685954667457573193073756023646818794232287252198596352072021937603317734603270948825620673513405659304150404482031858602398312704052416861219511647555250958981151816302537192743111787977115378704234451428985422716562806173214226000115132688160697188611400468380486294842525605883051449929763019591650731979895361082827599009695616110204051699726653144696166332602529152100506289898149602504410139232353399242829629448868826078724493483194666274616951990988719880567376588922231971179265472231039000190830968541211532311068007794292085678166731826590402077576072966689786339275172001334544618713056788458036930195061549579018684121037028928140023779897052467437807552452473817568281206184846226882939204074346194904305481057215348862376880384913444193422575717833039595005327022194926849134272966621194425069099828536628175216097787713771534317544701102502624607877200344087207912428740356918856802736721348909291256367380064135426614804862714561259547723767594254519368750377188364841941541752458325249048393980052775571556417288197490965326360599643029429314736476259114049541193720907577262064014294548728913917843421514957987772860799580727465700433814696291113969547530259575415268370302355076204224643408146218871877366113412372349112328184817357542819787412927966939858562790253956671811093568418939650762945606012791416815320929657023820925177497850716122229959349052818006412847493935104597840249334778394090318780297880792055177706107853669639906938788185525067787933154550788675959208062683292760528926663928182228161809956314955792400731285018176588798488081399040746909908459860901772089875238063498301725440812041567832929503967358337270705332424376815725225410414987597724150171990494560617793156548585011068994226915746148304935925604899546509995379255133014740066409113310294098759514247453644972719820493573511145023888777716917606487874436939506807441135882247198265048613918309711845000791815777376978551315563584185475831417636569334323046820265144738999916110487254608431158774995433307641215736366122464322878108181408738927730877763686187247726473365254651547745156950527854819700634849226269063881696277053432725012705588397919123686319939042789185365010317762845488344455192572370404919755425483876773033739043121207777676203880281981462895075275808730509028745897853896777236656079393766972866539779085193779983587797755122300199112315112533589947822508836905829573827507213577049614800294289735832613384530092186032659486266801032843492791770342852010878182508717210754638398412547587814000950711852306603434778240602737860552798898582113516240336745822264810209048598211480057814007062133130989383593055375368328012702660405598194682821994061527914799592643623433122741055810191128358017612513354941392199548801398486162789162206339963794229045247058591630586564849961489960464259386883612761570106334353546517480153727615726943842991128840092615720619178117442462522137858078724044515349437083485093488139970781330907430089701793829481633793484637295273184574174637993367023038085267161748258157098932278635503383893519414293059310692462219808108044247489260965595862578946103576150371668551929320077694306008632731865897910522370013988242807936721288562911482093525536366392155744467164385552759936422987341481246517358374114747258946323980301967554491470715148147085891027865548942233396642118856545427436651862742873105121084186972859994017698396727139288257200389664849041574175465388757056086460768049028020847330892616475541293912149091353162338520621860921512989756178263887484248360301339642035055286098901219050016135140763629791244524262945207937729235542488813104972883097139999999317668842000645774867313920615794975278776543097927936072374543546638973814207637140488430463063415042472124458204243179587049790193858333430625419604152510172844223408228680011467615562957378828156495228084008298953266748273218668131233186746091519657209590821303718574206038324575876623485437463803006829619687036842894460575509305868843069350145760065966613109176390996248800559317149291297245662999360618964217784995841463078313181926101308612228056183741130227591690640550968253898850827576715251933341986035244280956245955225849237340842612441561034132147256512893690552445143119912651738613870269809158005065818931620762395833203047653623155128359194707744550881169796623761890212104372701772335112593459183353018330497360152252840294679839989105710640508613724460962354233142443964788764234720431522320118558869137632389600771079734639892875126497980063537186091806934757539587826755590134918028408912422857984563039868503365503817310219870607536104144723317300276374382761650558545256095930812365221590015840034502688608166655679395076263382068306055904608390555465101983560056377804560121759068869726778553444504226738153699704967314075733780577099012989010962760129099390836795667232006794992716655130415948635909714507267246667782873578189299689640899278993263330242330582762216494472690248467054686544293472366278749460081893713430499397279739216286728093240446552922972120947692988912923531943860817742533022759436048105149994395589582705783365191377407095755894974095864449008440708107879404310676263493918978049169255383233628592163275807059560648263211601447390121759489690537465405693902265004368795191163486486805653899628100421692919334479896669877830133549694169007887522716529153403501807410175126219264719069775699460013634482993266999262534522042063736069850132158704515204287457658227049295559634893647991256617661687748298834094665159864249166334336959966132133116063389668773009749168821652942007442614776387508998294585774955149604743764288913333773669538596293563687629894297518342772618795421372246775178019161124097701847320626866136428666236744073790827440496812129691583718278842057663420331533007976178429956774202333691823252152018192338424937907856005101637229243245007530780462613976418491183693995672551554905328199861410882666070906428410828435608069833175723145432996095863296799888857949486273300115574969106286270261640892900506156779329722596809347494953253055630008783475643042443736228691761337272436251265192304628604417778203679346391032598414724350067714236724910910012734226274066103293864210543632672596589742801547443751531714556123068802336350612846095952579105949702990640696657216580828187200703490568253998887742540216304915303678639324446780064622831177735802661350902571512497595722095152055911032818494966330772987297821195811625739146093227718181009385220657340204938177379871707135020888082972281784111933178897136160825099945315879042869820577771114506776861775081414448668488668261662631457141351210966750791350285261238294670275667320418863631625351344017396472326724977833596579620564047916547566213338843737673775228231082393400213725021432042877605328564260908122181973170898564030266238001754220801510431103708430256879706984649901928496362366580517008214664153238934647547315916218294617690033784120799380255534759716062308325767286627038942377145742928628556891480943252286392011573977288922954263737550040640258420560901788379724743630181491108966463640622676455672709595749099841312437823253481514739331568268861984401790905650035528095692411474298398274903368904044374377674244712114706961450715661111778071942634721698962703433192720695587764912440854625734948282520857774568898461002542304977554633916918809022921158779498492781102839645577352945172310783125160159764113589899301665139873243068229342027038486940900274159764812447296972487901574302514815046345876046031623426704053572126766147660368080259152622942107629171981353510675921899158826511243171786950823670904337459160618869722446208256111074830147186385685051404355081158803215169379567023876061557259047371131940468407448569988778654193434255768741162265228762330007745833921184435458644451690867019113564218026526154147423826289816103551237829122904501087302758031709817534658605346978237880903538727852214916527305854719369751147402020420186406886764901195085813916489253848880060658329955633536973995801226815279825449275591639492315552014840749702529988773045303588686223810988699441131713277603950291616670085559433219175586501517313332875311946065567548324104420443672250905875115884732437383346239967383861931064195695319524669162327356757135778323883680841871010836358972201179758200773221391645671193455795548047330761567614315112057870829513302970402143640294416157815183285027625427010293407943596384698756835906263147583964106124416966344900417708932462523053001790255734164669957789124170451612948027942701164064756725786947735048713987092529163463529751987157593762040764572911822596490536902924149006319248376933080223908976498646313678745945311382582930737223427807335278312305320885493527499714414067283357443952607370511094427058185354925135153606320485224591647565133559571816650543686934876949735852820242962109769014934532893965077965271741557449865475131218712381944282168781422996631578073971699904773267308529311676625531368872626672221974159822003861974685429923303433120508858646116829092776761535005313162882060659890606473267610402688464708397168690949320434254724621590405311036835214792321896720558337029641137424378598324406878339797778603015933118963995764715452755159770834197316948690624961606941898100440353512871333364299186920132999729176179301832402252844187599952170593622312982601009434743699181312377909929869909208396797992431480899008018411666359792229681035215910673044494273344916664767561286061219972625025577912126704433926506828687646066468861014788621384008998153026197420144956776041128024590070928430577865049089345090122031849629454364306972570348894262263425144727384752276531775588975985087328304492109633016883771304472565719082983373847896846078187560299190279839405355141642394257620077569632164320227984283121567094103600847063155289866732303211053361941039526598299491246788138367481574404160239983366614063055726395304472889080963592586177224155115339574489834312248502050188979097782438427782229398512674636039637967190800282427792992035260737510131665035625498797603644385673431984995091721639443179870546249099797585227199444787090053966478925775919441238838047854391732439550282797437515746048204286093900106149723765208147133908935494359775497001246639734073350510692209062693172149101115292716295896256139477632413093224150479000314003686874494676668232019594433112358236313874706476566104100175934729272594731084058620156097660644275267873279932110106532416522945556222318367994172844911054030330300747226417779306564802724250208578007666424159369601645465033205056279177080091379567755985406986892039509343634077193288287136926528311450672290541016224195044972725824378325864360813414016298410012235145413398984155298001699512550285468090484265527734882253774275247093798847450631998326590695577414553816288255686684844056047336810760256770103490820424949543736448329375832342786099757183555081562086141668422198264712391650861458717992913282133940379125213190157582969940764881864050768035553434433205662022803987620519558689843370300919766045163625989576235315656439931843926606925469865367891463528922967610718614110187467483866288977952603624312044877837982107101522681898887620291393187811694371739229738130665893697459460289043552079116857987063834957570953518211978851078268194614229321818253725475301471357353935522583792603147745036041323876044741921192282415074391569182572690579545798478903353642983092234297601760450562683914147024561926999530846149030016061559705980765581985786449532673163288086632063871886946335652560396431729519412831595857845620636771881415149751725319007784961882942673631121627828713095970984527644091782247278139134941512899100094951299490845301316673945177492291713320401093965897279566052494354859678311670377072101237540057644262446392703744918387153491180588907521459635475670256223030014679994391312584431948627170293387752007827170977052093581187957583798465172632978644656081071865033201980166323510732193093668860630052818028055029594871186842451204916242536658648827944626667351366967910026331242202751139754576498760536712853895758326877032528815827835118189593647774599619123745497749286401813302714875949568889422948956052763447447472879003012797092700057769412048188656401311658904033031839179515904648223814101560940607570448982728507566883585547970562653645509720022037815518691829368930183218748788350695914952192703728717750537435013918359764017583371696398249413995268542729189742529717722341194649774431614921414820946398439314748388664566714069053879202762779121551722081656547763438378945788435496498130233401228177933024611487628319610306868016268939044072680914371151013552187699839595224213252085427288204913644916286024663695016303810282748568547076489054910364969711489592611982274339157383858669110030702474012795082332238593343129335314508313430232214869764659467664018692656390331915565887872248983313061357420019416625121636327935950728140073337878928127462871581978962915756636868358637422715438799334165574870457628958645913526199633696636015887976897495254813076769061388859699389360320810075459230926274490937709794352225319635720624439248701172135331113773488627655904577648420533101291477062923080060151067031203478600731070197926375002627129094550361493920681352816856587401295671111292352135776970965085922706543613249244102161581640533101438507924292559321272780604696741537553153666222186128736612880382125010092842114627544953228974248768032441561527975830695659476268934502442250695355098823194825382026063786061181447763814953829266777516762963989158867301481707332872075897133702018566620424730721218336157353976512397247823186644424443992035085556253116939899731382602851749159847422989643092710028283731637880630960986092747881031925456588368774159105757833020388901228949857921093070865284396667478295363075628059276103959766930603498680701306470801313029786800027484736924679903378934423343893829137548394246268828457862768111425527101969211059751262178040761552515403999424350145516266731865911256247375842966932043137321356034227630097046868040289480090425357622270152454991738500652876282082844947232897746221406568486297729134548066316034469825947357775630516155614948782132847032242948928794866944339632944617976682845829101181007034735179487801179223988149144397875134741624875739095613153720413700455216803986883714081602335799444156069410887872638213020338971003799951016335970766613394378645499920248975123249851105355532553697260376806840431030369847624103275144680598482749833518164409364407426106383430813286821838706901670245370646215821240801205054280908116821317559413995529540463378505961526811666007067075116809993103232721917052235278686527253123744565398423714807131269908021498142710907984564962394793103632503932715690214485363939535570996392613413706355283694079855691675861926761861022206910882095003175906255558799044148134393616778698527542429084263952399371565755451748962785200622560015667895265912090638318373362423859988343853824694259664295833241907529342274995126034324233674418833943067302876654357385269541451369333105026535768322846766096520368870279739778370350703717962545742445754051163217724554798081067098055175850952219887619202813077517115927515082176311728768285936435665761256811451194170400407490128413898373142534396718266812187402333410312253279064275345860703992770823166989754655078646555358641595287411267944980475080107549571270721469935283375954060689577249791577530068912962309320095761486922310891028548610054472809101465309502976500108897380505624111300277162749787960668010985853622550375036459585607881915305682408232105734761977447375543574363118277047855678207547357917451284528128929233019603620021968440751077409910672529890205220867476141986504023102491528828879490997516843702839884536884782520558896085978948619912272272442100265425242273619170560112198481877265166850985299865208474531735375591823591271057777366205507409482064859408181593694790264152429184122421578891208191929961882775609985860356636359069252469914184678526388777441479165457023371479473170267499460134216425860667595778199718717717441990038089493463551331933761447158572603076896505991191136417412284829360835010695799059001055607831543748232868730973050111899644412652084907746022176789882108467590939734307859519683086062161338688570880778167957337604105574448328822232366477807112396773278471223644501383798549791847487817888463161170242845486972732738299039515633003689285102102258403151049763730937791859124236745802387383415150174785099316522331078376158978760354156846551124328666277952861718702198668722729283615467690868654416593353062170303791048698373076967563893515294705021327544469916031857051856641071504874103965531180032861058780780640824227321424748062293132720099791019392455082193819018527398366218293196302517133453360812214425341590512815206217840555621251598839345799236917942561607027127565305803012065391861511569671811860224827977457049153466749776919870317884868298775320079992936165622769638960056882530217749980510007109625239664545628488327967528937682725289847695637682766796989588542844392587731814232405154222624633448316487884689217073956997496650461487670803790811272839530625701046413181049118384828472000395344294369187418446927247657161189515737296321205618698034409480452322930151378661227404614838108275923511743550982307614238444892466256080744871547994332924733034827422941928239907697984711308147339657422595031486183468415935397364916358381312970245114734742564328808543011628160712121701195343840167941267824151917706344830344838674833986989553883378623735886837535581021400732452526139976974030200201773593723453393392429604637674022999917173295641451358496115485872715110679979756957211917967312588801233594921452126730768507784660210257263118067807123994165850414444351916218206832707476474435475243635021771387291682498141537447992130352632056642740258454244647829725298376398037073313933734685471907621467615547586944589919407940477286113125924470358104584665737832856247919013146502521873208118597727213601249805643545627251744772072290422368850306213090841086629924481875548787372314464977497853754738686708209265146960181002095391899409058463592927109528879182720553135023121127238958910123529150023735624589869606396223581858235055578139363040675432898604647448081971321996688757725326007369075801025710932151886714288496966744989210878815825441962285031021370219619431877579712157402076818481104388944498331027593512663197408447378850319542251638656224131697049369947514897426205058862349359968235667187965171052669636081131622960729293572368669774797043914178104859912581722777863144079459945374057369324254004890738784761504898658475003647173078144440427356694813250101911717321698784876328438857927180194526200592860132565258766696301089807006587842893680255395136048502311067314223880788293295568432487246776927085422947846905489063074643937315314094471341871409520467339087106627007029590295199334459189171914773019962964526064826708089247749395547240685581130894672545365630238747868483600538986398874434868790750940452174221175525138790488513920601465884456216623117871547230248298036478513626596285502629212096108886336975476876306256280576324993603533884882986531236838968854623516077694354809337149174551265036491906354283294208405553208385378205010028718224950259176349957221719851816336805125162718991883923341976824495693634570197209230919181128116157777228037711970974869137422592538940623672749222749700810195459657628608079773726256392684043473283384785616985256709589244725278213837738712630652707779501342844752394295538387062071776057301950104003718033873134796221525837482328739148834019951170592822353935226059976931803875631460123607550360688341366357697401230519531569025023622561793217578970910798711615056380763810966332580126936200941501263773993545062408401394076897055010505637306881857901604037504030909383091823544926013355251008099472794690497372937944399385070272306340260269283097750572015005342123181682509328551634273450762959462862755370780605288127283378133557246350324824458771328547582050937466024872006242475290408915413616124207405956140175062747442784512587186092166760491578272005949629255429142536506047953602057230555291194143611701340381552346006032186154273703080772848653877633102664805028786437970879599836883209363799688451420581754157675231566841090099568525256656416104842663107948440000584941149317485339348037870826337752806296147240435049361604787433279935226944658487830204686882754154122244111569569230195531919040276163419465486572236882452970287206996509533995486996117631819504286684113199173844023545629828739181134069279017769371151881718989437629033265009589650774875086109512990166037906393608903662143740013836026341808131085251804702815174904132919991692765083129783452359216256611911397695037409555580314780347401466891324971925115736096669642834218373926826818706507935745128274121509300978919378050601304152644585928863516605835455733912680722309478995670604173928240490289515734489914893405957631517905651797527663119949053988902048286930294978715236655527170958042060630898922223596055743804886270707184051263476566267030790257842554653730502623313184499380787870320108670760844081102139939353566955908037204241793541187400568746439796159028189476541138884065087545998920032186479089693965668696520820057714657854838530529382261313145734709405515923484366187264401865418548826237849010636243128813270568434764679920975224531630338019640845645288068045245244514515023896393130245843928566957040244484458891593611311421736056950943895102663835392570746590961968862694114890856239526201598988208353208260526438117750030793808328282276473406876174383785320062525104634885082729766594586420127973099308959760536895157309777115758940644131654585341913414125568426145774041651288120376572771524719801805290275674678871729994710368766953357266268121486919752957442259267040349953251970901482459396169125418992225081783127556771890973789355559372278508095288675107664776681281354353632282569676966346151087561548686976170871191396795507216568082916510301097775383319580594274470574804575043219564416749147895210339062621917727000858700849264604659384270173035731172918136416162634082740790339737327153707463051747743757439711415362201719367434995226224983918626729744241532859806287568737935564445153701275991479765360960759877396742833566193426992333767355423947286702972043221563329716805759917037595278862326092757358481959606682020955777380708573167172922055134108683295874449752129341302574328922106967385465737581846280565341133378804261294788480100297961397881692889165235338146188964952719386086816650995860476469366249004127595940272353168471286058908389766212203739753050715780089995145743521366230612412872216250225066796771675378330497201506327134065857975467786271144514302366374204159536912672649931358104743791049170937185486391746440406087888730362777821702935913610075536338257420530029580489289201510898458291012217130623915998675209017378261995299567291699447036295819089733067974287632431563313983441836332109878054522796417078475967838818023904948721286897119124895304965422485565384802146385731440819295156662860972003546305138139236434432412860953989337054700907195851562661424768681436522718964776562850114503133770823320744935703467688164703323588234893817723990181023619840223298141424465305673681566783887304237886628013059834875564823635001663290054390631014403395759445045968881705350986424869215707256912363475873874462175849876794078361436408749950440603094597818947396471392073356961168650970467748202433835950922434029654864466924661400143782338503537400433391551146236475207252866375888604857317097620142408592076501100133871894249694405847384153548849457684179768628337052088110628050286774169150401919643565116537365159392198572120484457575659406372252338663927798544648869768387219902915723324872462223085820222756363041208385454541941766959462014061617295943411184209844352714984839587615602820690846771732946915552724233000828416382671100782272719647417141115027975237181686790444256149987434050387016103949736529287737992458097032221628634003849734782031045672934678417888623550140336529939660801987188104081213785543757058008175045963078197530157543791791939334932503101048119294725446400273395212364204045434503012152315565186073556081913116660043267679901293696009618078309045877975895025538026777911900748950174074078072414745448750086563652659154854174954872577920480624854838237508273717538016633100303057269577017355975837041990660726200637906973383852709302005873525598676810865829446475304057505837946935172307217527686493680881551323807531911288716974048627458527260806925338295592853154147825780250913401421627723674853857559817054371965016199922388685039041057242862430336233060833860270184726011299904248281437782680336636273005523936225256044071865590622665142779715705797669575775027549597687157812272853888478787810144094990181802975806232911554847205509074253832600983734425971583268962052146792412314729685744106550837455681065201192947126649361601624685568250359779722972263763163902425524238379481448094029046586135744772539537168042166067823778146032873979085975264510226020037165106787733345973099932507233031862048655729190719487710960718498762384815363177870946716760118637093913702431192946271308546524869972348302095296718439697087462449170225039609548191599260603193736792057731394434676667137376839105656068888634523555770000919995198335315608769102525909269108933006194806616257416713888466494082393503336070535048870875787973120334022848271659502138288837734554436445193648021672329217580423545485560464070969960378113718052474995481278362163565100546619847608053873321877283390200178718128371348509910119399289075732819644166528359346307898402913600453531784221160410374042640007658265507849074813721299797392088755292167418199197675814797713012323517524588334805693715422216712484980648507224068590066759751127738005832321353700802219699379318827418499760520113845387489797755870200432767493660483280522929315977510583892708312911286012942953831588052167787216505740303778159462558539666080531903553775652520091153768670120816224372415830858884934288792255919701152107733349065525091688429543573336430750290149092157339119727592058684792839972652644858010592095804154362769869499470028414376677970761449050976440717068524829669513212716369857628730119153576191667023837004294807305829119598991811069654650087829937961362289569238089807126758816994391502753486607912724235123400605383338791312361459260469015193323305232351491918518717711046999810222966455470854163409293555114650803583650354776211963294919994145877266260083541364375891964450720271144172892526205209032825931260691009002448602323159247827905118743503835535974512909851457210605208769490048361126910123246199889859978105790867009831772529750954926896615495804853959622147140446022162217406469988447870971659785001748989169361397112510507564178503827065270497977083007459292522803248698088547191740847599947593782969088056008600529759054897365255028463120920730289994530752493932538757938055599372046365449211837575925928577195060781868298604685567983319837863040265853950610595312223503222561286392986405510653294624814276651654050910762230442313233860846211900242131557137078363527517763772246910293954549934193427303473400265898748185500724326417007247289666318139249797436841329349207324864987534580879171583231009944650526922594339653775731428900981155242629770830396752787253476073445721179931956339432351373137377013847909367453367346051542684656352180662116957270721059368364856235151293038294441235313360094209834781414297237436578711911887429366516130992069089448529892325669466143020121619385257995191338038411861938923677998684932469788436546226997156110270199742636165929500567494065339873740338814735824253224758892674385378098986178158062499857699618895984215859448240312795119798335067557896607451376608933177502595063301665703509721343522252376948131668308292920639123113750792040188711389598424276281048747994457633681552773672373405399550885913224156945209363946119277460981662907195563333031896410272930448276763774547538394005077563010512137574758946574863170528269292044797893005369944154946291163697998742249270303678007499524460019252794290451405434049622522070677241741445901277584930438441916947182446358945359393908307895233788038954338903592229889974445062985891544968134390288308303609166838400036951329341816037308042375738707173245623229304241097201898604530031738996205535781285444182823550617923204408998774129061899731287154216382164682779863542002691228146159742805120051929177922103365539900248915637486703699436121201993317058150848804580802833056463332885595257958852334047613745794534356768209092887939422286804778254854043467904645057712034985042777862667706888210427475487085258418313655594441206241954778069056730881878809491770389781399106624129108546071129649749615329342881802411192148268798924178713535818217620640619517713340538704940168172571209860418763679829155262210532820084775167363916224942063692016101618187879017163339349022220315704649589291566011182078033059720646993709586856267729201104389900059574547657449628553308475776624167508182259030682872750698784882572170084215853048692583175582254683109048691827797411310489291371663678129755520834319214997207746449445113910953534513889266939035433372679185149710866060713492329171429578207809633311128729980942204313428531222055532304746353215032472203944806821418433802655778777043033133916124276625590801411267227639738807135092948016572426573780367193657961980924056177948615228622176079974280610786246068533606400708397071145927423343740372737485271588496450442420388270039859268718785248212867398353405289289638946489391312898011195224571091644014393047425719033507982412995117647694851413181508263358673886961142533238448641359184547935127406486273380176207150104063342624383861959519177583403430874421295095211751903225953718993195008556694514977706164775298537963177889162809818221847934935800872679179866209528238898763806090222672128534831931704537254342220357460882500683634201829000243846826263039778118487191973689157162078124722568025861761446482305117219957393719892222491304113083854324683629364774654809626949116495607809685830806722975916834289023515879905698174038247121748028815052815039776468100661086278281194465439762281332044477238322604164024823807964753964523462583072571175959884875079629897912552095336958419893687718694712660449718799732737349189324501593245418621972925956432945513135020095593376532864796186386628124300921955725776217963945276943281780657183420299465205701794068087388667443842550360803204860691244829170924814787198675757418381547444642829490023445580419645839294738764010631116558215768313731361622629983287154602551970950768287327723220294438892951032186313365263912459463041463489418973175901388472580712807809760515039604043883748261085754901816412360538748930760340322903695936964929469451425781429152059536271856067258650430510369758726414089279125125012463231937512894986416952019757974654634330572566712179517157363123082401069274011957902137714544711776529495602883154062972056898898587666861184383519260797893773097720970633720939693411944254702944148329059833289533187377675594576610899519450421876822960548508989908934536854603525690084796723189723896975867314564452519869254072532764264117538015564163100126592345641903186168919982737870629740081513501467114602123159748285622430871088598991905517385790782664581508023082212061997230249105780995789624529761042262684808537167763715235518695883373348260220685653020477186052252325016538150614441647681501395751101286962465121412628089414515756904747917518253191553642510481739458496435891380096183485860886439884421298577726871054791235512375028337302016247309594761227138988205436616129566245832534267552065511833215646596327312598233162296589609553435495614171862412678187189468866651926836051543672288807031488963683564539028062013278995559593123273480990984951203272580614056057443563101020047340082332334531320625573964608751547245288539941719231695400664347890283973122960821448652398626763717842814035485946205430512289139877051510696482429050516708668812672312014969244709919345223052032744300767649731589477171436896638462262866897871690926118781255386127125212308864075866984306153337081754846010154149335662397749362052181117634175842169026325481168202310961691921920228696824507215059718211502883410313157564219401457887872797176411065628377960867134711778032244025125373598750096513521754847061114851799802471882373217303279862556084181344755881083537175090620838495675530384993938923571019963651341924925687546270707340659096057455464125144620654291720731864147949462700542057142024621631150422919647130188060705065269914451160142936315965278245433470945418594161114411857909968867207854997947468677871408836668304043147069480396422621871123611092174928478543603480559432757951647361905826280666188671910802416365180490245178896013255493864928903024320281256709916436738251298823486515026925744809368685550468198321753699020472699982978504500784100117373854948677002520688421295322598165524537514036425003017763816881198554486249838368281030174011204885129917747185461917497937063773342589312029895921845707049739873081485141510042690350849206673687799144325462097443996223858727217385902174809381744942931190329899673320499501207608846295991577285323204217684633856311316447875560550538144049023379604929496736980771183831649730394472272563666575399422917030713326007292072013106707857021531488618182465857645393551408724645812688054246040334138338171452022768442274749478282098113983993397823205128099769949941414703922788734629590056542573904600057344555286882325162688448301708408414170380056919801265302196925156395683548118037024860016033241653135564470216696515376105303682353215991601198053615624374430804891549087614593063280705439773758017351785298405002639185165888345779609621557705351744288527975573926714267988659452878397442255967952331485016749399208245727890201848989733556863251749420704613725724635511686392410265447620707522051223530556923842542262469082820075202593830192617815994390239132156736988127372591213126053130776062022129449829361877569784632417086625983447647068042514601256868794424455157791088216702384678561612672642998407249438460102519867189173850889113785398684761957511987405603368019341587705276496809521586501438451429876660723476584865151291103242794880816687101728573600352970077009926686733830512017337498316246318933902027112780458975424501814904900284506344242503786069533969397720697860673703729056743621068584343281464840001120414955668363546831283883766859316841167168394790999317218568271857384728653957544567441395299038322361399289853088618538835132645671929328660152781990812536771985012593298994461779414110256729478796569036323539636017631771704377350776687941192958586777104968111542216320223477055601741204684387993359267033892345178276917896278507654515848356670167857270809562394251797801810288005607344336420511144824956628611879504402723204789486957916701711294894589340460774671990916055333845617577656244818103981844322048969678307050004494702395001427148878025727431953499407001465579848669669405899947676539645037210136977205137248500093518010286579939391759930807723978357033120743500819002429349734065290554100970854037569511508468591803157031556814972708862629122825373903107921812347854724662590452711430340831345611367197089771291948096542408679744870482873775256443233211291254992673924476756666125407891548607779510146118514245894358959288471212606367747882925054672881195999033159705896221710430393233538212727552564813302927416351280543225086876674485235180383177565091066333061880028446542767128480254347804630061709457812724731997123516671195522949165033398308690653279847254644479604334913350912982647012006528314357169612590517362033338675487451251605821486751301819672555374176337926678403192972215799007796028305526403424207843181589719496197248239664087499067473861667197549271079660012824577002399811441883066650809939319990753519571645881385371393920048365192976243026331532819822418267733484413510364795252212456037414770100127183003825155734840713832128794443539501058978055708117314677733670854313950810047198859943224568688772998154000849719486345212981252933076062874525131055554197201101500459501276201275447689361984318444207712330812258435671167531808198994413970306906733984491787455809254192697282160881298323493847279127025785464911676874602828079458881264960697340083268243918893742912683680758085035658108798666330070502176158218252515579597476614657884368882714898680254653368428716875845984258844275746897860990118501828263974528873527790861754342615967759505477104704323920668734339623576883221651301838539392339347880682024694548580093614403134394478999260612022858351970753666483115962022485747086496092697797503547621456997058053831598488244157758581164220497804973862336305071306013509847049450670796896595007694961646710924561416272824573341370014343637727857336225457824573724438057572301273621064712826141679918675764891126577637344395061769520885707689448614892208064202668064661014452660452475482364854453628844982477150937005524672316180429659628178381874346490369425565450722755096280167302568420314431589434024654910031307890729021758774338782299166290580783224076694448344714768922115999735595085870415749833019946285546636613785465869198549179168980167105507141808269542188127465621202021971376495523081925934779360781323019857862927933483475372210491174098676926391721051802408882103706270703540624987561676469583175118504171823982646364758285579131483728967873319054939019034259082582995746552034967163858538691006775558309960737265652629685271917179358900768420075551948802103399245642689360524322401133799516798742937475985033820787770864538827243269319639246699012454835199326877139052936624299161362923709050006300467037102129937175298608591785164481166135189368957513966923241971500258602024042346697787732777278174740435981161010706342634751222989699874327188619535067787826371964130903353069819179744012150898566802274058714459591056573560299603681212828129853783171759479929689575492673450153302479356823774313850658707807327428570393080683465501455929612941340956390408192133839699154233144292114313557289001547326410951031661708289005237383050799055074912971339225314337619512303726551403229547632390032904346247345136944274242579024673176748019610437553058218480030888670975580300203944798592259512110142900450074820239305141870715820581704315643461613395208621842385657015020760887982966137778829611045538109903889295748719605216164863671958696195700683835338043418164250947218008599617682953197686315882324472986924600062986350649238673925782538027900344365792476272324883584727466893527167304470331395840846155715632853422861945853562234403535902808692220196996900684322003277151971391627528419750823665153489695597936275135741877925855323516615638382222481264500363965184258273245254643254298163592709275937939176872739841762606136340382594773080217636739033231692507620814650223047848633109368210074475180252445177621983028991274319554925867471689821313245854632220227037937013149040707460343332658552805947866676224565447602252566929472969933695714757042662118271912419452251756415194770528689817950925998424057377421386462334416726580255553236943228336896305571378256357397108647269076072386741424874225158558034532830555053251312328481561140034020990869298410749622181156518970684783084734279476008399862449137405764477050906950987748259528544245503972834945540133235392901484940250007189315626619008377219708488109159033590629482989172228522194344422727221236659748538766720071467310623686998596008328310293968784187836904361470125767383673819639516433573105735545685265716682349289340218211346221727109770149525244757339885462693164471436384296625600202983848742217124742692760446267367705620751469225244915429734539318881140860889625068886967028758540502117338574970887989691609025677187015852875860344484245981390335331530686028616934863449350141931227649775481476910189735515908060026107080314020901546195867548590676224388779824556494070500093048067539383862693004053021952966500889885655102236099419658733088736476476327940536877448297094113581707175447023337160663458639722396590250587543662006081001366556634387485876501469551917578671233851002301197527400425908374799394783291425360036534072469522701134279244242652622844691733896843429731424191377080363790782326403102263732120839866316281442575578910686920004265174170509458628854525661988864600866924305044674816951440367061744497795108994936915845708574708576992999411498604419150054328911323011097953348299698206521621849060614558891507523369597936307691723984499931022536478154342586071809595283003348074817865333019188244545885674780839287563948846828807021423977358510599527663674090580843600362190947011181672818492879705551427514244803754775436839735775838993981395071895405920171883472980484594376749739360665184258920668662124528016270830749944391623652768174319312025121056321242487976480822599097387591931909820300126108898491811619888002591639896230454409961539170364142632831927316506524676148801876215882416454683370343605568590065598046013001962324477874860291525764819605012852773599235610142117642827127035997673194722381165835428867871881725250392961674401013341021808357375859780685489308007359120463267716908526341413286651000623648103220351550508071130914120462354801944427898837028152212535328454036853640803644506514926830386229530727796909536894759213044048556819059245115582155343112578223050011721204029552852395193365545131191969086786683874017343139099277784147683729138231503504304382834280762654796797099221011375968182946306537693218733999732193085615004126426840652997095410848222655654838711899958317093469875193585526122322235400306649943902161686936959538341869103967381130394889581816964304772387136955839563033960354473549594103169437710318772962862274931043707835188323006994668067426723329121140095429033610009126746572895384195693022041362565631340051007707683888931709276089217452708559988300303924626357419883381732442314159866426422690244944806987162050599254712764324305136132570781091311627133785721977318811465243224049458625276892853375769372469311621938233457925407528496943491261585340600247613615344122695875653124085944345231333376371704578620523233668848535029768208376875545949547421885372254736995671462469517832531530197864254893944867820322912527097950883150842430921180239357722095987933299945652042579536921091356993580268490671600986920329129672122431012828561772785963975752274249498683543204413879255573584876646527766714689294111487308527127520453842865865262416348999791179026285870696553576917693293479767998174440357774673601328064912152433195957081894642805969940220097416461552597792428207832406247559802922247672268000494730632159514845849063060544493554411511447219508265072308505979664717221510626656151115516907411412686809293513876995176083889846625594673994360873023504398068746762125767075381407009690934119916559055441570766217773262036684979668263813129252152418835029558399823231259026813585260339230384368842667496008734455317281501031533528936595093590203966932772054073795767690076891429519950165896437964570477380285338348339073117092564921720624320719773734429912287597284820642135518310274804728074284530817947159157553519826467271202960344133024285970804876597499776244968165983199638062355564379434229835192667019685183332652528270115156970992507634354195943316395589542823980376427278165739306019207637215790301261150424451806766262753828119888621626010581794310260403909092375743703074793668738434405744235013582124422250749064880959842198811647671462409445598254943462804554356345404185813236274047086193105741395335602894149799384688028867737762189710030667162938853943343127434369206975303177671726265630912190482316625286789518992982143301073535208181469894091604846987172785473678751859209405393497151084975614905133319348357436523141109873223309208721605013337256727384865751573347914315728837191030286077283981339066356086413749558383108980623811064709690269256862194383224330649499454150905281393120275580651478286564443905910548617936440608067367444027343242553190694538035923172994714699088304231424234265285882375710654220286227648657881644932607781172460015037912850762791733367934376106361783422739934107523430843122380787404353599769625386286243477478405346899480592511513026604299757734744955798775571913234726720724614820635909480988655577202736461005613036502560203814465294692100316155987086482304242632727283974090440461373938404573079770813316331831031524311842185943961094716612666704959948207921026724277065913620038918528686836459533944729200572590618434358807789680146361718258871721977588288996577958813216004068534129634633279420905672692107885313942739093821761807584321574152776254499327605408134386010999651150272008411909100424071071618807008210163030598251410902861771060805547971992090514719865976116852716270860219526824415394482072385821295017622829872975163566702246365046380562838532623239256382794883006913951899473668502669591697678513821428517114757482290864929396368714685334928131035321101149765522917058233336354423954832236102065705311398495461139984827581778276712221335002851174651431598682222090939473897450720402695078320162637322169759603810472470365030934091655044825609091836940892989768097624681753022675426790491545267231434513817128511909384268978968141656539954163665755767939393754092302769708444734052356221353460483178045133745221756232338964672276235076882611005045096750442144673278043090561594811006920144271008130738513075604658647551255928624777772976680692060923293540253894700079374401884687591116529091356848750496223665847043153688055497039883178110179499037428097762030224565216298326985250066896987765331561584288932518772603812068838680377339388385030290146525298799193180328440673348211830625993791085057712650648030666328189304516168414441815495837972918815212440105791775022647761871288830207864658397876823540736617064607381726010245371805418589613077371315762914238647985640423702839211412736138487831799107782990292088814469442193262095578200992372496532767016017774299005809404675761818762631113081752642041142965874321687553018338820333584897177687530533715136857788278089990918632401555052461201973537813557341038929796586388987138354897380713932190939527816273990466944640807444153667101675297945724067360346936193105489526486951328860064841832665644214966604884734505885662377470943300133609953305175795166542676833035691209347599047525829220266545447234334747146922008684186172264626133908204651016161889416363844388875268579799124034772986739085108028594883048477812106960583594083126587270350745235179361467036244759790710044009463844196625619798849478216480799542584561132827309527648782452888031364671296147996731316903770893728418676298707469913153771626902242393644599682198160580219294440762308384671691341286426648516213587132527124415772186527147676962217011325153969991794414974366018493536479219740833118501025815992299881860097375738723567022934130785389719611433237363903116273730349507042196445256896926452293847084281179925107621686527391024619138228693880411938254640455423213132958746376553667695995369728207561487870842642086014045537531409475530811177911820842866865179751514875711144417987740682341135055654125948934365373166752552115811292711575673366032884982619834775257886393876440947234729841967733232614981662398210617216099934831537694273046067468854914610239854853510785156003772698223505469667340079385384071712839362628086833383165643320813624236199372628250166596358601409074562257909239055011967619843105265449651391197791289787849918266788712620788136328606041473831179843228015777604441653698529830994356533245430421759330811115391921709700553880066058173719684647823656798447063614931826994054801958163862688495342461678350939918436242029831777275124213424628069240073402152339983932778411547865372684250026977924038794442583186385581979862931773009327162340876704620040711458185800255141344601603200092981096009294171339604382213220639262251619663464877055935615200117359398991283642779532119454518012452075625630916868446291318754550694916878239169623966240084948300265752592285664687836282351837323897191457716742995577403285169524252684031361574900468524416350625047005114060353732362786988948329083425004264012900731071421525514797210760580982429594264462696260765487104916684087712003542740402158578761646672881518020900379778814190239059361371273143673683132626962006340297148709741099469516876860034116491686702167120823857255731983514768902030349586487721046603778560816508254839034186939655330931657654275548096592900632167693137605677302273632076049243335466630337721496442877896442534167623425396983643729156135888779180218702551919903087051146651709881744458955560678692824306221093916512057714031465192002664504416864162198240294271672443716339375823848322947789161031014439393116276119048765835286661664359565606754970683869883140257354734472858340267232966581758316482171109174063218110261002971679677340313932372141166394372735321182765567197813552947035236944267223606768159555532101084416295363044683489703807902815385022995518300929090961980455112156206102176604629338410815070367450400996566566437848901065153273005873657915303393799980501010703511699555183149524749602629554210286539958877106951709626955217790361065896162639927573776022357310236857330951445040045749255905177471141954507430545870412876562628165832713460622669613290216352068377438704390102404803475597354433388875816768517431836048089082801581678846817966396560111527955742797948938323899488355544375744340525882577118818845531668215562888487828306994764821758006355139623499918675491428481186927512128264293000154137563823142147842804713190867319850263219116536633368639694460073228096557913589603097657409546743250757972866977313561268565575949971755978849719044092224826909235352771433329351875392326404892156965902735817655623909332298556682585279086641388889811556089657951602341639749340926310294176928258111013456628111281543850494157394978209214605449544417724896263606057630081793847869263936525512770818138330804771165796700172447686159964369556029800159321626021257729698438592826129253839500919972500185733944764334658453806934573476163472140463373118493560128478782399653258368219124178279032115060431362814998324409458955535435643619911331106119834935604387492091399778080068656180192778153800198531194452882409332603918403514593454874150369449295690180150433046620175205898439394027228249751196866126425208824805581596151038786204212217329236701779084976291278054334105413690343890610943838913378435663887308550086150986476677395816419263588156755387858186885651382145797606035266479066965254378770412835076929057221607856098539093969227850114695050374751848114288146541150592603594397728403907956344856341049176882165536833101729919149406760784183898958969737923921210716979533044982627140850056107540954379285476355618388129937263660410681069417387568784020105009314707228866911099252129842968299239829611755324670568379118506538781756304610704678477070577955970404718525106151213336162517223521965993268972202488727570681475328498212736759219143764367890533564770167199476610822192521089677138232650393905864358558314210978561963738198800821322625488213454865701656564138837663643953158515514293281054017445197304465700762184321393982135841365814765396500429819031900419403745695425098120401067817095396111140208829915242532665186705228499969109225580558165572108548597783708640026246922537667111330125295861958702795035596475458852848647410912004018194542282084743604873378515722558890161780963704626903179170539393688026215485568693229149453051559024141630710209054773273167503140888670339675137283440586182410398367327827695525696808929388623957574603141711764280420319128254886577075440287047403462927719211704946854034752530958476821061018129337534823030273755277975146917496594292547262473719053419107892713212985991689084322997977695615903042572603259617681763013999373735340230443500484441978907382442837870775297058455381328145669912654413192836759011421524811450281991240904023752364899730266395671987414960025182741083197570033509516000146181033741497300702485375704819316011920605889631890475971788639037907399493420802317959839516533520995972786429807520557939876120956830579092465361619956156457959923993115852791680497975594063834091470794475460299339225094634860817725347835078789940479650859469559039583164461235394728018948588446648505970098382006190362166318787402197669637792961585714886706184668722858347197230892882814557561318948786830580111596934837135156994802367349520480195911228806683534562772381377993732189105626825060057031818218979676259849744995532734934347404786415693985517697363867471119143898705681249207891624966671639083633346697871282880941013396000489703348255354781669642566747368528761027659541875674045861692730901254024099403804127415950798339034113488755638689333228426201648817274245593004856809375517045981672753152668601512531086963479371099240396324680383672899568180793728368486951017757813789966363831421610727071290550680044909943882865634136122595032087410662399448809572936909423005000147956338870302468427173113211730495350287232914738953452557192120996619957107638676562547358738813264155748073377594494690376408008154318193618664459051900517524402266814057980387100405605576873822237531800144540399413524396458188052266063013787018259901973228679002567079563510071445703513771998858435447910556929722367420641623467722570869390404718411057624636835085939899003482272456412119857682647559244657270288583804770173830628620225862617945125801767295325322964457191759013050529323394314810726550048523157158287825173397056373029924090051318122147069200638773613330569079630301563337118830696939081582759657080792555581311388902447514540466422807313334655712996019058584784747624689974120658373073066148525021016926635083811797815061481079615543351113647912503161835607338075996216196802957479555338473412398128749515984260732867732258887892059007834720716319268043522833641824703046218031664219597863131068464869040599842238330813473397266120691690125044409203755277801627243114161045218207245206740280830072433429110909187515172863885321777741646900116069117945642647382829817284527137930147369069274798664058934930018376730334544890873677480127864273749439907359602979106565073309211725384944475895397795255705660367865585637041310956936915962441219437945587864615950715829799195717857962811372983829657551568060692045607703085295111977149374383773421429137569839446177890756804899204260858867971964189171196995869069623161264732991853261802852198076410587897751431852786854480912575601147785580904475221300576389473729657898949996990067007481537322314660523262011348706363874432218238480051719847169696393379433660890323345724155779708465533963245243128266142091503387078013873363046274988666812060121748660451659699238003823149836208876656983492813634402504617977805571998273781179586958702609360098221626315230662226776076269276307447179293230256521567800528201419961342393875310335719994850928220545307300643179438390107681330430524151920619681930469700889576843273406945323538752831702760630481199781692592812494394664973026382136731099721424515782361708583710832263846523570121531617446602557099377861763972733595199746203876484608309981086549508196039728529773904675658525956651461297514816042197010695891397194600851193654871368846484667805927684534760909414687530953207068026838995110957984348615000529051937241054921926958917316407579575584434570375051825140570281188897004625935710287748758862206240035585331211890420859146155621093145943080426300966562204074986556047928977509140069368600958741172612986871999341072562473680485427643923817188652854757550038194485387265472040409693940647691615413856934257951351462854321275816757349421645742707590579370078582801393035660044996935239534475012795129543188719352658954358970858848363616531524425788466501369396558131648782754764586804911813175160415993208097083515136783325568710638732343599359285386575148901862708862499801280858426192901751514486185799350729636893990782229832065117337847865384901465518421116567394836715817905305830667143710436038258388722227001114161804632102252657592734850360043592140424018947564645445026681240761019081990343256719322921831775143283005349652935110868736595945936685603941295436232044418851734698470266026419641225787056604026547579342519471850824404951166756200657693315293659650138191646813466453873910037301736008788330609067201032278019175150403475678213079717463496915111021595716778235507505450190856237732255080121945666706655560649535461695744668578773728676562472731993113699659871437678520192481568841394000011923972198089057360993151316772864772386899904825649117780613646583632483609560238377273078449314936607989246632740954529632517052622735752322827438483143363506359371804682530690304796634169432005846924684513812894404289959555818930419508440986975650844797952942119995515768536012299588885834025939820256806694154285887460842750264622732310356743770589334478213654020774973027731655446701016548854843286801140635462180180941262298077493668023044829133078766265628393184555468068315008405620549870276719770962463998593594259791256367655192452761630088424233882304579818376783629604385239011758630371979259736008297512239542210302994130248785309784356782077558526387809522846709688932741845330918939354903310765597578001298200054936262090880582157156172392008068956944958367461916626175322097585711818499979372954863060901841058694106441861175845384837430636137828707301739874700024223256549305110533469384596632632687943688435724240857011659948979498979741646653230831343316824452341700937428986907875590814923034371731633710680682790340864166899901979672901119848000840645158683529279580610407386325331121032393858619132257896721735611236539042203734293268582153708555857275464126335469109666159896781390164094597480524623787243058097711252180606814161581741944407490864760348442842213998609942085650723672678868536157073291888036388338220524809187913809947762462588012788682559270166609580933645081506726521894420490861490190148822683512649421490581200168242754918085567703147735312019968725929194246725835253557104498580498386194141909770689114390002311643700357219753412893801154098691471723716093943209157798739584366320529827438360202433203387443389735037265213046989577094751708128909065625944601304765921818682351381605101474739474406801318612917365395524097107139025493886654851727487448473132149884667327967196810561183524437397232971272001638173825410139216092687783987353275520262462992210343518996122723077583577038792804275246960955292882708352539744757212577788929600956537901069472179811278971965588468988860865054927891223933897649978846854625405207556799250924702531088089818679980801811459891028152229364392991524811621594835986994592319106656197959508569393050452260614806640113190809151674533609214291437099806136894487397174210960895915969069246100056871224353721670392383891710951481817580928326524546598118125736433304679685646741731036959692184921815893380012463635460903150572950383326652400605683824622141672567367442779651205159310008972763291422983923703384214199895490578559166145320689020594813840804424925803221928041898853004127873253349608383945385904349039583336920034380109398445169300181836631099696977966767426546435130940780496308746123034562010134876476267365978735776763475251320166966573350341855164367428606337391728080433383738772914147578465327367934686484015759071274666964431341774422730282325593529190901029653173381316338608472841763760387635229989879939980366709560786472264752823031511788027907345612060604830919992408224118435872628958194754433066214483701101331842484492870732180712970277482623339299670646996123544924886848610775351770147038828642209186145575628618217143948757944316846308452412293591797597906088131864289366531886670664966827249866400183099860013643521154220220647254587274774551808605122709371412124707838628652849476259091717814121129819084709014434572600010169661199247472123117518761269604308858254366967656112584253974341484618281814975518447069023200345107194514806299851473277271433152442601546639753836727531957525217305751786921708756221701577734559868639790005293204505927197536307049552041633509866620177488145194806303504584975293225497267459516168965505678763213772947356286508090406172546483124562768201256507220700805637565727055387787024211461066202592303169543298840556831223505206375555015775476382033344232276279547125979750657455234418289662384278132006628207761749049884328291788823423870967509507593624549564906804645981825254446034909787525680544616803042461394784909188463718506550992509149439051641529834323080013245527416885713964744613753578770062084286544987158842532020109051823163494164767806379656129230734992228918847411460035432047459447337779547644420189526927801914147212326675265312072019881653366438161164382784445990983435132072576184451261878369492905548992364506140028932151793319044437720175271035078805229762843463529988657875596344491033069669505333902417740624458495514343711016429160971978655428139653982310541337416082235906642807026495083165562648045141673802334120888980483967768537750091443937526414995472019287217665618085864961340575434696935073804316770812792356685044509675802759384832865288245992667838116430246118497468291238768873801840582354352786940433526813678263805273595673010185793089033319780687337296069069093000859808318292570940603238443855489830159560796468462877005890540085308527637826102706541139747263867062846812674444453182043917968871452425165885885849826822404842247255177387294677938624133222132768740353771946647061287890934015084620877780208644338625937169217839144917355235970232491887765523452300553169010387890838811513539348159940795336565084785122344795907488470753888391143606858160329097717407085044927150689309384200271035314989521118974011790786139689772113233740068971932607650117078429232281561273840997580290879403191060842876671121135877032463514855123220273422214419763274214291267688243171082665294490093773753487084620940863500261432479813418818813379409621414029892611269943494570583636744872360549293082819280476332273952397176165083227376466176184522176632046274251831492323538526631699779818345731844732510008365227170370714390978140359460699511806470144960064546972617244792348163617738902103667613726343853672098707013730066813996095384621788003201627743851428856614287537884224746028214749763869327549679527198010211015874486904177427460205147259409165940668486440873731832509095170593544421014125208250006926065419696267590181878248304772029670344610817656840342653054691459990175642634762638709226388458830352977964753749185080483787332036306897850334737137713513270702380617442432841917358827128680471652568489477403209002196222709863603583392781832171243231085470021395268545350031234468911505734129121938448569387770480223928704791454061370325403324016057104575777039019854035354382604893665700033410262005854153146934345724906058797652064501279104287513210869557790049845758979437991051459267669033957458664667658832639303588343860270364744637309473602119064268011550084362189712025999471271985538203073194030739936437243479611418117588416646181579440290404428942872598987284259126873869786911225261806630956715123805901206067712609851798943098054813921371302498087106677886883102164140638479702068827341756646021956080782579837695257024657868940880499369776952425459263584878263682926882833885335895850721376673414622667516590477861369761446656089901116750434576184404555118474127765064072832880437446916128095012458655635138780524271211671889072045579850508452072818092768891975313799952534900343862663548012283652325724684181090451289299908897071987650429369129560390015106937167030765278019764128021381350865881218304733144424759918863083627278579276659000852913418425635792011876682685758304652318695312880164661105082684826544576172244855082635223397679756923045568482845703303828442747272346204889158819224818878871016681756463461036013148643685113916183854331625430783520024020862938567223183936698104771753319742596090522793236530000065804202701225539451082241879513652620161611961513747551814336086634394661705380462007583233964293366885685419570924934992335282843619410522216676816790766527523407992169683393269110095544830118753437278109065260796566935999049538659193600258575481314066399971845110619389630901859399232924366202182887220436671717316147420399664233950714726917978076271449376611314986850471383027455580082308118011871597718267031039205083320534769752739089504184817117117973538824843845553859256632842691712074499636947929106980813100160785403129972379086737012656496981058855086548148559743239719427448395170947470158331096037020675692502330984790297898038429703388588450091029940185895561567325358746842085486095066104214274443412905564826159418621426796526528544638391703615488308246102504724590916416609851239781364993303992041417347842200037873545468847478831067847160645760950787682402417587086770384920084874593935005669664283319778689573480417982489075592641006193527321292854162539108266524308139077775873706781020611195484739355071711094325738913591446645160178989343640262032686254246278681414772719068625293191812905870653406476348003326867216301432884318148892615394896756443555666411781663580422558448436226395545538821959597860053801368920406350904110593195162534622290746473345739187146910719672164315596191009149970340407047748081119223661414927554212246339123234527853151992410718733428347720596452540906510295997813711119171234211437567328760111553025005562508962672378946839092838757092787126651003691487413246468281115105992161773396172749913105240990173206027817031396913826102956062347061936499742156319508397263275307975926726411021463661483997226841904079318991314174102183945041844365712669129664654738204815378690694198584664462346912665973060979482516075355355103395291361452114695638892575422427368306729757906516499905789503318825000207873499818592394652175759918910276603418986047005242263825511043188923949326524574335592340802646793991684430418728941150206748730891555935954175613862232497763743022556827017125649482387889259000871457146054586958692768094039945350428070899393203766514296568497497249831004634317214090590228280028373531865014675755057247009766345435681742998446336698444694122348015739117781066943931397675511202109531888071360598244239802604526056287650666836700255429983763349714696119932222354126242614686566758927542057079454522411779837019786838703121185068449988619339654957791266206579348042280835065432336070139314463239515658424975590752657483440312248281066111032375909099684721801760274383281869873740436640214961141976794732364359739314725764554326616602201687960988775660616695983360597082784788545388232830966560633694868770843818131240187135773104445719494143386514881831296810620572960813613922605674322788640886751845398386763564938412069963307712126119981380783746947499473585240111607554879567011702020957042027140903050479599980771560568468404006927877919954535968850913435023753698691848831529418377014181833974696659820785368404752896968747391142886302697380197256155199859354375617633387596829534231182945796318174037644302214330983405918028186430372919138933317282716096025009018884178072899989041423156230329057329905674823473673213015756605073310381614315333930479364499370995499850045922837896302177276872397749376180124336466703257305767723774179770986889727845490097125655155604461635235701011449686714126021708790833568374646097054283314097107518794617237583705679513831619735834256141032828993093526412990845301213402283367371777531609479501230162909966338446121614606978339637890038713415234822456570707309631604651392567037745430472609409672204811577414645431522230516210670385900711201736212499815569278345791307269996857399020317517491428262797277097335470717392667384845296260542459717825243012251335980885602824344671544343940540731666563854665841271563266870203454748695093989093512908362141892487912789308546054720028043456941189990352327643540279587718003055859605561584970602609699393673295902913115699514227382869680405472877804612378630081554745154068417537254489543991526496540971473823716642985149842316499987495860806905056463383912277328770697000480099516606426271338462436938539958805271747614035138570268351921561652119505772604714759446802065061117517286763490344355975730263605887125896813150637996162005591963867351947776633412012411031324440893659554294667370114880979705458874229309648502172704262761096294129115536439074265492954848232597889095470101805837100352220517712121171967882011186685230391747854880428625868993974417517408202962497558078265131158189754942091848679100112334749237104041251867738301479659108811592249876955125371287456436094977110206686600144372131844034886481386182594455301119322608084473921173506154395619167083103733738022664708529527069108547938819314239989655579346610847914775953201339460183189400216581481937958409985160391935322846656428955674573336885453413559156972014559219540561504893018340393218914113724336819630739259176247137887988571608307618982636644881606926818226508197020543200446668987706970509143561782139375494385506088994855116363028977300860449271090452271829803832556043407220134052765754972896461189084010138622869602359789630770626922644092222040835107144581056985396529276765523953342208374379435435759401076173104116818848468370486363698850092919367165500248482234242871645792792014855261688467965023241657198728820588704076230856856981684991657589000569750227325832635613124806863751828316672095690349802314559217510360226175085928026341976162073312246861721520567790482838305357924467512384028147589583232662392564108321298334963555598546798623141357984340599459087557457872281050403186863833862985018970406813460277707685957457479428245565247084388342022153942157711565254346853386217694114049043483332762452155627500856904620142109484276265563240941697810324325867043608152789966850774460443678227155562955493120215572299168457113627320784151613356869909244737467094085667660609983339575004604129019459376353879867769337297791850967887027694818215023864111496366888302575588193477382411587200337946172119837916087787061820484251832689439663572469135359957269653213110092441404355137600907676247231986363545378719556706977630270741670532777370043456054657944969747464700987472532424046451984911058158536874912145039485563170812322544245517218332626459826724205843971612995618228952546586361814049211459787247074805929648327274035255100517446588334905464260537244234860141197677067064376427218153293856086805237195786002885059606193106573897205641960001195094854352327113892178950562678690839997383529899328837050875010122164999730892443417373973245405138453694408325025629322332796933442674371719544274744793595312770445340495505060819226909976842676746237842531517367041599326793275269244631980348303672807975776052932087944848562672886412552024598936853347360388695175324051593733136795042484279982532894051519456869083238588950737359531084287009324749523158656571969812461608386610993182648692709652886808671581883006944818309574350318392832418420837186536009785971674045677645917929742097962312950001708182890236801519397010984405636484391681888825011023963992901508734419951097142548977458182798865490459426107868643900401800783575810865528290134793436618496836277387041890465053069659445286713727369898599521761504628932479282847640123664015186981007576017675324290573502120027719352064322946788971836612837929719682490174103922545304717303599617661973411062113708932223117459211790139444870471398692661710506988222978404888992920745425338013386637870443720798720260247842134513091522757837659400695544877851683220682765437250622165532766314520682325695613775798777964910816315098616028752618348210493246520757342559826918093760867127101383760134193134868709024924016093044527070575338671814409993041418832420461096706597116468205050149109132476617674320056621127020617893560537157189374852949238949820502082368976418552608436175404994534596331741241251806439849480847586373521025745697850953978273251423018707907178523213593342399588198001942945241939279975618065908309192701175977275539140917206304099288690391418821704355249009622239346495487270919168862428197486512112772282467923996430400327699255113283088353868876586829480981933810151125378975682533170152062956055155733930448966831267695759703812689670244873203405536531645337087771099347880616002605927457585959460024488679504401503120781617482987648806190221699389250838602785877811731733541681088572166874643669634513356783147490838974901173780836214527315692165738938717595655412416417859876006370055204961755022246433263170823209676280765599601708606649829965243988357172164059498178509596354166140758576000291682735285862697288606399666070492125656951324347078584368443447442895059449341434713903637282227474745253319183806974447915853172940682642009841754184697403855940774023450041770457394847685583155319416153887440567213624041325738090681396204064114447438982874669676692325512112657869173936499463322312186398681888550150090839053493426138834894533809185320016920458364102451919467686114116429686418641480747294094670574558479873201298841133361409141031063981924800519865282579758570091576344512357129117686771559011980884373352142005120890323957420051647864336580714662476617256825605854219396050143286319795900605892817951383243119480433018930555603317486437439103685609007405664109006375003575106651291534432235901208904153202609744039153301077623211571383628772303692806470119770882942461307636035264762912736592703815521385657709489843049665129178332452592380738270943188295471198126260073527928217132637904103290903531046530727233983926853254710626446519116805462680430013240427349076148520068752439932838495734520290902968688683471593005709825939664087156970613309245727554000122751450054825635890438824519085409415124903358424752954120284719547504847239050190951298284540005897708046283227689451783926353688448253394417308689894624918442280043510791394535408849659424042322119612354678438215042044239681458299700172859635750221684153518435678753288237296808389414107647275108172488489706855063725143294764254316670256652468130118074762276469945941937079860305328744059832909810260937191751003814967673435887990635722241140259851292914795717598177726334208133074422352061866866798532086641588279152954740779217107048775154436741193669069989126553884077543983053921702270645601401255519867211474630473274343932890507029019354016733411056519730564318841781829137573981024225754685912326698447863231438363403889610452336832197826755630407670371577296390611649798716239127662382673048812886449567073669012330420885651686344439161084025596606610413352213700223538317149632214899871836917218933902892323275683802116878922637450831939466799307397564198325330647264413100654387456239391797086087481779731019297537376133638052932172249541462238324416537199470257479835068250140014434147299676292055681637217012087808944175364578511357265431350470290211176917559458850860842443219157399419298472622587962669774291674928501288397520110841672525212240161579473017002055218249404054636001207430016180532797767646473095494705701257205523292069260225806167179891609744467696483583224420706861243195269844655723913133164316201183666629624392979019682913677377412977887805028017124818582583458272617693945427797312801793546025440510445247021423910008303257932246447422913490073372705465327532393667894797134934016088868616135564786049188568205190721346341972362373167041268534863174428613870487101522323029844849097378464440551043520161113096402336470521129092931681293014622689987919077459343474875466061649071365929327207790504554386393846872565934004458481758293437165887573935629905341043948897366371835972455531173038769512408015958437712056600417220348104753727910985019517493102187051266703433100701786661763886337794357798793266313693399003278173369939462302555031091635266159331963337041958474573257073539658875566036796018822839303690373652538064636894330280578225494027316758695944801926724294881408045631326856298278220635138279017722737196474249424931534794767974419674649777694804423720575839021575912397246126082087236476376557778990213841056008936040974036805243168670290519471267434944580823444170992672384025743974062108827550939034620201353810909993471577801377187679071010253454907018665467999667460844522685441938412065373105211666497824686957102568794552491725785486479123317905298163556608350185681537095570598636067238406530620194545483731353513807961022455808832295915322624050647909457036890497493777097230819053950923504841122731533465485580882607134523725825465702231013380076341803167659184838211380262503623351812347066381334227412910756243262297464092418390599998103249137130910383534457711175321617788353086315768717257993951688615222222758943533864749511955785243611945424440886325224681055406145540824592860962988328077991380699880491337896237691503367318489807619624521479810278624723343293227263548959838282853171103540878539346507777212604015149565666228940556249227295988719043275108213688197663551826233571622254214730192253823145995312098934678742514025127824363129854402780883629069130905121471139135737104157624129682749149977066450333424171991401162037442985534417620483430498317654039047044756655106859029589289814009300723942441780741414931395644994126373708018122458468451353833828243413743575089126505417488531667668535856522322618119544144971707076842803989729183896864077351726999560652216639992016856347450868300843604054377624606443064156929559402139919051044931773553155204250480302786854830881977146284518111194147738393044260907040614766224029243883019533750005656139200477287339671536976296525360789242572002384242005773639743136032739565988612494223108735048505770613940172188642341959090602708342809988787841737091703909960508484724249823909642996543099583579864176843444280455460479991308097018789043585328003190926736283772771100062162971137861000908136257847516945559649296487328349964464472712558940535049501378708003607660002325216086824869737573902551690826313329671152910157707378935885835765510782574190816439623769306721624385095896469478339354600974420579916768883922708133681074692637794493462118336099669486744216780375939356127580376582178773609204312782961745821120851200984399566376125660496411868798104062753445414545500410552991997001060043305498899737209899180949159292679216181158488599484320658296763379149579145194766791351365696992299340009543379028501461416354629444715512937273200983425981128822839264441252061857845525230163785471432642568069566024887124533227765497140748733944531586470404449530062970531767329669452078281667651236782109469055995191382586034569152546532473135618138622208554686519736641612676812300880719024097539999297328174705616146309907661694286296971829707811019925953552937614783346160964164370189703927394301986663894670138168829902881518544041038397756706383532953037732489602310015025732799493627393613255197341743414414620143121218437653772193054971273392515502076855805057789882026777526989976347334233370792318398364941079657658446812409731936863499661701034653440510131190013506266979578784833507754372458812953373673761706336342784522069351336662502731431191739467049103907219605747088929154402924915424843548552234050570649034968582329314429913534978878649869268170116092832907712205782983139433587494238090961076734152404913524287352983702013659684036543317873853578761053167628442397794414480813728099123541475417346734968865702507375841629403048831584892558542191686038387856493655621766997610649547117544099116988677986134210414759344198285642441603668483260410440887120609217285201134230681921435659405066592526250546091054649024561105231324341063044489307619704944736129242358906469729034446942836499645328609604042433853940749995616653794798637060019547214823341593646897249288158572854524735805997831046023250434633297394496225361299345833013697698612496417126779571190927683308920038751777520886283624014417305994402957111750199926675715936566374481828480284082213445276763979295962688282870848403210263846157944342308103833073261837289769939570059511905870794284885843378837497254009509410347124973120105026687278664372808430331157006035203592509274413301175354879264836993244851254987262556487939118091085685649067333513802263048020189175864098010543197258346551444878240986455539884776881881645805750275681282196164306147643831753436682837920361887774279204812252817985561110260184248900938315568295658654689261653315924309312090554151978233874839900969729385910477318500255385812213307148600579616220190827722473261841869617472934381029760495667323612991707097486056214808282822355948764929747868049142044546700121947319896985152504455411976314863092782979688756357834343112962446978328502822851724474001049840715114989288629908278261488128671718363080124685496078637335161189835248998968292704154951034253847658811101482649878542940699756525842068548968911380236277348660664314763717792090393282119555216825226051522737987460790563139087697894213998039568834949946975364913347487352556394629054243902538669256587747983947721064662752390063368590440846372314486317330690834434739311078141727007663606672362636052497483266006480635942323295013587657909340086662503333539810827632166765655764671831605973854742796610334079369227085762413252346299728723862934393590268426104052748679382960682868563361047618891228184374057027724560566618338714557559562550572349593085155984951486126506846928649124145676456253499755930580416265861970040807664056448231645877840538314293733560224523753864618440293093255652742957946034249336484163317843948457677923881630331547775712093716983825059851447769602722701175509178408220305866126996351248612181515989872660476905119738498994139032710806932453099364965172228759111878447802443844316551040385409536563647430841639270418415011596201362217622216585449319863452966652904066182804999710859575227252941298720436157104268543515662917566132187840610042549127405302852307179802015169824746436126950206780315064074982468947341205726541075683514876201597734035921450379957622777965127653848872631637965682917946486753320230549700828895865821514265180746277518955958723039561574704543412684827748433961904401586886312757049054918071315846892633309651863014094959864805252169587178994941723409766820625266433229389454151983540523253675567327884236977391589004238768200977195145127418090345461007468967691708960156332716592870942373083890957573384749580174670363047976163175846187078924956048434318929533962358875233534548834744044550337070690470406264363571050747479826197607220767348743700665477231740742524443150027120095425123426735489023188968482784850931368178840191625179437740224705283539867383110808984225411581674627346893272621280870397179209306100990338124213976211096777722192849851912132563234094118968579158299321652500070570452991104271683296361026806515360701819129781222114641733313570505584428687773695691123743250841935587000689314076745963590695189893394171575906853438286756321417115100344783761843677587172850870186929420908177587306857428027375660102126014577357848352085249507998043215646080538003134052496145187483903380129402132239705480983718728631850355208830346764359083567526720983317732580960903391854437249797357876471567725271571520548969852393820759159740408070163678598235061812345479808134338514875066391870966149231036740198534606282971860608392945777742501338896963911574273154673785703446820811284086486997576707052466945702853908732614207023041468476831418179408347623512627417341713076920623371854691426169986496965654398902632843674868153919392933656458466903616131152984082085709211712849356602270604429771012725977998018097697476559798295667247481245437731728115671987693186348641952218868613357050815048653192700162451539077827074087316245843229829904987545955802564255860105826220752178253688688956111880052530763479595352958254656601855403614593528446284553075566329292991810609177100101434608789143913350791427566463504519572445125798028743677271260987096839936299174137901405504480719680996999225561900739595667270857745987306292995473901355415842610214388606236292936889447012740900523237053474813519658207649708418416232750914426909926220068448033675380481536852028236722920694051779167341121023211953177144845952351942292510445306703295851563563907348544424648577008250317707707561217843140755062946420288493731826047833323585596192750676308981945128401901613602647197911001771166226884493388454578936212357670129486984728312648731316297843063020889770274929477938075822906018143100288004850276670711834294208206677544651286267770143181089267131971264732525769275649749044256405811175944162430219412215812779852842989583431525399462725962858613209391451382758288410564724325003928217952316050667209013576809562622200738330882648137009168835982401827703487989624574173608262672960455837965969023315936103913692255430415267500398593598678189252374790454740826792633617050879302739769147465333480814045028188944631346718389785525584711429696833971460155742047029288719035735558668570000240607916957132978190812191909220502108320286129005598095827048994297298666019291602605633056707199851681930594601979335226928360733996777819010533693090902378075640746159556999591120195842063661507445203423311310123795044935371724598996091746295638643600012960192608771898305675165391740754069943350819614774924348187122356668184481851415566503086066891649621257534785656993849232372208030262461883445631945622998375539002562929901273168087268483982524153315898898706466794470756043588926116151363434566896430178338649831297874581028460148881680399575393588157893441007702344078135234246851106617998005218498302916144084369036992734365390488678960581732792429059733716180230636547558506832253192842756256887682124365170170532157523411314998122332557314634120954754104799184685392722614455406913568412828233578055506782181054484970218482764144244840946398014679125048100214545448948575254290061227566085311143996796254850137090998913209490881866743707624777291330484661491866952717681431056631720007409063797870261490157490201553369691049990199486460675425959914085961625758251173974266887890412023045120218704237717460307618107601528346711461760149034645177103559982399326175531052664053421596096803117052788384150438785802307972188959263258377347788400250759324198545964745146455459674237343557454539132299303696080904046687555404167098295082253325409274810198304238220322270207597272412818618008888482527835621392795009425681320828485373158509381471629806338736753030970160740947203135784392358688507152217970883271136836476353641265027210541225804945129506591759897734984828043731531563075313535803313300744457231842808021151236279756578223182547641499315820954270252562297899689462032861659886249204769202068451618317076448018051708225711708713160535903934432717803474344853978577669351166858562701142178408851851983037261735074451470460609517466926921270547029736390147297424774546800202938637391869459264401736013221720723113727902526277595678622556505614738733650113535617600015871393696766591022804785172902691169520733017992562219127611956437875069264317711497999974607092241554293914913020310690907159166228239769806932471526913380161637967850162224339885438325516065264286349532160787890611333451228923355502356413630207000198886962055212656077106917482035402552094370611953582087156577509820664338142751606846597724451243518183496958085815249199021724208403223404304170516429862058981250503263380042294163119666370126708070872854487956404557999364971857379787521746049966872831467383659731269561636745797501657486675682731388596048296430262713503859405609783047093646088973526794477064076175190983464189579392651532305895997460549928575194554010251927905954708300181091910355301788033803123161034981005060772774061342799177672915241549394405927285199017327931852221275001062995863943043215439172697350886514415783533515012533608609284795982262603459329382205531801044573018204054720930459793872899730719682920004451557288421591001415047125675787350467267944255189098928924932603526091602299032158211631306430319537043342893578400816869911123954498606166452023999724466706849202045910451480149470836855332925733927136456995936123576066085110060320178041613134750211468101894006535812439807774317211871421396301202670391253627859065126771338078662810711940815686712022406848376856457179481432753898802947753522100273598384189139580228659721165709058744634234717760712187518136375213258542804068009572048674705310553878846549308501335746176848251241677650746319966757974022451397595742232258155844427906108694672684599039732119255672614253652107767282654854028996707295122279070882821326122187286137900563453256399051901816768073251480580161231622653753253430718426825370820742829115164074158528354805137269461546350378891292749243592619917652894454059338502488249985257372847124851602094050051309013589094642589335215885042725478537798136603574110181097750601680190950996608457329413724864571668842294084032618990507274884316441454212549508665707441957860078456421706615266869286273570641899993609290992349197924574849900883690194206546186270111837574655487327302371736375299641358282340761478122278912765631216898188538729662231194024744605394724125273854128062153843583009223431044277067487991618496105487321765262291862132900872443195210739389105754100876265571859752285643511658243066946086957169488536574903321391521143851652858392014334210290869276100065593463189683746693437109324251794075636231736409082350245455341529385700328918402234354071236693416281636566821539057947932135445298479247125991267681529388449466764117018889648990524245566757683109834904863541006071427954892048585083137202449901891579130583303148339673402029464797607410829011621546595302541927118493100624720757164300733220172853268452644009572353945714599319797245640463200787655023402933168060586523552743986141687691940739720356783253417988335223903125530040198085660773319542561738965310633856843409037175143995046529037845491407089838785012572480147357770385609503076494916828058861092924975062645351144687550343977288432968792186789092719582514999845497162369615020549183142169799631876142247424019374031876874175462694971112230004087109301019715292398118817976010027240214068199361566514015796076865766167724603171538851746455443031662917351075125702505164362635058442323815621693712349432983944208462298333813250495424080545564578863899138915239713797117515112295487629705566453598964837203505253809669216481713323718020881850206850398571208714972829212469154832482486906916424246114889726406103168802393635702686561718741833445305528914428057697778886250037351319779441772568092914294085374768906532376674951236751070672154359310250795773453943957904958455162680107032412368277475521441726750805444495764746898549265710775324843156598839701238280981048589160246469664460823531194755137755678422707117801230713264846630852658416118589003878266836491934175454427536307281669676232990124575734535388607084245798737650342106828238119704547445887248616291848556704279839922156631978540006976309299629495612805995704826055083451843642922087091126777314061466532574820139943162817894733244676578351489626235134993214781924717187931713918050262218200379123376864547950325603468715824159577006037990820001346540604597075280568734137019529189600629332777288508330548843946556345825971053048205480692755978960329167947518158439425496676712481028033400274205947468194747762704416438006851735814354783275409903924261086254515928668468014172443648980219647757714999235590025476730757440668627759483589216833203376169590226933793403293077214684878683856522310946532021479637195762627499420818180430499495393282202989800773151052440433358792381456082519606976390032437625387641842153851522394880229423309129073088959938482678272211636425967703708089009752958321950911035864199199239795706798416633551334701176041686076746886314611456357617757130514901968151581684806834758235700732931848144353446922151874687348120602465557131114950335543997264389350569174012618602730726175483428937362754071272977180300774252386912358485069587159037822642377326842783190955044666584896694858597950610181232176632705088785018129627024940258054223021706857988607025119742553590686041277159960844807598554358557886449236675462556639373411415297598305777167778121447013992248547709421208059436770133862313137709115024384512472612780630673819842328616736752056272475792687760161653413885727960914352749075644564606475100940087344398059058755224388665748459929292245797167652375540617011800692428949348354881169114111693723138310266629498952059930331841067222570925275508513607736711361081264178203891138855864149104490409634681379640668333082049049941448032279093191434849208059067741272561855290432309583097718000595630520688962491661040475069030193564906674632066600989218191722774737453129325897957257863218920659881489051929679204002841705769088623024568038671350559355590236309380299324226265942662161004544903542365771606838711456242255388984244150700127346317641093864168859269563647688632689910359559173283849765353056335487247285162247030756127240406051327354775484809584637410504480465148533867530477729194028033837177057547380160044613623604156508144105934921549671869286090027799947704709149682970589326275168790494923375717782195499022424325462126662292456013641315878332483012362606405996521375231671879093887683905357122109738946387205261369737681801045747948354047776396285787781044696289903333688122225359959691636777189556890882665737857618910003335354001758896471282313282385139363087242945069182708603434796221566516883784717263517368444981560030709193455271078575262792694128045970433938933385657566391381264469799425751320205006296822398228516014667804602346279580337139962763974399552052756527371497307655180287886127136875866898673256971847006522513623983130888803170581099899074739149314361792051474467530550502536068339061166348635015810188098897204976952734686369488340342899204425837356333826184131317240603189284154884851236989084843279066740004454338081052092617284514416336770158608222730886349806383105010099508048485195422492605879499517258095876176344225411708030382264034768519833876167812405122151475164611030295638062663714276428598571195241475452771504166956543589196552265171842653053943234592433190010944281480442002741767216829761697632336865811887205384132061114712052203649048390622218127471241636731521035695768031234899455574600550254512349685218402823531783679918456797111974280503818763653123483547144803282698672791789413634092741308855231327568152492382976036250658297990081360708822047086398086946265148390871633815658360667039326310989196067061518875967121516914828882824777960701577417977123976898925311906052838476615776879629293357325824214283739591716128056978743997829814056428239033913240825461943998139178403647535042292022820293756221319357866179654998308916139480024238318326900490603521569174652515277995902691196223003000108018414035619487685329748272901181961262913547882417986713018845787724833530371309721585317017397731708445998395040799591095272944676059192922237016013998148143616846798132363774971238473190222877593929695853681141272185294598892944594376716834128713283807049332789608320080373440549761328838709286349864026400556378049130909703559418981464699805855557903866212367061527245301265142286613915086655768179360038890162941319647151129091849861796226415674776630532714716381019542466244903447857374100978597840759905652131219026394277605503995409903031482420142134113296324511316995998862409043050539767889285447827761812197200728132887636571957173482399187600512700515653037742721691984848754888647289088650499674319424857931195681742603384500216689157644048614615919477669015613438438590362291372198176171231585897146251791254441890387153582633243693964069934485287121552430801774671436758679696782668224812200515544350710148040992595438642304436263375802721473967749085341283824854276273139866044354770358294262776449409274551635365112771558199232091123581058107228204309042664913878185979119315465299985636867261487679913799701522588364096847012201593953807352140206070775576850988009650314695839822995889594612984444969128657327492345366882315911891852294004612457511537736964903708972705494173271002335063581037619388629831647784180353172706963383098754421223233270859639124506504255463626094445990269132422087503119838796091477426658857964377506740943039624247008791258785303602282570751341105015089291162108504901797729584824489716294531929558195477036748402331150810255000939301231190929541128530624699858056067808038854965324479507632632600078161390453953941041603993149117657597572832348400631945316383754129641146429558598290967759485539997540047332849461057958811296386647938323042257783057410314738518856748484105784058050362240981618670596158152925908368523231478061720756967050071380581237853845487905236977491832232888432102184521717463407985486613401882915790705110229895219240899232351670475384812796508752853189534469465451050064992488327363171822141939093073398478708961343514189744071115457854815984247757525270334904437659476509301977098668065531161650879283628100497409416626729936344399522039808327595357661852596670029860975545027316394787482440657201124891405071812813814744176910855536062113631720444175888970095701018101114688354502831152807144218262848757955561649670852742881642487439677849244405290760346014109664478787389439380355717066765158857245540591080066420016322961034801532332813534124418455913058291581112149753771459759522421813813551138025970370530155503368672385963739738643371522700166269011237459207003617423406351708771558666217209407965941001137900007263226460414721952707809127736882871091560441445454775274115858660998418642275469896261350971873544460173948186829044231876019365090096187010073172549321403818216284513462186779868852372312566635888694457188620189104636172788621780816655680021018878382883212756919515922749666644100305830953109754000329624124572093940311433191489776204562222307132180529058794432965823853746561348923939221364188612439976091980273876892673789054251385142635794478006749186682084260010948712468626909365809541880027461299197058963243984419730067948818436876888211134960632362500549230642124180695644746725605249538985450539582645502444069414699599716996391881190787820351842187658554063327618543600289606208962823132911504837508561244829946052174122598683059970033661934847317573421180887532417037215706364889080679786594463431720481693249752593667720688504368265591211178165912830435189231865413463534044528623133994075280120405325040652767922003354731445390064311422896741214630462335674560377724711223086259188402880366172474223719048753852994008611848676786973347233823527224878081477508176873517001714381050482035072770840395025560059425733622714170054797065970365645852185194715775920293905323015618138177195483886918592397623463320383244822889837608012604024710001119334964352387496321548469005744129186342215707436594161228639468255659565425254193894877373899148656736870618942300209559232927785840992342911047068708276945417424231827902677255296652419304910822643816119705267757429914501757988448701530833907076551047955752876408108149147585630978237587052389465944406428375066819206805316194579924677902196771421156309016991452095872030326018743138366663015885948243288886287563469297476870638977830773524456756458745621112216339264080577796255865402504554923392390295833212406370847217662321187418617653705859581700953812344312695924764992540891347155126229275895746748632195834745711187709347251416782454558814947685664024663057040548587033209777427169353355224462783899384394578657277328492107949197445330760013298609023276675979051196519342077659855025897753911919612648057721782504877379374491730990343343435365705230309242109135522945991545544556348841794312346659976655782498610184816975845176692002942382573461905334085251220970661191628019799881573201879324883579734384931775734712619011504100738102630292518273850022996487235817494382609891098060531431816608119087293398466443031477360430610338452847181076658428808440407229043255126766178947175372281948009469218319414153543342722520358419568289529115087483785991703887809386111281838222628584985091197862188873632055872051629813022568870776761822171532209627159664584812549230597262240712389854728639623893754214910613760056265673318659414323753792137374409048106800051718084062198806760284679745386735175632786333827045113340169930134921561959355751828812588896672622115054282949548558056408874642663999496625784905325313461725323897773341170761995679388329594282248396423459476761019645872111738603374488268366772338344335868302540675162916695059425229133006881392771562909688513362027265350375955476236952961790881736701155226212236268384904280343900798266666129575654855596867087129294547243171520329367920584732171935061012192709397329556326990458422906684402885955159698049417538126947029898721853705393546515692866792891998730838291937662297288994503785539941409643177423467111436311627782191700364319205168726091749291877297791946609316904473820598043265660122294868019782502947359984794764618878258843195597120674967741878370485886314391635236874617356903370669305122840611348016438988000527011414795985555867085234712316028860904374392869504453390592906971211307535218266270404243472208667246426236019058157198798078154664533800590809992144204186756828755390004494865266278280866729408676198013613060577997648044667551169204672453905042083839912372199969328384021781554432941648449596455801449402204920045328424354812042181169321579114310189971912426219653884981266148336134279240086737233253267714705107797489917019261164604175858927372572921911367071679956930469478904778736791830951145053473702970621235970032362922504651890113063248594329399132533466749890234691767044248447879327952440938182342984004465399352945149060047978010052408773240709396417321200752676030276239280100674281569534736777998898993776348427104280646075257866182698100681667265592720091723455976677201030341254910089664596525920715115110342174711843348657880213342635640475515207876333442189290725466098607897691995195812762633747554292356629711651245702130050187651959228845263029127092097742384496749203929440478933352537521498280341783149577698023563253161629344309931619008364035943853984751339240977899738840021827978641778865635129618414002068324698180280513416726548024933796333663682110670350961687477410793601290860466455546524914436103541373332584043132140901201100013024859631167203261240555889625643330129486955307587796570342736894136842808824181706804268990093218753268545419241772210231327139001433658335920211923764303852053218669346944575198883316072824282403203516809275023402262053949325907379585802955213930919119568640338515709600163997308296130986688647146277580410845516005000811558107977352476962252578696036501602632711413295303911361245871757363422522176073076412620665678293573118748883355060701205383683151745597804529677934584662286290247388786041311115392756204909520616478726323124423514962751813036437780058993904750897924933797582216682033069037948854553501214116242356014523562096628722761064701380258547865779094825751882089846398871683207452553315930547987510096433722514501008886313005996297750584775850355403711202914776565708669768171056893570712744619764082550032272717427212797391239148538277195646139401022368839202282954369892088333545032155676576261097077259755282532181801738056341611794254401127991354520052828104013876908816848965172207188820929542382394898347744877792580105757028098875553551222715793566419332123395227815926119397316222463879075174781364789179582242048645815380267278139120494575072112938598493411094725660327010051031589211375228654239562378332191868006761359677497928234788092554359737380367133169958248174659266324439984770917371531510148965900957715298311058506224107722404271608632989638041599836852671056696441165102691041269968007991342134162584657969392754842176838815727561469282847810689130710718683137857449233297525669508272218239609900208808761887882370903508880489210513541206347503707330286578227117265006638655116423822342421420273767408696236481322988878484354416784966904818358597277318370440035755681020136466090876424345528671147231905771497061612911012250889773087173500706651880957018114191539948483537916833746563846172081244396848207279362813441684820837401464580554186634183695657909940164070274379377937925469370894628850646556687975345200215092935606729347476091336134910076997064148165302418718873375352676867135395661966860139084490582173745021751891800621680975730183965451591944365230581583413864123430109898569208388979194170550708072407802081637952118253758426277084834574153774742084818838687133368789630852350097584577722016486992684645945928484270277743944815866369116830673594492812388684090912390638531504790174462864100476485622402469265556065157347597689407141331220595561074670208157280662615749384517533761010565359836962551012278977890692604600973325731880368305557821586505698920218506251629630915247063574967966941394472425396661659349609070564182014918602735631282684870916123212003520467906805475260042267320345009556479770960994304039196701349616433442285153107358107695265779554443138074368522524976948989202611477172314754452108545435477003972145399498281420281282793553319625317726573115870827995131760904185140765238343338023570636305462715722974892888789835232739284908910599830730255378266728229825001158083453897683890334295301737720083424785644210573765001371169282122022099132243046822473274751653562347368632864003685189609539789194300670108153370786205866536395980172766460912170123404590350166650908632985389264621201738085827605207190022288458176913740788498588998755434599534200331547658026385919962982089450556465114375039287925491873943033367898928870080401856127391212899951265883291879134075532056251733015517648196171355772564858778327376064690055164889486722942154181735901525547887480837925968397011773615910790161852436909873400448854748084955197898473658404867526106894217430741912919903703414162417963061388127725253134479618071386541442200491599337625985226586621757417097086877548583124492658690867200380953409247611427016538668544377622806710657503238204877426329563060288836079232453224231434977398563550862430490442314130432394991417905151335562000189727696101079881532483991831160744098001505872551130651413137144955763901131940361750691047598275063678030184819176137063607237667910998249786243656063500334004113194252296003234982122232920709521216148781069559317611204936837481900792880836548310766545339961983543995349816788087905323856343897731521095301015783386031676775863482795572357761723339333691448186842151133318580525358786372692350031964245613839009341902455245940535387196459340106299179556277621973008719183671363971608978216736903595870851436420704964103118825745095391986901779072062387748036140337725708907878165537147077003874885284720075314573958117870503345899388861136089212606156166756807213499303895602468504592242377469852122582014906110062789129131220959971352834163116982815716021903141525868889110119977841225759651490536284245160647263680650606578636446764090161883819854574845161423756053088518352797512216727380736546704957477590138078850445445125859205970974870692741644360578963360298358830681490323997890359976776579292706717877209831349633928699474160954872310031335849910749137879681954939910036928984557552190943536322180801213685175306594374259249862728511927098313682659786073472832931415448630350665076660013798125110618975794584040796773244198530621041308846694770709196895152007134681572071434961662184881710604188127777698913783728291572629230241762048939259621131342063631391543691634129993163222473579921165995711502480570960093322579210936857164401829271288979653141140912117132429477394303766729389704090533950879833976479987251853742182501234557018266281999276544195104120819969440148684973290400380869678123156495605538835229564606888894763629117626045182235102111560407684555022607563631166204764942996113915964843831520024839668211149016606534756225682207146528934606944833791751016202209871473842202396714994899898338661313699457177302833385396451847607427521796650742478340801573443017932136401141065711480059967430664701759951323847244458068646851154643621019849902370619883349708588464415848987723569585995215805364758224172682921586504964798787763187789375005384245406366753714870783017230197209600851190850531267147494470574212129609897595516713021053278355713871152910592539052076721532867085477000996700649398302005041301631957624791534253225480283669846315572746428233376609882594083274419570450181619448334997385003065828860555578635957669543036550170833635204574794454415869547561192480423135440829115019538290667432888086028058112801433710214016875780623632459011334749815639118766709154124557556299956776695304947089246611157584570270596446130293121918769689142859174363839257553292776093112446626248754409329077047005674311896300984253364208801332104681979785026716565295626475463495323915770292745692479209901549578639194764929244335843318346738075654292219269941818483693748754323851270449646211420367462336055671184011956424495811641301385841117837113606404631080218707081998540274692509232831773509194011670136621071918942174875595295118547643888355138354798316160442575751083687489949211148253905488585772691471076084406973523752677978350707021055231219566380373488663868439657737937893105674610708930096684095347212255554760998189379251949037909684347369345603707241122789574420852126733768642878078312665980969027491307979447365371030359800088123060375171960751821404243210208876093003973710620524040657856127806712041084433036821382098127157032493511932406390722710020809444961573915556287631534494613709014608100910031686045958321977013075009012656141262859911607513599363403919989118482054883989210018845590372625063753647135289243528248332113205330197237067042114647121131977334809681913326430966993882730257029988743770406935171577591475374855449367555801927752151341296872679905047433280294840329196247633420493498766444783815858363166471931982454455408635668955390851351328876541752493984147236555191788216345672426951211351333710666068562186886636650880325531887365288972417565704187665227212560083156653552647848803536011763713516714085136268552866263001424304050381980029314056554807710395338476225999326022174322751947989290471595240487335118366356395486874411552084965830542930592162656611796034087603776172071550662558658143995376163167500724110767032884432189815872187480230031821247305093368009549686880504027853673703412206634110638443736530474729495750277796956547500103636942858429565152379484821810949728656000338876326193644007976829574027351172374772441889427128802508609574490546483607983221100846042296861126707908877093609801094774336829924118084574943781334796722275049594295924144151111300148897090971749104114095024247484876955287735435187555664382266139688287026007924520295588862450971612861449031647827408836420133088029479078943640095565678850952719385345220669694943003571496568942841285825266138392805393267253620432271804846109581716562636348230115298759739389187762137135618505131701917172760880139658389627229983942377950617576616848617846717736391822710183484947581083701840991531592333890835234705529040590437094119945370446611483597384281151413741395095217135558727184266986746339400727630647623037150016136097647296306147127644143881293403914877619505777949586011605150344939367479010807842427685404685298421726152793751120024385075369192944191323851141576784431587682867030243073991833071503411750459787735405700706887433131180741689661345754984544004634836237861024904101011012726135182411783966849450132689443261627580802569083672659286925006268830909528620495608640354357507208858127380928778297288746636557009130605338812737705091426013731315777806347239395101875917137096035463741175063892292909869176540455951441135324172158753138925046162572709559929425959011917103177208567102178473956985137887610224935330188492098693591531729429651205464164998043276130610933508526050014450712151831620976664725415245366828351327291178801078362260017793623733411439363372805457498398248452052700163799566328988492863421828230529937624667857445015464623581358454775626675440341068049691236339372227582382733528352499104078996445388640854501276771410660378246018821168679323703755793633955842448888764278690942636509134570430591651773462741508367885451309976187416413510663260775482904088159883835339844044438883892897046873423652496648273621604813220496387687234662012982228990576678376593111475401310519609530119297450810555268137794400408895652955905005411083351832039569145908010394832593011966947108335708066726380533680315415910168945155373951864077778958539097528738260233384926491853367248463212224046716454362873376959313223598096753487951606723445097797344654097603170472929859857127707584702876576063557267357393404076868497851864353072363284301842013409468529680235082384693661682753127571691396417954008502068246668827656779390837238002335250255149308789335348298334798109981357853318993970371038009167043821610169908977092051731220977881684317971064147236107182005449059468682154795152127850519826739686132770745547021604934362913193782351682364622226410356819401031043549252880296960410407377489483745113331338048673531129582288776048908662688191726717404619888648410541215209360733111861857817781270874820177812422381255310483208162771881466081342307034807987035215822124414113835318605798683423421405852916974938845619602733950912744366718200205117855379584705278232500757480266186505969595415728975148742569284479135030543201968153619901293276642945946323963012546168659155884441653478529874336223997899067981798635615207006215599287663608464813679756580646659295949147366100160720995784639903673863814609334342172427152066118744798518049151013797481130283300780680605064255312944098480647072127725729055547342450953878339633389343918000481452146956636552749498281014067512095909281779127164293952829682406799031218821076278280771230778414916325803153840233552709734108913426659945285577461240110194080195643214053016842252933769939951890875323806800845860402222502923952678985331596019545101717723391016219506302585105546777763946936412611890039917322830074028984970199617235019585130212594046257171155480560545583139047333191148953307835203359049925944468258035594960521695662529895336608765665354379620220652317524993446457631342720320297450327365862740340004503926425157177076321765939057630387049883336046737013764682322555541228610661937904432306002345162373945085743371361650200228100199155345212675305016140923223617182934292964254488830700825748176323742417697680984388734862399893473813816903921974542624405544654154549287184291388122693567891823313351148647012705442814325020206072559735110701124779924744020705685731475968278006607301881143133049213507209724754269544908392107197134082453791004842810438502255967772373943969114803955024270433250973013403546953071363416769546621378189394355376418618446767803639240808568380293432850288439043992995634233179948762226386871785689670089346872571630747779100434787788919551688406514327112862114994396582311418757603255912596098454603218730218455435141413644996273032633722146298790056133112312180537577963472732204097994427688332844003433877440740420403158940496427170554881099721808428686973907666080301086941674748145220009171912941524613047531351263725161633165260259856826079961522460984549735728843450630733230144794003351177193621848961487095194784234730767156360589631222158684814295215258200356728796436857076792725347805889400528399456582876798844715481503235796403233048944466024826653250025867066142748493586736840602736761199809968543564243035905568708827879706030691235708825720882520000042201975390254908213253176092870769283841797044255875250649431704200250474370632865293012210376128129238995269374146875531772269334026205143624594712832114071209646899341771019586820275595084703586924545406091831404325244817621330334469054528896470166680888741132772967291669247489734264524855971504257911100460345198590815625009114869394273628449547698197922291935327373924389674508793345433452889725273186880524654061766743370636916040861003010802494834227287021762648673016967254896726827076692269026667786156816764296600548999061558125865571039350234050192919218009649600097251530107046900196236168402639210340754860186021592167817355539758999528060137801354994291177195128538304279063469093646758705200980521127640691620426934637629686397431589430903875273763953855400652757082174522033176390653287913986720816561247101392289085901631323965387832681457575904466413980667596426149008333868152972726956509255509538480488083039812665118827229165559143814950696825645210239839736838967568153469023363658809650427046863489925270035634240594673751528622542862629995913438390153161129147017203678368382846519439849665528562790384891119784119080349075778367036464630422279712004456756028954736349158799565513072986834389844381105183593153999485674120348544552819174794594376892425316862925493802225662165346946638487481052157881319243562192292144832398748333310800470150541786021486542588821615560523054714299687828687975150397266614974265006619611870845490339563111252863533342386415160973055427281821591472192909125311353201223606638843732446030912397152400237838304729168740925835367658010941137899419521484780027109602655776128041918835720252563772940996953693750599039304697253700414134892831597479491626534176660442631420657513042188339261684307453528560663531324193385719597220442708218293654993934765799621307369032192309401241391270181301199476503797569863609566746813881513406282937970912470165073382050004986827739194780249736911953422886432156419607953816607198870391235603730447083354501621643637557592599481073797439222331933693537117596648463427794260324658607829223330655718031467086135913905004090638848792975184479147336125055607252240786681606740000763055084839022131270544586821798778326355497155721075018398971979316779325686712917894907815369027843332482489931873390793805942564703319631772181323315747496569781707297877701484871519272150323350163758949857334791774504547612823724626672725265522549956805221506501544633150137331451551498161818445312803311541354732327880566413773129340108502834462049856943662591162087501155344774297458838357319246541865873887939301471130036751855635392145396247208180939964244297671810261796868387791900179493541383921893206043208740359016662990608573176493370943127243050403643743487930022324576282315887114342287682012986239437806768918728529191160840861055608778332780351496830565160016349813315954310188116321227853265203299459688156043757185965710357793282171575011040572123750450473575699581396284404594108360463867825361869233444256087783482345301374524042926379348569899154482631840780587415103785966521704787063128240267557503354144308074225149244556728813082068580644509618781467631069772043520686022003008633393067846095291573752800219334943168080666454726056796952197410605193572811107719020798628638341779041468952119958159971833477011156909634674947610744453347669527475009308099095325914467459127743031721827282505880813545284388453698981688030418497387854975185992108375358646975457445780683801405563400587463547285501821909773263016482756041098741297612427211999262595998865685741153282861467297801100681865025988907348673136574850093415587884956170855107337468059912695642305426552910862352655807400109607225238183648634908059279918840693011362957032939544362496228505189076405408032715547061638575683560447488759084954557503710789509441082475702734011199934801958092639463821957021130900320275338272242786364134222348281724909936086855318172561232307227830126563812920663324637946691009342599552305509730420848016885878125888766160442841685853953111638039871065380353610035790605731195307833219409320569166939410094038947119049958239873281865679862953206329882412190899933143884730334351359033597480387946335413772999930199798769690346804406981528920773670031179834435474193427729651297122037673299941863017434700760609805804630431870687259357594458731022765775523904422508281809187011110518278416537127146012426163959345372031618803053727984302916727513975202031695287826865783599995558131272525292373969060948728917335718046328773348067822666174334002762268845740149299245644674466454695570842051763829882712095701952451330262753691155162711182572128062871273178594449534883478640308830406650545421049319329635117578215383047835378500750552850055670720250528960027412885890717336714293871869953227731626269051515982155553209751303080332039786044479205723314418407380358609168606882643256701850263053687044002427288793354727222639509894015097199731186437464413769744278722871076328408738395647965992187039848189582827308287988975107970337917225012070569397500131981782547750454181294338993708344451272877250268217647742675511931939344711699625264463586329691214015327510005844993894815577500386781351915285888473986065192397588137285778779076359994739972308470377224464310813372042363636507699908416069935261632779904171749945149519054522433429344809792473278080564222365115310940041659340348075727506712044245846800136841438438015156471875833676344261571418625241791202038423479801624271155055791364643644530520266177491692142541611939958846385501558511461313884731258883608721795405396879386004302712957113902563797831493532045546341979323141349271301220862116370761356026095182179756236529074025670823917495898128828787108685454453254020969708479186884205229200170507297296793265846306856283314704233453869557262576605104272437311432526619897503025680554083695239303498494998618610186354817849698964746465405453345522478223257051945208403381300832324149509262844999137359811918513545594977813185366983728457095649131911271051176233510452493764661282875492978550357089829183550655909994064512913442429762510687575014122266672782099053292064032939467716157437189203751646397480741192703246146840535216459784859695016955736381725192830414944700721680719915317889273169415379838260276352284532127432096152689791963753081807345550382345132456722637579930636062468419833904635127551246399591122706086920772391163050999954371341702723684111462139656719118469138708497296869124667455224163808417801797219892810078675435985642542353179844715928329952322142467343721088800731321205282436791187169902027540874622952671962569309121137915206557700300713945973187778818300436829429382678403844673208374094616530321194775351597727650100049603009527133908742002227078341389273011990896330253313840225242950275995575393070449891548552966354727135201671960879022981200259264291772136729646684299534032886445016084522062275278071016629534460909344051609661096473342259056481809000642360976499354042064796246695201742581173455554542801857324500496634236689561797228189536798682119704949051626730132046481740427468052236399969997503126304358085691385594541181019990535215398050307418166582723612639572681400978182376012990746902853296919212339720924394443230286604901220650238549423142379499120941259328416258484484585283790579623381372952465502359894800490615772170392871688616351985626140782638532305013629732448749899315402393742976902683339732215319297502599434591715677054141589453529288003183503650089282127553299771737708118757555929566933922459185130074669477016071000248178831010083731560289978381092295175432963611817642933715762487318147559343287521893654390602801475842722998130798953029519631534021164323847906599032765647807619971512758774825399852069490301397758127347892134788010181994262916571460001202573711031126700901325531744517853564961114868726954480699477150358151905302918764639175025663337004496474384876179512895034342643752104092673725270560348455134049011819296464923339308292935135198138393858695086895195224949249063607736805506242540465187834436024714937558072613056974379553045109093710996153518856404536850764770961400565222965538344512243776808729907812161017716159254806551643289311886176631594340849166895680284245990512906754655713556815330293948995658820053377921735161843074864288085690428167962542331247771010662566272227678181930035201850515893072617314171944397566852710698768741972823316415608290505885207520441078824590432487855544925056221436524485818951758945073555865213335201841251877232263543165284667846683386744137042118406427028286024516490297432213077707757207883486930434632757598740047199551155315005630228520494057737072002396833127650954024736471282550188606382000547431789755333559251113771026990705631898880959685874290261975060215390007568920199880866214429722070319482416056039048909966562126082106677380660323073503469116075174888778596373580811062857647742869452456506629457638045087143403052704515458191453196514046513209145883452855340552390399903992811634605664397941651048996107420941663492824016622455449503291041834284878888645208394776366130638227211671566099416909287842992343616161246996248364797676404862706375321932229689269666014388323853552325827406312011452489729692395688734335024519119573028467089261150664865006073981797590361021774478324917302777462860891763522807460973521223817009568547131264535573999775879148404008144872808495841630066003058330451265965429186874958880318583914927070512597971693948814189934395672440360788393129756723757620445453093689898235952140267695682997248190265812033434635000543558919621170758001402180811513878246638293336627203751834993721407936530033936505610117001671516956886522819750755142336135137732659369443547064511444756717827778510970805941678645210380588585757292626367734506639777412475552599308112891212431412246760391120392033219222594075401786676006853669708604647863933983915771665831866068257444064080562384906809812083465626311848099236981072996446323382672036409324209770577897114101345779641203979201700336517904326893588240652247983074209260043768945358368640963780788748736427587322322942412114071059512657578417697969366046306580263812535546741364278416128508632857322812062167307895260151721832933342820563778248091073413245918727569510588412017356841607309235679611583720448747989665007835454152763967525295768753191258991466467826383152330861770228118566248775175637429712971726871643075482674189873170277619339184258727000099197281259257357398798678453506353620909788150444246046748938038314675377710438695368377611217119523213633518460181891546128714179035335230246056313233038893495526017593725926428339880073329875016713846254693297816483719009286245262401992598890593115417540478957022647193308987686308715137905702946263922688547554114896094617394791300416765025285039940125862572914788384332326795238440529911226884428193423612489091374960974412470724144511343847463935698599823656055696481726116282411388648953926416904009247976255938056671700053836429755810897470438850597941097738503920952305440204831004686661347338108344303372668255356254479233125785250454354969407004196601415455357028439952071500535633515377916500063795060198975852132695629939036846697608530863955682430030217219449881858939920850874669616269717826727350689196565973849269662404054068124545721219350443959411488787277941020119657134643411947102584628639944896596220782889190845893137840257207805903676956659437880147094235601868898792687939609471471173526031368002477315211473416964375148352804799581351077777253983658934908324669188521780519784924089194141047629402725238183029490956914471799375495050013497197826800293016755229530214940850041112769496570309951290870145340021629561576136373767613936588244580399883533016762326907604638396905529964667278867085059467601149507502893363587540613739258605881592708443589314249887820464006342860546611674128972411966633684510189024497106007429221301637639261249289043030274843104263853958478856585247321599853567223745098949123262302536243961378115131913799928589099180984487628736060247737012641576350093558305317701627172388359531612546713783007907054059716387872630391438701043873293209679733291822049523076293110873360920772527707723746388938725766811635627497766309998145456218318508728323433606537784620488383230133364159201164014130170689036625289222297573186330858364980098642927814177279076160857355661689722754511108207613872671125302491978031791363503951259716408054008086749078223338648298751907821215047977357894330752597312948979883954333584898702633847597259603955737493099504272007402965435113766602576713351872191080723180590611740780467324225598574746483794143634717162341439807808183607146968165686599780873821346251130573243426203849704380032154789863032485313683659993150196140934434464025598494966241650042843552150630271432696755840964346645297783929350594365768449483641271811774260264642263654404836889012943225330893975886918998973968432812040189005571902994144900098209569950683590413350749072598489508144261930747073639590116138854347439777373220091946350264289542237580742189216358474977316988487737172319153244359640877353294024935086419911036460569836679812879278225979762130666876825591629637987439230745311955646090980671743536080128353213979119804272571208696268887806503823438462348635307999710169830199648036007418702161261995789244429958921788542973333110088670722151668833576249200901031100997609098066525266864442384436076696385917747891554558402079531775090851444527851323721629963744838250502963032499372288235934685352686922121592414039301984636992587330753550649468287491801375232415815020228435829226056211495635574088740929048274113679960617155958444370951770805462539281514382463620364152941036627107381598069667565831358303265265873952775474579068017107396422361952821997921238565709822653718664175929739062965443517651450456535311170551917772236905999512092895459369385043771890083405436321326502790870136700137979498250205731747110470809882353049933341189832923500980217128133576710403608443157409781630642796584166729369000992942296513870287218933808446775579689082317060020286413437769907522634067146042257895238967752243167851332688923857695967024166921242002257839357347073636648282522709983766617598497000262322746868821625811903903796371294540158053140694425595306597684989996491339634750875021799075292429554159989967980386846670537437791372320047340481723877009632430288636001475123687400449802812379561212954427779610501966039746177863488749999214496262911576362323842484377742333145953477189810641701054204022039126124978066279631349595857354798232841749895463986074052063457608076331040997974605551419591441656305749158131433462476078236134202851213974151039718022960719974292445974503767832844774925115530471772864381576516416978332765351889005324499233883587798585785799511654211027728412901805051138076515027191432575007985838143649003976017533986602879688899414915866071265204370969410382719718507246502487395694974028957480303307368236442761495313955040642763960333304537937666178287844462706361063634540758895695296914651549978836805091833098901122147429330884266916446617942094246390920832358461376811701866879521302963763642951792802454258806597811429068218997214045799354069439352786565875643221869326769301291916805536723179528482066339473120901823684316724109090183209486917205713293347184883798199152157522223999850828937114069401164946665866574292713380571248865401112843215444016157638367474526198326213060481923415890885780604563543149196205894820039406577897668913485016442834916328199981571237193237334667268173442642295400761546514900935380972814486586029144945034409364312285242282715320715489332561425803365976222603062400682146535872818912552412428749834180846658124690205856941002826742845237106679505135444450508475704203325106189065530185450648542348634765841680405042497172672586938510161987057592986877017434955242275428899646051462174951754360104163106481620779830946914067692508669924819655700097016987132992740435400693307197653607951235271219855197597592586832219597999842043377794390796718982099716369971360059554570070482563925322024202253703277948425807110946160303302640998648738079707526581332992684913153731759571319772627636701126319957477655537441989279915981222403701867180563280451455644379573415064733122440354479644098389467719564515140834811208010961936353116931766476983351321258307018974365835628419755801127238662324536982269889450832431747272282468638111728386003408756357338265896053910796010517471595353817231181968035720526598986363808759857553668673381364060703412955867006013957613092913318519621924845950374659141095447582664578402990821064801881078629969629212030696813642491571734892627963242246599481674755189542214953076863524945601267070765196612433933072579398557462843829648201272383120090454623373954912410617288863008875674571369442350473431981486341267148467441368333953004133010405298330356095626197046658729597456972353953004345020616216371114662775061554462852380245423522584657460138352340713941302161373462278452833251895410676638336062815622657812492325951730515377903413161150354248764649981401989459213702888302579451504593398381508677581835086885953680315978322130052248089528495040995854881228645819245214537307169632466632625256358192249780161995147341596653170252071669287901868944710127913188620863137053225300187674887214671375236510526714169739623848466498413964695601300104379127674249895596852390386297882338958812745644978020790330648989255566052139581550984399252044420055599537993947281024008824735280009750667240789309900475472545197096283213522235440963730117768320754744921675580572558803527378383640791500064203600907654373835155092217896679782972558423793996167163621030460946649329239207196550105029102338128244352244061176369194702694195205522106663836290681595556748631026451327181852602799355909752989677394347757627791597649496432925704953208383569733223362871607563151068565932241420954305523997757279678962042258064324571762713856944342681341299763795092230786989656036876519219949802416497956433058013628668303022192259043031088533518666998868974659713140191860159836503470452011384131314084441564639345043614400603648107963105333582048004252368141609258227494824280132338014366159664050116729114647050324746678058895225301430379816485985099620300239560420245007679066161312557713689399461003247277162091102345988988259345791963993992783963065875800219877424585287264861591191253936881656058971502744914963296582671450636621053688454555634051763762905698215851139545676155977734356408232668335362375968718885145786072771026383527800333008562478354275331511797820889953426686226868888626373649532530738522888984477612040424848579515315377216535054651258730994462444376647425233461112362039275095970939223504370991630255731943552128088412365866558049839266675468036864904472588182017587045811684859268208771427888962904841897719923823178081430690262544411351627084867954073723118004151578052428696551682663969695101155411137971096019572631955333901475623027703281961961673959805569694971974324736451733216999378041000469725909205542500616427926748160388620409449873642971099457369720288998647349847072956855292742343245953292087359712568933406934694464652876093705954622046553819640754725399027039905933106417792453034689400126988065805733760536811515786966208447060220708662946323948280395593129789021212883891711804938479655148315344857990684599355760056760005938717010802646389648701090143973633445535550205709160058165835889872182240164935198531823397354716174563584641128449959494432531281396441454205083859915727086502350282131240684366646886933082293197929721709884100170825680526787171853488140779097001605382308118504613385927588837373776825471713339734496728957101159251241834214422855585524000856176444723714831333673612418040552398251681545646381737699854950560327787702692694657094172899539809293596578692339305452843243065283208506083587484943467391432727253967219272443702371134507750768456279740048153420065817414821521991163015602771552956240115264627064398532088247542604581340879191849396896813392910165892692403445606084097770434511329458547736701164779796529814230304276504332466387448190269911437412335322975057890774606244308434520912813307814497008170040483894421092993510984676248104958736300215824304765284079067210606324866061687259614647030795091142729482406995978324026406647157253903521932330257567014407882113482050039402863361795792133149840434800472242025389539779277704375761041358012953937708930304868467972328351091302903705068513039346277436426740972871752658258375943942149412242061576864098247543128416296964017866173085268255540429779673431744685814653827646303516860957205267100762511309440942322374155268992585280412052113215055343905514449540764973854146678013639983005009826671574045318628843595308012597302498519277975256949543239359539325858723536760109681412351140365644050203774548332697842367563494832451610157697517593496531816491719587259418248501982697665799650887702886858412202219399473966268234899959124411945198342680865135486453917209684852922382657363327489909267341940819706819634204030069317949675671403234729171906872127925306993996278124268276050208514631057324386325466278727130702524597650113995803127532381433294704899780268725955440646448776584106072950351298174493549025518744135869044471052882798972824062089513044637459105500873642247530982555669793226893012761580409990694024616093626630572321315489529240194444646703992691313368422080721495472729289558220353762243511887418126240624615570797305556272311502478827605710135471332563896411819181355623239754658725951137033159645089240532855096349633873068657124770641798357931327035308138929948886892006713330992742386377110040375514305383083686379300675760332971920302399028126157681543380037320345931454569689078576689350855757664750185665372437008095402064184757290497836400678870831138914888693264159212185172146386704158856561082031591645329680907834360435077012601371293558120050016152283164955789427373162308377758039526727894645542529879086332783546390816385489843650182741141918166935332468485805458603121941522501838891088585827337003154397835848824797029863579813296253772884175722806916677879002859749837749020605183182371301633345441195934037732375026619907057853141407778801725905645559137585034039781694876176799391716042840869400657663978080453525034958913441322977634254189378312342385476768764373145976958783334859693691202354775728127305325634308616861674461198915055828539931246092827039733528189373359706721245682238328955972391048553665289757399312218073301772815313015754684210562915019730917941774550332739177654085335975169593965985228187408871933900057073179262259441990205155601930819254422828775978510239407834639042509689204220842565095506121105182245635517677579126254712691564001691333021580997958728157010198453091677557241623606010982101030027394191737860091466958571465919051331866663621460893983677500315720426430289180586076101828201789136552911057390016109961574067821496750684860581095010393252704749847456258934895191672044826220978762149618656550734777834877724527887397849147212602916169431769715055105049191945598106393150803560075373658418242072111479712821800190034634834402393926895587468923688008912377052071840959258366083592055953895647672231371353400922641035331702686046771221284192001449854140957066310240718935608030311591161160508453572243172454517847867934618122932120192312475118560837578894685450195523472996787902874892240731318594583710187801543908118577187525996752536358878854488943008259659990759351857223852503616974684029549118649865026157334108008562154842084078031299693202021225061909608183136034616517307394047739090645284122927462684591369942072787549025664373711931266707684936237846381015784417275877841224360718276672510592452859955806588982688212539029964991676696495697799450656259474689527322892202143790135895709799037681059663186424609721634911615879405124517383904972944247765122633709460485360486653520790288953113112245542674466515843475931376889713338676264236657366979765733635968857000729619435843493683788918459929075141531797694958049469756473632799866026257091438351742320162342294470672864765571122154860814720195263737289171088442049694229047755555901896949685094998091693599776478960450699653733759740731193855279532996961893001075883533476020031411056226262815792096555632198963525651492346832375074476555054480958907545853095655344620544168371754222028798600376158095823784539594042824750655724500669436212346141623573146930367088758795887583740607512058255342594478558079781806910461284190511223627660214022899034391978415304413297169053473541877366788401393239872177996191686964591014598595546553915011272655675330253940479508480719299956082751204180213692502243741691187824677640649221356245101157900356201749520479383479837279308189955182322813613331596686082382573646690166879427670869801618764791562144151179417775250367670255955405162070949802132346464821341370650026112044999321071410616709127684098126867671007544163736734385312727756585961829127796680955428502066361481175335932386857490873986891577905476625798719038407614379985812543031556287737864109200829969145161247858862967670397845652716294302794085404620003734876875397397905214216410971092832406906451821030324964323800108157262075524637488577909774254733591337933532812099107825802407650251249426701256154671272675521504368267416235636182859879628115078221620072168391002196176638137743247933762104630528076280877297388311023140823901928493121303484394751497158426775280087321335544994515482337737360846529214953074436802790130302484108718732265893238788166433687404440527045876132144982954995972694250035849491701629780557022561674909093492331979003812119424140233158246811199150583370849577120413201470682908708380110159087636605002195368168530969233941235367066690622075982660959002170085307980426583327801414275527859915699251701204912855386166619924807204819098576580561700465491724856952370798381628480198546078810566196743692197746496197938053969634596588730198772734988956993726737947743508124239256923940821341270109202354692906431250064822199455000675663188705070807250193382676074494182222517683317074817989717106995445645072329474190047196995911775765311029247825854004828394545063005239517176609880444229577085386832235795964240607547774826924435782154069003532904582368640254470398839429541300185573221597763844090403030857090045637212106306700708161581798913885215879980258078140827964500062003935348566266046786519096745959249854835880884456856360907317519765876050138520372156445668438146051218414231978552939549481189443466744123730539648166596229980781496858091762955120435680772869462361829731080298636540324081245756474510142979630202302031182533836119342958436377208783820395324785645180366633324333382695937405007220315418309258414185936213847308369828981087927382482445967053109348017704885913109787475345538170908214337417049864260113502384348684387210535984187350780706768041581564294417198121400922347874395058103184898870616817276711694686332879508737407678763381919167387569429393463838312143053426838213440914006205345554342196101142285942967868841705927058360554053294111165547955852097986554872069901214630496173190308808472027295645225725568976247338732629272723230115586738744577694029718247030641603837283949974258590035667958929338617871613372948114367391393443401423849834829477370914403083342060974789624207341546024589139853349041604967072805373265470953405513482470105457233442360249065885010368900743519022063107395174823682814943461693439406452742677960120341783699010982855963057269038340158075499761639751803887404298748520462935168240561548632631349685357406059000365402154221319510726929641894798541760458884004023244057340538666927802009521969100909894145872521315038407276498822421716227199196666905279415879376755714720623253190416466425510540312912089840781659594533034383709852853993575464104687334410724341543016852973078284081440486870618947315860961022398552512912943842821751046776617816720969265235124080659557413016406343466874633751151606058510508949420153154819261094922365980194162549903517306395517565505570702696206864199694642880043809425083576398874089979295116297822182764809075193054564850306232732868092106899048683433565117227835777534310788432148336503831920237199347322039998881151688915020803012476362843983420716795863407625576526515175535640123351012732616728459860573623259498127330338086150931120398612906537484460750119049138115847441852919438162512806985061395355277287036417149025736999903254505852716784696471920067375975552864675220293952513835578283256319292411698768298854200485418625734067045800186567096702314365987142808511801176821103191521059021325982649772085433043991973922015621292981442069202952413539867641947331410168290159259434541720586509556666485855763118998541552351937056959548469670975068641588024879509176478569967923295853361750097154369830592757952263173706148082486275746774980361873926160737537215452971906061360921014377146459990231202201183891511554850096468456340881715935905404441185718284289447593409868978680007809664333655495433514331517492108523436032613455934020531147662809228941633097375768243903604713952397075614890251533403569335562400422480312855431593270487128431549792777792116461540338122070009107093502403849914095427192350172255811592289630348327640575227854865984098290618236158352211828973754366827567910096258418056728610941218330238581192878559025017384328317694073107064485874476094749852139695776319321554304284837029906715885454635741440538124175176919124498344137480673355665813479365091229887360410839318863577680865355361544784244786629116984679059205631086949328775185239118877087335770778875834614052116881779668911060572245500573064885284579111844067989246911664668535739348547579852084271125391488936479746313795413644766266522016034013495204021449262250441077572716441540082197555207358418570950258436514064884965863294423378673124118248822683947576655856996828785418266242880846867361681358234373620195297850501620217087298670002540769328549799334958518775512396048284119500490246706405099021472738824034191090520251140026777993345392353074290176085274236822190644618742837592382862967959690480049561338761016831245644567809086477924599292172510636710312178186231554085663266281628060816982846611659690797888012036398320498995393823782593208299879084277372170589619942375170104806533632470470018155478896194900568232349234368049812459568697489183272012957886371639286367421296922892262109725785717003879570481840797799748128568540555522461353290338287484797943388973008480184853675192909498586293187007834992055433231287330281192381754563624194642615953642055318872206726974405446177119793044003016023461719389986619365848095795537729419215908324443571002848745559454846526266464034129625399864734373245020381879182072022043497466076559948974678074612529810916840139790356392744283382805662001738036303760907200329013429286743505761373245223398716686501970857261437124167623325610094749597412248623967825342758518611754830348409652005995674192648600059789751934960661201648549669731888798079103634207604563746326627611818211673187158558684280242866637020811962946411074898767551102668561972929783832758962269928363396182350395304927705458450935479149419565436881280002103906722110067606951704626580224025275149636989862006863494890952970255585745007534741450266251993375014966531718132406860133069529999025604876236376186227688557654905056578256536280204214859455176771179837052399902957049983722751238874984900343665598095851130408303127378711287692226522101671571012739555358231352243591630936007233569572041044983958837019617375708399200585285509199951287699398432371637852090196481085328886760505986941826357593489444427156843407847759414759660959580708089659167009458688829826106021705158225096743803037241490221521133670885232786062747359053235901146463682157696661192511304491874155242252054685034353349972534346371376561975611565451782703917860867497433923657585544825749165042218560819897034594030756609923628128752908060913075971190909197716132799595845943040152053746992696829536242951163843285498059062970439752414523975071724108503258878408760533164573122362228977918594030121055658584263209237427120744365766539523418632213503406313388406932831460005894942221251202012184994166409688972326958260511177443000940419977792815263713673710726330604946973857996243709883499409933343565187073008011842582235271100606129956581879625491981624478873896484174901067783548149253612769828840548675563460429201391935177378173045211077188461290144522452068384451168483034042668793009993574592117644695878960932386621874110939893909200749789277062060935511946049294414430973683670478899298986482519618587523807022116966088957041984146466864715083934040256473561600106314461826210058422748933948437821506408047141414987747859024457352535854394693107254379100452673297489743058985213820404640079426854086393324904256956161832597352133741127724653833977524273098718968562181502100398670364180442493458584624325216497093243626015484250478696660512422724141322783958920464082513430717710932643793755259103517942939432091202866407169595605669221395940931796913193111979188071759597178374617083784582266718641757472739505877607651170564192035855730789951299772691786153179510367691586010216687306564569418009571102698957143322995575330216003663628325081910841424031051492765968428784062922689702344556566445387034390352696869471482928591897230016753296685327646887648945006403374203544896667029111803924411530335206266626206152571178255466373104427527176061684186355930875811335343758048928683457914090199436683745238682873631370982535661482587834874440941524458826306205964723680308150940756039772283869583344037670805113404206290277271029420583683872592451357411244118087911969923402319551714020566483785453129104187689817452273665436784965265430670625682944303687601751410402738405849242130846431218681670178076833115046689114994223977891829408933618457541110172900300575424498408854626521102859155245114427761088341369147465021625196484362829321539008789356430956462496394644371108788728690892068385921832594227850099114671759808838948537413445638404647308174937876343869973523573205755974077331703156658216285601001838265895084136682979124331982111620849009868532838669595909206313205849359378956860269585837132396496463461682022764518113407436698307854784645728279932853002766203359461173164434001106586360409790175024860578173110046385145691258770347570273061914319433992927318333650356515495395851232066037114057905422242938674071194552986236097248670343871747710462259015901530087452839262024207757733507461099956394246004267946651710992373947097895797959981459405260783264128417421486988697853001835155705559941604815952264907317407433589469379894745637323074245055323203477266319547345978199017901940231883181371580507495932696891870480539874677121483738599030036653927841318154339429665270627671816166491787283054908803470836973442509301133563156995584867574547132408436950703563315066724067577355528109187427321640711194903730530423748120237050009768797552688366841458072107717898311713907244461116436996655708976003612591264945781728422255858244375977648016443550622848387960746919515752057247257442123314625828237530706735184120110776383842877195542942675237280111837471579064171479813493584556196805323728236278584373433870878038995303974902851921152674958717705369808911544126218206537802423970448936143899253465826690067866922510535711846993727915470313626028796252012993880087324879208749286665064265127273486379886161739243824914860345669416348973301878770258866370332284935401157588094101469590727918515152947227520969806340143912438396977161695762263277703100642700493244345540646915282902070510375940715383243465051422358355499154171985815897045011822527406307832198823126713400576089363422966492721796270340314538335191527423786144676776855520854806191395508145983545076848291112415608503458063185735924074822232620693813478398784091975182942305043933325395843340305247264393917809390704384351389345213500176967812453766852980525276178733494814245111189583124523068546193215476398839498142929243528809828188366614268731891802050866328480014848810169248411304936947524914433191799560957461988532197925874704824891556015833811089240846382065403636629346141461341730708445166150389166680221839012879137871656606809543342457762879991640779442215059737836090389375081579016186113609748770811049444230479014038544272965937140727188613483228719341898783436249523616053168672401250516002088545107535618824172013791850109484059802128659634387753932220028861543179779772305151254531408849669098778107392006670138937349004681281395465809828380759688414054404707163564309998615957637196792733538466398239773819756142401951120654053354528476529594782453526611304502198268397550360014222124523129146132003176108588145343642365335756462369497435619460041519225015719840478810152462270814824795873797077191961132013089124647143686327710389291366811108756944532843472534843022633755345746946811208640735581212857126394760377908881599077479634605052698357090651427311629868630883018816849018106572383017977801938939451317186265365638718839382011056016198391723039019647545587016970017294217784356924359620637635547371759780776267106828695597227103313595321347860665657728259157190400178151904236985466970368444390033688655759978130456407232936288792397359687172468581321049206901055249963902601944560212841530954880852007999259135115717060011641239491700853281033392324830842915262668900902138262921386644065213690516503832265630559436608262577100282580411455514372223475269562835572274034338359879800113203888713369668139114729907063178057276321846386276022624624823618840168096630231487693544668164190226665544124845739571267755503727271431358654519363916270566004163035241614114906237667736959698849216336930526965363783555188747664054148948192155339129547878781923520847472134141974448080930463677647825215581150320240971376012634645072882451510165564406853137525261196734675156779779681941110135392540105434858685840126370366971720746582951797422212235398551316014847139409373559541840624878162059703278546055942831590279285787934372777395790274094456130832603725972861242162604300483253687349655093734426030557194560705912475149752219275741588358415347464680650865226913049331118542345836791977683139970770443146167646802474121637255152966782752663869481160324699102355845809193789262226305460680382109361575725175297048569871319907541166601929409694900546676431322329889547622014033466819952081354422950285305903781967917951707561428196156889987867062155191998010997419509727533469313855230422002628300068855819908819833299623408155023687470969156760486058934314761462888404538775033180125618710599842632123049806123075347761021170050034307299761955465438718953648163727738171200444905524388694103097515725535870038881138312413420557783484417674868466405980539468129193325075874258615743782608623221389887404695863693935591823505582571561628361672209446056025288192524759518440749194887994353304018969354741675673563352991983626517340735658716032578054208018675636248401335411918364152323968859735744099719270997935063477864511233346318229037521682204874114270791544001756799265718284711803778810511210025120785427029031976214059955544874107308975456238175173281896318105186996425959991458969981143417710430064796372451776436792681647082582257824955425808804641578631534307079171010044260011177302294109950414326445621115567536603778149970481018841066696902349062340132154858104595820172205510528095549765182819394313318080495635096549542624367479457127198541521804467657814338763617872452528815288263386421826949947962565052446766344120278453394482844725436698922381984680503326008775954382564976465006245674175141759203529230890980453325362180614516405224502827833134740396934846548290363186533521647268045983689253542320036607578811275627712406119152385791788110663990113418128450783839841812823367118376470800015724269167905520883205103394037913478191136247129385537688924156809270247686197706364490766564017474227271696923367335870264708414848490393539765720229774668426407028219190847982241247945316614310054980059052392887667058336885124822061495347109840810441862825548055322346934748149596133427068041169121053360630277921842498216420331065436101517853284471538459027247166289511861993040423234597264399090213531154152325460832991224204247775219478162269037424047748934439810630357712838009549153080840870803663837350997206705454441213029591917742629939514995307237270170415364196528927203728336860329061481527742896236191048328350414062420407000249939225745024617179329408207928353193665269407255944599099806968828827050844399246632574994600792042986449465323973861204179505212427321738063060011785376787169099568996674734130752643167760172233797724498815434102411413756510981799560546677324661474921731037030393983877227026116554878346257874133354569082738530480532738145585631399901294799080605124009685028647067730459209385223939212593555802805042031782216180874065806973058958358899893446350761247416617497556241557990104103085635563439454046265180898151998724996960780701829991808562771548275932182666540597115222527430697758920156535248064161349484507113027375406419583023177320645822322362085324006671864259865625979039238799801894333365487283317457744806936838573126776844059574470969638659651675749481925673792597009710439345222396158494412566761575017759233708418273229773614871591366295890585590376411153882534439167373198598219466370678017951851411602904196076445547003452514323026479291494948671492700771417117797432489607250484326351208157350357582355939189456061147294282739689693804878301611099021894090202740885158808553657645679514075187686321311500998538905612790144078514183788396979952589952465704680640783932815055715172233397693596584527506238484149267776787039826045926869126689635822453294703914662256822802851561478193453581948945103767462027983731742071008558772598597863403534466041621023572018601431037275307446841301262993350868509709192726673483679184041462517825852041770447612902405336123584659939081522770043656225690042709516180555257192148433789507455898369285508758833034171337625114614290752179017096478081800193681807911142629924728821242732029883930184476907613933525904077328399812440080689390030305179520845049421707375674338310822111110579877297107817250939076211691992858784475745131443746570293271350077569159449559561924989615577443435298064210273855545422897355016004223019907905983477026031232674305443512897580784793569477171171209993367829562602667090146130146815389978683455495222407787756743799423313661005284750281162456329350994608421240169587189986179336345741733865461659567652825027255606872910682899887486653335871434790721555426002400963418350270728191815890940684208093412803510965379014215145591296030602362442606798129017675882699896708947240690210978044738198392575106860569495426646856739079906296452779052989899406897278553046150739489568537958243119207358836625191603251710915923788036920088030871145290434879999481603875705686146050889359363195770046918743555816505525656757696075815257145561742704293386439241284552762528352293741022408308692527726158216355284331881245717053556334819538703934481339886537843911482532945624620840491955970373258430202376327505604210553295939711329635273406281585147632861181054105080664171772089470261840116024160464416895575502629517098958409346043801074164849779454757683025500856624974091222090409127274436598266305647991658265608665782693584756588036520502711395102394500904416904492145298172131275995014689516883248587882662646662572738380999590901338216769087904550221514042985090177039407389662887280323496144527404750938537528490051762552904877074861343908707042692377344413633640801430704989914790982241268009879934756379995281449359802433929528592050259521613721233498111332168504952384084865490454022762904400233119536532097049031110883825261482666122925946081261278631121206674013846807374738594264483957891952664679062203086427733042320435503524717833624635088407875331691565603843237338433912434849188271165595889806211360947803835010517313250383515238175744284935994080491815449870897796665204495676902026346974716778444595247108520496114166699028093638116009369070288427517567255017916266663061301515321450671760032588215182459025341711422975575418294901093803076620797107334643945640424816526590157852908103405868694005024761131222930484715008874393840244668094013832291777875138561307051232573485718985167458382283559380655771792956522344433043989688333326415341157444799008021392759900518866071766516733058876038670235753700810961139684111186767655270430035382775302994852210293136384836990889427463164253308775287261411091190833830267869606183583430473819662321326735617599835181375302620378679417970128138767302492147524875762641870014534147663422610189731065777617308949969908832051483971449255125608347204132273193794376483716561539415595909201294149168614480631070874040238598803497306787313404056396175286393521872429742724602364112699652176897857404084745881652671195347337949271707990308053903523878252610816785784116729650661988623781099938863095949210561127553648193668845796961564677129860221477172079179734178109216528652749727591693707223423516028226578389238333755022542540970798184470885789552131500909680205646538951396913950865759562190710945906420746154133845048483763383172903255278880646831658256482390520677181902602230083211204690823430316734865704303107481454693671261402297891308470034534961812932722147365963073381528833559895981863226948319420144498596868684225003791620815296677761634017789106758609981362225799984393373289036383069473965399688225009691703840391422711581991816080889956805606267492915588256674665990109327202281346333569994413348309465146086065771958148660537743159556747259495789704846565523739241908696415619071592075476580828568881090209315847184709503977617089154545383513689604163811712377983089888454918187995805328312689960907515161957161138271141331033901748110541676636234174629620572398076556429961981941734457872895339324062020940859369398459915971922421770967514140729676943042214507686568678027754573428919799188494608116436058446192315679488862714941415426283749278494777996102650407391949655741298753437421947541486302447455145966527499205729588352156159643118954168149259569903294484141072796361398642131063763981259049032409498038422380805105130565559654868548781085189294099281441946997069587233922698499619298638099897896465973050138094891822881644664009048528315868437197528977503266153253853492210378164318224791565844870044750552405805403935508387191133532612769582363443121704953545983000916383163557177923138637157409138604351645146468094965923975007335161771358550034453848077869341617191062611367846793195556531189565736895437128586603474681819069431551465260817262313031424299002065097676347508651504535210467209433704811631643669362241245452790293847979933564676901622677802949234274101879416294890193725996941174500184610907852942425397985063835745460701605268604329778043581679366178262110225273614044289955510253733447790106987554947124500439617353514003809637002332126819997294002931607537513818065205769560449835415848485806062310331902720540679806763449316957481750509833251783371522848714641945211225622428204591544241353188249033128085801758543976968631827764942423506222337791638498850562636068110523709322088028786183391231243618508222196324522095347116133827505658279254871704800345383407410374000064840313966226678104802631870048661095163795203960557696177222852238716327088899125969948276424943084481028101298540728601076988923319431519363542790865842485925578986019530962923384082101025040066505485419459301976950369910255412325267250797990275381645765096274739254329170097763419534257240466541709415319361031106669136007475329120123588689717597450565807745738591147711244637809981124863493326105664641115878219094069687545109844080137144190550766306026769119431754683268997711701566614728546415334562155534322501488465142397715916175306370642649359232585018643136381052021206465676767622255614250740449532321850096606408040657358803078303961444224478266500141064393448858277536571353683815856755295165789673087059675407143987424898146376596772692542527861331189526300140732352161939112860167207813665128593020951243725068898540208399160267007052963190438966439986856199096724560819904317578526694673841378191192527411060979660416938849155890571713357491691853079417981765954716710423550674934603557567926154698019421162712932251213186066813964041905481473585635170827353199119797904646045270663198907452213742036482805374495868628337148354177133267410194695960133594856099437951025313877392050299313922008273902575813914445464817972226908908990346108619788308845189171892035000926201327820258326679418601909673205355172711395643660607171138622735415698355586268716787507796844470746966244034022482994628321034923299752797380685304979835766130242700330487246915747705803175508878352782965877940134706978291065362217479374125484935293566576276720953015698256284121394434704415277640165984832450671707092692857579451146199542495404720414281547460006624914351724954433435287080454375638181609726954376691776738559820345052321271612629789482607934658300547909889363178405571888630188161859975848762804658033439959458201723915159283883879426924467205569685140926700398306421386635583787552331591791661307531918863245057373140655989454161718124670308451898511014225876314995230854982878692560893300769571670202653431977640819436033293722516078974199850954262200543831262210055494963517197093444936198630569836253258450090734294585811400394515557607108609170485774085618353462108770339252123343437013342411955206640240792535482371567921835353711522010758841167262010669197230348840025448216529117750811626504629681998832666134685015304438513205578784447837017854614704054690430188905891276025691950556125827887518684725009762354870848107439603932198383452419642840840931739308027679784177303017596279829176160195446566965085038661235977218980722888240591618484841830071038046748680959829635564835779942717951269198359784217648054381177218678380117623365413318865606471310979393807514883872180991009842623072658201493117665251257100421834640044959905085120424099001187441721365522979288843433884208430772370701071628061774954615762472871717403816250005350406009068105308798663461827817945736293445122393919281700428828575848573223983297735229684165166240388393102367097874537654010435507581651342120795228253656038123418886102170221107471344263996723634867146364958965342113707784366949199962476486360821444454907794972031826490206227898094171315045879481707580414168395903158290729931421627041750414500607351730788119005412179483794105270083946579208248062978922635478283168089495559109589545284153751879353677921721264420548443963235008533609696061698427964561909602789495776223243820288545937385520417916145124487707922170505344774268547489647610451674501078406308091568121283203270300157814898691068291018504574735027134387754857830478289162605250355437678135806630661407495219294342970252091524050311795576324494411541116389162688507118521340801813352105791191452780416687894932451748393571973851810018809623847592488883232689262784976716637553983656138716386476296446120015330815426086492700110840507047694241542416373884907381180435753497506462260123777044023802244131898585532532352316360595626014118174668887414466635122516336586893900784671918598201372068894005056091025961400175241820778685685791962346074437961619971811974723568844158412647690740700310112583727077781192474452415598665134380101560658494282162997426938454300432213633654596564122589489922890923464979447038241775607966212712925542468736416737192422633070014450973491590672172184983173887926072759275235732860471609357290223001737903213814555822322939405577544975306455056200830026489554323986188251725554793630660310877270767645672181642571220765938642622891404297357491173287302584932605059809314226209712596894338045791487103806240767232831272915942394961436692767478284592240711486690384176423827396870291723521491442340337756185321481690051203595091955487585258090821101210972077398974721219904787967948780008243186909535032336490827896911622393219063331854607034726707911601677107150352004026238013630569165191696211040574331688778931077689539128978316143161396445945906937939804447129473502957195842954929935527096049877398024178048120855708925839009978073692033403114597223832048055556454390919949848062705449355333662121930080445155807227287157369713891229257441478738495382217261726587088221472018200636408730774450049261949240937489912110946824275985267780402305624311361337400242320010678394123208979824199757317055652246648118076881319962673698616664017943235999041993108778742237172681520672690394085017475237560397255305804244990373907459834469223104986177231394183807134541383495456514159960638421755708878521028647816164243384616041020096059686823989417367894683466359860548159346960513741812774898134229284886168461776206398080124503486775320517662703897798592536115146153106578340087672191169694471736864230447776278699355587101845999124680708497503641911557880305388830545767004366766389610511736802591617569453692560805687297985118287432244889454848835746494987952124102660873513960191094452660865779294404323384393169016481295034053483651803814889321767904077478050192809907604546213483556743588674965418272238536716094299172888495492802328412251963832462594638196667875450866112799847385633482676329278271184852094021580612862018159168878822928190311807419301301441155028549579667321803184741856558672183023561943111177581303165289124520514325966923899898902451549936287369991698065163667758876478451791140836354063847457470059736105174683499077795282319415059766445601775609878691809978407351225831957573582676101327937365778841093117624355106684231634859179744731806390074952867449036102253025083113995473087893839509674341653712327039363151667629912250314140120034413322580876740770724469276806592699681367911973423281643018081973501498660540832327871517641151816915778798607107638082924982746189017394347708728333105806580877255649309881532127497435161388546736165786830859780091755967853604285071982507434977950396421575971455196834979296607059550825540546157334344060299937007516712781676909189197850938136687947050507120236108507592245045239758411125936821812143368196131842914929855048302737676072560946988985762766843069258908819635104262091134346526778537388758566066508292909601872883657909037816181010455809924548032153515664840858425467507129896902720853806994583114420328448158158765046632345676949989727124478275013040474670689810593744587859257839014551004336481587567809594762293283034489233972378085879769095734425858370955845957296283881282605625338116422633902987649285352848149685516132386716652476901772946080526661628272920683813698946391137242894254062205986700338599866673862686363390920244042918870117815433163616384257234178460865803372939091428634056072575619716659883339522354537259556363331734114860386697640303734266495470302120035055170392780909639566469829733078634698295066802795219628732545081764442691314632972128749772391506353872112282597396414507619010435446723961988971383070520084792059056902491153495144825526441778359540914454855989907047458613696579285016037456291046236116573066764570440250770410751855216155677070975753490865286496984655751461263451632323697334650433395017569584940223115545606643420585359479849141696387549905549615494061878025958141277670520873050209472820618271344371769241420798003584495413558554644205336977166457513596078993767717747323781189113109706568508040143895995249541057661876354865383405790055159728007918919332545246737737505308728350215357540339331259192958998096456452118208526344399307955873111696147212597175736940263688220233048982638597227391294683235496609622030277788006564558523990144116391157988363121485765469605253692369802293744683661083469289759487414869585493544441724611792455832644627398971315532320657304311381630113341663583807805759343465467445625701602773135061497538975524713113828391038387470221899298143814834151502276738355572749747034475765258950012526107681972947337518102321507205622192789876581330190341848578427718690455814666813745402369485554213809784350576376916588580362618188401725574228735883503217898370449388822500705963555283160368121063262572740169831236045173986472116839706824763354492360279409554679179158893354915742789859944511513179044711707372694009724355581261606821784244460636408002519089350375677727988107819448097943716586449450297192146587787399840028841203280949827083087772151965859643925793731630159141853083437636896470749411291899554656622547588206226953114881603904316565833098756987915255520632038501098768034046334630304397161765101868940945225582863651189422338790087619706944929695675247131869710885061432362239522326718621716046923032075990165538719688264690946667188574240800874529163057952984328141950744352842601404174961985254939545917863064084944343858282573362327323090033396559293807339326653816863351114254462890095505278580314750685865257906138667223187289790028336381704756697110788329667000489709699267876072628655090651729263799959291557953947463327056765083683157009416697358344928214379096476377564116842694113000037450365437707227712339837808671247142159731023458370652189087184800724453107204016569388346496384135591401571505938295887791048687184763009120638352591873392590492299703328060313169596595567362611136181719787072434947655152093227735082515232717614508720402136617243278191753051362173214977778295391126153742629220853320300417883442622609455405852224660358775327356653693994174934984642190627988307626219334234639267337314717271404536401296910218851131602736667171899360285193579759142181708690561891830360358312462499976865002367842676274481124306005293244285853168047710338995110952482981192561767649740515605867228818294264934696927459329904485825351819683302529448099991390059710123134736512681217699455336105563743394633631714324036996658414647736621950290428580658521741862825999301521460843891107730017678424820263651271129454112130443063040706997189872182225698064178783731140818483164347865834700895106158325984553982060018111711376496507579618609234670539805761668898293313822522035273606796639485108768854795216307094880342598713793421583791474012502338989107952623406236332065471277819442794028366828693126846093338599423861255685229528786801737681858309382644967946301673709967989593187593106860568605400014243257435792505415100286633469066914729927720124522696413335386165270177216124792446103033803752427298901531233930397458230043469868753890524002887487412245964811428540290437323170365175161604591284435178321910772301470743623310715919594595805854040884257931188785740641032099380757862566745164377827178590770043335145439919761542679634921532303305062532440681740132264523868437463280419079823569354698739092825047002969734553717760858725815620118989566381420513760314111152717472639204793890508814242033653603643254359515958572498877773830254802993756508844860125719146654556258101287675840666018571909647269339631082341449210969575231790190710293864212706173065012705765672424207844501396119812620199718291713551750256256259490846542282844835327768990079039676424017305442958357961105364237526815209122981844566774081942596640596217314295724961222464471794208106146544048457641085494581563075669750412959940346500062985067413497920872329584259068487719978191682427966850533943139093561590996382209000862243457617965909998562096817753239052860432006401028761347343828489471826616528867073408363717772497874327018579156431681788304102404691749112338311265691276530694548825695895248188131886027224227899344422713094326819058630027840048741356926033722740889360256522941011382537469595727828497143246556836845762892134674952990123319112512677107582746086594533185468884746766964687629387523242500951927389495794750677163896042130111237739960419125785891607909976165869149439517837425471277413339241209476830170864021040583596408897183643852000275237578914326189884941003084155699519808125609349862022722853406435375675690723136312121208840945104412337814468432852517366429156697466522740959216632750190511643330684463732478315175835865990751887241991784130762536941137509136613820158121029115021436521611626089598904896413038914430546647838759136403582147218643464917855894164206994156605950560673912091702689005561693892545591234129100437198178628709915829947193085661647773163214184989901397164887866909270091609781282540677895299294664117890238256172050252789378029735023901586724260707193848006512383264104491993132076673159222837811053649567936783978648350891619169454051905035027167422014966612222653952015055933140998119828844520389924918452173561199935281064415865586073347537556746834316001043204602245206571289894315317834560687888819109328289039616743681181531780910310225542230317553514132678264082440094263048098023273463543790124638807653810804330514301658129804764482806989444712169027067198097183665621967942977786033994372015920083651544741595009627891084616776320369117361090159970569206826746891533909265397485925458044708951674191409076101984701256513969748291475523833602547711351482708651745219310340068162446397468841093243576803040462513643628829959940230595742220044895684707514889736827553422996259747344959071796262817462420605886844385476846645715198996730397416803645393495767089716953109234868162170807880474747586879927659352174589317158183487899906679247570666531730812234042686391223869980733687083890626400534156690410618302037494155016899044637735637129399233537057686029083123246117347004520912887552735904096486084134910018619859972445437643580397674005213958520704047617510732313103120129506784886153332503862562030386208561256910471959863314761248342861106406598435590969827949361712655225062630454651673693394675724530004430808431474539551750816997296332265780142861056421039291598973628486203578699310197014181566764239610565816051846641420190932568343321335981686437898017236369721493899082395646069798285007400648578004489663030692689855932081878425784716619609676460466435860498719723235092535326387047208922992007800048755252780225496894425609220625963524524829927857849662863334514956130057879516214928479447942287892682667550795116957723523146681358319734801417948209025112957430515612652070292724397215105083634100646850827350717001183861099311897621457311117098329705470614574696539492765028063772024498080034084767003413700144267114774074683211993431888218798859416473493823247407313122948778855225691509295728054187799271500322188958609075858607425279202256976032571032945319309406091486815393704983829195921734942254275290183109235498483392848316983571696757853815626565910033924676853744801457592800870085560355881277927185394695264367163198598732276339760669581762037499718211943791556432571412591827795236963566613657174832803089869482550302527403389003101808007259303657029034623837812379270404919037376063467648154177256931602428911017404503180835391345341320988092103734270430092369046498830496066693278483588916150051337099155649575419742172380034530752831982531505202962297334615260166451632035574223617308327803153325155796678808924507846388304697675143663970738391894256420984616783648690203330546598873800213791216445301909706044477596440685531981110776013531499280204689609496151213381785690568662298012767152599239329743340158680038431109724947910449827852985693780809533675353582218045706451479741058842011900323172690445694221623260886048651829017975096617273924467258562440942840896318807085880772040214190093010657566178878175826308145208639747577781234713436184423931062764142294660214856243450131935849735072462442667520398795991778547528855692208061584752111859662331211867909319634815957763866824506077226855986593294722494709031954775939116128386059788373010009283252399082924070522952513331319758259788961058562757450528862592712657400803518209397733219401338304387810105410013006385705907384206142250776253172972567373717830708638480537508961831591147438301744110644774428215817652527877605939163110661544839555559291926495542258903288244736012362772187258740024207060088297368329484605532883706237989446260032107439003652867595406190590607036544464641601938405083231614084203284784437926369778741385917946751711516021449184195312602452679259245009323668855954429843204203621019495565885907284427255071914296474841705914392052156473976103474913042755151006896267852132482521676074498603355429016458391815155685481043248882654095552035369326231200499098210175397344501791095813014687815598216334650310166024025863884132717380778459180148896060703261031741893214085833448797972567750370654249917591574372639544884373142554808455901221433219546098198833979413466872659777944085747120298073298254670940307554827976557824993045146091835090141937246373321366562902197221264226479702078310611743829541625714081608201391917048427880052677453077933368887644271344116685227144734073561031079572795493543232510551226153179035930104534547123724316429376700402253440392998665405303728643855318074093146951151400999947798024002621584379203216297811382481748330478659151779353217850577277767457086310441278577321512555548986712349497286334371662663679725239680942606168718201376841976774798938220129920100823873437029931112688039278478101949501715506129760746377258745054031450330004968290338558370845858429128019108181714599460903558952111872238596309654902951684076395836668421507607451683077407415209163762877820593893460969216742872471033870365132892566796634521732540755744071707655615828692104340996880912277443773771950464102037508386620454489154129159057101081694259600112941355399355307176088374242059484384225915642915762131181762218842361349624053171289810248770261478384255687429951999373273929727379956247650561860786050868582858667948196616755220197779518723377843407300863688143098430370656893046263904408147977618772830458935913731726718218719620550028241648710571901077136434664978140750643579691376436442220101575578458728680588418277542508714605362202917341029166186222667017203640301564037661381757571347084003014967876126087166903382502984433984205240357236991225628414572001125821667035747367440762923184599925531560228107289280592957839431000046903040237784277167366257524713140197843138381534891989821444389961196180178608633977089816578941008078287141358592312253547068337709869670436518370842880520439108369382174631319824287798420143719672133158809529551525889054748268125794125987289602963169621756937415231971704138691711119311627733953622561380489157102074872829614984575792315237107145767326476128880886262067094277252001507878966240767433378272501520935388744329440155655259962707077484498367506036143535985980104007815939999745742659072166439135864883124059643244754334913961713338502138175581844092235666052075909740543083999953759803978014163813106065801221590932119373612644503017874824644612398321657969664440073793866205037164817544529335646913042253975102983742041945337813000488598455163573809169001115969104863557406981858373272987792598765027302113857448318685474759689123574423657582038907821657054171718403530020462174910089900580599502924483407544642630603079209327163277495173290276778446460723467523843695561884943786968028580339499719412327937113180772541479232449428846199735038811319925425484161634215953305671407172569637762027865417420844750869078416107630449371012682308556917619133069540194254555689248506885163061661535259472983167673595883356783394166666963504190654426630397576294511596822532849073272635595889790369928133307258911642416317247698030890463726270823572262728291841052310888816661878737487729543223661517485916323645959459558491639237826950781253126001319158423781703087787432318790859216481796431363992248231411703702359910299771576211686744658075288725246935868425457242668794737209168278557720204027482677733424221619409052990305614725499067834035490738039091163401983733456105418897446629470558389473105278428698080649026964142370646111961862484993460852106730283125270268053294488606164023017539408619065559125123660809939312324663519510970888437309945346789904591796532370471982485822899659906697119842075317482037066461803120897216030791751295414585675780388588567265500801293982214602684680921147571939048422353382648574293229105515218132314008673403961563702651904344614990150814913330130360936755860991687590567388105551548882207068189041510734023198083532473064102301497517273648100565586273563782525008717555221544066810944479776681522710262754703942993586551062942662700089516033843840938683096913686251362195774900592880942973715266013935524959469133083271370310180778738596274263441380875183753740970788669801384430686145050065550016828712411851058642463925709603201271363307621929765879682373839296334254267590207768142567145336155707207793866807582169568286130238157989405716684809086464934398080143577587833964312685723686899052550463502070961340443375846207520714644724528565045934385239946927653550318715273266407730494408559172282587271321395292016959694840892747909602644788121421052891044937594828628755809009890910420835989607270090923731204692487311752466959711084837413541167693731992854604820204533358700318074488468409592326481208723801688123945111988448282955724643090039694458419271138134935350231687192055368666843386307755973169710437791308988699095032648894268231195575108836538870991500682929229958635845581272959251498056002092091629100801864704079161739390610325304982951416713658465103811058175184178870186385976854752332912086765305623691322283464605666344042215902272334545737765688702992122930532539708901274115978647527436084947019269925278995867846462280772871996018044122709556767350997654654533432863988102613643934076264410138304438561456898851647021862288811789225695603595758000299928662429867462108892840187914816134158548669102331740650260515972476232720535456966387730660329160433908734172914636677910783394632916025067291677583284052198210891270768208658587643468150074922519145008948884004690079142670259459909415985625039616772827971348299173996099088456507871324449261075461601341852053435874872661627755690410559552687940701392224757594063580798186830336769887915027315691103689299840648735010255923816091338157748225935596926462906645245587813693012234110255645541171798042618199536584746346647697041158779186862209714107826369886270292568666834811036480790890208828331231875198536550737769872245791563983044195832483239819282311020088779664225536386979718786674484175345663910437374163042778716285862152842157206465260647895558368725640053551695350857402311850256692786917896690673802139083481558247491497941060621058076419374923700427131078230119169588334990517301575197535373294543464131971460488810802019336982136008682588969570038750543164665235616936315639828460443471004758706928069543065797056476995217035335382165158208768486955195499125099676206007954393587347464173921937771302977044957795827796028740078292292030552869453346594010091749092977737671592751566911836825465513585808434512937899212951944539720817665670729757019151639007538152180433804990105484625734431096847986481272938782879966472209198241912480514948169861424588666774554731265213950297322106756551988507980918683992599953360578489684255842916770848099392970352400200699327261542701646041711977527630643251167491025973838810977682191330039317231343457211790484348444798988313080289660166971032939893183134378914636057701065668392936983579647278503860243588424151401435895295435029158457214368203212817857375003807038514628499172928374384232438198990664838560707892450378184081277730786517974144069815532147376360186784602052587230873859896352031476275345191169307871364070803494939091760969869352217679445531463237120364627410123893618002988340782353610448792853581524363808447790859914347294301225054198490790328997488141521223286952023780401363523455438464744900067511659763503628500695648050174884402560701855447390305663195020272019069101851612513980796213514916732876821984779504247201937948492681447379659843230853131760614158038204856676823845644687901936758821477572965058389418059701128688324161105951119516100969418890711815469216713825969175278513856164183584809784426286791670849115992205659081194135180413841033100174153685236040621368626792749631089414778365012534636821494387812200363809146944697621585128589269549392742928351452214929447011837690499418733486706021122516129351359074029421043302887424072314548373524250085785106578035421678284165477413933276948128658964156113338509364611297783093714273761391064715223337081201951600694555451478005652003535157627282376717134847905532954256176742671125800327135188389787016273342418214331611374758045655941083340947028757410298357208919644093400724488128075398121134776009573889081376621501446854442423768466355946919124358329307096973043445870377664675141816194472664265621567186116153860898094241266650017196181296465874695051378793064985778549615238701898547193473328184802452091895390988599138809972715486148114773266918642178976150944137217019910236893542355503441959689321063328312342861165067373378874840802057448589766986226831240616757917868136622329085142781412693008670928854999907736616046755888092541139688763829926347986342706573396532156748327639776051602750135800366842699158590963139399369862276354572791383042114733051299433285557194159217766849190844480956757780821273872410420946320842729322547628955757930318648063628279800191662430150516483649243594415702048237025345389416515581260819620750095759606242748348670540258371012242431147577206409950849043023505612364171617602345059412896032698742942988182696136121971814133911189207727633094334764541825650478848119327260081006030386477573862178430746152065340069033425150766048908080552937559933897494856469476674778336544872449811712796918369136706264727501364702710734769446243769375824599548631343094952424770859861017896871797658660288362664718373728520359636219814144959742283959577315292705636715358678963181704522569551074908235756862637613298064322009929323392915964404418961077218816450209644714649171943380085827414599976749671908623834857350174975580175811738212953713116346948727962673468188190957482148076572379817988683051368927797158616197298443138101649429702638708340909424618788535463743080296603257461840587256071082697250420647836711880373793661782338901684773871924911953424451005676036065585757523031596749034557267869022242758961806153701520298306879554723177924518746309277209672631353717011633692120495504272158433460702326007874605722905577804715252871606915853636132337114130499618095987300753406937051796885200674400972102094509348205648122696645848506855670619945839990000029590222143303235218171405775551796465982308338235952682980344692033791262733399593565419365890486794922683903833707073209551473127763236557156757103623885500359405803933943309816809890190206183904786312591974206055303942501714729487113280963123030221874371119557118961567452873424449149687278526248998454294875565888467064106401434089346564336746203327338379767710037865590288577890640133864810965713658318592304043146876034234483648768890880906974786136608599729592643823377679264594228980108542712223837384102778550266986017508976340398483802402496250498566701909259859020789011784532711377495288174951364836115319445463355315679521506133900947525889182449382218596002537989364951990363535566061543564102347671651438429216578343559253357849876675660396342207905878094571193111230648715977187152331926695076277399378084726974462631001481170424712756187537258763938994758306201893185626669332954601552329031832052138816900222396514577476921653865050259003431921476647302138030072461046986217759204122769432146163830632655737684585244677842778581102608976287114320798446337728152527041436354354885378744335951694698419583600066595021190919513322589663882593709678528907439600807746395013151970940684526523712616183235731042857890667098057223378300160822707493194592837862715069021403847061820145470559842831202400280596048251400975238117293769404726549024316434123475959914141373626897059171892727279030742021411836593382186183966073342611316083327987616561682258575693100843389661532980794039611402028716907705860210555615236800178144088955665084642715172586038014422410980626352181373490961862632367993472208719975804640967317135648599770567884006059874511994369577601513543955765650120159657794781894205044140330907145493702666724916500670015373739114278055031333390713783508819662363982772458808806040751130106043349043561181409600889016657778924137852294241246115695275775472132047466510601180921290131623297603051040179852774116427243166986125231662483445429198983308642908097049896850285529481191036069289590108629622151625160003386360079425508200999890226208216597408868084972620126363755862428174295787918507013136061033170012353806192504212793007990684015730082373464639897735413835711785963664470371157299842296521313768316919606560727321782530692643359606938092960604196573043820041073403337039985193229499422186015866060343953784383152128874047288029551748919827629957198722061391529897250454437565644170385393304759116487365698674180773565348211590620562059173160037567576979177913916146402658797436881521789904782702572707289297686856626253789182010656902693240311731252181865652045045854094380246721315209904185918129213360663426368472158496167933841192984613871831721099273706803797820754021193316099046391089477076046633107744545684096573378518643079092237313629626502477657532562336875927604577253978730108847025455691263165140074573333649556086695036030296157278101537175312741377850548355103693680052139882080735054698660983364315939553888235758116772134308963524499929036732342784938797049559316505605339403724677036334840123752913331387735009456685062037797300611313926931822261434091740488160222696604621721015930258249834597639026015965868136284138728120924825689191108344395213497858389142327599716784421653017777810544228093021451678361482170831631118601307814655851810527158259832537663224652486341478173089324747474474944776572660166398765142133116772265845267950271703629228696139920586824860576069986492982783875405704813965583840656817065162393033466856901897700578055359595892382234388743252905091855843970875862432985120047806158897222491576696458558984038770951055591604762163867855390560645873435677431261679247873793365142857318796701730435527893781676184632984872142679904335551520013152123281030584892332738968328807555949342621575998892356702353446284936713633103076206587923953632342654197103798381201091053774364538561850564777643180776962415401491543404518098923328918721471554740653978060659041908468129464796389246032644426003913149807690544133158077168975636680975609802096010198623010734021713366954838828044594078121859298243171368931362440910780180522570882669621542125066421292040616052730282826617890568875332564785263072001723415016146744779272833641709739981987601821397155368632826915258329599837034353980091352418871354661581499123294046096554055407993107682447582299534802943476104619948830558852353417390607078656073166982853556356013530033032013414531366617784161968699421579473925068957465568634189088873932303191919235616871981910209166115084381284453059620926642280761762400775036305026695822706648612605943999145636617027287871316827592178603700039538815907004073681868196285793725065619052445809738735778353941747796286400071472200874058097215201217805725797131983420698027003793743937252718497485274270686215153078635347282351911981807990109936736840533396190280469915123174756439579261594404456108307914486313891309040087418424311332125274492917723007990373947738711543585410862250424977245846718411167983908721907375119165002161262951461498748558971394551278849793478946244940344131694911949959303907297502310364131489517643597204037639741484209332102109886342635981915486844248434062261597233817142571726014838692502132895998309283713687490794633156093158609313340821939090608207717739877130736788002163682384806139486874546575856173834180904419959158467961135276337012852380424694307657690553768367683790730505113587483453708155285405015182143812218583865161612167693058796268642331201256224138355677741598649225231074349061241270305809006004954122875562915776567221108161183885964884562440638880923279476306011996297280511702746036584284470182650173151416721190168526987986012029324333531370194863045600526557489277783387001881160016813552165101516067500938156633852506623135595566795576003377936640048336515730220064543682259398900445033876689098614582563181340541591134321455933002428795689699159878970442882048272233655476522210599278850669912096763532132314339016332268241485293965052303901570004533711882938709388474609655327710620503385870734268635890508908410247228640926431520482493618323423957620556940020257315691743421535209678647874687233993317527043059417291721932596053789744247577019655472968797244391686720021050333604144760708500507747661951000511511269934335053159452026705263109053905530884254501520656106265594065486508674438667245175487412750272077120446111714244357235047725317164018266315690235621857457744734878869072355986312033657738002649229314559645435317130063792190837144178774434490640723009088761776820465913917201035078613483671320225928811927917992265630843941186165869867993280832277978132798640565000709418440843264110550513099586130753144258749956676854097861776843479376571003520052155230186651514530494650611437659273598576331201859580443731045506546540228425363133885457891419471182218899379870897184174256049189268815937535210272139199895666965330070360609181848321947315192879785480024435881503483211601618533936564793950953838433251960467071847435180386365994777548059152134028560349761742100805012662091707619019192760815858179860821294023614494222364589005987113743433748579005765561711831541338096121237993938840249765178077929212287938379358815155742076258929376113532243283508498957611913959351563281293739744617993594683597385545999494652494161619017643525664819067182789754429162661556127137224859275352109818683904561679205221267875238592779487384446858255074114697179187048488557816950376743911366344648034269533974040916687136096393287797410524511250177977818956302535736336237144500182676090158808363563652880777623252285281956520971474932976123480149346794677786056217334741423852076993030590176853331030226142736178841047794981719032875175302073389967529127926222239399585081667589259382899232813431261113462408670480841695413712440315520103392729035954090444843080718516021317046071893273561727396690651527339391723335261136540746972612652562765745578246657871911606080557037103085789808296287978420770177059170594879366887726782686113770420889738183708134660339739242652581716002342457951388508819466325145663603416447379111012326747504057517200280521157656258024592868494228709889957885647102399947048942498618229309225998092029953658582716384586415000589666276389361346349715772516998829855701379056233592847346452144526353551342521507740649824509138538877964697620127064065970311757596962686748563426422524273506653461196777807786126671226976558403366523278173060430982930621841916285539745233579027816914142011162648224133645804806214160568189244381652697940144669830015650136921160499565499110498793653085353133394105159673801911288507538674811753117063176359727827396675978228974529092983666734428356529948724051538448923912587591171706754734598596059517046983854989775446642162763682603717552682621798744141587417472663431051395876022290183607304087876331188673199166629211967648709340214284033380418136631682826007237873909793030124528538166235641588699585537118502121921118605319014175812254149168091668912680683112366611838382393847883895298846297822640176331750926709717234865443176205093081427994345226845300008179114581332912662869779420983993022249893102587141167227017789764586037903231275662409222467575342885653351002611887499897593584062901954116272967252643494766127650638180239637538002932064674539513044224095573820753324273107767118964585097756724070263140048470512079858021307970022016730553096581374467406331114707882404093571364019248439614499233615625731679180186251951678340706519819238161157953390938395103945782282815012714644848424919479796470878141677808029388306127761834041832161146099608267733980303754461131307181662574299180010311993438996613833356455450811831309946291276695020373763914370580873448628794507416584395610987419241692085805720616370706235787073554662417428924224014158431765461890162997241284568530197294675443343161367902189409020979485241763199361439377455551855474110640078715280545723125711980953852629235786496798059983745964675884550338396255920114236374068406349374608486439524433434215715510225500698571704013184357521653644599827029987922335159929261206319542731177310153115402376933860003511148829118943062336451535236414785653028365734180663643587467206745875739197775343284544129052950466176232086257751115506914003407644379216513191313716246401008795021921440785473017131529563007767118979289304183071992487657133763228949788654525558633070733037307058435210129860890244278480562391594968731146872370758653177514548554186140429024134614945376780365082316952165036053523974948920013321065605166659726858746566219640512410152694003053219750051621120167033867195027162590029254190087678981792645977694249832182287592892293149632444646427665856347076554434711401738468973268502777547249955347918305607297223664335833127220413632288782146175563891686207057913641798952324947206225620240329850378687925203575784518529130832234643238372367645391382518852202084252654113902807484310591956525539949833488526529596858086101002131828358249569262771942854863855772697706305032260666756537830916936786210396893273077889902606241075990602596103046730464016981540553536290689468068072865200148676121029517836953028270042080234729148571348111133710350261709743787856714428015029336371630716769734920247718989975605354459758453079971162852844775598660829123285291005956074967791256556393672249831875323635916540855422431448127920802305633357492189969443634691319382361394453250121304297770031876664584340316429596476610685080493045895923032198408082781572027295652512300030066768781166496505863295694084259445851628573739233565192585035723523844882643555359607430004564651584235383606810651446741441001889668958962522357300118317006619416855604676050500606857771366503454076969576746253099712849840301874685793022705336605993446952707556028030431942980523106494235675270598081869569208500807395946902464927207718641231904085790275561044813540481737202533293102530907544591181662601552136576192803893431540565864719072613846867652960219578305348467351193477066024006207600654419284805613950790163335259652292921023966544777660199032553499753065753587859536904851543823929590726792283521546055966934063033422706609131761854863002914754861749806680155210521073120382665530607884419893328887799722203134148986517214380245535916146411201495216869791002350700413126263834092771409097230478583962508176076569404013955835515388136515214843387819346623151194632993920483811006595479411503294330926945626025662344912213424739495181273701847012308923771464440923204379025066472702138972282027761238920878123605242875016840045671863949344100978800241248680223523371369622048439043783100061693078254887902321815159425920487315698619883646192767152468086976087981622872728931480713067781311752442118192254099073623612372102943876047923876226394070130700617995349614594312053022356723068597329589814289504321237181598352366906445889427342915546939350122222439908239316424865570678421315022865773920233605283692880582902145369764410966520506693468591977349166472842271671950028682502933571503118361649579861035780655664843028162277768288228468050184354837078620340823090069744211330262500931579977826825987060606021841652739475630949694423339735879380019841522527530354970429072641827506792502131229546878936403958297944246955911898891812526920509226569838334121092503161644615446866921064848240346667022646136657722882799492980061394789859805567012105239737602179149900713479580859654660564253522402060678540748436757192495123095459964072587724030747608912889944548337726645352141328809315655291343666424405231723903859101881285848089664226571057459518216401201926802010902709247729892128977304939694969736738390532536811425061719119769579312029449746261422766741179968146986940698079148295709210154612217744362444245615290482819882454939733835658679405858910062852165241994666516354666217450109249976451496332947631392057959185482772804334672815067867238501699073967911367915434521830879818586151270660426806272430537158935339997913133923266065703088710398725993650056776364664911383590735782513632517615442636133974040170856839761472931963770820679532764350352618356805109223195010442449042359449193402837612637113934002722543291080612452731499459088370513803410702883609200556876622447401245399182697798623006457376652636203836719848806942794704205996048755173123273441540077340145132122752937032285475100909560925511631125760428478490535808747118477710517639295442711988024494519686799122457248646951281913961533674710469363056736261414462876678279669111452456658129896931003581253702438768495433852989364316306107683205182175565682979943095677094402641182250354130288756781165428692841205478600433735553732938677548033665565789569708710700248212963420727006776825445079540220013652474014712458381082957275616833100372701873259386672788185015082769149702195402407971457535977211161821544782781019146617388702374933823349642936487338236599077207064527153393790677700854751124391165117816594956188128102127853397341082963050727759725665073617984875294404755220237998024505795851645954918347709785045532336614119775836964855500677822623416467894114064589766666823424588278293554735975790597966968460798593828579038354088546891638516347255201821794433143627783176826094572567406526806262136586303984941938302426507780359161062158427955917128460812774246478276312134706059220742101454923518044074246617803980613577890134396485358808526503297946106739660108478210500395034103950611901555522318416970360911866447085000413717558022596810292005015474569078183724180794761416828084262377365333765247259510386077678882653425358713560805826718866230621987156031135995692812221227863011358849818895285470611622408635143723471919845064916367258608343611910774145468495208272702577314161221438192751817295334070771480436955619643617668099768089997858089064777534987165675024996259010652450651903572350578309545539331437828953931330700832195812884065312962728417737899485016834495765609894934313703407205236645771059984253362654084785865368566543896126249146638769659745758854345700703193203404762328685897638561368409641510005230763333529911133437512428938598465177637002541457522670191035034190701618027208375766974970589717728962453167393014683792433668009439053002646964451504964624836722449932486004568754615711786203031370671521901374798616900298085961380159478959767590860939901387812807607711162778415508352821668414143906033431900433198046669247977158249123915939079709473977312659160956625471495068482493181819436983040092166580651670234873335344431251548633407081455279391313946902999093784225824172439794274748951007943163271673922205281804182842905283466364526803532021064351095983986720937857241740934644161271642013906157709049497451514987118907771463332121575795786906251980236866372735458752771331189316589316444682750758448009182687367775819177135676561543906797427503207060743121359532109627323931928244932944136251002230904999122762304426983663839882798992280570698922660535681573773633766990736130777619706444113435831273209581404203919580959953708915195797046451889505623291975596206857017550873719308701399186459170484187414979209257709944677409779063336600094970661482070220970007480928538632686209261746121744831591813071900707843752401915587260521318046580406747102610191904771146769525983920252788939852596329837799004719975128554316835747863772082361811483077074926043731449986093797101583281008911229685531024694483350102890428385437909207307216176958447116629164402518168786636350780497118838156910131713493652174288732547140470328045286421694800840178819156738338572441725118661619553380414893420616053237494360669228862972415326897621004254599022698969895703655558839331729054497857369445111461712139778167128675948735602470520996488512983589669981287942685293857971332226149425171811226665373208542047067194930343413015492364718418210010489140452514096466594540789058835372816066006269246561849853906808485483044652082843259636990678009737921142559101538130535798033791221600622478928351430294566974226338659292578574797154462886435286573800636250519410527201753182334809624245524294116144374574625161145938764035874932671520506798453919912838261353663430440244167408509157693915125683303216718767108159384344399860348931974866987443700289743208561568416816750607266305096955761580280610582244273330366998179702946805442219397541567816178056759310625936576378412915789509766491959324149161953710794300114238710900052201811623571127525109820309139639714020908237665579387586326857057820833562046202542998117799074654810963394569501182024749346392110793740293871727435340720923977612566788093647676250893949837170484076926622557141413649519627495422325055780768275989029451889315437507923615612504808960550805165519480194468965243953134729606018341873976535332939099856718239377519298297641916533330272578076564944517881861129412277722593695007062610655684609405038659119028109249801950834718426339614429619214745269458810302974959085514398482946521469169128940943578123617100303242812497286459761363578531026403758949709762662122824148452950666389101277908667742944535096892659769741286762657097265975959957892262847299918734677906115671802879023081030202231777733475880879693863135113417598071120572891686475360303888304421977567517277229679837256776915788670804920758056467613704486661325817708701083484319002288344751594854024931782056414003100828091160521729263874208371081940735618017929891538611748742390851598229807986415727434981419426641810460660798260632776758831903935947442866178046272784135525602633439916389872416115152115408626327856678721328640219153754724406676950321965922168467352526889072757931542123068545623645769959957935242086408196573653893682063855295378838829972338630639195451419874649630359689997656339393529821781330967764550364013274639214987178935008139018299541318709036594417514012426971880756666091708257584137499800026356955684172550508091314624784276912959337504221430454181269678632991906354771341600339139880340161053706096783262961821087365734424215488641540813869845002504548048553506686360659814071313897277926471051795647996957496189904973820368769369260196388465699506781147753371150872588287643166790027435214758439117028593313337048043652412061403805690141848712709582342903213763761279398076475544726754265765350309335209273524934170505355619085841695880867533308374361552498668329699846299173122173364433946533930251904456090953336204274863448273397945427402729857906135393300633489463672224835064941414368314426157412313239447066808521596800299917341492416697167431239008593672026103919067256073045489592405262990742267668129763283990725112476142415326243745590541637547603967000766013855379911380366435858974309480077246586659573171365355540987193861363439037336983470062402555067005839708230484113571389884340501660303015466396107270939707602976945452411852508923459232531119290063012462727785601337871531248398675294494348500839670503612539628863744176065356697982750595991565203618346841543942599255599247510653573573964645314940122824047133976247250650830803583004180673718209670054020057862178326445731904700330081849408759173823395117657695534233244306686769255118686223844109110170360625040654834734592787829682741282251467369231177994654248216388181285020453404887929041112448769253451045340245995582739235704024941906703417813078470122014138562177915610258838865941044926201432995900965942251969536043822805414847625424301061566145921445641794276637411468666237559381130881298765861815522680713484819243284617525019707870593399048145135584725737060652849954795624001565194883916638311208545939251985932433656147921508551561761208380294842740417911604317923649496568483294077106583072212098367439660715295074563962559775427909227700609174246735157502853161627623523925605484359486986195942485168612503693676451931716685649854521751839124815536403522395423329264946733531579456241677960843877392219493016759866276194404046508377747307651239567922229307257753852924220771042543716306912259031981439570409427506352961762058345773321034458083248195737641573204156414548479315649163659815766239966691528092396030763078660511230907439815049790012471787465251149271829209825644721637781130494582512304422146565577534492506727474382945968856099398246305374126165811763066735415407999718368576489583657413712235194869314963170900766197722487407921834509170089850103692503524188575713848990057549855889971894580625632388541433894597799942625625868764968883798515210143415978305660255553598222508863170007318497750056631656457556441010379947942937395915459476444709751480676223384980746997497785405227568515757189506082102976954711740352819222474517419361694031549462120974594958561321467017607192179701692726330981314488760699450346526205273418171069645414188859683376448043713810669824202073413229807507384439152684623407613936356862207355157086088509645649022184584797007478693606536966423119990398458038645297846514226556115589123519492521242858538357920989699311115243850240769683255439981996591944501704924279711863518103450799676163297947706047156533012241835424881092229135272021011935313503189907275226786143548076734838519992881373451028025563640499759710802251930221369432611174756670319431432091062781606406917825223440466435939934872341166446831678555472628927407859721398856084821181524840077111829776420274820716860433860067375747294681695101726106380847579148903168496633385802039432151563696547015053287183687885449616221944960273067969955837573784266975675949220416893293501254841314642734654739412398603112475442018467777327711514163482552403704861936109912266232865390804367374587497749141216159221891619798051157442215173080657842313521213834560631882812508457966699473570539795962293798151746409071586313669062754304903428760381328285841434220694716249057400613206038171478305726175112905165630271108326992477318788707545476633946629913996457407753876183995627669139861748575294816394182033709221860728217832309364213051124843436417187341506710698458353713875500049353943548310992080935616694943973538846845298165548117263005983218390098377737268773720379879998886111659499578468863478402512896420498299343371732525282824124039202886968154585472625985366980276834424506873696880090960114143162045669181711623857580974370723490207315550975707053605668530791647241265072548176538984659131415400983704323265049214289572999964002579490832848059377436832934805006436507584334850554388977510886640235203869114359159564855497923713971236873807591731098336598339818778005301100094284168700128956829829845103599573162210801009778273246162780318739605454090691397946999079731948615511776823793950892091467704546844785557208689766226865720194578349619919023093518774484092169361792296059802207582061877965240141196886658933425691976528590697972890844115413193945744319537673109360432997641843565752066695929651025773679326128601607722974667105831756457360131533397957130892950956554194554823036919299923516820161947458862900546413884727027824451979034822930412469305428559702655230264119326818566216692207316095563685403265483007206230827837462785873815611747357884919058719161241272661799853978634954916791838669560172337071756827151953879722969464033010807375948103984544101427343280435388405257441748575667467180965065517169311375864189993851605471855861703016031149677112794188620433609575941183252879586194344029607473764204907878766320985941651107470257512231555657706095997521801748965669285113148878782385528431520410217171783871906982138039426365951837495162783377039554195572327374618292687687834882358251379263764120065169182989973776022380747756740578175889757206840275823807997595974630562097496825587542925863754524382470157092078954413796328068825556554503397928705084091829358505870556539433105953211497460065435900578034325865577389012136437343880361895681977337524746997956955514536449783860204029865368936378353780612613072272434832493236534723484176738685244540740271342006805387752999523884310485976147047352751826568950502333395161506541098717150750314336975519500998211102164942966343383200183458453607416307818942903482146780222026064145467917589437823017897964432389978071051842719507141951557316295795571978568641581464437694733187754260321064994469982112795872975549840608804226989871494994287151045053724215656924018965460963311742998699254147759412523872286197473836481677592826566719726793791055827929429106160772109790218589415147407739041603372458679360537187010404720518028407466203091932104008644120930263586213993649691542234665422835627879133266864575028305747504213932436547167131047815941965349816714103166660399849857676642226840685883141386876542577772734262953987009252113162028866654353231783213910027863340258867582159533876767581786966265159776277758174018565605973089504111052764898253720300294485690784905795631256581478192595607181529099099637766873162898506557687477566035595603112166092277678600772543179173303434365049773165168369453261535196477786363511019530939085403202064024505983014736542731873635010889407769412376455961509798365115587680762176125340094014667564844098488937105871708508461966799262511385867065980271057984189105898143505544159247979467964403809119801800212771322443984673358197338843744891677727725322142206371320604110301128975324811687632062791761856452409749428415933884144990855563185273362062872249224225127122658996320183422749000929199422677498275901614562383384345702581239847477486290716232278056302136941279939574463949431795863913591661819171224688658893506359619300913593602132462679654134983960212476903950801316405576705378494261470783367406961537849932669604932202587167689288810711108769634252159883233556706599220772145304170880772332739336330563928757671016239471155547218670140039487466528682186694407881952328150872851260889406149586714216305098411362484655585998309749377467052242008183323380494110860034854151347451133180696079377421347165842497081925450754991718373543524093017166820128668606661998299741011179594591680867536023685959722672916311634295588605774040489943476154041962982840169638029484137637795384475083819302927655694544046226051078588619550298895245065403562728496813436897560724654953457982845164981910824664015216471440593386646966080328105691942080279429940021569538684148317537892295750912424666856593859192775108740951120150651800958732076583040638442253945436544618961617145874103145890288779967335424652017332597377447402309860427033827026158839294955418935570664210953144176584129985443087799901517425830510859644401378650434016607949207963423962694980940906406091542269062575133851335167906118383176821984087900195355694840776871283483965196842743336917534561615701694030589100579519951333813602240696147837224415074744373099202092544677493752415951933520336562971447414471969636068165980415538597594839054246724742101406180480979911910805130154494285842602155121108693510021113351787808520638593660018256305214727897909602426692659812986575490029154909872297490273033173948321345623673562909192379555420359206515497029539673132418654766870214429278120499650919763052744839309507757364538088473895168146934741730138707399917684652737793180358090866774087811806712134261935373270362963119974326017514658809444300631523012418876336092374310688548743959245261916895413673072277788841927527217420520052094026430556972994652407245415009046659154084292861281893397365320648557847873290000072531030496755998515707359444942287550225000332935003897719025858107608979570984081884796283341493113650288746019910977351048385942158665911082124537568517707195600777318618421404743857397731321810442301585444507532746704624773055658220705805703390125748494395698370831864045483479903565927168606261560890596996522837281362309165901194663895705179510916108077119183216948024506098890670388503514364398315412935780611647972906788996927085896793577314417525702774788100544367227242501959338810874355332551726766256681387849191280570315360149362695853640343828344328748720302232966513397093751487059973835164233746970099012267543441599450788608667795371573996377930329649611205373732348405132383024795618041059256864047727640281744968897230883256443054369786507870716186310429349205148337990618210564094745207986798393367382640600839249661807081693496746257613821657448056200127344684053288240995891815402052299906768352415813592393043894511270792792873154151054051909132615197578106952472721506426330282183745134455743963448156257109194723927494689651698411911684583951000887420799686615608838807888543609233087368929144038494996776980452188128750606239813701726125216941911581089442984053047749723839154548817042964644343323575715168745436154326888658936063179792943828202261726498465960877421433921664247255759735531934944643522409470686554905976631306490133382875941725585259221960892181176152226484929288158061838429883565609396948007450176112299034233761137651387624235907703287569160325616485113138580230309037571953666355828739316221661380864473905123722298029796373843780062301415553314728327037844377361738600899846204026239026005150923281694524472313670196810991326690067357307786405475471462841641081488754957930406500257489795863131275294133222474053352725241632271710195974937519564614764050345458768715661639959884215782494517896285181408191925131930953119071625945059375513874953355404325245084909305982152154868530272678382350402323007410350497715522004762234400497679612662261137062825298251423929128705495450701617184689500514746229369298715347501152772871317676739903707973682398076134381341913715668027679683739698303402457666810019465525771067849219763422903084193390337452909609009828313430227300395972050986168497141335957948913355735266790172488131161103613978422957959163403107113303472075744941107660329035707338282326266728435070478370318312099142595822192019751911748198534599701263592522730572000440080554434491098195060382571943161298226523503365012834067496763776912341846876098824820364288011095911421755383690115507855335342301217909755343844061534507701221658064284152463398711807164139777308090464999348309166773756062665265759513347382448021670492115192951071296508178713707704246960266060988459379445212117616529948018012182301071957631351310156544161074361426661240140429575607051288726364651008156856488489678939006625890610748801394748715704273800442445504962493512939427338616680486893228559732605138167838527441171740889661499267027724335840199948997164711058203437863451103113713432226891560306856516930673331437787752567434967110369063867526268285115494815412903936446223388902300919545925325713245402502957490282748427319718725111851547005885184192733094385772387422851432894998514859148509414234705795836311051973657176751555298126918626403449292021724520450314186511283717201391537230879225080300308031896872019859247823407612922274685888251364359522030977410400275773334839557370782894079083929277979646674236305289809244335992551412404025287783871628026638253894994990235051363248291952086239096517253143597456055225515385255704546406454419992365974677325351262918642693785758435312110421037299348568738539994453242802380650157441951710532565585495048388354105877295517879180697653364054798950657704602710183758739952170710998973508255841736234372095352883473469146664035280237147462842804279272292484563497683986821708030005667191622295002864709906360410439919405232585423063973746633337467672519540524609465497904911457345355769862686959372436148895265578451101742738895365055886077854791454644468389926380359777579235786876771590367765957383728722924118828106810421151117989159505277613512638489507280795137338370399197980467581801494035653060436537497105710735397343022076830736404818202276816165686228177929029865975991030389724096056212083417582533533161335127355972650429219864814795541425330701379967535957648030212544081267640678041382761219694250451016427724492443408529767417190160681708829338963628910066289344008976663937954945023361223433253459691710544984420114062819992680370308586036458807893641799245994500568678441438097199491012039025366267447084022053273337308059852263113854103695720685534461862301322251986854338302225780303689361494837618308451958330058191965761388470635520495321208976950685227822018963031274830475148207378700631957654378596955588893733058239742205162324161609179834968091202649543190967378660810067382910019451072812560332743489892909173161520687463376768151438472852824729776983705291371662079300484179157660351936604857149241358996420735199285267009915543249001730492750744526179042249192357308342314674211689651206809025392186725700865951222499867870190801224823663007698148093285368697415225203431929856247792104640665517058462645369745045032649256967760685331468975702749294703021430151450636782351215043513156144321819140779059289203901894567436120334955665188129009082335135755495440214995589398703608787238226716094132461505536142814333699731943714694971722532027614660837546047519682695896681602106064073794154754842497378752091483539025760979965219832389205194037208856195701252802737594451563188810448978215070503950370076642184834758425150496059515610641694394308035082151555552796468959656871699073441339432332471238111171942617108518506353794056538847813534318461432891375472692139525729718630595508868643136991321536128429441063405578969196519257850659907283360960643643889183757606066919929411160262672550636459050048353319266081223159623660090935542311840357814009653845643064303373551576147312676227935197877525448970918422206984235072199391658601194215295530427493926548268626250586547710850075254985610592366565067732181315637280295590177376338849361059350965455570234037593178617692956819671919892818526732100453311403241908957653799688601631038974795665779519534675256232215116401888756861066025163881688667613747772927490635200767518997897204147345069572806429260101795178776532669764932557812020579800004392997150908238997256638619352008109519888289597185814757672046494995734412298134775600745051099982648452211324166992141507065605269805128236226237694229655355798778766775963946872268393055002049975577061180467818855539137844728113106667107555267746101573390198404400717565836749768851027664127247447701627499167683090083836270933492875484090800416647411448670058232819627872414187492976495942867156331469064824007867331831486284900548209833441386761798338667318577341848178540779723432400791518567023041315369794186279950159273895299742782255883725006491863395714188253531148694248984279176806118628009069780165335892516078240281439427472788627042914410520302097526533205430556839551781301299046065940657708915456172843025163459019552730257801505421247413345130999579945925441172872962655655932864654058946755465479528881984697858686999928610466155049978104205753244347293677328137434643264046550774140073597824279514711997704479289792594206285556636497300333767584092031346559071555006276165701419780877318000737466467013411049513468278892592819770064174993111202892808945083676064626084477775200694674902457492874139611053844422782056684617754664606512613848237829067050477099480979816080791718227534336886941597144675858230752774522742499336034866292590189806870117739604614730229750697653564308330272323778499212994274803819462922055349055184409125606985179945921812930073961944643842714526006641390347021284990065213450794883802881546563223881662745408690370414408915143453702878747464594926439706787457711418650730244183466595256726213894669933968660801288839101192649255278501449317605422595447009622765213576292120807378622485559765931210430999543769585258347053240799835303358963935193870374639059312556224265743253430417929978520320881879054037450029992960844507100324379573526415979742805495847036531634220485387462833902673745149003890135557721090454638126943936126099991115171759071782536900172296483073599001478290545811951943658959734796362927919664897904756023271710008845786923770819796862617485059450415922463942364863166290670002671219916125421246400652315277880737148617343086148373930908097011788378105982981889063288992006134310329138966918967650418791264893954278212985053266032241194311394838400344167786336889377974032551810819411803178063833167675408011428622851132251130192551845464064819726357655880221600621093047528348236571060056778023085046064507690259049253658362648998265247659029222346862026916285276536250427753555149735955491421244500836676591442065790315731535813836510805999178212406736636230267908072808029737487072037418543367048121093617138325562376985832569843021106756490279863832346215602239889271782731986744798890851015911070427705609347270417029604438447381634390889484509909238280992451610014591291813150871891883382458945356598659654520848832346508834369982143855975847277692451401373066644901832118286455298464167145277897199743677423474154557942741588395838041795863670429592007205848999515287503806025003311112776009813731502990980826152595955601908653760472014722557268044997821295580862617196294462615210202099825605737057377254909210458033607690014382441725380626480322311792778865327247988782543019372909170701254898054989491164837596426071328530456736257494077247627894413107442408163068116774161173027336194377434820388936757794477565017742907678043173340406856739375947025656238304620129034729444331091521430001788308147672441429976705079659822519910477006587767676478443729326736190299767958263176507622488189845040458983757762437885382449062449083683183568649495176513060376509634571665203941085077720234608198536240881232631630512510879897445903559061506337779508190355481953933289991065578709466754129678813400893274112259156514837381676035565268582498590144604889944816453958794024889052957257149748155645950041163643224887693502353720079293071387993954605181369581502107420036637604235994842896025906792830160714785590745406542870237225124858900259507210258036636680841255854337805999368925845348865426985986593525491220676371372408739553874890440576122814929004882855493649124949243975714540432167756597966651788536110327799797815060484738753758878790961397416156956254642015647406360659758290613952263258139360791242652793731253293341421384292980477346051911069869169596374325433695688184033614783275390049601842984480614748876013951808239172455713650807847947080228938446319221892570810236805111178401193192722194103056249858252663658006248429852009262910187052092762897162120577900001322902690175062864340168943863091618985137906758886809534740845970002374347007695366287615026016524681715347908730464850825527330978100171653642758038538015423571945496232995394385821583250246941298961354718762316321743263418457859769839508097150790144321705622882693021981189509732143767172675753391618258130550754051212223693800037942321063305437133518171569965481054808296372360318045509001139858286729948157512597141619582628544772482436755788114947007537214394905933123063999898195440302260807879020623407600224318448899905418686748485308240253623247956240793397976266036297118034268089641844932546330491796911061376359442230366573907567070930658849144650110141488620595813487906664471197795072921099349480414926265136400282081083998226202763805674410730278014638599143444994986274599531145603337363028099117173276270672264159191491363526543840571946766736674958360210424495146486682605218575189507672290924371021481888399469768025287013253879815972059787405617270331033066318821638528954243139884988421922426882394153713656925181551953501116566611880792628404646648778768926676671022920603124247044944481982681854653068810533132406801237232311084724679811774857192559210662221583729244917236790204222343179004181012898101602027058022158964792800073923970064006795848055905741967330225998605264943885110380410085967797617771626989789477430416823248214934348119923756515775818552104665418884181264671131231826784288692288397345058645760590081543721866999987060978555058403880865707965667627192337287215576798697915485471784216490443178330267362781013605273921458522632156252372146057278330000970530931412387411269947691173090410633457672801751618455606204497571553726916122982611893507594045522637720933395607360624688188220066429833101088028749470427795204347325912791430470772367221592880327782407229532244149758552244293060893068239848664926443891111466313262038077932943188575347153640594275485620581874476642673537656264143151323128880384029961102621558589140924191892311936021776594982239703696500374119662248109320395091182837296829519037266562149103843223637304750894200535481174439877880001711755724986638253976882909197438687982757726931176960252734333744307799073948810649416120204782339557852578694825948398420545422747899438115532415980089381558100495145837863391865232267170796701009349125854839723597936279768126407019586052141327746236235831465410698656679843331523383044721882052276335130499582164870723459983525411566454292196491619154290066996588667204789595569755430076958936038840067538701015284861401493967251241084683626634312204326265520699339815959006382606461669344540635138846773405825551995212180297855715775299137326721520121585131434523936297013631741561273376139226728182279807446416528368626546492333414914184054505463455508126719910442827722757519202870935641889703345242126102824127320227678686032230542313955396217971634346761613174550382603983128111949243430621628457247549657689111520184213363535571554724379511635202172517324958499620870873165176912142161965302764942497568144070943803384166572115358048658242631993650175733376067614240115950771591292676638719682715812251809212849008173349992279525401042015134957735802105300277598692043118550179031454433488646273633699042447445004801940123843845750235523328508333077633296231563324779873308826365732519470427450447136655598537450248866941909424957167990680766053828938623697200125970318631118132341215672846744314731906242843375957429032130453804629601897564676891095545339724205340896298503939117368831099682103649659918329623902751731118611032663805714087664862547553272529582804860292197327536449055756798337287817976158413164725795093559883721906108233952444271954242349408513122488052913492960075264768058119126357722568151758463380932913404511440706323308892548881118498389028131387457248766867951572352689412629581449377357218315462232998903740196127387716147462285759069465065440945645302966540918446627756701389856305179436897977622088193829861609555490012226781132785357800415226235245549670781389355276343284102918725332059303032659976291475367359103444150950716226974545067923129568692196570330115109452372700476584440614635344406203294941258074929150303811436935008174470827722752537489743794022247105147152304750406686644413131603418157288990595471261045072332276322746190148090960852256657146144051177682126302206877208533827720686934616133643161282565694455611039578180732984646811979102449217915066844978278312155093552294693073613056248768606453343584776424088739197595886130781088454523116766123197177244745875746638256278467293613217553133266912303705725512690506236409590794581046703195436275436481048852782406020567124761727045318304713965857230189150849138116700616866723502962690098312254883547333217155244418488931671507226378683884229966214620153991515698520516662050701802409954329124056313049935649976967215464118549009806898707963851874461203952018908945662413052672593806151455447071439027474245148529895183446877798071857674705604394548527479607431958025362120506453423432954552161114782229449107940147450450368821658092093102291506086474584274672690564773717262114566438593445763148346139426818437868398926260886435995795686230498296051756721940974369943235856871260886535725300594806965501400334142826776657834577361686192092951999899630174007388797496917286881228381492254185966108809880807112771601936107793334816118802660993559813013964768769898130073307518125774519967083041224326176791167524081311201242384484636778916925949556718935645256701425528706606801537573335675226833851762966693124299076633987043522753954036070417299460453518748835934596440856886426295355266404264869398077162252156623445601318757126780181492252691543435138855049440133825231341951082949427439681397638986804605934717220710475674073917253246540540753785825093830231781447516119201964893440181665953637286217758876633446995639352449707641343011016508430725514927811612941818538578460942471900099768379288642929402255981753986062180677288526716072912360203388250548270373328177347589609596269307062963706583569596725346908151883823445627962033751233318159888073257009734734591567222654441680034700661527241973974175305387265038657338123564810961952514342259010617788299314281332102287257314893809121712726849449883213703135063910475706636118950438645496582058083971463052333775626420254736399698069494597276421805226951142881402884015069895337658073314368660491036545453631982028337836703647687514832674121711746591739594060653801879817356174514526192721706594781491061607885448842708845767312229118167576906154684592848938987221150710817731316797052360571285264890170277988265603603642594610065431251528431812106914812451484831998474568820012472525771290938952743287430830622654922808818622400979639738989081716217468708196422089991932951634169266509483686189374391157138031555842651579524338838066487544550978842435166577161634368260514444330939819249416670349552287993593458713499696488614683681179095611948140850345929292528654781068481578332835818361561308108391429720740832324345394318360294174283076250042153936645822263510936892054926440924253625930439152976192174259369660027991187914315502317540787836496334982873233730134509207139663585134723663605008069054870351739777066256500278804047308134258738433664409469070080558077133793857309542871060242866230687559270329209484458578790883310301398133130443526505542326808781894384345757574091025846606358984106004760440239667077790030760026075357935575705724627362080548639176124532260993253280883028505157074745904533831161231244082928007104922777520459587937971680116881950697822586046426545286256510689652795216851248608334794728525690222163776718036525896705738378132664531161463457963378547425728868007205049701742178498254765309230968956966255051628508537708409844208308773351748060222108554787261393726279910764265777478586227855497392113981093555634757384416149190932292832250124324022418609288523266434093504036582491183056073481902309477738495825293221323463318701445918057276923280084378916669445748422911182985269593225654182290003608434416281046215341517326282799178398016947321357530278963212873846626508455486717725545165123964038890197672388341075043856887630284935893411945176156418745803313648119160487404555199522686227282577947877509709050765843794918815242655489381200376226412574390346371049195038600312460272777782293479595135713319648660561227368519428936989474926997490054859307405980738536841495384604752448388952420178806959350071591988450267642112885165555880247939630267424743052201708700243039836108086130684547250521397827440584441878192566950171379888353523588529746071710777963267447750729277287149150106563947091780460954024543187514358450782820225147285820820251686062923700486952405732781654793396770674964520066050594883375333418336384283967671496309819061080778792733183270464109295089155736195591929681587694162347061076978120841731904152707088552848033375194741330242790059732839048301200087161783263327346152098224268152823024597496569825261284200013667543671504021612718446212024473182724830267985298975105348388807788763386570514841986642083243111574083432829372676136449339623972277235632327888900973821012044355501502831326104840538415550032971581129825602868110918274694252199616598886179543930710230588636568323201797406556088583887666420684062826918094643388592772212689586321609567802376345998402600400179841686173076809633482119953168840262687003181796985253134656507584019743474051540037019878510606087459944669501454035257003154633431816523119811027008320099381946096157408119121673807689815059910524106719147468375666271260072969272822686565365246997617286025287726271640344125577393506273522374772250014287765897217988093319245907440227980569021426439425481086168706834781625217385057649107268393787014876998215550931416561859524500710257567262825951779284056288297000115464198655953525449968345439919772753675776002110830150881819854147376943459386561069320736797076471298493551694546652267090472942955083615724028048200582573918375295252673650649645328205450827657604678869763297037444556377563785610846727177075808255149645013692166177857654328415028118350315911240444618033661990800521360880357385128406547882769058326681835881607001362946695350710316558569704192778600593507855158952912338204630492181449405205349971310649476157860440032088560288920696153448602331550942690470289809777935378857964955002031765046276517405715406170605568105134056391604287655944926063873322899971410839137121503436133645142259986424829208305648589758160325638312816138096000790893573495731088963146240952801406819093123999898817717638985556218446780301693463530903059279623424021064492948310208506458685594333125395139524838688898062346679486890650903137855452250728662262683870750011352660291818955209926296756920484594326247693852973126710506416863950527379010194329269452764890478789076101263701367943697162134668881418919933639586018003507523118803727252572896666071662171424408019834788470121453447285991555577512065832791400531757815388568471286802773263857857441328392042729527926504880137401784521928995686186829357221339510448464882821735899576651296472563633597571214587783334957251546139860164745399964853976931167328737305519025888352383113578799168019033265227148164217325067043421386099355530931940995602627591368697415261669351800733010073347712770141982593018746435630965905683456340475293323748100923739616575013827683176358962432815247288297789361046954391550350282655915773984763264309029168743432801592361729415367361713300290173713184431270496886756112989693265296594465499667471535768696660558296310995106175792717578161573125856285897128276426779171689316580005721828235775000405956704409109666735779659605250605066683363919020497571063448723449863486714146678229714570703309269151236797430673875819681212986427235416426980698879790931784518059159901930243208904155530493648654898714577652218689894805439176308464525900727523862923607472070158547075540521099650969856640964372287015288533923562639273120465592628647884028387205892498913620141401164387019543641349086337928128164799463794627588889088646470966993849937491719882603931726929203942777681983683313383799583742768183621667987121421190501198920878193839377648862844948556180500608907765075158629277019592599324426192732697272823495911701530980436764138562625573321748096380286868504313937916168857634951731734859223470560443030172884025800753908911364147726027748745994192509770508698070936410551204321934903495578994074185271308762711888243078320238190300769074220833279777961813706633730432712975389193500517891619681353734042655631189602586400670148317603541154297223781992199556023858024503661467838605799056986863555406479548954720405639433339050649679126748131114051073250154080561646590080631515922117440237886515783921898294291755082767093268942903154938069984379333338691105277619859245256477895878482052188521414090323051816901214574000009966442659876813595238437727895869528100085711256186257365201598182562020216357308379209243078670007961373691021915105475735705150114643389612838724254673005051770323442384123571869697410805933505837712707198694359950796304714577450582336507964044785917607165988886808265296963837809706113313717750364278013101079515061628542206320344628466326332745483154440394667243133116032508249449050533238410324934639220218707275933492912672586293348099325318237472392541682113405819999541327517016320636278222271386691383348995336712136091150015173132961707402084824416264549590498444112954551292544778518221199109403287811888690571468617712886053979969818557792215539256717873481631609224827763126606847458353660351597799098967695958557320361292284432925853647979609412054158932642949070141158929111517475146758281987892607050622094077745207466321706415585266170788542750092579516075595593586947342495909558132220441256679434677535044765326501971237373175713833299270897407555978851283513045984552848837255053489638239935222169298830219801658596549312480683722635593267928851785450284402277438542102282490325780200694850277162127665806407460442951754134919521641600726850650926055337896947723965790504615650315545920837999411984047653281131765680767229529044545927040546403015287772775804810676349293171340851049207675359972862966146157420220566537646982643170513804734069779872530883891149438572337401186075160232602027764896907698543365147308227433882738695101099833670024128727413565503727405947236565447771399796685135931621234337544851903148567345541814753513518242417209118014685847208000730862144747606523813023525783587455301825281717171171015718862566712633423725220570050406098467854483788176358108948533115971540207042303614525820590385294533054215525297530558453819167532187528598516214901327719024316381694861068173772189029429012572557985990684019686316410212246831985853112323567481945936102796550518939314502487518074948177301109341947016827082389900261470702361643877766080942041049054468635485493122305933781024330895127082273531440571655947110323005705951169588095477233931840339027767987911592480395689850226115275444158320618765140222224029502054559218094927045766933472596857623787924529781560787343211974293958396751953897593814876988250625385358777662724507546902465810155429989048070089258311713170637950445268840612738875901584142654170475607523030375143208733562082592850178264308775160926789820001390613505871376592462332190404440055410942398267905897885139689547254922622137334991178564280498375609668141840048848730123001296710747784360661237285418203866476349827447715198814305491911669585617410233435433061542496201170954475619736192403103667583443494644378941368106444501687764504945634650421272848731047695308709883688646249809554494260241871226579845785739308975392230739226143943963612127146941410229439763311559861076503823370849856086741013044734018270146996320532480321622612198722761063082967359523544105278378892129976177519117764465881608000653371191361296724344282269125266390925412447450210926065513724173419891767557150588596357598793490197538783563658367697267863568522582833163097474123481253074073733073609998194262287404434549650747294904633417965646870617383984091293859352818225975882143718052913295447657845860573539077705255793937971890446253320489638960187738469072011853132503077041069244186558093130464544826576035620897490872484742374228448213547948834652793400540354495932568472177740979905736395866975286081479810254140777498243821767156774786614116483981123794791015664358048572783671091600862419885755080132281753843595684111703726561147141239651878899697255163722793292460284405767699251361815879579964427553237302394204383780437233958958654624999575196742575521197581872950935410675515939829373521611154333013101218397606197393639476252192033417790399006033197368283958253244627168591687355022612585968559972933286348624787364150024131118383245202231890129755644954732795227621021239612213463903158915659464565170028931151115838995840891206796472853033188981376388587555107786886133363310754707022741418500362131310361840406953168805178895472784920094230420492712867131644669700850727102018463616874856588970410659555414626982879264178083593342725702652032180950707546744984594470135607865478451604595391069748769298974155523133964422645501366382166517787242630974178641994515224617209757080825005108058544470468982995529324944355070541728582642914040967145656221243709004095792166706511165008760646071273762433734212149082582468986038099644176184618689572564502735402238330955425104263133356752324019357512695127790299018595816255206052521411701352429193354046859210129414428254516897691209514436280639457148833982708816842955582352399731139179320095324951789456655108842397799318241086990011684178564668651721746650762843567633742156096164220261201612394682596404506621745643494583273780666610519752481871694062466609695309599806955267300116765997688403728673087740144661789276382246666333464390095509747252303942650540425308932280146775346431203610557794395524480251412231848215988262028259644259967619867396570658675918183077336559266491516066778791051898706158876319019072007999420011210607273526635817597141241824062366925376555868441202675680559817657256665332070202064686575511021574253755022247021517925993343302541345605489426826333314549024487971506727720282217255867715657878582050820252516940114359515637451652608574994595025434389527768003520264717409086892423514519089400530971851647234523173506926172668878267171063688173881578897796060631452183858778693708734540094966693003360135869026540427097270623600492292296081310863820623632371577467779415797402484532798082450639053134742445006798450835594480744769945415906439499475775872651671793542742497006319636964300292292105200671567613966611866628297293707079875606803365449055456174068804328975947443342155278698562973267576655053715029185137102846357706980827329232531502006911852427392874443494647938213496398006129780887756245049988455372403877702348309998608366999859756737106958886271914691941912732072570723773540909339666469882967037862462373727420973226738742059575980803876288431602697568771412581404183550497490594915799545865238939194742639325151091858556902894393469505573066259692265689160715818537236650471672940961573025352126600539121701451300622014702523493475260476741639590659257143976196544752993213729694867219520214964209756903685163739345305181783466573867095348795181729514491253484081074026569849939436800822125995597654213257352321038454869578436312112594619326722053090046149457050825276388969813510186661165397142404647174358655196291359358309791076679204593365410608538223802648413571872993380233429856651508502649340352807197155910794745390065517046281762467044558322562717521852255957354599497783140787677153792536566105478976853462743996130611415112132548466122660618788735716028123226747181921528888523263669210346564873161965422985362182045726235421477498978612133979025337473446140068063972589239787944085099937220744000908744807063865971024146227630512290620085496190713583799561482945690351035198342287315755934262484661615189454945582022679624435043712298667900943181569004169208839726031268939689566193121833197827842142259055221401751680376956490743389418715932175684929262354393738598185338071320516816309514199459009694979363545894808328547660132882941444225114449681992730153750546645843363598289364660036578319172432850390018182148487616941457628961538382188701890863412093856427485936874149446875827103451741492004319567298678413978884786649045991569612881913618107480949910415708977401262815101242861452865802981066090455250499385987919041976120841978698760392527759782707450113483061035018278792965991362851752723479032019734473147292709622215939424347814352262747627307677104696840017100224038852950672410051667635212376481720052110679446599562233491873987483954834823498968805230934707587477385232877924798127896917631344517933729971274456248609576673293825568186446636406996989126898126005869070083209760165167026819637887897604890997230557171338375464999624068723855694875068938295763258938024541153299157039796422302399545609544464111391361006881586731846878265101696570049228345825139404655153170197076456238618238807937131665209078625310811533626689427061220107218041376448324303287477314120240683129201452326119540372701519078486970152181438104354441617173413916318485654737668111070220451081820922128072304433292912463824433630174338482858423379621232347711779389561668723780924251908129602793642419362818497894099020898379893583003242139045626712673457281618636658930624801460950559773473545547501396021732165400967206662905839818061316886700381870593781063857743678633372059557518427694758327773759194631398427243936334188376310834644995756352932716750417168969882165064807624518206250028262449568104264303200387917118195291985312729367041704796315838032793654739398572085571920350866575514020042147702348303894269032124325002588599108839418116497721384616412941855176171449142691293003597079831727614858632501618285460862041791448539282064000545434559730415821169028598568298410504602861296508328508032996786510400956486648671590337193346771943508910657314906780395638888566361201600508059217451379246327838665734472862863030077297595047516604545502407028830628040351382168525730634149438706851595639593652681449696895614564386488049450434990225567116629963924022144099768948708756714323903551413595210372444418463079854168219045043389657246402142570449535626454953662256500666967608460937064825127434811013467273425456479755805739750593124835487637158005602847134660108106254662722333463733430050096210519463672694904787737491240542069988757974221588879683851773214062098711827743157624181718478692679004155875071214336010854001360436143232895302095723593206714156110714319271992678558574157594257706146494556099955240100193058897292726685900152874875466168709224561313318513060175551312607943344023092295379073766331225859904209009467226702598707992776159900009317766531615288044162269427921689762984424627086362210910933759848947170683950956349697338558358260813169567621574933325470773488322048007903394362310808579052949172442306901130111365717413672920313058785551050396310945350309522183127386099095794188764345422171741633418986363999661149871577812195464079775575888464039370771934690870889655369124000306500968949198109100529774388490631250902737856046776237721578555870445997612116416145716077093607546517425995325934710757754435027505367313413114215152323060993839253691385884584655833003289817837400818187507152308062003130045402112608687745282108017140802090250193029041908358993291865938452890400184964371422767592128913492688625668113775493673103222674200933922950328605150189931727102671701377377747806819800920402807786005545214875755294099028732481940136108194281904706891140221425269741810465351455050838822651391945307554897808075542445696932196711005718521638648159809872679331664390265225713819130934736312569789201105396092428236455917047728534181140263932194570340601795388561843629589460649945644568845342602786051263125217008258819382970304457385544133883603080652857032846512716852124442381834142017783679437013947909311434814254859085530727882948450869499354859854127044459615954660370438862007144661875090130426556590695585728080074367020681697218351782742872128902008090696340037770891451901283937746713397396192638653047706793395605192705106723310309545779961252059096069452429750630455911318666948313642589452443235754979677412397647946688159576417355686983614327317002903251618252270030159492806177051119258911537129124482375524571696472676539447486109952415195614705969887214101515802339012397610830882199117404322356008911792084863059073388029852774767535322551612428367376979180054434711723233452009124690800216455917952417426782938515318930690929326615242566058188944196743434560227097273603426626632933324601470604809846778708159393542821003428078125408106755931069647392948262847057518124302884132653959725874119645501633325305025383502914686146161747856213557454385599855368093463342181359924918575130258547603703012881760936433684078290466439790742606578898750702329364093102214121746716513802406997054349858202349025939888642481855526553925237195681271750701842124791424929017032147007243357015970121197448700552340502077325700280387993297047543119931236570682807935238177453920534328898895257299242761304545427194317333299064997025898764184891676828540830611046209341221719867131576864161549942765384099159560690953138315503090920169456133454175784758520633312043580175872093948554165508691518068779796238225215534250322138840544187304695997687703050789524377319416911599888205225049978294065947534576511591007871639854156134567430809161131379633369817885586717413414135624336005447938745116496284313986194980906009398323090090581682947226257215013537238879393781220863079902350973020512392244563289022824925630413749658558184865137308493414924357086848551351597999025032461060202722909388853802613631139399542461648780182793753662504707006914739733170690468496031510552397351757320392674153910273189676771200906388728885368699332052075568758375636033475087415644176010816673029198608400088033630287086900996817485848932184601087058586682486371844389227665524576794164043883183242349829903765408347689537703220186680397101071439047386814021605267569248472784683431609984296552720748579837217695978775669658167622655142631388515000294637781009953999484287585441946943472649341651277938308626649058850081322768050075865491784512927492631282089022021532606498589990953615345428145666498846533354757620512792240078403065881793173496913854190307928714116189047357660246508018393353891710631101272866671634982962423289411483310313279065817329196766494850076768129269935387992768214746059295274887499303726259792961665658778639248638952415117432948621775205417617569093108558889684734942093236655697713176814012501242268464822287504292318369135795969329979172499518621868441296078646960289821200589293098838773815520117565114199952797094114378817494496821374286015622039179923668600485443458907853361191030273780898933525247553523084382458677566219560449284796299467927721354358929881880217667833747715123657426509442778788043350574747406237802259008494111884213829244582144873346591901591205179054776770371230424917211626591339903762208328444273876704783741454723218794233124360758848888277150458615435109390026436016829928031975068093664706662032055524163102898450382546211595787647567302752686929159669618549619044404044662199537289824109617707988366088887654648126634538353278450525419861833767864615055039379026068192114197238414612864245843323529032223609052777550047122985122950344628839055699759817206038916112380601313181051224943283595773306386309259851103472239464574086266531490001290366504156968191023297969769847290863229867362598578480167622526510811201633549021547144293743114197563458656015718299144811861268771834006238785484379786517856829124329539881416237544856686307737661037463235868213275665314854464506820125484535927360936186264766196231991833539147317185822298570171116719811432109085443425099503176679419544859729977895856841240078772661862914416639869008011219683133650969038860766012846159679783292588034904206339882720790699280679033647377681740600058441543858155577277229564975256864386894926154928924228110345016120281478621350616507463182464736997518820209643587802759464918366297821319477141145216382112747785852107367659239130608689985062592111415288971932787013782542713427563429480780133165976264287246002730709459011096433984874585556974092459808988543545431305366477491988150689289768777905239054268193435773863444151334186275763631033092219595620321529096161115368573985024605864701051667709323210306490109121855514008021660147362546999075778934166792448079896732417999250357972806563786242142984341972501788435717694957699239847452513712460184706931481550829969896117205821719110541676653243309567349995153203187845232576132862315817521988296302098228749431147653603993726106635495077815818858030555054266245179384251084726277484094162554341235438326094195159094716809305261858065381049450977858808221410763563947558090577247153072281948735583534654357518873551240091872464167043470873715849315882154843454493042808201465535146952280847830535719695273753237916851949729653135404294904660478288559185148276323948995379556524920114896939445150572700175590680499904065003947364242050546713005019226259136423473958794964703938493641909809853051219162155837004557731041966266250778351244107762562528573898858966021412834895607409325465118135324358760409537552121564336498604710628026520277097731951553539643675705115116692892979220109716562385963251817561593240977312253453310608071791150507230271714827180146896323782989112061027652717898816334541751444147306436543035173162130848676403691437684432001655598776687330187163453401141713568907183170271064144521058494882991153116497612678490939734810685490039497874035632060503073627357032415968708962064371706543639729046912221671642788853534337211583147198240230567161665776917017820475290577344397041284734954520896018554215313628071974078632123165397830129752601273112641440742190610669550525986681355149508384034723103687031255513725938458514992700501327593462777440101118628425525681632980861498878066552975426086042416068298307338181231161496917931406077720247420542528252231077270598641261194141731441168408727921530395179437932503895035037951699792518396227901253204631610971698139706145232722627936600708627139445775879642622991449792254520996097666447707699215361368602523811891922786914548471455312896040030053736331819603329414068654374220773403004603385896262262491435240745645704922504499349336029393087529334927312960091709522486099553748271054785916100513839204764478879768363884657133050932916582064016946942575202960055661957801927674293456677729155953699020610698986542955378559879910619070455826202385215432730319403772987184519126951494320762869532595171151007777683282027496901717925689854567595650741751212876239672473695167419919503611004946799135528840226940093183819564608813169211264965623741383168240623908705567153973971432318196729323968926351431492531224543628906244160658539676882357676474436398014057261425982234256107424316162548863671812353286877819050593006940751292134844398779257762726963544537130722468614513156314962102013883859371440188947792152927765845437734551634389337198873846881110548672335693279400544092121960934349067598389755452480505452080049815274920074787739628419996506533128269618867704334806369178079964625685724551962882319794874896557702147964289452151288336015875191595381037085063979729973568969058400778842970899260848457035518315790089034863718487541668538323460863919827808786123970194710265293188573721480904670776247401432168250261011266761374217089813675123108319176416693486998489202918027785135581501006674431059734383394473556772511783645804646461545117911035124093498491855159386689266593813696113035402406729896121976242710932538586944635942300254175332156565725024360330388461393299393786595927967896404458804607815305947751015115366245441889832989235777566093147716161282180466920613445979929367936650242017966692289797537307364481889831466824555230732125758153503948812726411504231721548244356124418252883500358033278670681387950462790687049011671237607164333985559130240342999861417747169267286880326625575210884784216774529591024550676930304179137524576880252358980974864502464188766637539555366263591538164059621982523587096641377312873933676579012003007305918409633820823033208298953534936324261402901484616291861876522411105377695269456121204618707431234195021931448323638308820027566298684307841806562123609095950078465033641754808098502135473394924775849530454811370207402632998258074096825612791634858851659144758879902921372448472706446119099236664757521149836486586703211095645471578791509217470262724373369697486280741725818514182208355170527063485096004044306843663516306182643746606457513265706074520503721120151516993491127839293391192223962543765447086105664574272556923146518553525426001160832167879442977942496273381357686446694333600035241446649007679870013156026349204756350349524791980428222218527805956930524990249954430939269243612764382468611426819781808350205612543372514508692803650535029843262285550604260319931512793874117318621879698699763447750388690980683604044574372286288057094291917693394898876580983873797269232235966233859693496512337434747699143631867782701148221401664754736561039237275041748176903753936733403246753415362773011550102093427218368909415591086440001909653015395410120690125060393226990181154782950228203223329400518386836450805131954814372720806437531932229698912349248103851284361756020740222655828508511946994884251258886969145458159206565487791233754270709845174793703995690267626201407506480275032723806567059132170827698609186429447506893768382664544559548308948604322257457938002850318627657940696147316281356917444159802799815435592406811490668094670992984574598701548490875924605374229064037360446774285406015761705325875571335683816574071264259324805169137044773568371830712081393035282142944475284234028975225917921516074010804236542628571097486446676357144082072400814533816092326203527981469996749572323657826733215109111802263693991601814712297202380475748395356455319694540800226480342555268090575820611244470175771605826925701851441394468849053607204361009675721280272405209240702361060688187138247651636174261913397763456138318136501256091104766318337722872063736159545647237414747974898359351816265143766971200341355349894683708489379707385024760009911586617429916170723378489353117717077152395776740308339314230502729263063108104270565130286484662539202988532879631677623038229937247272388041187544769765252350782950561525539475940582478242180671858245704699407739498472066385620557323344567434566045846783774213692258907310185599584106883462250352353728534963319528370625094250743576997497027094055747046645219762536141796662444272667694189303906676342859230048152445224261681133173758632783786881621047591537258975966869644976142248371194374904086560255007219893502650158163467368846512877064554251661078288560318969998871266451468410214402319771058241497970439246126604419241140601468338116122742268315690541247152897991464509522966270856875012701926725596500194500691612906696802810447518194292025511547494248704402631188754574476100184791278186581739976927180810007289603084898604618682819856309424121676316136237767714056231946113383280742418495053461686110194604382531930977109152591736005534399731333135849501017289547184952317906566250985046174665577863148875458623872026102194823242877652986385229004252619718067042541172562236071642639707822048598594167952360852817687342773958830828691056331069486623609543505565751216514943726300699722505678302211912865501271465487084140225223153149223497227991353773065966959998750399937809447331906601103781235090389018232562430634496575814744527861854559736247006319403745213472898121526972478109128556522537963473738871671260329930685488860197364027169827259109531924076555588844508157855245841112044490290390695423912848842519042245588371170888162750746147976246189235606500817934947717429070123897987807826051352689926894698419053814626163305900244704715876550365950178939076581413767687372513056774981449385392942166782820255779041732656058322935494834190658600928961029646683578155296421392104059327595406060943826670317269638320413335494679697700418397854342046766321555194844828832254976530807859106030120865055406042113390401326884294830908988458874302308227993023592854783522505718491063812864764548455171809907731790147058800482920620150442067845397717741908020153668160752550314373827952670837612432049105623462576896289194352666108980139562450209518150431998234087432113171069061682401787111226713659666397920101981704274586664036897732827327834824354272650977160431804192252309441298884469731083473896367381090190899526718997193921451058110812718546816370155095825516707124064299341476670161150355441441194041958291773485107112125662979098619999996540849517043900368922001042267078694579723196923585063115708693845969618420301450551502590120510826393703997436549880619703741739219144469416514106636079456974844934847539039281386745821183010667515431840484689692468261959399861571628430139644231095482686990322371644747157274936323184407429819539857799561475922984017440485153041766797849006369942693660002844979797785554026051121305234955737062675825799714395991788544988331066551623665856123359253271839646618237644829731889332984235825957793217130141217875919415974402076397295715318923688230819364762067147790956749070154985003751346191143098492770770798138818879959480224164865802702510746794094352044953103856776649587931702398251039066021471108615831162126071865990081911399381598101920698000241127350474628896671903790748563321428342740092168205493805627071218082873092264983066575219118534647501850135320606417641227128460558544761739453056560746356686442454462741648375569051412067351406096305126451667489406638299294383654360746506143950704968071826849163709545576424848386926818411912110924906610206884689715076660327450577773343041627637106097519790330632956817842597464262878940878385168455964410085119530978589644726690699998440632186762055303418051862939174406365332926189220856314319780999680657067623053407591615808200824362073932301142238256300716736582771093991522624799325280011454563312695691324690032873899391133992497324480045876587713682148976616097269938257076511586663107210828497049649365524129224044583191702848898207178884854389814512916675879078384962096048603692963291475594980370318139786797552893736137354696276157766296220771905122829174297094723387017653443099578431063479542353488058881231657678707058508246500048324511067253389916231431901305221543679126128662126202525285217912171349692406692095581130069997949230374601284527711387700629707699711438037455115057984111004434208922444051637714507618625054223567039996225197559236773789874643199570161360532291164093609531373490049969012995668979555332711001385841753033461134021084582654751012860004887609682955219284748870722926282904573311985604399900510484707663102785911891124646255931909842198789269785184378679504406465847572281723156769562991757576116072033804652994875879330654487129164307524196509275793462442419626650689799486103279273765620052305756620792920167880496283871511510033649592719187955925875040744753907196864979388197621845175826254789534385133481989809513250776516032189367643935789874257182383956741818445356995453150082542133306517010308732535611610693267909309202869922372785468521701628067475994913914993704927888567167506237662414914706279647071773520852781017167335998848281371796097777952941722426332318518355317167332029976303241877644623541759688590251447822207258221934007218347777608119640621380414982008082501255000941766539288008617917781449591615434577247406519542133708763636682423973656328189532210831624585975166149030189591823199426329955963185619311559853962760549639977759717446047517551697607483562759819357200082297757428277619802497403878260857717125856049294600640610936731278999492691310345764588448614990440208426302703669579307438588443140609014361706015410377588673856929793776645755861239978935400010928574449580222935467498754378309709514101261834854838480430241381337637000454392225853714037714479457358529388458142893720019798801308454781892628122220191204628353506938014819743955584677564588334496279172636082592761124865920059989832184060109355402376630907822491629213847591024241141382835251602625353264435600570070840451193106652690687989966771893249269469688345264273090749863838772405283366781231370455336979991957829232134682137696312863543658225069243913089568686769743433408444751908668832572786176711612207847218246948932532339566698857067024691758606989056945060356554952953970519099492885848945584654061082743735606094125813712294849204474005805187302300883740866929461498442748676303167772462752402015402800923415276891706235714025378508790372935560072864595428497327769753982087961076731134800698144794254862088170466743965487214385451904279579068136043166348631745694327734852881015985109045052789531469123475508715627103917239578792875976672215167624262901074540331212909101122408326517693204979603234477416252168222097499159489203371376609450830034334820944250251080004208805754692212049324914127403429149124538021483411683675384194160195388927703325746632749339705687372544875506221412737504640649213672165369431114748332224980621548316159465443908989830964153306958486278581514770351522551461015648556801551451579171818206935769917187560879264686555598801663358261869069835490808352983928611931266539140271238235531596038157786098682416784288288890693542609510793240038698063112279881719911286005237704529594564667943311292991163102690449992080672471691812199441467232776136292296289496335482858224848603562799520842241059144483833519865217233147801642443246680597736859537741343006655165146174903532425119007024957602473505469537643353252384938804584744227983239392758580595390239689382377128329338553787304844239078370583667419665706616550053664516820237450391074911767445963207594520495467434164634611797845336371443010390225650827191102361593236957831240809320998895155122204470251952176890920045776129938899316726391654507353710237411179746774258922953441902229758884688742839679528443198320318470711194684684141244418674970508561815890216317198775898952577134946204731898319068493505905674866560663614941618728148497665304222224413756517627743684453619589500060249813004345098771376246327535562290225970044769356938671757522373733676390238780750847899930466616752568908534675524469403289701167090970019534392103329700631964267401057700803514882977179802089995115543506977191831292101429500041254736983969009262575761741821728545141809026141793758628998405578182986921648866986631102776760131487057459553406360221049384537108679875355230041508447555432838234534050516763673773443574035676936053277563977943001565539664431729241428222037265938281449456457411895825739676360740387567846891913411645736552684482319507168620999899185474081674769652645935244720501915777011345431896086662983278007695170464937418397624783370979143852241854749035997779273001856350306941751766989882833792138425106714026450584079509343179634434521381204570086347894649963250269580681034369398794000636435849990816048453638334593846684604306821525728858261698496419482538499252062893500406988079407983196383923644388329960581825513076830665590931037684876724332038945128234634070124721463796767443527079673639051749836955205547292305437999399246680298206056265586771836565645826240134161312299311007531794300554307567347901103081337301818746142828270948828372872149159666533830549815667552318186115998049376470467035224389150678909051603293915232273611709544075337160374771423268811053826383887246167361662181517805276381066758661986267577132166337505869199618180888580903045341694252260720517428443859272062756313751472968595074280309519797141726331739368010406106613683386129715851165236456497809739048236702156654248307903445966644497733272065401992289497658850565150031452111904901431770577861528261634555817099206035562056217033667168027432739886321890050371041466159293920341691693973206992817664172607351481954815120290805414672497554537181542401480382488040864279774358989161217035450518170433679074493190121638814766882954942828876608440519638061544710060181676041660596784883145328718142018789095975157629660453790175665315024373923787337587718087109727536893918738287009573392549317349702236667547812978338686617231058952304109406748469393549164021972247514735839379894500543078304932829761936243280319206466391934859593118749212023284976750170414465627293769533461492856479056615983854425452090621652206424264316992985078804960356220589226444118381454088794045615260464264608151810079078625380888845916446074929079201477606179165477503645654306371912689705110712995517579886450322539603947757359616065133370982876098967496148109255041634890717208348491303939585615615378851125305845641385089391251684233297716999842655973456886167165268158174420240064763508783612818216146245764132594803567423136139964343639391341065774900547186174599285939120300246620308559430427403215696181508129085323326782725185462465187780806615633539423617509868577530557726034550042428762881600546634843583595060039904048374232549179227916500544384507365226517724890550923721188250852035906151160129108005832634878782391551918855368845810952027781682113357715394386605067906065758733436650066776399521215567248063260984146114249370984658469237868047365230170319631753046786094469740670197545003074758667124714933006072297845429826592232650987135487630297433253651430427110814970016099818708719313381462976448454595220240962884507116348277489935068076152164730916265957673343401497450887778866328091270900688491675220562135645144835055419915430644480354104276187142325027776544431189911367581425664822454676235735261065119791938114585311620670186753063702109736087822532012018554464673878258379121296731505722699189827202924606090100044546492392269582380770226143462997944034550136286013844817056797819407886701875240245429893829278480320850300846892177687808286204417776686730177017185871042244671012124158668524373176833637574357492220971735383985049626591413917747685326343454200227137975153451529123580489295621563226822224004555019828399336003175719854469512017819498312957614400863041232815655054180160807963162948140494288979251684215129764824181604173266777149152918832182159586211377257177752603853583025943134110403128184030970873530774403319317023408316239028481666861443828205988469311366608221758277833047761857555874338707276792649296677645275634370972715245140039695146472948089442719049442216587879628992319808057898295084904484970274447281509450745271463604549181270406897113094725982638469916690985828446348515964571957474578944407803056980341974226514758188059978209972770999706598862946670885107180638851536280870464602330440712025159884078147131924974605367193709794708474680924942967599923974777720127424825622483420742420537952278307759171185302047090615910966807670967756076836866648631330240556440078602058305139592001336342230556040625955097786582611787507002403461414936720303652804845946737160334615807766873947884090531931159130724330351923882682921173336047656376455473570863730090470484091999045310507810308097912261073549684411806572826763050294531961754278047341222072181355338875818569532724358941627772664451915056119882391977301758436463886465837887192915935109682940977399702912747477268317203875898484596916462074049854915110860091884909159063976605535333730424945146397491393940696781596233113231390011909578978470562048255013428117555704031945598367965147606397148041426058973019194363897886275755189751542536627983639864590417523730363891567436238382440057602366932187838525689735121580198183444412481868452727389211497466500583042468420262506486402541878219139964778784476916415206137692839681519556607440953170170399474867273660189469598829382863230047437001384579683642276288720251011558629089065669136066306989948510181638052089690057133633997013542718784972396709954870914126433698471865113698773734881151251241258371799958483485249412167234010487330491821510922260993897612232052493616160850538981942634310351453690444499635886929455288807516205205547894944403472062257299030430729795114830434402889894957635635500244858746228358206114477472765338049936232908061241545240638678848806603419064238251039206580243539168144532613369030955826912462554737709219394241999736723742796487066557346750706400607070243136234437457741053508306220593749920693969496822957083005921539862020341659937695905591332887978625692092567366092492777509437051939962577071486909874731288952765946676723512420875814101893957218581338047732999129265940376049555482483020787801286359330525997965703433323200730551910796732364517779115453503815064244985783081913796043608532565831050490789801651968111359886758448420945664403247233482274835494145619454464159862512350147449202266885801624748427601779809441867044870024681233317777436975659678907265479294439404691076191034701188631435055738898945376389985558901075947658369018547480802237506245255057635947047617439161634483788357533685291032569871564239466742920142828274716367667639608340332272738887088845110392374678368036923051230349780758497525118310557277448670537665947340424791725357367558193757255962884490801106644416754385472289230333036724508557602986985760110791485441673496638583331044843510180256502102335294547631517322922513799804068035012401717977804579593528935574629889180111792315633508051355889695885159466925688150486363732804783668087688357133590908248742358956922512185343213574996949967448983642145812731699905026215893973699290402318538076230520541097717720472966451265405759023672989611023696146597498967090954892106250649552826596127438525911024101230780314979175710726952672813198717985455317823994088577216145394152373052657767392086681091246262941063625834831858605946124673799118769251573372394985549273473570187359572551268222454201697695860720728774609341821909009392646538563864775287414617729961149392590063745356253030831749884329358128178051043222997112244415112082697681674262591267864527727377752739985455610304725145354676022407718081609453226231697729996273144050639354936143003290003702221625088522187079435030074807966724511170619423160130426721963374143478499977155099077423342236550871474125564762886384383165915149903623745866896721484473135668707993901642381118399621747968321608244359564951690145802492552077576731360117385132586323241988634224734264919800004811972347503256158283080913433166505522444352387160082280354094038692142664811021692795411138818127322019991376464395200802035610674747589688462554762473634742050711269857030841782468115305168015516549129186396141292418269922470699157165800134071751365033318877142921405574869504121159279233926168379758768683894730274789614748616762976858299562280101746545101701121561254941301901586035172346473366716830134992480174225139290512294209445599203349276034089460846403387609536759638019091941758655931287396027912510596540449621215177020957897106655259236971933822822674913229071744735892565046166373563236871065191457297909612173125117978466726688273303910534865307389017428273437618997891896235310767015851424532854251012276696949465807727822872688332584497969752213606776815581249702892689463950086960886838319549444467829873918977443716119466618367960924726819012196522009665102569675574216555597094636173859519019078036679985887262818217001624694651748587636776842678750352478157193712199896609305308071262421928322235474077326701239308641179581721686309500722500119089369340222871976728994799939735392453164736945356749286198242498927015330490313427102170927634276973873923211392561933966905245265950441511386046532550078235143570299111698533475803362987717514077117717478885194453466441122400619265750235351922345883946646810925668451428717893078891127645396161533195285729534817225389131088210952967852755832323977490878478430299299607639951656375325024152767744025537370161648464564092282296403108859324080300129977917228885637819183240293644855588638880761789452720518322184874324955940411609879659779550078065343678178930725443583336376137513394443947556736050072653967383955705728986910847146485486644930839451582687633656190487440660403166959637550475301127192901439590565370365387760573407865770888615704318274684462671648313989217850365168533906660098635736307688844168838295477544311459989858621291940855621003392215685015054116754282722756526020342124113168046109077771785148828162456866156139282256761166760665792757384987779717008263791456884402973473197898949954644350201484962987135533056876001552391155488878537266373305089520143504966549595574895190544642756163904753529444067733192846944718869901929057454210685648037805644610083520321118507863142756998179352348177260613999902195618776884451173197984713127693923964832696592419620688119736912774664791196493476010118020623304951903703535339273794849036547808564416864423001924240632103658245444093631544725517295886838893122751495346146533461804207212085395368207026953193651359605709529733818828009268012522725762428953185346608318893633399376764901192290506793195084930417921175847668145151486514136359591881068543284410395822978592236128572174358292094973466832987141599150813431730796568212131686298233293824506503280365536041246605202897229939870982598285803672807131225814723468024730609728121584614666095682048881335197331525632788863504122455134435483757112470501749844442765758975658970210696197906543356708883312633496908818104413801703874161762433500668677771920881178305875483472808748839761975888954995839380325231648037429473452725195533090673557264106435357314190410173239412260206621711808616106577894811054433803308107404590721963848682121965342857783799173911600394912661989004317072892003708349338383557810937342652952479609733384750890914300925440421628107011318088240172539757440206178943845292669718707770438906519436933129375778385425246594265188089267489689102535827523580055383912690772905541311612122950125299945125964641924101468902322777298598626301419393463162125714753375219069151183092373461074811480565577894412316303738739087542356391111177643112689587577095451093814267390018420090452159190976490438017315613194319159588679404028708230978773695348804929887923913381322229092362752223444105978432459076698174459416480605191397643968866580865853959800855927425929917385629677348258776369310545134280215872886327058027942110276207793988907937580293056346877967101662650411835835937615832919079674736251181624986996134911539746754040464495930408985114436127923803826887747089955041151298182408160664111341015965556614411667371616982212461574241043228979230873815993162014556158906721633397195832468399184069933754528739046304867359090100769870792867550696616720801544959202774082195900318433080501258918826007855650453284085025028414349470594714172712969315031746304952030784252422570825405001447097378392673425090936842616572044720319168334245624972006010722279465350586158072598348688019322756918871764613833841605595072939901588933792830070534980679989686059383773683956562878218903924462516083646531865476420777658847503393347339692566986860526601018959336535438707064793907494224975381459338880683097484756443898373964836322071474496291017586530708556175421982093852572882292338019981705012161442740081845558603547632307676008567779356846458256638381320327740857293877928178453513481635456528607490334395022345845093232752144928246232417924150977053631348214771598051829175330193376353871064162620587369351316397971039816829986102956291206005230701742702779581476488488237777444032080898160765987899172011865616101989038442100150368005986050810602154721302039423657011749122239368072671775757800469971038519708546934706318941530146442668447134886250640535251021908003359187494716816235774841933099643520004784823078347388268523674869625297582511032070668057723691011708085778514077845669311927563984837564527813275558666635870861134565515783334563931279758756298298142696672277336939133957467919605263193535502771313061602633233641558516451441958489727643000524417837453993690126774998421691235636821719968752455184832478819208439957650005738359023182757596626215987192858853385976376006491240565637793697296915222978309131462352256955660525670378041157309491091965295550202798320015134267615785680381474478923818256306103276630598939935134747425479797143768740794308421547191966231164848823310084491947716162065160878985223783587105394026350407355242553929109592870817743182129241118170018293155798597922116310254505379577419577384837246629975520244411478745631182324044979468716976764622211650666638367940618036178299185802757881728742539724584547594874542325506687063463344836878773030203939733759279647374487471779379525215085864771706082634963731134869466963826927431400970137081380944533965896309304996526934471170364286656914422194807365789857369271040394202183615302201561633483582745171523339945991394406679155932932698822504976441570281920496854452814327678553252609421283185250832398568721455539393227448918350296269816446833440698687752899008324733509854979989257054975458020275322007725867201135486681920059665599117699285712402069871571518409754653528318833175363468534380746465834121611370512626113468326218836282176122549859706221307846704795084830783493227715659862890035795450547235309463167017666371773966975817392148194471413849332407117326317502532617471858141538801681707025308418170793294444475273450728783386693325470740519829595536594148416053712664676955830715072673299745235391602319170844034520334706742940022630408306610710059983553487493501475359084119984474237271424469338918373284489154273529200657262812343748630452537635643450233396588380413742492366191217015852605759000089411097564850885659100026903086399433013439209102475212036600907835816134267575657105197480625878716759178555743558865510856009862783811407815333393417323232490902552472399587420250267064759008207531680769563320800302146487194404493969138248932094987520867168154089255552309555166077908444418173158473011162505205268373935883792060838555971576820622516094968107315327152048904931056610355662044814102454417142618639687977059899657766367641617363522115261032341135540590596075508297533040320990259142214392703009852301927360007312675452818622770046199189935312787747130920130027668480981110949134016676768343461932538638513268593411921436548882475743965789444344954113794044789453458887072555044906281823822121044293554608757017302202634915313801476372785406161264520258979439489868778763872252900728775346653464572663921254812288680253720233134888381958967303033342794055909790160215790352656757257578320219874687485418730070534984271185702391915085132322280105933784869353717922327396885122830014645875600129761042624712410983993259102378863660071347992101668264948299081670531495160733818341197070977202284027019020275106663990754597527352176460630982951913684407836268256049250541845402513874462361930094764015308068764142577529186568888039644722873454535274471227240905854343447532635978660185798342635762435921376289106979353110602237292696774930611947578296832022784557478341020689699213494454941108121543192279659219363763837818463732192011645131800979214357958366462331351074591149950691828912661571347789468745831296252031276946933600970993590738865405119917288037296504156226694767377154293262882739541300010636599489072051473446281764909425648088831224107471297669170548244499323332925941589908645542843112903676499834548948861486967895782812822194377777890626151531187838339955313924884723224924168389152270591693320763777066307953241611203039227245097821204843910296972509969502847420669314251825082760514801591235779312318217651252532583780907733220787726691144371493765646070579976492256767679757250865408551399372033424404774405063323115766911953458232467022447566679367568602391421792284913442887458675403953236317898510533890177481396922669475211268898553906617660819273886615902814404036778622952997490065052546531671765265641948323660266559220409066769902706146531605424726278655096022739271961871987417512728519914909790850615804607636443272313778976624464341978289001855487729812971598974262545446270777406027797310850574970097250889547807249310227593405945941525110526480748715485905039043557988801609767358377295007662536778988421677476860966948028374079208527746081741270258803679285308552081935533126111174586516834550943545098784969055266122136538798502520645163226576537068814269528966396927276248249821997049485319611654257725033753969712442258290507764125930817582678501320830209126278203820150467420211430850775328753049350271475810454535067038106812847572441627745747936022674564092960783915413646600559065591926995551210984766180234943391466412418541912430266973603270868860732840613791327787033949435067573517784228539533725722937802672953050301813594135859425243313838340438130372177737754986382239495888378186365634225987404016728582082104443176188388194775932608218816447931633071147095521298330741870934812181600231056168565074856997718062115536200134629821104152132807781110772780961547950489800604937135323556143494158299690083661206095536897968425874143127326554477361502714672806322987132099028367002372925412447522611879560921279220732812739443840102406521061543248466315380384775872395437575836187189719811833628195347735682958679714160055805264775717500458674429330625419723885196994523868821538203079635430395883808803889062212681236437145490495579491901379250044881316216986095955898520048965900687312617322709643833381359530269146891437876642098517947382286012256768452998668794533680552448511748601788598842782431789831140452429418677359247064089505322323184239181240664321785042168435007290298921824662249302076065379166668074676474373411470312384674129593267556717690325377445967349042631702188929130262873393929985541071143719745459314914294939286006198347320948344909379593553200259156775070614719473838998229871320314112961880077392726177928135563783401502188222431925744878637129707133040155596253447476406319835595067259818942664535127898219935324749683805742444789114542679213910280337155736041289114015170211850543433122982945337020251158277239835607390123000195575121134544964719773003510335102396832185581964960915347361927774174106787365838495956235885922083278792196003044097845737747037709822530136542207729422502199110393578140858091280923116222794958015268852217152193495349079203595873403760190480973443382011201210759790365668040957706388369144938063884013387365862618625074860146266148631831483134426498685349483738817920896817908418641031041896232852254179717175978643160902385221776622500798288396258694023410537745267256272854934213919978603489591875389777502724912188502374200591052366272569692146257938510505263312306093589457801247018766118831954779767680627813177945772704554858147842678264778267758416512146937687150709919771624510173324714841621199591188787141052168288138332544993305144863538814557514564754204023070269205380447419853942723287524579452723674606807249879546536471894303915361665859621710691886660040938240192032187241562410116925649541970510175728992622041941721022676436126251440317115262636969485362700909063416003322655009982973896602885748190295023672377234797063679803403963184814667962856824835718866889349073136056596892473038975482497241835463357674126853371279422019250824606680248171141733222371773198609961437285179667498875804171422945228391110955621769640068103051684734837797147171316965685512791569172706775096355446753043791227277063648462325185635145697615334880384654686382292893004975219747419123055075496458741274727203199783952520460369621588811076980150117915386458262493592135125288988482922290061186651336658442023532499848573346680099258738005686079361620324073456587674594522101988626855839026587216969079224705894628169435012682465242319396979076275302350081850134877848015993945642063515524956511028580063020246996297432437625120781436967239265070328432885506371787064470944313219602635119476374926751446278770761350340511462406355123645367748114636384017800974820694366845895426473677644599089232249606914013829296883218682641838727057339737729499520075548903622577476854745818851685609434422080171783961186339876622241244795653491867176114023794844283055963270668380069197768049340720064074196304080660954533135017160788671947293955817787908326560328609388333830573225679133862573800963576314942945622704304918675528816863159189772654930975975956165245825047109919215597157006239398932199981388408470354749935938065066537409044610889325784066940231565256427310045252123892926774381893333857922185946473944274730508060117267289809309435085873704857396435712320089168502303275021411792074712461779532237466695043227337996586504852512675413553456800591701597506233264251598110643306742021571097712197764659865166287945945632185852062446507775229033566872566295475247182290109383435661755639735971210799269714422279227566558067354730978420372630977093331360504344022909757179130870664786302590612697645931182327841423683139344516905607667662135663390416591534536161844729361318063447057341398220850827839542580493410207617010619063373414962779196665782711133997964125514153728611267129131946469533079010944258736741821346434282393234896899983109226673637806268234309854438376630194115315708648711188054437932973850579323557392053390045826889582141434374657057008449442954758835580817622075774254849454780693746753343423575201691862148451109535809334051389032816025014893674226486363804274828732152927408612143862560752028995948266911559013221345281861457938089935273908156820586578734649345404867565652969593336421863809083442435618264086010643082524960740315249019404225748736463860828485025877616627284497616665214744286350405720434077992588270610174292319263511556611384239506176342202646665434904779991009005718719454402463813944970829904761155468080634887215363531454620785021732841673539084352790297444561303095839368378949062293235476606436788451804360767098934457120903165408591597353104131340609888552770850340701837639678916829829802020083169756405782415636012117535438511137612421554420668756527716052208232312995906352283680768368872229212191669880149349929242133740702654095235809411105246990666372020512663454249492689304168757293259423530718999033855895596638216853097356084961485913210341549600069948555197179677146694653585169272113866096789436184582240136848003734276740217222366080333963736822962277327120378925590322724926561562238372414192312123657514051981546671193998307476348587914844432170169625338782548599576727229552276809943414007870918077334542136755765995121929985828890972491095489230715747369857234822299893433562531710791147969319592384559298851709393872631422719485432826968649550137425709917472465010269508949997187491072540665078487580952548673665293308689862350893187578295838692575368037894747965079245609850743659964627769904874179715738868743207163564056835255128442108367231375800756610485873511358651040807155000668356907240629477189042235183292331507586296482864657268544408845056552173963646922774217242041878343571481562916393849976068287928569210202261244086616301051496528203087069660998731558204471373312964177528751611871366407610435317171923288724474955005816120513075082796783927319608032080766840501168232466373934838133638367175317445659209628533396752306375455109979891158567474214148870510836736889780279915069319736538994502693091079887517174144664111468115458383688949894209322878265838796439829087318927362879316032732428667494389707067766550814083713335147813103247722908227487162453811914091710426681549429587855423144782235032605416470608771380783055854080309013596681080231121218682904483539553268847908656262742765876949751440006037820835756628982253288776799977936867281348297661990680447762796503601792460113076269397054080321738998248248417664914510917825020476307687982460450442167204819549843277836591293974646101771166954249065933428038526295339330984947410719392162358417749029916621407978683490766255145524974154067956499976987585261830087555122593080423305278461370668454074890287574403774515827885025692129442434768356024730569219487558569116169713536122227800605718328197914777857926125729310118066008743202341409507947530838707052796315250301936956818781424588604588125925597930015665891533215164432082865052166261460866928601215739616020037392214295878979557611450290994298118779027208792217512686678356763047335955338618805957208112776869605934505511442997901385666765247668444312160385377195769187461768440577567990947649796827436475873193305787230661712825308774983702439188344762966140975853975441978265980352662636626701481257577353589691090935052048918421571735661104792442835925952769061461205531517656194917789435982647361094367319455196795011913811453923767857433707292522634232487521669832650641353101164967490028896772611743314970873835865876059155399402710741608744174147542152025068977150055779122539054606211827064888648931829288779834496674426188420912479734695450245746781345535801056795410453300564029132775015208065614897738949189368928506974857884057421317142577471031624251359191854645478316837030488971013661082195344644790978814476621956850494784441044950175421311296878557864592785347082840747988031176116521997457185741723407348675064628588099481261439213235779372650767970509362999162382024030905222231723603798129804639630621272865704990264980601209789483972154242579252487252685129815469533378017684759053418481503068206063757025196797151645262027415516131391355488705215552807373776925800718845543424270947158547876022774427654749029303894224531074188660750178567553571391923170842051054989601258328902022684410030986523086240530215553812616583861177677733717478482600224286648873495034207273336638983242488507406579785649491903092608871924801447625497218931813428872068825145709077490603232058199853465945327987777424686411691728461706886661245712201281085962958103545592567313896889222312898201019576297956243650058180577797092997340911460735478727698486635784946163351441223398423441681076959862263012659563662816521896954436751326474276953947533797087496328153248084444678082173980294835856711974460009076407532166764485530091773105276183691421661488978146023428870070771848483466657227169528159647348855859813131867388489299593472177898474667176720389701904502695156249155141013062130856300195838510736466881145263144946550770688990661186846783293113321918738362591336521649422224106244613921102046329027867803275389984542157826340139137424190000774350584165457399229509063056516187473840217322593474334936393092893537573248388964809653278487087731602130667038025374163406076188504574443737934160927001153626696167632804034260206762246075123873322067215867797915346385536609690594838023402508628955497746986637271018765852570054981633940109258154048691639099870979403102213661694015047388337932468733419633733479870666164979614972992227671274915824635101642838381631890314463208070571834191690962921789709846340748743564243942285452246152815286724390275391153662318882324506526392103482034808707914197269000160851241759990557745608865462661536337913386544676211107415470372000159885191466530022934763309582032331387218807752553619390793393715797084860471723370567973242197501497843396223262792093245053598831338495784881289689028477430568526735845625910086548543494983389643867944801117950537965302106486708797106940720541227589018567091201496006215951218739580110683212339100746227194052134694582268283294011710227224186068985580110450218528486969068306505375842761205817487380318741838701246342616069139597833946756397350515956357163340979514148487157682577480111446578990462069835159300838224748532166002081664057731004180928194892465428696080577575384020967547787407711719901841635670039992378890025423662299592243112212382585848131410131705828392574770441601370450942284497556471586983941786445146041902175869720744125960898412452032290541137026871445714899062425182649628219653697675774438900999791991114597760005213888068803813171357143519181980693065323716459095848459449933238364000368217176080842599299718096301073043355927663968433449728916123423212817506394496378289939441784664038221133820364311267114671026585472796480412935175017484777480462574740690939816298667296643431318919393634981204612230809145125188884001674353580664695486534523611357411864887233525083484697814654134854000719829302739337825240924355320167113904901839710500676653364121357049612622510411084371397526565787259697710800830120114079797631565598764638501681064411821109462775469384077464937624645078415645165776735881676559519210196672741197440314234152541766480722191072781122990196781744106344110442261636064279837890361882711764987051746226056703973245548978204703096910062684517261439767712194267438713379736932115161340067772875789996019863421589904468184140875235430878643583942902846091306386275849870441104794810809045753382553550499374680508568497691734125941424162895228117694225703521562765938322280423745787388648865922081446987593658568248168044980872253657231054112203420141386617181914402292631284496134464052361351680966106314241617747143864992904069773042229199711311995688381737395364280929046193231603898570965207405552032925816323117786223996640156380036001530649763787375131780581722713230140412770540165822281829277446678570071604046472695817637237939211929688970102283515146964851251550404943215462591913158081310303685971168072493911637055595289743742669475925152454541034804823142310983344364006392496469389025960551401490828609706489324530796339754101772562011992593477650166874805298690885972262530053361099824677836269306197173313971669996627728556041681406580690473323942707992896834815971203934956499404822349050199956047776092320046545292169023517970995148314613306784197451151613667917183499996846271035889223002366743113990084550502711514468036414334300752731015183589302742071622974474892424282645872606008617020839074020639139013270664989110417732146446861417669372955272671349341272211709437388972021560654614066299568958402177156098033671697427615049820845054215828668390514828279501327046917448867630637581579050379925999653588542770223387525457016815188972339663019239638389358324744854701880914518115943726954079442157718499052731627119228702362118193899613633068110190742968366215846975101726171252612480707339785126936217414879147191349823526664408408201445747861630710475650857056129964766576562517935242214853508639816293922994164537258277602494028974862394218425481377693017599195206301906875293462411063064805152303198203637531474632818788287865442782816048595928779525620346031432646404503159109865969587457179809754745536682277363153911607749083918323932479363111104822498258526547341502123232208605857137448247736406741112965031360269692025368827663748511733937246021503138338134717075852868467776409682135565398564633922932439164292589206566899958805714077879442692486679284693176107272324791115255061448109602702486958035868076610208830736646488262715503598092649035647974408970890463160722541299128573459655765340025367247897817751261288855441341666116044736228769438875008667676877724218156947754683785510051845724416905472062635071349529701069390582530472818304664501851865403098428379658314800371601900733810691202012326262147314227545608845684733488044767619187575657166108885755908097614124093127579246788775162797787594542930515853251551043056216468414723780532949146855846967095772267331834029684719816057003322927256163655471897540016188305328210822855930135062996534068101266771827329367428195164956047477587889720281639662721575648144088693484350433982838827863956819211905508454994759290234386577643977889350959678407942478124275904547718186476041077938866190864952847365940760990875983957650362432001982080818874179376247979795296158675168277753936043063516875594428186489216335543236172855043295388975135195159352629527684648392636560245059613608186657778298191816696472218203909328644205974414507181853354567348332010242549688026454886490007773586583020603579859755850225494300472657974223439545407239768988444714927619842100902306525314270570251863374705505581290418829488272496408690805576502455521322205222040378233541205768322904381595627311949787053412408535484196851223952107220919813859176164865359676232829542541127872730890913826246217585531504937279463901900589119404772287643400097964627691083706750751946015962200273359259170332655110841254548629996408491146919743314154790002227407089897343492130361703179076996929164258844289956667786751359509065642588054731930891187674070289015559966889931104170383681798465589747406560060303165117444146950817505841837286058190375182336631015684055542636497107100968482410543197927686758906995496338185603467820927001715556366541070615334969098462396499479955559951087621811122690985900482251658750193708913423448431928569575850642938144770914211840817211163345371238609397121419338326089096024197491286224166152730022820294240876750360673532061490501741744705190519242048975357168108598359118092621240852689152114558101477705304384957338847105865399225950636828405175723666566715129062606961872495163538971762315181777655803512736565372268075285127361054008104407105021925865241917575927964322872190500397655338168975946365173240057942761564175520859575081789617077977631606918864335802532775252282729189195528360848596921184808510808625560434115243270355026354255741525253607448017901185176941854436693243154105967289508695920961971239133473516132066257869308703507391760656992565483171754187962562445638138232464645141424309381990776247011295731506575550509675014466791886738689018341084769826644591564403437233056848908226445526763329935157398401920973020775151651267445072091787845154466791551443003402929407311203770617534352198933600634462035613004495657140605084632806733110604874752341706587779169956332899795513430653477512628689033815327535214379593016963904978825429252693649861063929270499253984746705540903740991337212350858050555691217986478091265811927159116731553258148833171295346690308203849888592619667403898553148278168884817384394941741344407441854105746530941089893970561954211609419776764451142244504120645575753870991646361801888109690472458108603617740683713924782158664557244242031602891504129166130357399152732992766563222092653969939258559776818719194534183011841597396157827005875738035245515115911605923770110944156083559543105568531973257336709162550146444474372986515881003799873480437243782417360717565219645135692693762400912149424282501620958390832259590947451186969256278583197036352511054313069760005057496179812534956198719079731155356978418059060058679566423481997120225266310418777178749679489955784267059968108089359202478703311197415033154092549395603619597232155762561876800950326514745334301532764866370351539486142940410462495082341780230365219104089181581229918570820364664748424759326719528632954212298902366338068591416093975680535348902445820311329775234907236474384512334977504570216588913022002898551593034773217709737047583988379765749989363091616211011018010099903203796003663232242024622800412967486473464501924377480750708162063276094312692459051659834080480025900397764911271280838844529562084668783171498275424766614941546955587348617777876229533102885949692899325139530672538314227804532435801668134592213788761535597931177241404760700434239541154973322844554851701318819514155048730453576462676704029548418599767203460113285512407256726999210764633142905399772964335295018226640789613042470170470135606830737009241130179784515408010165195120437209021363172719066953387065883010569126780758590214948375661966229512524545295036566471623930598610042935005754190850768245708474295763951996912644909401848321463186238809505596807292599090666107902100307631469306108357690935414167246702258865202361348690527843215429197609846169323201491273011726622398548624240590975733871588204083760982586405749436216498181263100692482777998967429645314847202149802703188481241493854893837103548689193538800785461934010038962766833494689068230545698664472619941631237655188106463907651667989313810279521449317385269028583767449302153456979267071423341710614942890842253106284671434873030008457033797174031567880427553784453407438304862398017487108924137485245782447008738546225577202430852169872068563853030201528826499221208307368276826944011937448206311538301080310592107346018752072493043943354487927289840924281880305134933805353698819643897010859329242279260404650502802388101259108886977771595518633622225248937861348122557124360333874553354586865112359252607045778404197631512746282627670156128685597268803092209849459559809124493706441539197091265088477061067781959281798296971660505626879818996349244685372953511062990614903513191722951741245481241109439562521107693751348726800720155104376236651427187182568365210604839066569237844121753801447206734476983505795507379455733273638183098455460489113266575300802976189222190712390553469944789118871836926944032881690752656631893386441621534319337276863054852552755122211777794320098975647895137740054984388873782423757368545480612415778066943349098158778086204367697312021619346647270616101610186468727460982813882230380208816475404021486536259066823282143303614562342758891562814905258311530131838626016273344101080355386676475585647178508011539763816502256646197791662362659608391322975836062111058647490998394286246561630075679849821055534257419279544672917312414599148810224633680699136702810761541908295379852736645756109539665765610111677855558893292344369572122775609821207076660648463737925394206054249838224626616279185310192324958710076448422328583655455705200971878896578597629854588438388354545237989907053965299676844490768613573972691213555317726388663360687605364921398600396536513963578561235064331892115993256717809112383023461662929597583335328980930799849031496422883748834869234855746085789737790715180080407322763550450292992198909926788905933073116292343816512354294278089630079127470223760315092106842962621788929935447141418331955952063604747065268689605389218230790227527582696611111942370833317928103051990889515696108438945889154965114310154895301981923363449377011232732725757127230267453084123153197439401425986063973899132584328448612488115890695883708327522889633496021235401108325591428677390900765034824392517074887819762330092544656575751648000011957548693749772114603767538041582128627365525247999744813079396821062713397258945658033956912229220909361300686225715009970122866592970341969602310575795138947503461753665602946698486547725809520009044995045520545679262132388923122293281623558867332065475903244140399034552649664996408450741094982154100221012562395851044103061947266261003404472712518480647041244858921162004885247306855364632221222964144915955478419882220464765571309577070621191950909700925907813833087057162852214879455989063883655272322551740136506814461134893957233520959645389912755048985265388354933746226370893960898882857314131420412098893720502333840226963211728855752854622040632969704148719362385317428932737312622466199706384311579007415601833249209088327287625329771557687346556971052745114849933280296692489362170700046318054326641863339734790277459290505901202471593364689173120113427646106238110562802378960687292655126508713416652911319517115315429924011630165526372678738926194890906118343036926723436166176119308129241683055750324021367262977310932419053704612077622922209624374590018747770961649133776363295294948333363837097809384328235371302897441120056593567342326211308771633697340041921275487884456624699615006465301658184048449216866486096931317849775123411154849056344834354601774107773860644854148816362546799038843381562043614702467945272918313646059780157600389243553664564932529736667125123357859089934881721758043663724512027598954273895549943360374491762229065616620618765663087961646428501602070753787611160048009675003354315058573966762433363202710853933696577271140377824842382036794941128369716316685107822784627290071745704355524483979255460067785842560858918557095226108492728042867906398786497580618614902527075668056536431474999793876378312586637758484385890892614455771065710355559710977938020798162446691593643570725531563556751349493773209846323259003563085444197048703724539032034786184041308792112363187950425457346966137909964376648861482094358914858589674449156260965415117403364930451234292025349841877649707268662022533590800225554371626796367384473904748941394326010769780708132219662520511940954031339541210317695695054531248067805401569231168419503856127410047284672736342070722525171603853399848444151250960223279887126005991824970960610217777628415433413444078122972007100348458797834495877649454034637953072622588902784995787818975334816579238471764245984969295421496407513980183121829885975443116380370935996172249261912483435145206888405383527490138300514753212823189686363182901646501843237666197992489560452958486650255232018875170671179284548236502734424177156394438463073193467953146553024471968643731968417062004432761816692139943600976063362752521992010682271773514175481635569711761956164093259665743696294727071711052225993997492058623310810332905641436640817349247313395249150339014241228326023544847815162154535947405659686400316591852881910728875354769095220072889609579521774891773735608938891857567108561361645389601211492192581307950490843993230553503966987441853211651995738675437116540554921446219015637543770958028462418278409411067218513708013367388991158484697848393266170749996393049965765710276498296515317236494831060722890218863810068813451827568259667621729198343889764061010718028496225897374673934147365236104027067686719298891889946632568824958217776313266380160850371925388450567278349956455323973118038177882928881642183263476917202849604858911263739033915695286524981869957522761194784073211591525537480187390535461349709690424674181145033822440399649815556957318136435704211904112386300676678912574414858843212996056694082534406147236794478695189937205655455056782954327669447860785849503081182036436670501011005589909427869001920673308270159307085421325732286485047144593485361602162607948894872635824558616458264698547845759697239133352179429730509652155048890204585373004984924362652874918845056639013900567127538982435087532904673354589518075257044280866909975963457536715601819012209369182415629793917594009485051868286448246135186771764632835143688737154309993306209959686725204590673327801406366511362871374481723179197411429503923277976884846251549284420137998367286597575370568859303876457282475624703338621043028650352081037444157434179294030048546804269759397037577106352922189297620811414182684826413029419797464372774482000417814810335508830916768830421859208342538306855975018829210195032800315485855055560985810822606530520240342157530621792701170606246393017381530937085612874745402909943533633127503774943802252816604097783927052796765373430505028771926137601211310500731221037148780325068188905935516989177988492406732834923613416026696951645449678902654756906546228581620643430593780963025156455399712870485306728373139782555501183852577308988216121399143856460888993191745639215242949482707124841893274752830250468382363008564267203870458735498850312527595279679980449468327331810774008155484950239736265853699359544154363327712669471969072138049176033391739010010717044921224278909500031993913756273656754286240428804094126620202445209141691614334937714517420470470591175521553952643832858161470888607775384089567759662065807629352486142646041150480275910441174280886229253118032186203088856411146827228092755829869752812777495767076964086650503200273025715689501155731115930854270270445428145823311382183223338438098619322822805578833118629084225702650405773145644336596530027592248164465652517325905772433178638797657915292283486657779747691229964277203537357690960238536117668620250930495997808382014195036677951464176464464411063060306460851242340546050889890519465108912999567498106866857638719642687748179649073984239345848373597232798254527952391218575902308598936782542311681176174213244614081819216936582313270198251204689982905669913164467832652509074177821768903860257340916730264502001076926878785719217654824011318804366044701559519003286655791221716275446109889857574501951678137493057081005665680836945353138281258528962570045974276954513086233905995215024904796711648029048242161374965675712116075590832007611046922752586665274789719045846764601335427148733012482152468366758951303055546679256346698136672176717514769496787761062641522414669258165963706755243742188535348920071912310777821696005251009163558820617308332067473891784197678617064475043918592944663866293197485426352386842272994724224791422947483097426766912453654754846735398187620893449761309965331034430606491809726381143156294242560474930469259886695197108527022528389751152767245446719528281750778526551376990752005547020544675106736235251363864092403460335037596602118520294554031217568458772492949648737082565518816608862530227223235719508114698159200001398269650429794971841770312924390148731980369882630617995186596408013177147417074719794977973333785409231608918803695826118582478232632915707654813515028779602391032578572900072533104885347928704886678040480774955163463094487057773920263591057739433591197747136605367487482565980029523850065338430593303412736710445935316271949051818996355556428182908445679248924341208020619628715787921968571153878892986110247663366210907806236966603564523819160214409061252181646089734741702186316006441780682138402072976814067121936399252422759110873146001672424239104776025629660127921353566789299997026671689963451652755340646714778535343327904719352854259095523742748897716638866810786348632457884880157124979005524846116939164413093386587146468117058686187462429282874163419800589691504702100198092370178513611054081916566448112568883124536456391616269669251826784734066189322652286302171986477564518332529259213218489487071734248165291844444606030116589264421915250779181005619350177714276807666655424946364634059912797463310697200354607501114262555683773472345365828526722399789104090047912213734619881896614164584573345938675568213816629934487019548190677099779668408596681035965551897056026603539120141698015301867674835158506967685646103026636520039812808269875534712282864004449290450809061087834335306103744984923822252205760796596730796168747137730098042847150639883277013788150077453780105730643108242578925894360824681585735055750156146636028213296708088054356723681393821078079420615268555407135727740923680391508370384072106535769758836887872520435050324684902255762891960747574406943028399188618276489114828954361131110681374268686432279776969080566171058134103513515840099741685920775704970391185900571456370839158330426953479153106600831152879967651772571685991274477656965023138365961214921569958425560200771426324420734747784911312967350033791919399282296678003021142191701292323399341363583810079347740407195406261336912456806029107027590052713518114589925518335666622878523492515443168682028465364117550214802461741615647037943171298885766324587717289781163243669173818682232558730522745402907516779043139107890246120023796638572905180109776516736121980636668798708359481410430954239661869167768733389699780659165145387121854997176290197989810165429190739931957826985042660185772506073309789347005283672691807268765205614356833741818312841201125092851496585746792187963436152059065498127910705906688742224145962298553622721815265099461642580101383058841509195271369440991617922977918156513460148970628405704884691543479917985827977444808495647808163924282452183830577732414203748315309212401413966294580180165894805976422364810634680394550201967818146204316853738691218696345417097239222610188230237754599933084870679828008442711794267104137544915794563720595334161240434155700768374875892210387974403530585161124477373631441541872258850832914427246267036746606321048679698004252164090474489850481010286102904018756012507863759993413801108767320364901306331437235085395846125972405098919611850548267681118789995824208001602485305323260400040344797286977191259609098672843970153060089508013728585764897693266807131182226355403140127418954355484927989659997738573617722490998968413872873334113978132055797127133691977100212959207478932740073213090376563259679396705328354409541425085772240068627529377092810663158791060716725892646491791971980725391156704596772941079996612415115049546924625910347882528962775054446083853652852203040303548663574049857554364795454031314491424471883946406155420664397665854489502985777884000741615117836569711956294514396060567582277530915442577409307634688506509131228408328760184198786128716152115095179661878946325783469887256941096077130846605889230512933515464508859342226120494270574604718142828933452856507871379153815915399830332236462415419658582014495998439165159418386256482331171623008764427712347392952910053162738239157109574583721094534559404730826819582570668834655429006826842920746163627573891377091695474669781681262858291365234533706673075712984925815765194643382301261036722426681821767275755953196917116090350976685828202774625419964015247684892244082219682999617124998238593531278809524301069499551421284623598397817385772705981373810379178784242950696648776325212006474141457428311946773142903603779961911600319655796003370303848135261611880886643642825130816687304968286184816698386676095024345964125032637820287354551481740004752078576377753694947061938362744206316901962915702534963434365239554239985510670282986623989597529388649741254077580760970561983972722493710011934175269100961350036045965899844860653677249782239002172297985673701159363577940176109314262513078363743355782392430733975321714681471223476666858772355548467129041406293769931057937854809475758553090974241378708800612761628403181267876814860322924346000425669267984091394397413690324178626793568180244012092039655339442696263599050788180722829860405257358782815645587437090241639285282359046050201208158907475110985200046296350411108698614627104896662185749328172398071151659729807018220312233862783411100960882639589617140288065099643048432692837920465259963237091683506805598625549139363034907597580107550251792456233298547909987723374732930549732417845006327124810950196801378963465425263571851796809734338481154746356073514689075928013200151067843539586256422321495546414050425870729276631432951262551082791397691920829125740275243209120126571799958447902768369249984017031852742980648211674962236516180497259259797910458712136362931287404835441707149022867117893726131286821077699744890788191012847835594739717984896033995474872578838888774892636282459955617433258816008285867636839504955163586036046490331526988337001018876458678521482614555357390934974943040986851586441014804879342955140141701951635703569864594675133562266478211464919533235093489913520203238807623011946526510154322543553006003328588066339382423720728453719696956282859346607735664134529154613674814428607438287735229587019133033887819395217433688741553124654479441754919230095607963362251917126697551415171699439483272181566492745796024775380808944755787576093814383237854631849060538291456406806305313664630187074216472491288240219981233829695973018004621383272336913634526825057339071512435401810203028198972608887609549680622316219075157165203164843535887879490633105347229318111549055225216303850808891097990672791085661124311113340007687082547434807073888503820620001005647356920807090113576430602170441877053905572188332302695277834669299192155649794743024141065052083830215501800916166058610246504923943107639013362712174609220416110783474827662742188748398180324630246562183229792056366609988511799916600634600805673907459472623646013680442425515564086625178561482126889568842155217008199825968945968522524819725209627896406958766646770443165958872643507242793793960357321158644272523938362628907939476972416883585138758941908023019039230662754044437301994695927675967877615682468248067369510975737597674297816859665935381466191826110483819368540116920931725354015553869186911719359298829939311544955144982775361589428031180859425270639028084092800498273699981766467797826582442041335040237985147067593820019351240448801084281743451496042669564212593697464087708186265511149758027935115953961642634658732069107533218099405865821343165650889147433815230743909465612180832536580641939565246734043143462919552354519533313438435934246309653498980671427143734489275858624730858881744375552576925391368472095072022666379652847862522097270090667910334797135546015174545650718150164114335078650182468514290231766236738376545837775072635049878370246158322977024444696113548241483050951731003929015992782935423564758999961039816692064081452566194012315494062019722807543484495677534202768915942510512669230348558140991939909611167037398113900974600289245292368430091291512917638843385420312829817053752605098609518977719712669708177541511394731848599145388941029164465512174194408583677897904493826551285278552178800034936972413255948056256598937898816195261782575074807297437020329372899339388216958091877751732980350661784954459918794739940122369770409140324327174426914532067563638635035380157739584259000123412029061867631348074227795607532436166761228599547018321851619393699683966374316467235309333828688680169987767251338383904106012498424376621648968098698797678015791771871651121696530839649423208819361092268098287046587928335358228549912189881502569141190724644176484990007983056309645279484083893405810313567247439796363773655655750444016151778648729152127801586877786973965653920737039325661235654720662542221033635875762761324703455370787391033890415405590060652579516933193963910237647910405627884600475098779824775238394038036711539874656553738269048818418690683013128066279480757658140554597926295049904988109766565590810557918444606089893480534210414293986087339042980724137776289521684780933494058736348507095458528468950339072431147474192822868396574550477437811451352206084970047631431559446086390260869001255325958278040876318691590135906250562611041066464476527609740857709534621782744435625032264663064102364087328825749173753778266923390135792724216022733050628275508105975167542586052804179347749092481338994415323047762875778208271176730540227920782448818614946354207152657304690803374393431814591187798797642718925172161747575097383381707648116287723286214640990892029048008333959288111293039545579322748812771403496805665570323619470694280151218982980825593705531455086545192867142629749294417173512219115912304775778942741118515180232974812314810588781365695343117642658169195011627258949031603866290476287760238526283615427471366992808830088128799005871337639621649626507202225615850976566424659939704867104778476852748389213299364078810699268009997156689836813620268888458259725517667813228960509194873290643533529739404381049496567947690523776737990378317658943438834773781091566758820378143947292882160711653414111874085300886414424538825184716787242242084050200731092475598226988451594492269332144821396001206450273910919583656321636107444466315104605774482846216344511770384851904418654705276719805011666698897256984379658772388857440579568370308574288005236077768334772662961824423787365973201387560224654986456215211805731583976706984371927921725307131286643872885690899372305586705012515337896997021268853348979685589653573246695012435780016126778084269050522545675180410256917474930005701665370583862741056262796013105962018801105237556766590051192244365999311639588092752330624946707180653506854546864046240119463652848084508763270613560128876930776370066305330396634966450659160272954585901057276229163097381610642265636328558271572661344577572327792678472200513954047478815564590819076484509856876090635085589398221472945515633173314826632686546451149678549939814578141451297170147635498335493234300490722792542692368834813328363392795305011790731047543964721911585181815237294556176484500646514425079776004260081923764394260960017450027332062115011941720894474398183659755283327082332982549869535484944656353682213832539308922425492433140780188895879185796912297273022750722589469905896669533765606464532304338319284515938557345662220140144856044849484548310460670419536471539248363385418989211174773133537205099634069917212292113116015144126779376677532723267312636687326985304471283060654674502145908585529973741708786956915786824461102050630212054239564928110423906355175892353513025664603282195807675666312504390867873452170592189344582311078840830800620669849797255980695333484647800455456248442356911700653450061731618597161553470967757554106212077993566466639457736200200946691053293273173090354952291761344047951650080054994817377891416226412826656160955829742375998162905994569353468476269117701798113778249030612909379692156841149432679599903487253930318790787077869411146789116283398099162371226693651754408975080924044005973809258079767032446079296049951165160115097515705577383777797244656996199919004939721962617730665026429923804371350703785629566867286823080402064201899250231036565058514714431730571527607928879011564631094424439511014979344792042593086288694851894565862515487120564387307992465393128881773484703492578474776026401304133266310583669291013501484099550445224303870110750916153078564586208166084243780961205522343942363561419604501779336334950308822588729219273775819618352358041471930128896874942013905208892177437961601733450677260930775436296065663172884876118954114953748622951688044810969967234718564261679881178491316427629057121842718693255896110460212708640861881563895252063082573170465649332702795791258916181631081982083125169944296667919051742534944304730702000458160541098729405502885996710731690098104443879065843351244895307808101245131224255473300632089942309244317880402130531952800258554384015160981473076374523088369752411905457995227197360208974716879238384073274031156338879808335597638152359799377247559787078763165444918459593202599267465349122513873435994197648168933212623414692007317401407026296295544850521166569187715411339762071057918059545486281809646114177921419026843208746640383492631416236638530087482510654009430793626752681379733958071731012880270024872502096700777255979524575961650923047360970166130758042640355477832750834363014968870328773504589348712915912182191553756390504592682325171799915645683749915447763406771572530666913851799586612408209370175577094686371021360539305327286447368880295179930011216530772491454490103994193014066291760032863280825671519687540888799292890798476549100424015619345197500807237733709395631570233973494702585100017288571177096262783812506409952142348626105416599788217548800389749713128035819494643698202760915997517706562643713273003354926835306002322084869390331607547318763617205935075227087234550170615791974939347724520581281806116989366981701870993300166915340360803416631428459492606810206705602725598826050401288308089931948283508444012823458673278164092716558729823408714006677266168431742937784222538050501288001627232623684543813969821122670866937344096152359144224342813659024580099389881262982158612904047575407919924587516495441722532111301459302390667363571847248477110608725812911720486215279760728636352667064149986904093658579676357083662040351023372675343692736452750142134294599479220926269575339501162896908250069926717051734569784722891581935579881767919975638148413705824285382547663000983100114036750695256646929254025247342997700720798240241294599900741127856346920463544560868790933430710173444192610795894750102953636150806776409135597167245615734176650462367162827281356947835407181500701184408525728960757475929973431256726974101536830942936444393793560305201631837343267215047677417678582537326246551583002904809069956657290501521411019530392643126267302407273555249858827129871259453690488793207691915621071419229911948407847656676855454233602432565143067532422292816180341409829119132358888977669636208951606987755701676162789191013546015513607223429780866428145595536242195658530031125936429247990577433860688945533123288212685953628541051074825119437740282668566556403837163156115212354872610934802916094700302285817903168327453595072430122981885105650916718975370348366861446797388222805726124898686575081716853050890613252808230798716453212836518297382043295479137261658032193462257686129801068789377972427263238828373604879953217266260344077504263815941283177169523810341863453081646009170482268166111300947872107089434066069116397798068773683832492707911819184777359336277102685858644429296293929863967735413932227068832661892652995182253837943645505381066597135688857983390435102412131717601850075822937149616492614576095433143511691002623128480863231527772613374857201272764181476304962585698869409474434077589629319009259529282168974961075856239631677333245642601012544423466568686823656920158291340381734589148615798093219799515753886987860347913049101660239148587553598175307048575703290163473366068598884081373413165130617017262838744117674867464861092322613434263402694552743315066964796294757734014885995031453401172848699005526332662650142604079503694280561485334364947211796663842367007671027737716173802070562231412464793068383938585490802103104781106419807038625259478918743926598510055742332048232988963032943525112727622832600009443233276588557328625204722176184470301439312976801559338485218969283705359542111668565543290698887770327352076883103170953695476725618366022761165877070332436900876106521441835552964043733263800586959898920831260943050076546670275971528318501102204474632133103811644902056665465262270759027330246306825167069781720205357893045182570357639679519484875419253502302281123747734599340692987669303859774851129713655035804707453673400984417472323525277602226752865231241050025425914621529398055214696728565988830346574278752537534235807935296436668851804532625759122272541405857679351761398228920471817299457021188301151338095671295672556906709169119720302998838413732109718633635934994617344058314685155383962169401507520001424917621160703816089009457359837724292360829163434294388452479392696047656850402480752622688080178538677218347619251069569314152577859234636419355816657532449522591318201114150459968481487209384816205054472804901199895223977549093441725226663923021729478762634688202291328970431190217834235874578849914399349071330659679891660892675633666741388478756699966127098921607538161419213656790194233244850038524349594703682756792613878600752526732854802587221505954117920355188544219633806161684603795883628387503200627711999668235414166064960228998693182824220231021332993272295456791752124068727428567593494326558340177615215542657335161030502422626692454642968447815825502027576194538758298317075607978990204201288918676331565587191582006550580356583554827592289699529124405065567230388825452003621573572340485668867983406695927813904447406692521263714081229239981058727040275707771861547638041288962124968065728272624390247651556330841412967448766450939691117573976049704503609819425884808313403635549405689441799457369275288894532649504472749835181750845002064755554473435542530991488609136419792278687685310211993857953286993466181131104560669942325739804885718937946669678035632354150502576714830401510957163894668889412325350077366397210467216349122168448212721686309101274139910723954264764552785055710390150162146681862965912487517670927962680036443421033738278026453999818228878027742323378130894709153278275204404412142448235904783659076460885234277617902132186486520551431837897657416971926311085545063235848974719679328050275997042177698151524347944781629926238258523052984091468716784497657838852011980845576619299600649001747142967074508839184989334504684607655978499244080777248329482450997358260886525360705978166334477109379328176114917177696837543137175282506531497962700880420507164196226139050592102184434112455792251931979681281832337371933847241136350392530113483866209289076284114572941127266422022263165727383922804310618749833723390792257569577086287711748831180752598667730448343223556233048967139112827117617031648347630570794033931349563318952573885969854775633342459459717221686703622263783457201072185633564474392401435031329367956153807506006942965208712615303689924851074928096542744985324893531879612319605879428423259804610713266126630586046685480763625939289920476993986487946784369030895875445477520356074200066177300277840717838277959545008334582170876976675106048196634399961787140308927489627835162283542497098653678867140528220699695721110510786096106514063770142374762935638565789563880018868952698164463611972707313971805954973660749719595529791653089658283319156748056278997416747742991579912991334687345856025287700539353392688723319257400128019799251914302197225896455061297948875276803624469760451562415640304201211820211977275415564094539236908375180258165947798065926910782530893951462623814929719730945638156155228527256584163262301613462132067420659975081081641804281475250440561174316415318504074332364117520135999506276249751153644937035357962517603484390417143489937317545631261794911690429945726053856173016915231780398773894202367719259302362030576406777655109714001213939076561332132941730565321486393423677928998456856371651856536848382053056921990836820639206061063521663562479012387874467622566516549898650301214967263741821249547764560030758512541544877596724158608845261764340737510956134743455715992316862060403935850987731961793322790381559320387918409375325166584851159390972190643208405644521821157757991394544872410306610689006603742952976608321932903430392772531578030694985121662332982483087726725640514913738521988536195543143530679953800620549814930444983454669866396584080509168894464964673377197203534758739353537917951455481611787121067120983345866544331928654854372102409040212076842636150702768696205440546971415658575844498986734667644217438252883048419690229424109817659864658754883105710402260028059879381837238479345658512689470291937262592617671612322553233951531987413414519792708628502298071332023837930002590156699016107291750187479395652184255850187267914282763151979795004546496716645263169984601518124725539930520109920391739592158703447511056345542701545031787986826078588397063224620328518127717389818252953389376630581002393671701699834732031008509510869915744692203756916836117259424228984463479229924012366288449722428594835393063453248255308118501605791410072433443041505195681351367856969685334209535064978409920584710375369781464853987692161159374859881014257094433207202100635910670178971291600653051637787325473994778380789335010615045438379537136861050462631822017513177451372808792875521128067282033770785263537667054801924136613754564586530031252775164434092153577733205872609726853615265031633566310711689301245673403149048760468773151545347935889680119845818613717401827511352241531947584541497871725264582356455022974500611545638753238422994346982117993629192502396132304709796466603317960549767420181186124040323461795589162403244593766262842070861445553141888698476958111270804874704728666365850179637542672849255595297128917213502921864615644736553976714528022391997446890637544290049755497412634024807136602895679701917228485127221591799706254818906210672461370462471302170620906969541273572576843147094119980291229334771841129365155060749321403054837630725544880904225677146468752761447459325778169017337249334178475606848339145095711706995027639803072630467042456476362298026061661632380352653839970750462380948190579294579044716329701124180887834520310491866193894106116164586599397514356907811067831295382965917448123787865329625274674146107771913401730980081551986494274169935246297002449796103052710633299435011562198862278005460225245938802519729738591891798526796336184030390717264927389341835878365926927622251248108955638837505028432838706064961262854379385957492801742821986057834022674331596363803375523291436637922537938147166115301813573546117306018907921463210218886434932472284092466754158975453075320983859439109312207119328341015981770119652296343806074532009863761012667434495690760149009661434824443795419255008474807119465558921843881945158619090138594837043029545383082604273118012297832522912230445048032670267115037756801907929280382505191695120505627466756557388582621774160111799499790941249835068710955538266646990543473599168349135482691792457810196878192469959853399620486193388023461085699407278611448503319954474982623310196479005097563041299069542987228078997475090604946768047502262018384945756631685045987305253677589203187669736889528441997671361151553458300627891814401236321839443446469643166385996780705664048657339070256760619868325180456097393592167595422823653516597245180507588924956382043768327637048847713040905278719032015858961534577051161131558955932490962562644837726340154384972631371033298032196317210201258819721610628568291530886910017800518421116294795361243611543262196358727121721192650813439064105578802517442222370380875501248440992551550766926719583158850660996766577669004925423266675227834598464780069417046109533135428389171209491985745367401617854648492550598546511348820590457692160524719973192220628271305607377436461407087461914273396796111006229592232478551943046894550683616919355265268078559984198423044607550731423387955510050255325633190972107163926893846444847375338204176920923582387210755319854133330816016385925774020722918098288211745580761436174971640811478841133275184313308747059658673069291730745806449424304801577116999439442494316378747723495099682521474479636306685191425444491697189968070776590133760117350132923144060830767663484005943337086487583671640217176912972678825727071235263096898423361215293149361854492041972570755126737980845142343454936019975825767873874458280572826954045046061873234029528369263326788297450231179375880418341106081740810312783928663601908604522944571655930975262228069273613088508883004945209930940776795913984869507701003700298419240333708094997965728955662599419544403374993285373879986667431163941590627375661133892633062237298174582388603008574198126902883342105681735783809156525516139397394785246449471079953870135481437829187600290218653766826962059584944666986350223962227149132327953035329608962939863855774012786655849940356136155076526198523172270993944989717147889514398207235202344841878226653175454879629432415155026639023072703434715716966560828850721091394474252069431236682551003056810305937901402704042005300914684895750585173290497649180959691930017579138450170751944268179551271755628297071730121986331314042219787040558158928721332759662379107938091263646115365628592780139409032260825442112038977070077434004898535389593335787713635932602157001782555300780614576446013494411081604152388194481595198756898938382770015727726819239709746116595870848667764257963863175684186701328174856603762429544219299937882035750684811240072504666397432855722900726962828541839709722334857306738207255690829925616838555933106542368558143609847584203629155417969920859395736027642227579427394214779160733104690082150820301553920492933657713571366847642615728978452362447659636083901813519491858888656871122724175376045871756081059743598848793408756697744990394885241847018962785119369995568703808503741008068415261852775631007322265648507272187443674813000947819789534408834720593808210778897085949457544615216876591249213674807557270640787111978302444128444189526091918924857256755763732941591006977457498559622312576485351229485656675316724324935259089458032199381285988033182389757094850759988957168999140137072732665144961156674397134340689763785425701609873821742930276701165270037716608243198887513908464650524651368482995970249417033598622812050098070287779072357202009793135398086330935862977385728680334540198011462562438985022956406741330869966970714935981373376119104426639750762044718030048325409798318443640071749276518027357938764506874667930725752941216295285466959910433792005640193495456963657760349310679156523964483048471885920494481879264392391750550829256335251436596222004282233848807947574475609655573806827741708462392303797297019250921134177101983830145210914115785421169392990332929218834215563891330962065815665757610427314892695825293918395741271939455970471929347195843053939554503152764183971115618162820040202532768275287243443411009802245413454563292421263238376028483491574439737435277425759526879788926878938025602560230930651954486440496907775873088656461415602662461813987275070636416834436026846972555556896414114307914513126144165132549140581838502886000483462753717806413269260500358634059150693084383835834163230512820042623449611125658608642031096804074768504225349589427786371136907901507890685473099976555460555913843604473196341408710288884579696006690606546753758338759695650436120868399990898184915373083947844131306982794943219431576817967590446570124930065926574247425930944964396846565431767624478054371678566190944349499572447470165091767734905477207638107015627821724708385509033404910072007727025425944684714518396361145717873797833161452304506348449693914881135684813406866712402749996335996810020424616518359602556483068797966880276538364224188190907589686036796812553292221390884588237582535908365540367850015267794996777860808633702278642489130010192400290965283883596815045584497647534881306736988761759290040570419012987670303239623151492991341307770540480282986761309611329217627078474360389005558994448175215133187363184834815879954660423602033044869058850439763746045920955394206572395841173869524623615100133475961363143232980844983478111122960674322396839558940280885613108033192055951755682793723140546238670846913458320262546263219535239313860020471622945645276483842856007834333607332211823027058600117962600166763838385292293605774274489666811429349157369642431057438791318815263493718538579444987618318803741534326621585678190247803054003543331843550877808837784635476145658679951987163808607858154533153243517098179659491258080991621512657142732340856997636735264994301589258024941157914864594731661406237151463766863689042562838877311229016399474958173098138189147580722211713404894203226011956525011584247064675116626905764041770156143891943832637669271832993189019788838761202162473005536235410647504216664012914943297142529652759037934326938336339998874442392298324072016927170072587009697955579775122988523844413987131951714265425343256023428591460600982368294628625638756138137472350032108267653216109162807484730371980752468133474969517104314044784526468784008721779026518042730525750581818580917810887610802062023493978146757597648668705690783335868410936455102818939717161719424787538795830953026590051340110233532835455380043002550037833691232822424928787763479881160899127356547251337484095916750296044465593318414107371977436209263291951653696690217941234291238075575363619591534182875054276360813522768195004182096305922935715762537675322994807848811889422112438055589006352790616292305520256501448324724722663996601339297791644300848351956235488555717939132887761712111025327291867134480649348999011183071529917646574301696003907750142179766974017692343389361406926883628248460147433239527125259794878790191256514135513663313229181428061481477257587493351162258854893418630460085666464728103841256714409021591071241469193665376802533210606808101754100127670412764356503446718763202593198591417628865444494337562747017937771887907545069346222628438148905894903398502605902639026431369693525996608416304238563311569206917691136005301013218120140313289453873694444812782158091823739868535674130631336749715643051143390607029448193356153274679673359335571928462428778481897689440156166093190268391750726416568073725015858866912022627379938973691737297817331894188358785609543642035104415818564286516875795497638586583857393910087989551800617850492912672273645135127625854125522034238646949864754195533048907577458732444488352807808104177482515181379063953712262744038594437149371761346940224169843587714894366679405657098557722698466003820360666073511996747240015813976757750168188643274665537307707891409004081069278635398113047929489274084777378489048536677068491599635556387223384199828759146329462204452701021065400658523450397808445938369785200240898403761911197634298161562147635115639913254099590788011560217071511521468975880837609303890357093482189254366097974115267876687964518535676140616769353136314122897947937212108239445989894869380703524197258696496174803961686219573384541017726755807377114530939412028431278881698682436448780063021790944268118853232778003670717922006488996447999009179454281563471764063942539711294682474508051621854225546343156590283146742604265697062281791196453703763380222863024721723526924948107383423218847988441284101759774696365557583421404643478654864167214994064311923410562504647495862037182487795329958018042092902588060943155836540632175219485036440196738740070141082909897798964455593903390826932125499091886657478980861383029977490485299435004010787843652172122194426850299286932848024939067390078027593080561123326514634333967034977556458904930161320161575127534387259850142978345786860178153500918972497379539307189861591705612051087974349089802482325027568160237894363706833798299200545563879143904028643869061940111806897087543290178378529409792898946458679507869838734782705097223425791145476901821807937204397963867141393760319832717605214760554734092292796497898735464313236461965363717714981663668347431697970964022856869934607953539638135027854598793435628234603715982533446691200700933135248059199604180730318762533445400492927346048649204741824981893818618262403231754556185381158891083208773326559645920003422155077890172235046713483263582949453481496610225037692098634155349187526469362864540037021289443953392553150270711104382918138773297866942128597078630062866977828038947291699272202895885741957328085692009289751523110171814290558120025328020486220648421519538373085845311708506718098865782218159311577753571238542445376226371607598781519441351697251613590018811067701987942412727966025988791419474398257275438106533069759838455390098090839678852593002780716144369624981077053314683617569487419988624194102855493679878854524774798448204234815862606292651642744716513371952608702569594774942819095679718892037633049023979809042224749944546493326884450318208952683551058940540258281692224844028392490921884944660501546732010490114223115848473033807175009042973171009391340461511554383492707866891867927416281070041130019342917347824469166147413736411500202171185025519176781479735588911167078830420980422405106193948497135256251106444564521238182888702888460530456789977354273618948744205682303812090089187489767605685042165180614294049905681284844095002206557162911673907358573128627454348649759440454926625534473382370419389075702081907390542109987384213506660369338309690779010541151875970116452410672025801954990118915676565984159588779736382534838269860310060689493260650159804689629050443637852641335067257413270036228868509736053413779608433193315547363008209959762253823725561293791354620939913843112090950775352844237422933028876518014662762245308697427917437134591399589134053948769948313052982198365098966729516688274799474256530993000964556985558938547045700403852525115316246842425827229768501904212433423372857134038746906844420109942310021058544136460462082074243516301595576571325771062474632461958080219783386928631913287550207912082229615070501209611670880314301954300401575264039802269590534014151547857436789765664886529712675710992756149515025971346597652132138173348999589095271224314030315763536909416782279553842985805446769931087992777181459975169357977832334905594346580107443340164229098013884575613477071818373492687912770288553535219516083092079548970684595622837077002189962063882353539749618239268754205801520442059642249175427369004578754245440257445531912891349407012183175301778057200404764516659875420201723112082995709672519314242242152292936815323313619037607007711069539350581900985811472564912276464351683622914538501371718759383279513163011464367386976691421616421606560380557505130789189354887396688968634384276949937603034539802018204675471889842506487658188512660919066464844874567693703436823291395489055717237183018646087153739195935393955859928187026327442637007208589036214846714385694853888478416867917030088164172623612724155478717494843811674947083017692749870808352884313167718774034237148521457101481197983328310109809214260734354889582047128320490016028446004531874969014960712886141824414857146374064586161187749393852614717417160659710926386209421646351714666286939033256301298591617441319160835602196214105631673673931846605348414369192121933655138823703878558521225607925930723353593041230697445228036720964838083012811805013458113673842999655742018637006814408463693925943759619785908168507215161159944050896794745453252908379988386901941844023202138019547384745483281285498095948534778820127514579793182006748029907287241108037872187303201060822828500383485971157798508723838039461230617601083094561604086182944614403605185565529864243064938415700455556941443685725759497338473058596730440996934589945107932124585910338613675845133775437742239997715986353264809835354701301976894510908164783267235101245263920062570461594104709137371243704149927780085029726548892357300873098796586034881679359589245511602579505447905684885251689840101604557285943570241557227784987229061398041444514420427944849112454526521525697837422079202361726586462723739101827146540889808466498346245931276331837630911383705085008146348900895272161162689545281485946795497557644145477389425024694826473439375577138917848520904753587097354001455081698660702541022487642133996479594412635291493083171354112822851463490734818480984019034250496179625858208633446613002343510814034780261585143599261237066743980973009105917380386564855360935509770929524962855224257765551896340092601068592893538640677869736151738786302299997352504068719562908720396707634499008343187183475343422719426284874961217911299700320269736694747523861984047442882953755919824647789744869534473924876544343605045363585032216184920430733200321568557391669426670546127012565170898619192757199986883973939893722177227736312120515050441345246036307925811225876357128368023662008814795815166902436763294139611738297841547450649452247335256167023552081057181424988649741323268649716154902330660141838720706936013386976475494269754821923921877267954628080616622666239398627601407563266948552425722089175330735303207745149981149141874205572272620227328158592103350148769073293381408850481129266094351096435748434286478142102489128516026814056908802523148408661553397165112691374079585673088748424851642349549455350027523320471604186320085758565413864438931546082234115545016058857715431347714681144432747696121008687229914349518020376974734167393188552924336127498549977524289466343793404254541206860416582580528262486739229939870139193287970224538910548015001212329067404691157601716842383661835541857632828630120086332984805870291847563107310856744090385217688896655385578750080605030551785628985211923748719271140065963885981600292409861980232688794865984251515311232670537978062525849531961665322692353942903843874836098544214215001782556223225032871624746545582146310019328023925641406112974634688397170170110020544286976232495321486921329443889677099585852004171488926249901847728347462166669842192652233848779988527381988106362051704384392538405457048098669444410555300076603839301234862511060605546076442919680324745722566223157799958777566354134241298063754740471862782661582441396061274278043917082771386355179382108118130183685650708150913377956724961421215762885731082293364777255578268821851902102893412962770746730086861811149263273088493828846706151371920762833687079537427434461952227275717021650427481588300595238692240962932138458829401394918635384301477523197609920342440460814768687925806744865987214607506891193459676028866221676602117067316018012690124650970355288510475428627156704441367824336050351815568003347104356364201323752571002566740334824362731873041732943939048824397512088802220945088925348344015636815318831096141670039398524056206589642211604077756196481823480717587607169485465845123527483404096408657040465615022910417254242896081970823924210578028569386638346904924628792061417515001443766174732189516878615596857444423657850426751295904991086879123936519541948091783667604503484799533622842138573266977759139469369175407618916362096265670077983859253779629495196216970047698986697039963462175584734196726483304773059317799643179330405169640566978346684554710071766273755315724306703022096582504784158488556516414855268743316346062180324391325097122330417959288210849613824634005676391093277028456562213204871133574832784775694104508466705766705947966458979457450741782906616144793434042162823313422653289441073374782525398911984550647779001732867429290279821655424031493309637411246253613675205409777826824819119821854168837598437446969956533455494378411277657457227804288347230812175076992611623666348792563029136113556377796470529865459277896484490492067287227946131053057208788824216339891815564544099948825445927063753123171360848185044143191585392153511694908350183416322771210216719273189535526659641454871218155571974913443912057615696616812186233075228594168428840162794269467471789946145184571491366749954274979476969395070081581460767057027188341352765069058011571152992661499319478253379916432512092081706238960790092616209389177471511095720730838764806594809092128666429219309369674760963374456156333675156069790706515754292755648777940606148559959271908662645842312180586606812243122966200426835863723723888308281851253465280221720644976524454345824431461653026633105335175244066860378117727111197514978918975410325275335114784319813410397646103793509635401066327533714244375146196124856183012638643728045124228002197143594509056489974680005132814545926278503290917536558733607811612407724781390458051740123825428482440215771442932989830443501827615263306959077108063715510255357360683483159369479536123299616818349154433587471993384053901708724818694828553083421579697494640130757889446090610892755645155712360022636858666991377336712394643528399176115165635876109782376744882783961939670305425770439510963017478859025039004562537206335773372707679107917150509500585547508885056556693678183445372091666818829558515118416411114064355672616944467334775648414754884510108578117403772841234881832052118036895318676173287274989327025424214218552263021973219501685252351548997481412920305168102252947955837334952202202572532429843908052535488893960946331094832770396401005291397847819323195037188431458001745713544935201701561737141844866344450272901853285525779885820053217060565133050923703454419333032786522302587695455449579546230189506540773711013618370132112367076502822335554239160174486132452585556929916422555972993553856848150771885391267463641917659960198339996363895088248357478051488839869182801629340203510962143226723606593458481614443915244321540756773018809082124821472786562767573894698044261751174267303735454734481759583197954744141168215437181595820945606952537280100748382769739083300737032795451549152881455295983631641769282657972355658213155530633340741837998523246118955053461174968157625310538392424290093805517845135614392248710823842918686819487701866086905112534891138175608502712864704665344190322959157241013205735577084857831644785457840534724272555039838875560474874065625498300755460097300335405563618631025784694390619051423059475988904039886621651918672108537963121326030297427868646169697430429934048698352603807473564157672409327257184569769967846906628728355457376771151221537771690974233447295785622233581518934229320987564386638843115877358214478752092624323648443259075713770052026402186265410671033468494109912666481980248156381476404206364164663819165082051389927537804119305874753155766988147161209910126833439337545531016847214662503845509645132170770033357702087787082682808773989228067771075519223422050472256768054784487950427116884294776775773279156018237729457210795419443112260805062296449123640268100090744834415853424387564018762447046609668082007960022234076769451714472696087872351488592199486721563071665707095689620835968194914749477059350277490057181538687900346836653952442871084149191878943260227453376382797281940522967822100288317392772727019949979601180948927882468149414113651443306378148920097160359079839961505638896923623596136216950132684205272250217061835225512777016820130117228313623726071005378046607273981678602934811747272989905485558305754542990662830832165840006976953090692418424084879697840087197786709575645936639163867733862947236130250963866795631161120408452953669142289459287498296987054728720894918230599572580232064520817670913518495958282238295807313836609443342920841073574442854597700547663809013597607748880907567593466744371625474993448619055962643617905320404587191444463093537744838767496189247664006279451036967173515828046105260036562568757902468131259687235222082041692420029310695124712504352699213903913107131685477955568241308614340233733003563231117461066532286721145559357695428078130878274326882802176039227943632958692196665993312384092509958270468211919264809224933284165400542680439263556863089035821823754619282673325606210686710391066334620366634597471682348364909734592139674305012001760932727004106124522433916762528718966740591347917184732342379394379864225438461487326132155276598901133048777625750368078047080746254488746320597687866927672034873154994207272987835749181165346495352203995108927384050036873500947561555439122306971751228815056502600739558952599843782566343464907192084777950320330341878557449461035010394422340286442882846032967187284500482531069217732716036057564969975718965557368172795483127785176150020832690312055128757623690000438170813713610179288422362115928115418665535995416348116887171261076750945329737225664303254859643435916294017077682380215419543033316979415658974039711762262674648359968187120755134231740428377812051911105394442869278625544421546731196437722484242532867156317964196677930330379994379283608418670306668679159886511752074912766668641392091789836816285935928925179954811436663082841755807478142931173315168111547601683861838071286266344960877513434591347675951640979988497493757786286900072996013050382834136141245689328966654259731795253669131252143859169269941405094428028150528679160738054732365304245680125143805738906643826751574986525023106995328335769197755272234035971171175448353753112610194592959946413654577451034135129683399177431352389148974008060213769017155234998435140618564839682031726035851580277158482619449656749760233317825626627812425186176886360141288210616999318594060754562812194278261359852626185118146784471064053759298771278496683505599384970512082648473073000139100499718227769745379200383801657805085926111403075287661025592929063598805835253066946876538793019876706936392057031145328877228112370043058943678915240328412486471299993858270729514158466659924900267304475796751556477417841786733884742599263929850999075657267552985295607370854238248474322113083929225069446814399014579946278338359721331768744855172466201001253576366565481879056207671605858882695432540694018887764799656385424612584467525767222183073587478595070346430199570172172448673838708711534906631677973214209872058786043628215522264140545883353144363422945865207668932567792970163642409520403746750200286502574580211704397535389770287051971890175981184630464061177230650144636463339506735318218847262691980355109305970303686962828141316881848405025345390715758489895652262818900842317067862985625003812328602326967678300553679157810944397686892184512183573873853805446219957232679380944966518709848612717297954699213268684355232530880213524606928429500846419734160182995528116311232066733995263215293309611308524436631924952143531071489536499744299091876102069646531154655207888578946533692842569862878972048596329213013495937660137226862584763274966469585141203946834405903099648620161341116482277183154188636339327606499207176478132591311491450809473406621019294607822615348758704014081418933327226752168029842839544570827658778093827772576112788310737176665669478175185548546474804264649622297905493382138721611252848740075326144906227242529020208831636609097093637026910564651197126395937564691509688958288826188643415494486074101080769577565919595865287201518117098109255720990211130685708818516877169130372364561680973799360617092718939596261570786493685269848077455048108735411637789278145668913882189549444287768986168483368893978068864289653310726021607126345943019042686285550394315530245675610732889447818009300341979494381824305594984749468634164399850910194540963819682889621330741332094181523715108837047682875701676118004737828174095244495483559300628708655809987432957350688802240854859918965413812437980609971572561295796102722123828740567167021903146715859317324302805017682055993332727843082734186827289936542125225810276331035991484558836722458631375839175239360893337356621585029774376162583294966022176121643955934604407064870248380741147366218471863297235814543295901690232721500341414214679137594886058554918327205018992279270112628426185984551113301738642871064851419819605810191865445150889688267049281673636137911083948745647941157220537897509699955164487050243091127115398618127965584925823159450670117128836238006672079389402821557269621994465916306542881614782551760275523953389510782460803633195397821236373385338718376885389893483182548458274121204729823688140604745990466128103302017201818276012255640006508552046248662306414582435358159645693611458336157240809946052052000415939133698822799546742773755174175181468015757236667454594243672161332115451053799895969509874371022491525589896318038988982423793823866189964330976535331852693127322198216310131086451298891214579976051833123183663518106910600905439654304803692922286946350999626001221152008241330757596051106005411824262355889700705089740127876528282188940202001197223259678735763969551938816999534913905694107059867635146607463145076997016065366725728886806028553385762133314041811156401285049108699066029295372279332849552110197097911448901424500651751744292387171148646443925077201318346279306679797332312296334286140032588015082275195132343973326150989158100713063644339646502624135921783656347168423798086396486237479225913847707624472695355150666058814758078527856057178851038567132190286072359954031092630887246302739877753008490036156647019616638815537278960636355359650468753833263884100440159232885253694489399073639505503525864691784085930432515873321095821521425025252012896234776807204485232516921623572345535806247803776248648321218229104839336935756539981983988478397578643258123465319723173268327905437268474992953404218548698848005743812831719980252351909090140791765608643645102093871272759266413604998860764789613005175701480883118044096132207818161150485024446512435744687312308156848942642086902672342959258163421541958640177492865947015708070564270147175905233805076561743118043829210002797107804568602247395885029846315620816706580047044844131274614001429576502955558097385993616808465976301583141178758412313583578696930983187489673476430331985498467598088196366390031558323032240536046002039189019153491244036572231985903808844461403132299113795846183749237161078608423059685669193630589973513785702490233527726740628635502508506929224874139982185670516756897820137801518944367537447448497985971675002018702898142175312230092442239357569583477879918776410737221104666606934859361807208703137266522749799973910986229107113744109175964741710069545641536424490343150632592133130725656336077421782981802348641340176496064535963104985885110000847440620742359310074935594442422553803013567932461739309329516023804378876589306766388373417471506293273685390125412175220377951200910818179844059191107348765072735903796059480301079985472656557103336467556759231014180956872737451797932062036060983611619799741641341407771814955783131197197532629226572950273891058372350023029818446962906847256572944430305418247888554645302382358298245036121309634537833641101674960586338270821502929909530043687795913518386595223695903885174029457748257544026273796642615232157643569725154992833582778477351904900585336319669459614058957100740342693364969724426921267939590502201079773192274312742094877922304262416258713758983723196928105294571258410216493569289052622166666861040229750388031022157203929862949140184393116402494581078975590826993303975298265880714831688134017303843267602448449564513125667721468577495640071881920639670142778407448400173507329531199389065735456748562137859817368638953452049088142033288661937604104920996304832541036710411673479594214319433435857098518473249629692857738606497761629656618750439293875132413119734899398407081356813967853589025261715762810336438670097097917085958331538901056459928110880559736124763800218125269975624755939499860040068796944315979971262295180807202658873409145673711123840768789369500810872676842064741506629363584734993254666866692625875742634441379041750131431496378099406446475420659215962800627141686489851237695639140161424916732270282963618247554593798262411415685428422758888971686571047588289620274647067150639805126468331343971374814850007918411522758099335276366393326756770968784214431182787130713273599745965627684508174648483861864357473767742631007528929811620974976352549359977892495192744362879815916324255976509073601444823394775045660968551604177381191438575416250126898433238790332734590755749742816244618628816665451061360812562409065990671715901072277061280455021452665935487497055147840044413335990396857956541989988605724845186986684784527624185744024434092802890618810670481027470014496815768870296230527564332910368152376084053365866683169920427837834909885454311756249470436468087866280031188030035852438282967518576114348234539470389688002607457974520314906445846318564253318732514484460165112967324008008317489372309790968098747344905183027715234060817799026433467297998572520088071599052231237569076750131736413360822444534315354018884195436046003107953455055674764458042398357941257182296554979525043022237240818082515293789865797249171752872501864006189505382178304119618266797824560804785384525799593737985364855702844752743997878242840578595791196146631560326786325057499710899903945662268368333357637610078008699909054134253412422685328689571884726508782999706430412414359396753330957934543501053178571836855863276504275528681163936972409517124073414942133639500951840467087965537074378487102953785710897961608298428430134587475979330343145640418276893862099765413660432172651475238370669815639323523547928153663223376239216789295741311711881103670779233648136030412483431144291415185859162876392653575369677823439829705946769758400353098793430672618114158455443410309699204946282430678139649229627097248077570930826423676299647966694831485390365464756643095206773003930000538259060499088640095591880042094465246235750384899163411015741186678026531254200592502276107157058313687207028118772843295279982623719029994812401723256401325742956688343123404238163735844302540897091359762403028778267579951694193177956825840917889921081928052766584473011527501203836048844062384922490736605286088132229949061570452657207721274390463645623934217541948153917100600485382474391587253685284938842336381031342718399794439934272672435143673759172369894138669170181134346466697302792453626810012990617299091423059661654904202470230915104707569150203223503609785565290502410151654641294462867146439281069537457611651525174237943992892830988753956448477232262159065641978258691517313148081521291758434421681424515372034082824011938115056988991956442963738831123450813920413626628493702844023765968732858152832341210843160323898849149143061638896461438384045029024851846832678139131087782908495261394656099607519690618331468221963753617195741311827827917140164127612543500520149104127947475259868749274717103033076271013397005709503673932393359242736264742219458198413448551080825974947253291651348866806372302806647598765487489495859123942549758759193514508177741474295963524876935967357505229440498053928264156829135923099154305698719027372125239880145454570407024540437849190148521506063434274921402025627156557693336111242675165683483131683614435789601697462567473982795828698916849990201260433243263522895125727765280410004296875201869722773648918602128625601110955964979324783347382466300392407793619287001500283931938029265123613710988500910537919033234516360490417780547054491103859425564865332981140184305928575441512920225725868983334069251356810689275399633278839931034174507175362678049645842424275215668113097593005681573738927964435237878781620368212902945266488792834396009062661097898275370223319918419097919099967449915578492103192528920775367158854608380560245744462891547973092145499235627637398409514910204755324939452028336862421734810363590420757018022445551395598576404456789081336256394094433875090708099893545049513412491087920819230435554559394624542052952966942480178755686279828036008098985998125761541553066370384981551535688933125980410532872820915268041918842651671375330696691436448109576872049379645229471757483800306074558341150774110243895237051067448303664283585914489145542298119136240052767713213431321826668950683406832831890130227906798932318359314788952196439785840952736236522411493716738515041794271808949618151791960402982790150311210118578506607056790619244347271130525215148329725938391506634487003301940233858051072698814988730862276447128908844559789394329419838087330891056440863028283130019525148773774911724029005772486105452174067635323618260540195163678566491750525971327711297867101366490406799447917065994488884273344150750398421623602403307682582656009842997338973439649257993628252659433379082300163045367490481376585326913930356176198788212290254115606434444267187417318634560628776958469209447154905033492223563618012125417789041370439883872233695617041927679857913017361164838905167641356013190486308971288132365406750628536786944045362466766800152763910361889272215540051064177709998983462507633332140684311309712069363068726662754992695658383605840265586071204441536818778725309746902474775951672824353920142818977867321391007487649091520639869983896782659253694204250500944890016203664910002309648165718629399903192542869063461223651280123626555051895663765571621003218659274259655696132342179503642015847895617477947797336330494757736811033281986067473692243949378102805359461019899455513626648789281648543237187123156237213685534336831674119049879609832972010450134741217385763826859183252782144149991697893029198042375427095091431218369516237447659346918020080030854080420776054665406026359386050940002710575800515657464841529998956964809964065701343809738866059911254622846786088736721299765177137998535024589499725403960791842215219648260551742618175118206909612515794341618530291891211331260794552743228020625375488165930788848544315132245869319592010237589030699355972629763987761160062644897450762818333406532027319741636141040881408890110365391142138951248545836817502696348611808328549217815354352318756601254516737224270964409707966687471396818628361477542713149639203262660116001855589207131201994000317857869860160888921872865387618308888311603118779256480033988882166806177070931870041638934967490274919548376159081597002639508934916102752188364901510315926038387793140208336573986581456381826275818871493384072690403819105414553049289623512547096281630012163090669516056345948569694977000406490044233391608371062499203254506685622889244474743636960382522658027954837260861133408370010525620908672897950540781687148371394920241417372350418887447986373458747180518335858237712388907574699257360808319062949307552016494143334584961896972194691974260014954106755243772073386286565570472967460740465225415002538314843268186967072090683447178752952056222570915379264665358054159533512657991813285622792964014966489583461353724598576449628568640317180075452142986326504542562983035224940080562801809303936530950888000232379092459969847770574663864695443415664798581673554326314621341138603397350104061696124967309872951771986167448646852282136193690859117242326912661531339475959714698087369390081122548304527520241827826117741202649013636676404860265878450531422744375263767575480168051118126839531757677113183441130952149907265560088506267081061204155162318026615795198480071658978597135949200235857685043593076012666173534055714765265248738453351071639605599773951754944837910725743874940225226191582798374127663277386244189168376844927601255477787323941697874719397567246040745630527079625826009161804710199730853756793244666532982743461982419678228171821660138604461475500354127043216694488140551213488812521037458038182245798897698127858635585224941837527038955000451892858708384905629814616166267964721786790379973280036752778290459319683846280688640596540487527903015460161152133467369619136409675806243668414613888565863207750323664312379157119201120781919265813642650990315817452091715980203777064219027096149426038145189254902389145329029925738489293164881452455880979020714729565733845437750605584557462125445103766638263105461865207581465830832329589485664818131229896472518874167492989656498272852156389750105411422098274198460361895162153685041049090823930059570287328806377582743826417814995730264253791858597506506094983345383946736505790693529947457831480435244836918971774704940055324386051112549070984957102221226226063120334645712152362137976588641117899966498231299655556933789989426393209108388792583293031646436551379202931730682024972958024793134010598450246515050086842333650387539234972855796380549301949295469712807483803946779570941157589453749059668250475658412722835632225160971086100066670546199826690333556181036979916714871063352788966730330999134094659252797002193789489706345280622605691167928848149514737121269169643704997190385666356991814095252950306696497325657262121953862605931736900589613360610037904399566850533964368338536637025081058882223179843835130356742578093159499078047075600147608708078968936722467145598497841129094212236387051645511023040888780719029497120519775105750032293212302170473525617861845418966379787504396163070732281518990261564310254389099802209615102908380597555551004415613417581340946751526805644603634390885553482961439133712369247967159288709990712326051428631879430269353538738747291278620271285966859046966325780850238603582851835196908713855393947073712065096985762293827504395816708006823891254262780667013065425188387850646591682214040757128933874090905514188511976214126702542731763453474204756435832687413351270886248560439892595440993708563235465672397388215451545545540122214217473743987697324779059149972438973949531212030247796242806882927741035732231422695303513766713990694275479838503588037044790823230904557963456549848158299016833567471772826083283085367641330925844840552618063430029171072911480707517944366588528365343298424712461365033105236780233623414356635941484876833060644041550765919065616688081800622195672513962785272539001379998668698766486068591161475836242218571931479569900249783513184920647000667298474543037963999839929837043535728756809556798940660613979600793741066999609231750667146506219933260284047738785371421071662006227325965044176901048111857193627854649244645310048953232869438242038131696319444309523963009636863593829132722463670941857305080708568080609857227575759077987241179943073198263970515814493383926413043590195022343557995312373969220129155060862310002616164244254349556445285999889454496333384157507470516570591297689229499013338419173687897624946361885112860729682293860537023027445235476923233041660647902729476476992696598921667621081586953466366266350719847427077305220756838225766367210557185214654765411682571865274752693258613123465698427385937889301553935907423126275321465476701205410702322076904582167640280328140181702252330147649366995203628103757307737531834833057061033263000080453793344688261899135000277246903085327745132793985483225190754928726790143690007956084103829538590177849710996449867742663232571122477273175713970328715097506726904936140771607804658215878614335330570888850493798064124678994458976617217703906271309159900762056366326166688423129939092277438777092854312497080996808909799148145007913821304195755122671486501483950457842143412492486791620914457402663735455427553065922664817127550655329797148116523207928339334797027697795725817512555596681802406894057404788173997089898913565810940376011441325638416498673548186060839655178969125322965049408841637425718338747872429849436546904382401092466592778810030653815754063572519190769427598145452701825184087976988908812297481661700254891425167199428399486394535062703745913233274152715394951426810485272028424765700638913481516242442754750387060667366304869337076517050529251042005305407053304222700085747410361720809102101458048472936067488516016459925057793283155927416551914782037480869908769422359874444593331445833740270353659356284673185757922013030465405137410307147995204453558502835251366537905019675407421819390584191503358844461720731427224021299062554433926575435418156348398175722911267272156713686679364496348764736786512828023885406099993716893991693258807450935363827971400845553760948051374276059270873579490208361660172247514319526649678968470216010411135109069117492826112073479722604563461148307443429777883675912389932355405106532657530011905766024475157819969846939387737567549193246405027929561447911131290087958053960142283293053700977375825577991764288566244933074945712105488349770618334693524451715386138720942040173933321754636328402756249758826813450551544162060483177960288080507865255635486975728128070093651392011793542393758250604722388473213403160556950898211311876158889739209199367126458963142669236629512175094812407306079296271466677104066613860175345055469337854185705763766138108925787982007236424388544078143700220292813086244032229466067677204673536433064045120162509208347757428657434696062502651235484104072083458450460784069240072627729525048634230141490816692602057063912593992639250349750464384934659270183407858630441223696004641508860359407821338941889947306287845271268734559705015126462992172554058195727356298736789337140199085098378368827849221248808986571732162172991737991801772747509767170552297318869140118968577929814155780161885311117421288077216166865971370451458842239859068611392020094454791944840957216163972442252568857556218921455874592682252063947580375352317134007528150400049446469556424752071906524889623517597210040353326946998144380100209292988456358935206476943750056559938885443365083192061685545561560156530717331276086685924056138244832744003923232382106000091892677485077309939483434800714319663104678319468390098335135616323692564753669295151459748540989058490824356713523944221936673235708819343874158032035592403960242367294795133411711399717406668523850511119518281627794059418424959519666621703804575149778456701339216143349309649852668412618923183530111671221972532253228061145131294231984009457508977360109028153581112012957974184465765020392378705063852769503186135443022784064527602698201732192309591810806357861985472665081505255884065923795696820950669263203245877302010199660421503459260365639969255350646692955822339514386407424864681591224186233876403225014211436412371312119730754940489292942467613469214856877307470921675306004314427806625719009033376351093718622801935485104311659430107573719019954580904195399537932951334008504361803713067478341086367045422720490927777143140626202924163792989080012448291122333241947004633636479016373363702245167247507906469928960331791638876553752229622758996657404516608843276182968048947012703690882193128015612801502516774930752249629788794901651056653933499949181885928560380457044056780467049741729456279404929013456359233578339120624772614814561095611620391467586480293166400978472366194539238759075602044577293592138046857353827063118191781401836104268459627716321030559217547749256800345595303380066893448146462774153676625304881263658022842540497966353836380050403957784425758293302478688023186805618460251141664769095576728359811040860796190750438417516359688369528806960569491363376570416739310020299933862290369916040940378746012373825443099541075668451815692253538600864685805045220738000470537407264225509455041901806000989050911385201885546414187409533378403140467820212223794695175258635583843722590996040745866501402374298201733615319509607892642717216780182855802625206964126706750954973249729537561842959163117151030339222315024893903763909116478922645532811253862537889176881504786414868530418776361737248752012639058198553485291568947895043518379115036601040866821575731445278904152723633745580127471059045891438212941695129701194352333376458079927550326730424150687953231912359729609812506814666192086085707888085941970150799561508938903726284607985765510542398509675930608906905781864847197555534114827768902134938608357090807971754613782015870885086693710851295957486188258193213084987289805293733381823362532525650773833463294477909813308552229922506505880825842978007473822500196185335144178955800040679508789006950831958756084586633398839315419899350289411384415277881634348656352783093789627881427991003251334331513234119924467523667762389490878941979209708690572675936322419137591003178243887038112821830041218789713085922058832318044730977623977925829475866800067972726051629787674399231275275109084869212017590882024530801301879946750045142933151743969754244067680354830411322934289665738773662175039124821690224521894052409481175865098378641327077027943979833383879967756463091563603823162591516429822048985009605354734222104104733316224627121601215676361193852968387420677826104938157867608293984755695863630880211153348851246799937709025218239745239593473351264440627145296572506238966723275106479417045812826227351736038873608853646857810129904356754207177468434750758370359479993734332393767514713799663404773080059402827695823512173351771175414384303460044020327008233141436913186483378350259974874563529252808062353412344385416718766202703840721128470981757778126512583000241831041815032411932013342537759121352407373853586172815357096352800156962673116305423296155592735874303622933342539018827921294206808315071777629763214650021504883295385893887129159392503077579400581870034458745639771242753548694909129141696307648115674876409120657538451075012679242451784347964067012733096233913731045108945686965399646109271333427277794012339373963170668872067099923367472398483624006084349739222369487830554667303544697421548394831362416942391706275326047202175079419328840198813014212046147447259920839341854418621030209708919371857933477959458356037578102337393944406976131555670219822747153002340062979557260578952835589342057017479422904437950955455418394583844192240531769943848942905814837677010531615941581544218032666371671937313455427509271593119844051752951732234656957434013882862529414837943220141791570230144999797848927730359283459692856680611202353560074002109102508916510275609969008010530219441046062814397986039847064957128280353603597227220181002639353043915460113145495919406033658344784703934912790394386723820415367526874075321471070720247150779597120344833454740768863022000674086780283709258356081975371384846044221675580691619718123856562169647293174273475589247214109828398546263820512502452481660623044508555868974685770153404129790128699200941161799324688759403784883080150089973968299170982732795861657004332747666540644000139552657599855134675069139501469713443075362770855081332443812523228554184973939117071698989873965055719567081741594984262833612589729128364702387731040846195497898916889730726092570913454409051960342543940597147288760969882781636279167445538640012355375022942706597771649841023541016982503359352860461595675959014555429456213424352911481952055403573785101114049947838590235917580116239098925802970331347475800563080267603745206010233357364020219697534035837707859895152368118147157013202970959528741687136830866263001210162838196592904509448260094044720334081143937812839390841339976468646316686689829340716769788496065836289514875554443640907902720851846792824165658205884605471078034394253918470212086540201532675550932241767300055985753459592722494201006566807150991696751965946883489365983709986186731148054678689202539194871084163301357077177997639851267294335027626189830662484269499231428353627219256143375724784492997464409118701474428141676381190596479709421097524274570628489166985676985343846625312188880767021239387727965898892507302875219624067688408686184246386746743385069134489513880181668552501666960490817547933209338382922724149488010101183600871244190786129552042198393397530978374270539445981782634564447607308763454151042075687664934141556510543007620861856588321050825628091604336041007399572228381966239518884056427577114545811643199323877865262221030896921236751059016748041992689730715706648350926216608618631166785098743897269568010730034337367948887899627443444381923854573437758731924627396765156122221277514061462690155505450446350413380749354663403591607658783050761774726383529818385173247731352236545409791412780562221359841611473343031932279688633626677556555606156736316544180713038551740484619598427425916760215373962505602310531345049152146360183764372010187127538460860920188404201274746164435773295725442268824260040007932168983045426873372601087772907005500110378371367377193087662974996894183071791578739869987965961925539594095679988193659186879502245881518251517126587923406945423701430738464909033562094118811458467194841314024125813483594743661441157948766016588394674221947228095105472261237703339336343714680544486301869934488673714879269237421946638812147563927940687095926468460815126425672650047489887926951806203362789827166658856027330461206388120191106927791723485744229437941492029717284789362403370901388791701052788317706541467011072979725464246440706816414325322929989767559904390777594181108318582085373628190520565280749666483484220609147048638911675568460446439288323610742169776734395827019926555114912001155241168218731515563401899115629446591699508203337965328064362815115444817260070892909664087993378537962986144057884640621057920695877713791659851523846134611699780091992519171805272257244656561640994719761687878907634745344256877663202887224927047354802566765404148025009814168142748637468772141990212214812866864074957395567408727459256793652639444393759142890879280520709260298801426996442517118196803670337342580955164753850010281289477864898278022974962659047218632768338070897338968395074954931161761818919472574618959319070665132626898655418018664833639881568982498493488323199290579748303857584190192869191518344709237339458816053276649604630071651032910705792372402426270054166552926571406517828347119984680295012106121457753646660446863126992031653544638361575900382024416170569532143114984891804421514439288078063315964980833641920260942920479100832626964961817194281305220667715828973041230098300239635460078539722935695715640706934856013317152625189131281860606483204445670763768215415747732481046833464669325362600528675910464292162035271398181642067328635225169263533839086496037418005610914130613714094968743093903623625891277066772470598015075920421234317216231316780992635335938156176976301508756848825686124282480810322456026957893192002163268432830535097049371629985979288648366881885336334354897451558123606173057511702080715879555397795241763160428186768494288857821966930724622494786352449401223965104686232680297472216163347612595719399456468792105013996734878659737972551953444702471218463621633158531697539835438356819789725323631582438192609612776929345585025077009683771610411096360123733798828963400966601132603370795940998580870853600430279734044759708947599302273807676675567047109449822249155908862212534204234985337553341226235982982017502619353968033822706782187006596902970521051041489743527626134094882814938547391393660410647299172123296497678774001124687076210980116937219034364698252650248395885412156193927692278724933043985213711643446240957484571136922565491884403927156035515990286455212084203534493424933306278238474353724117002199399482187088387221948362937195110954242985144841119781969312625462824825575059974511160973489234000720715433093565296227127236852770168210349560427176687564256272459114971247466251448553430410188709790374902146060323577309688496102875221127157472980573248791073661982928347912816637467415564679882395419784515354437645464801943803949999892173839728236703157741167862391092168419260120455743289785738740742003442573755339156844366521083016197980301455332166523721243272289593822236801910809754728605279172512226773539344307592669432410112531981800427953700011790869092359979684362809002737272542525871862139650176387791241938260367278617141005284296451825939137094502666710005296297719811412200791433948218582142221300028510159802103540761584044330539286411272457123162012230790598251159264710469211731947392542520449259857624343402816410423751119033532720313018305612920712411686779995149547887710558427488678157916090864463009919625754110201658556527667055389582335115312157312197797354690392474245577052320631490000171264033146091368559251963770462182872034303908368347659926828244189215332025633445929198267282152926381062214516693205479775754659624048434933155693279146812113258342806683749560982866341335653073651887776016945611518422341850492878362092192650919328941017441975021326555071359576349165431480528756704084551541702774527360209238123146090089521039117332744842734991221988829390902422367261325710521762263704004772768392296608757048096553700717760803140964206746226136230966273909662812858952151218913362052385166884820760387478357941438476505198558983132220124958613348591610368799283151568570334139408329115660686414604405149272172090284190993041049982970218019614969018795432628023265316729092839342560389499553987858220059347474652386148241358077885084095174997407289744711041175692651598920359063372268682058511978292481643412816989272914584529622509554166015851133796925615372279954140030899771754503310372720751779558324686335245648084921493959385788223234639994105945935203445960798080253815773705725651499674195382205702941873949678503919278351836508060119917200354161790067269133347517855140095590536785644043527964460284574592046991046231351678038784613264250064459060525231709661094142174949767288361292786505761258056128262186911298052942794256715082894155469990202334585647317661097437116979890451661703273965208262792419033003227575211049983783397528662939056446280665910819580962035137397550763440666473640123223981582906306310293952193773116718136626560425467139134445671047076941444941505101603892870049455198665630290107037874932691325353513310825822245285302309758138202367038358285767875769543291745525532967562896192832100756466724113510749740136695980568684210927147285633317659384751743825286660651867355975793128817275318777937828715606341560732331884529659050915243954343544641029826944877274380030096386040907110167217585724297540494742733106155734353072292658496819224746262087508014037030130986321334450241729883802469061916935401946860528539383970065154836342142908466306714401323128353973261401530768750449133662707434049433730611886892090190324986644037218551603623777360551991352967778781178969053561123236624062985342506037334786917383394188934205659145955798032174738994068885111061577721880641522073629860313803949352825911880096859449734139003590931786523952124758903634107374484848426892795772531927044845406573112111743994031276699598328351806664770860565155798910348934556511891125485308285783005707047590938825781204565586326982675096345634634048545424593484100349458523177291998893892143584396875558002912653762790242740988576528379569974971123354241293307925503114532634655216984814649226601413759133132412301749423494369205807472742518595522823410488459046856155543735790485062253012054180513270275590391635329125832425017066415925841217787821340373527073873487646400604548201178528507657319348008807426570976954779432404503101674773153163190167250776168952622219539990630860862569420231864283376741160900159345718553421637763703190710463735655522887301909596296227341596382021993572120759029660673925023607432893323992258582826648727860157275317609421312178159213206745117864467457386128939539565324128837384459785570976348472578744290094157437478769151486025512366988265886494188131696322186874860378487691318500216320321863427035280588562254813780294404374146783375993938589255757008623152113055382214676132033692334777040469396345293739875561469400261874907877922384623302177683521088154047944335038269877394606208081234882674578729572346168013520291306962119538395428356720372750705549198157062864064592848838705007571451350409934157273695858349765937476920292673932414227107470793632330732871828190152252479112938871194588888402447253526735191811610014170392902191994145895014343550492352740526277809344518820461104056498113960928346413572659249390920738542635061135638931590836109740463736360946675372658443121613672618876650579678783336282834823407740353370772549099382104772295792944722250836401522882095890507678589225734274175291352738809908913373901246291794665215754297104107832410163936749974236733295241642112711843228617319165984988439589708383479244367678716339939703747413448659947435807587949324828446395497999626687395021273736793636685466411368726772197150378031448811844495594290318697694939518059707034429635937499979392547471354781068174646402170469138021164108118271902820316308000086778785075984171567658780210986982972380185725974952659252674975807015030237867671825615229014288797459877109667758099630698484724146171438579719962501169964985909538785334253584500356127771511707887043982750399154126740871338744206443701259336750397431077888893364512544789719830270969881562128512381905270146533466128195506194899810545955634866154165725701297890606965906916003182281906002989503915055725726300971883935744725545377399477655214756799619185205918261835653900185780136748696384403801153882130261707288810569701429626430548750699339261889683795907219547317951400687933990044835914667436757917936069801171531333288192560936108886674504636983143543335600808211418922511565716674152360793717204611852244183626382040569824648371449400478886396477076010083802271635833750279227634012466752636274104864876229288836077663873300709729515974098092139976837802605039118031980421769395532478240358488158693864519064313665360591482367045639499718345717288990608442732274789426871754854927549358978971054364727726201109967335022705421470396383460935421033655731821587948997154515897859589008344030292599443233854383906565632525696269653223309315449560950598553827749580719417131914148153572755986201248850095270770055617289707410663358193895249850968337962694212689308023026739765419706942270401079573315264619049649023920144743507369923525114112793323465147516189458701082431228398985625443339323600939684471347915110519450678469980514210444566623304803386461504021645105964849221468691689462235088287678124177255410600175487965374851835848494402588009481142508082989777505060722784372284667808189617235356032417206342498130600487894544750842527960215774094909285289045467720928119628395354912637795018840019271857530704896144800937708104996923760607973325939883308772267674891119145832069314751721113496147440924724029941242818641984001447823433776462253858199083865282747227663371430847204783531969446353509733203621894522913878108498422813140237654013739994063748934803507355539368142379830015880840826429730080518621598311878813805466885108478185051492613410103889168935641516359233197246945179054659977117633631928563549446308390275937177996560473927536365677789067584708276627813974318183062394345303444996741701431990964046698077944594777740472471390122652888781989636896110194100492915455354480740579049713868193456992623909580231876335546425643206488017285869660548401241734489010380992825034509215127805726436728265751735078797883979163399549610731835752452080793633076552022881865982494276092115193884354949841440793833222104982690835567378044713083962128478279678069955458930005581538962620745210729395527923914113646192981637885251684161772511264843259455139721949633311403829385368261018751329195658692792432871416472714999752338142207324898754213043483449843720302810718629766385898551283315320581530327008233183912432115571772853497448456044800684301045335176672943698785461962963409525804553774798067006823513972277661243643350215964257536478539183670397121293856660123895556241837766599175533155862865277300273807042871332419882123387208263802550091700614837971023961474803968439519247590538838344383745057932194252312043836021798370687118932052507489494412340881941757206119200820169722369212772050557372763306655848190722539453068863207385213102882285796683842664083809609629079321138062414677126369760874993164452694541270105455166925824423649631642996221584018362060050688859137166848777617487094842725501974981343749445860160109261952828256054067923735296124813240965552567846496858635329453557847808672126973213140534097800099682837269393397078632311044424050762800940822212484884569875027695115453989434069379620689505687734009845024041743636191955128496345772042968753563403344118561562987291063929187780690705692645203911337774766392143788794401219224742395916771993450498527401958160848795761169938004656405691985544127739326846359206822278621201880177438749004682066391992802434207404139119524232021884976278565183560937661831020648949319334995126098384695407857711685640257369208993895751756280015187099121217579877501532608718302127654389824132763676256267550486969279348547051886894011814534794263144718016352482311297482948840616586820000549130514420657738914879254788162181969602516207740756325008428275263383848050948850967584488469173731256566664383890498513964034237746860413807219297910510580196860221637441474552712460181157744967754666116948620174378478400878386181970871666343371504995078744136767408937485728414596073715898937264054023592973726197793381444128887845144749370593071397525452015692341108175539880522492938079350980827241727432743948703959115543422492290762331215447384223737975283805507002386641736831395207554105805750399544867920187331078646803855187236467092141600162019487575992102882166047667977080887985853844614673944208996713257334391924732958494252739069772800461997822291180794720725232436348230997764744486051820651149024357074776964277668749126381645184696353686286333136088147692349061357263777598667826132295090610902687245068465146491998514230217945304404373340786656951886859223607192835805767557511461266816056046303087648620417014403034794970156976429826837838025882879281970364841516055445822719385305074295942131961926476607792160346209583944109722468185836197971733712656815425562660624837984924172521504922422600545957583970902908472304907286844576040411367102040964501280046476116708141587947640723368124943914557882678812463513786796993328191782333435281210810901635850567598684841115430334832946584014057789242971119803252413994960248647973042067218180994153773784878723314316584825784342707860618345601328050194346082900656585829750599150672633180176864653040148787230350895177720721416595984981904852244328594302607721101179290513148963182136749177638776849541927279234161139838942231818448528278729072924347630454767781355667368549875884399431786558335715609558984956996657103063618823820029015184050450939612060159478690589140217092005365799010686571685638431990761172038458298859815921310627383247997474358643303479151707043265347183240473302726281742239796568708192329871949753454647666778194966119873644686858790573507909910965511246610361186564883361306271643980756912159387025614846485260473600293783565510201587445624405260394095271873889381120278972178860088693981701923541779210321018952178807062820919186195937261032036539938674247867450899358741619736506233908098927544121738516458128458601240381605540867872067988474314202026271408425868210773167392273748192090657344132046855195545941768410175264958274512407964165731815555706432799140761036559715195502986335815478015300232921928849724528754503101116447290558899634849776186776476632946056354609512804465643031850592355940354839794100797530999052790580081028670338956362316062876604189634818058735621705997582391779198228292627882023757664851077472707996144433017989860956451321799090116365388464468488829472281211126599457009375260215829648239105857735218108332034985064340426135991005818476000422014164629290523637340139484526569077540724081050713479449326201308742418136362178997969869718237214597380664686490612182358827207141176188117634969412385838840302540356267193206971395427079994143102647499912927714299605598328710594233419831861634863905482238863044019986208961277909506538100021859922599280853042757482532548693957839783812722952547561310809409450992145274526949365658434224508532541606453266559671148000799073686386828468463417907717697215647375396739308784153642892071322879635011837822202914667267224224342050242200279150966163609572701653703313734778066877609520451326312370559213820367036485264567428341675658575117369215652154523403466804476924808214606816411624574193870396402718658864328069742158999325727854585350525442645073327079581178764685341545123475711372074147971822103604445510832038657417728738570512111236954796596118574123968560080895839534787594871139141566030010165693244171847782400084391386794627145316160346852953088686340873171520173106751029483311148438524867757982593807141939116869048678058703592789051178959902747907275347403871231564362511940905851806010091341137032216155370458271582862560643164282607747628194720582074575962965635759715418010448922449156434502959094553992656265661939455996371285564795456091335321659673549077042126527592280999163296464119916846206327786836378840565163435843502347801380031959402888169112762254325711130073820698877135964237445450890087518948962763679195418939752801948904673947724291264481581605775076724315310652575868186224640312583795504186480133630844975630791337242923624533780770679519514002630027238010741839176299066680264678156612808679157224313502754961761619187358037568782801668735828546257995590878650991536755153667388620638312070779926376221801840619984276003665976198901658335656383158801906852708923380616473890930198659141224773136733517934396219214215590397627639968931695252114242826049689271265216681197601480753762576735192413267156501641315117324636077940224767594694620273435298894646100867284590022236704154173950327551365217057143860882199181109269144189578130777247361370521102155133063257594404416615228342308867978066520793826220001812490808884398232896810567293709988500994910551638102465923517002556708857726822770180579915562223238520627304993710568429147224198002125220243178162804777906844048705932027440535465154327309158902190958624279940905969897466210346385136622780558494569842586108913227361195965847459865610531300528587136447257789136755864787881469589564459088311081222946522910290611174653554298699941638942300398151498282096703277255871562310962719662699534518911503539773692734818873147818747405074726706570858941583925879376693941602665230461494945818029078453229799279025249314300877847461236576349271445548182119674850266149554444688579617327571856827131137179754099066917170188190227530782062326666287292393210006219413386085851607088293422600636544236437159130172754365927548709944976645929749643892825505385286137493217781951639136309534128294764239637053032842274160643825246902585342745562461195144284613386166690149623203653702936270681458317718321753893286136492623571808546151811245439733819437241985279973360790462726527976845227273502939783024034649718062453404969898259551307681503932901105680757962102920748448511731966258919262967737014469012540408419153238800850392808708101391406603734534149933420921109612833860722557800432790269561706536862904363004014303182215289137227851688158916121047759095734596942594072663434992337812056330770007930429270348408114263161462600949841262404854236166494011728550707733930185823830811816975850712384536973480084702476402297837816965089036639710360266327852445904883243941640938632879211157363859660138229446341595537057905894073249972240847020220961175738967274157937194546950915916752890026661990153581505871564081923620374834798312768547891840704105227036939046352959887606998836599193372114785720357456934382652266154071452690343692972133519047493745686918404757767721933368730971071202022304592532850523934395667438937993038609862607934126639585967759285056608822548503187031239928716331959231213764712561775559630117282671401500740923192068896055796856249430902862347672437916149802083948099234938837895595001471911066732319072532823426099707666510315979393288562081225737209226388751985870418663481791665122710526999027690121071272661860595009555360354078983978424151163118955553434407361475668393909409348520120490420375124266275897222022811280583333187205941691644967073785900426764253925557100749619414853608150359180656041377761835758454426562250844718941796443579814783311054487616540230753356881375956524340215225488322716016463718486603007930542384183352200848913940747505941261060115852585170965524660567132589188574261917744164927674259378566478319648454512417425834049428549672445955435594891377704941031418319764857647417821452293819857944269851975520236648071890740806037137521789328858086092785563418973052582480357238926710875691720528008432707030656629296276338799027831290090660715960015845331947268486717296204823523261147073712942739049092824875496005319875661842429230666289363258175038839147617698571910060092724057184130509083345418453265496577908831915476957608261147731140941441223232961757659133823966278754489781488574370811800910750540761399363545604775574943198695448504428979723817555855343037970724786925829648344287432579242245209311809549948070366016577144120947008799942152470815049680973598348289876446564457618229598275012192108830043432323701196347099270429221879572547788774794864239935034705396905837391318310541213284650290196484991269204782624411249963461077629555272062605480883071558791365141209651489462442657493984131266003672223651958339344915312602655579541374344868689234078523644674584032904445125760049742921742152608297951274497738893916064493359106287399425581599344318197661403423125985660841956264746392184979056217836064460479476821054887632111942061510587725614717983275472913773887744007805272459758632193035114308020940217445177631489662072624632050574371844564139398925503043495606925962704174693364847082123478724182179927863768154933206261964857314500969796866149194078784538474850702673296142462624020964797722191001542267306218550298277979315912922626981702220663364382197533761805684664047262623149220230744441709487970963806215247035751796569719916551368158051400662145565103038990273766557340806201804606267620035777643027838170378173866505771121256307132816247539370852405703599871139275553401021519550452591816503453341408511909931339561042019691088229019232146051897887899231720553802256940373020851596973805353667187719741057427400151859043358387239791701569143450607103320971558986051641296474214831358425834667744665323784446865703752000583548038208011933624040152357401617865807535919607183458136225139154759026047366527440424818278118115944964846825888617893302742391961500993674772831720859387406679825135123470340751498253414570634459166248375390034659233133917846958347642741264757642198579983875774486266351388957650290016951144271841957076194923626946167886815086640445528877176400963880342559846496376695330829406895414638511125746891741195140437492946560135513442408906780179887066834462608189063216621345156953589455795952497954042880330849016802053162133791555081353830113101480176218900960435027230216552019569668507309510072504684987774423275864468810383703379128310247144474893740276994730106017697501165677507582521935802080823757814633852569363970526491302783163939112117095848743991133255733434010345550765578528664177030643754687013789309900521068867013828561496642057277020905204765764638516554082120444373044817592559016783281320800687106894795965562980521926495409317415991941777263575999080474913906417773846046027089538929158864402454703491219752357973783820721253720549342941786334141466085160730271500320176625936410191733815837012286433466527715433032522571032372605187327991884745008677422925560043336740440570613746572940587296337303599505139282816508311202651805719433072921577213572974643402020813419567799520630694130719409414855001190495479794569106292389533586110059176023772313051096974834261575325478082788726608827819212483289121092425245995457956330021767814701601479632308900978494174874130493464070800653894540938760827045113099418707254976941089396984512492098682923309593222854494088587171995613476574190799978438719357405465643527900790297643400700502339156732405096308223395361501400513390247466526718376413629262284973329717349727842025699779018141229297139510391153880514841542752854423805214981825591224517078912361444850978298068139914810532548220761926271939261849740859953411247061567043472328249512111190322283613626228552305754772766333132366235355267308160868825486233307811702709564101589485577238725114996026831587787001200749244360500480779389362734584025778480880818795970740087082324575451749328353067491248574288008994102974845087209112414712657463900999814506196846591230519984769560115404177415488887916689065150339176203564568082048715236850901081862890851710977002815278691044204988286343555253189734917148243744541141304407876149431847686354216071592608358667966829332121668954044208705926222984812584708731101253003681860636425706504736121011018304552674277656147654137654699510979685722543085772867249863378511929079162904161724123082039340207213241072955427637815319278047391322542270210565473537396017736907323797635657650970700856990593119638135712062461840456045415788572675226673636563070810818910049628682048822002709726871303403135494578276613947463621631913946139628772405344135481328025505110568912542789389039996111338287919511806626551162426143698444009829781767441674286098055171194054497753597189436071902482614317100641147014411485022947936975131578380046147977507010678222381987413972427754163587023050267105911757819701977783198435955233985752981885875561930642221580466565717227873964697573207696449636115557739417755424989232120535596071079371535786499434074905286673809119072660981747844552064562248542842413727986123535465483226258220078171808793883143010208342954584643269444472254588711968625164481712099100691513904135339522124261007423073463584436488166402310434315721230262307457281363961714130543431848304453318798496404968825577860849458033256587705869431512628995777336178918476043247809841651702486958504288198159663886403637966441494134902686070732603731808521515699575186487563328315343658864907060828120375886137789977505833041006379656639900238178709488619256133590359670128710150481926495908035455059958199594537313064636633791354323546005969815963029911749329751839280948694842919127861143123656412639954716249419205589735415630449126250985142093810925825693586765291267310358303272482504542482768330493198546693420774877331383582785150230312617367480460224149078415073121698613795219117820160956035241759297613834653690633915447896119163559891943110948680090423310133686162025229872120266545308401044635484779846941897956949799022643438696937368260033617035167345343246660341202872380408916785759626256162460430012902322887753146597530943783081987733949919527231733891108184018095372762809629580475426636222627682431871272804941275472078211670277769555495323214938697474271143823290791480821791811454167999490404169195672786747237743605385021728117655623495586852794096795303415119868096513145982502559118890178095998125296749519185914748483918248274899150301370861664267584365662937008218669786410270971839762206147591150037899775314256047590374571814700250214665471127405033519549295503927998172762317220191989255217565419725404300930502069070737447002383680328835838143305484693144733696465536087931894184792331952988322871037628367092783127319210183280501119295075635950184111113812507767071979328143768506523435669120910097494858386776193259160010554322632835124777573315170014570679569325481693364040840158617424615125635087096211772687408428079875638987510979300694445756577708573029090814034905153568326281715097483219454931627786006927282061077461564314772224272070124500311890266833122227171717407773349388545869147476066724647510540481457133368321320925636946565241955500381164004896092472303535931578157211386014135345467617909547055248767522080899008138681868692178246002425482335281727923375263944781745021053929669815708603923607046596391505442751032732915242986128873762335384360501181547941706229156546156907927606108618364962547332670094960033321706195934196595326966843200915636091748788422247013205047509623104399765718059847836231805231384848805724402288415635388983478962690245687402826863719232492551275244460224479235966800196796972982527994964406956505791226398925792738709071880613983311724843352902271050417672247538742713323432359320679594976769219991757686804952730735100707656399163757167999043240356877418064836791716315009545547624579074211917381706593988382027280882400316785890951585310196555575471881594670014681959030739410052319576453529450756803534097763161001886552908592627841324472639496189456516125431907876237916734645894054574838917589257545922625667112508577516480649726236820815707787912810329040546494562304669066235884649541746480335677478253214445894922951060250932874261185419332183517879223996822023567938509265190345328895287687581676949225055596342895379534529355673224085330568894572328615814463849729301288942785493089761959290694932906687368810806231827851301229794280476187925670836473010977392771138051630082660557937887035081922720723794905208364178103981719594243089798348336251206789266257276412194451424901922401318859087276433324680153048151104197122287339006835965566805042769566922203641629007955270787920459154859528525661578868750193836881202074936260212075883808632564029555602832009623486901240080194332379856134645980645762799149143612369169090661300477856923442243165867646256890761364442442714332147324206882314303350628731692857264025737970276579266415299516528069381959399570478164982261838022850902523976106347744440545621994723663928422315127952226644742728804367932806277861573493785832467595267475842208745508352130098006668689948723802871212896036493240301391804380418335388483143531659786017765109980585793253261465486064538331244689699602977361870121648367073328508687349529790279782998058718303422521951687783574973919466560665965417060580068186897512435434257116421477681660507070341152889503915629667785839238378737787653339854448418372575604645772778929518660411851339131272651867676326874876927081134863462706676406732198755638495424314549178406765054784538106756049423649458477945560034435912619978159084701038768934864097681721636230214166383091464780744653886707772404290843598760852646023035143799567783328851386511563742617723007616163170540018069545427613682282183670244341435397731092108665052384787184879612587027307245566513350803548660148887347457915032641400617093995217783973206481029347786752901888319872733542446413992162282794228850207340887364422973762576224925762917893942198569250775349604712228890497931677077014846934306958884667092409095390327560864899102274024031575356059599707029381683742326819103858617663820614685793654251134333907060525125501521530029428253418998571496104427932815636422533380640924595376902362783479098455972949529787230276450310695062205221162275908074367631651566202681094096208339363380144639191513414352904168674496383214570244340137092314672948256328974648572243421224322209232735772823855881716768222757764852244924170835784397063602085189337385912623402465847723013545013353867232330723016483810843028290775939015366167037998436808625728873417570900957553948677910564338452733108645791800000501108318229895656344480783875270291687897993863118143361322884597968101452882591709776523232298046477408723727561028050681479093730376818617082869834958490095567574575166951255728067654645187593036088455483081924955572953246587067509873434239262912970393972414684982377436956057354489352096938001780444803482758433858283059671040294075055423760580982613538010985197175914877832961100495221821092996139703608674408572933443946309022983493349776093993168451895558595410139131632299910914019855611284989822950342153475709579989989295034037696290433856603271370089280225733409371642328391132434162214809229970852574839230048163380878281877640817724012569406897866947422057030807186630626442607649069035931747000518426159855787530763311504191925408528353766590817996530904040277492423165543161532691291348968663981282241744957802918164346242333382639154522294307761819204875600137764057477741419409896987653610753458783601132262255415775224559568571662824990140559191485404115825672019033031657222295040507824772527629565713118110027198404474503587578356662028198051267608950595353716126223609040133996703691911132630858305968079734888531777201811292445488416785865359541823351652156952800745917058436035868216608622713009468862633080608311749272740633495788040995759759136813591618300603982343123290675776087129921267804005606905720186813527927043893811672761889943196552867848370651563956747086159490737155705852843416862008978838222492095327275626076886854810692834502865396748021566237001422663760510356348928222645778360468189273964898566510856553248070745325619323965751721671496654840294784962411946749402457214724715369607471798147256273343126748498494836257873539238478614132816400247629761095551925668874563505760525547804867576372084933124515094159155822095676894507481508424905452717706233841341006100399628891418643374727175237444722810634535938050657357688664850147347477155122070001690655855354340641228484104805711085829475667201496628843339963250982147274585675762611077212186411713787546517863683033716371973130283042329488706600416190299274405117202629832807672207889728246150375764870868793431562579398620319720534878354472977281564111600421451716269382122016721437233636780338585404133891550590139133932127203988733737495871502060699204713914862960285410984545944241054612491431404738868399606189352257720707154162360341376514869591631181475668840266164606625510327780491897535785248856716765723682550056931890446254960282686621533191003941997260599068095740770084384920211942261535202724685970634961150283555159695262361881274000102374807451982890650765344859701293168887591661850131680244222555824929409746134375331344868941934037516842478199788224491139677337830833436580456492048926837185619028921097101478696428341548687210116813188350884199940504765736111845908652154019507216502582175440626526875941047409983112853718412821184556605624227318760091419293148800355236512512915809710077769604583917097296972022291292845813776414794466153738688397839659079330211428601308908796781595946143465165920773113332186862035231533477789646568735520963685168854245713303985579670183345784610483090175246028560010852403704416147142263776234704632860506058641411158997581794860509357329532903038851529553332359555516652227390766388830635209009238312356446853383601246357797244035621451114010803124486138852209824875045612484110282227386055188852759793239077542635283877382449944472009803459416339032250114713574656656862677579326605663969302146171045082888577413431725038322730159188500229389091027057809674633296284114116648142918931357343310904204624109054700813902370844187961654545712141477141033944570410724585440437778400315922545661191977679660018452568244672143236517066757632302423806550752355356523926065129571679070007627117332999404938973601842759981415507171709121711945365470918149063098108783383126954655829195714183604616125603100222380619378069179595482260263676424604584804481405462398458021690416253729820825468947152304373220504535251744211576849903987620416546579196604301613748799300803846347064762393209394119863106924048355167342235913718301331279287798458472595892241928112588115345223251792334992352928503888849489546428073299327004665510022960106131900544286390281546822636891392405217725858005129573985637137682026818167234757637754815196698071032759440617068211068166835248674880467209340450720855614745862558860655241263786646283748610533004596508703448220382993838262236365453524360700333893802912257879315092205171904279659741072944398072425887706465141000799347561119025661492611838443345836875036679492091701476859540857057054384399980222798989347329425631666953380747580575573037273057599494766503162052263097188790305397363459397612568993145200601505615913999066684618803205906274196894580254828704285421034432163392318861006365603034712667914783622320316149761006140901747440917542040918473594485363589283170899801954947183459275266633647671565301547126561426662425285500228614797602223931883025845678344501066136386468551131382115750316658805816326447864664933540591536847344818882745776690988136842622484286060194024519515634978907976614954647417348181762583597218716587274697044336956799017502306709139707642475346143029924420063455540670607963346145921278148913267366751821877932187230996338182145320721438506127380708165929982531592104474533905208966694559653585153222421499331243332871743051300519043494858825214398343116139115403096571021415461887861908793370532690124798762176259268170614772867843400142811547614215336503704250726460540750230804582981911626366888073309826546670253328368740156922522270067606867490645920531888198931857297227164200929228768741926013684272439490887584712858045864423954444331902943031231139055403505761456738358089012728775453222643193632589842605611229427144652833922744689468546139849976386736359064660400906314361943944831877459965165164445691722262914142867632396990853081203493785905809768612137663019487472958174987780938006118259183428424181020283036573440234927477530290805799818458540836032042964188284175514684029113201179361833091090208931457248612996514707037002506834435974733108391011739124701981830708653759923463040545643810685592562820614024401233328271812073164272984320591043360957688728541599409923639333071510842966119643040328365984357613665524199197865657119857992840488132847565780227457842972474208798246544716090213303454802301795496440548670065802737065658934773989281785649807562036168536025874772417860477520072833500704203165466579323270226198926945050127564759266832641240550124386214571335578217408281404620129818741202162249184611940116030482744489215064295820994281270224707043823459796814228326606738955996002925082102001773683783224457582308160901798096769868871082153378955874795116262870626777164871238940273050094103827124022765824753013012746160211085895291502715904404422265225980209718821275117508717527762408221343658631919825464021362532849474893177149091980555333429879162827907875513936380175221404860821904808093615953612226409578894845361329639066970562216198471724159936365925657448616791832932538352984290844564228981745427878139512159869777265801412057612957832809999423286105426328497101872538257516683218671824475148165385865674093087041161073328714266390412860632088110207928150246925613594840041773522642765476318285616718564333550503613587947978476890787732152740219208991038284940899442872354939072655359216587139517909486969179425145026804243974903233867855456197597573377950559492931678918798075457116760248734199202631965773144830568389260444911024544521743483733909731788877308252490017264835723752379741299367663619957675502478028887903367927913361665790687736611337782584332080136862468222501605921567293879301495809313524409600703354978187740957414362466887820041051284228611402085418033306738597934962399204822029188691306904373631152496119940863258679742756879010379880676725169637034526717306117126541214061617787951866442020133683396193689137000537733002557624397057430001418561348225558698029993050844738367531410111636157843078996220699102715715976989300473552704978195556576178171242516988805019212284742968858324226999267895842607000723089874373166544968109673946261629064538850659049170164500020617075035046501638637924773626509752864006659444768858118349161759013397319546871182877479732718852416601674088824071892610862874535188972675825500090672784497245557567719555324216848486250287859027760675177097874034393461002638833674370142829271549220653573562477472358416662966527831826008488846692892943048433225576277411809312627595387814917096897861920688935460675820047591994077097625706279772001357668801319192895566247368629789441227040161716878963889035761522175041917862076876050967170985877408920797586623972768140321759934144714942854597806088555722366671851670168354434447703961987469477699473102972910369337287735028686777080132213904755476876098387313274568590996369861381615469010889042057266267331137771327832425057590778431861732301746867037571743604085198363071833160521210165253162131345313885232666092285607247845196134078797215850357025692053127198350697273309161350704173081986395522150080603785255985116632205665910118135666558556424604932342264382188041668780315333372930308657584862124400148398705611140722710215301145724883697462335437520651038667564128111763467761061696637775765199174422812758143650682121944972269305621194941269437070409342700472628316347453376459208403788175933538539641222409260889808882563099148803150926423371074895874719233693822686110622800030333547076209289436224714372662613656456017368630471524172969317515509574798771307829682939457511384256394722834108971958374851419665254954309053581913274738318301962584202695659528053846331683793594628430758698652420907073084052681956455099780646983708991835458298354268990344890442130704833971478304757739877850183590199550928432464656742539106255194391567815354432076424597666474205581344607497374584440950821389300223555394152846960313091853731869081468781983688968910253141649052711435246793490008997624832871954087969524208650781849269151221788044741182272647684558320602727350906973575194777910884438853463959757304108454526202997724728228373347931392641970072808589605151657450957564455785328928753332646446159362240660399105469821998379449268860657769487466673248722734525634234814228109426650926507848524745065806094607433214723416127309613275016327998415622205078211846348081493264502151570910147198199122229614679604329136517803751931527654429013829873100154378796020440965715448313986255403521319441898346595729153164930959058204331323422590966320704041077844959397402411676635686096516325725006281649069786770628046138087947007680494342011163995635086586066213403411204346612409704012113037210331750474743536371258255037126165435145841549850883481872453361188848039665753778558437113309889715120262517944134715967844517704881753765586192412605890893842528125102693413041955310157410518960960459869132196111389667349446923771707181272299412227920041046801276718922399883431267162109431166194070212516338795970731813256149666420316575871962306296050671268182210754454173775063550804294183935199785476751982875778266102341629909625348028629484704852800698263635118562961828450525763819405160233538475139673479516596827609414498475762194660200529698731267098258884726586387805633632603126868091883400210764790723518324683405348001733065844708462617273173071199589380690790066708964663383783701258903949405283873586415775740296217848799243244976941984730515389182640055891614275320325945570581212116659840285592809730735478941428148246371835444022782308335387973137284189137338592008057689386944419034586036625956352923810145199915308901868341993827060987499024674444536528743133576717790621197462251417705884415926820652135848263805205298413196037566238639779748826716941659699937569816104972797782523374554898505811542440203256528209189855376441235547899682702779546078379917374098983730186532649909118802958393002413422990476802419936358006278372313090664890546323242393405571650151504436485256732659474012341171902011471053676642996042037442219278867925552789348197052042465480916602795154612236657368268575173879982630818363709810217520915328364012198089064063972945884413791379008484979566263592843137567066564159522959545878542067155690490810892017268431699543645241376176487655666157399143607919417546895057438607899660613703962759865501006790024305496906641085298553994301782885096448730325764537594346944544501788506566553275316582845371695235954952406577231466073161561102351026879920123824530473418464349555866820750355029837649169348269946206999117034364388988765662035601023277009217549236494602196389625282482383624632234107235422422187786875437790322669437856005040151374282434395342757239220875607034431679466607064892994448015177776306412777717399589438746179847726462702025975902748731528536917366657995669538129581708484041770050726708697048116672617491537376463843282238066682788034746299420490139294713781645157781208569999899152135009982233240778332401051965676121693035607759801781242727697404091154394402979078082335612273012207033715524359956042884629578522611725784011278935276556578818250443773311935168241453858991619107452012799432286751863404868270371776369453748360969667261946375130895722119337620570081455208842128122942776256700149696908649425912130952916888921855574114229496227193711800930902678884097282209103887405216685278868564265847512589446281777479358435787275085894997335632949338896455623304198836223999697915542980996423578644502003475893781872196353216643901524265105525497653603831342115247932313223852786756779989208054407130582330508562315643958864193575904269158954592448774994439132227019345628452348982069954082698555306443529075619615124512951690191700033177381980920246191079388008949899323832022520479925688382554986307640877457030852072867974532366741445570349603462704750298646009730862093124051939350194786934431027171246067033353060902629778843830728810139335813442915549252045573231083249722306134399079468205822689596942465907873762169662293249211465137195591805198479937814331861706944610438663600752918522267209540143676911364565975029630329019571605574601949086837323427756377862144077783489687624864268366601134053383612587931431146302033215010175502078490339283898449407014997192196204207575461193595195734785676157035372967125829281929321253802416838363626958358419704063378266216061156732197610634892253469717001046758383584499527183837431139385891231995311056862778146540063179864670433399012387911768736744630741075631781205643515020472923377945287040086861274200677606072261492312663537424210542807002882107002569109550667910086749349542316501221086950638250828755335780300287438369655048815688742421798446109312690556118149153595977188079040462508036840500832629375284802375187683900753739988299910031122006439119974889139401638540846589541978795934344225426139313337512110136617397525149172237703261894545236148712025041869136966222567556079088909956972020181769580034088994893976677527393926746166751642113993312046386801550976622487025369435820631160540876754097782357359465389090291980047290251676705662244959586948114351809806401376335476706031635948397124416005759289580731128251810297574623296876372440912795205142801678086499162155088236742336981660982295494813231196440927365594631431995229482343749941059956883856456283183643193812823199224476691527551420415013038280397374728185143081302008314528720686795855942597802447660942026270099548540512777429530372260159384100373567659458208465743853798416342229339599813743428276425624771726901810677219707004045062326138280819889544712698177019952753449110329341225803542294111874695200502977675009887938498215070985510646566842952522082169776681926150099360962886435546556266143449457208918908804358654506121693124263088100021112547114694080955667704460279975508368774356929127889435786304412660135190896644495613536273737371549673208937235892177958634741155422582117207324642396779731021717359579672090042889256956028254002245838851041417333686879278735901423378408685681000435375534025144955564935798559871751700852388022929774985294173243074076905961795202354948237089349267005130125361633910843684182101698699657221396174410423192078566372144745937280501503057450814393701978136286247368907932725244381733614535296332588284595949766227932283409889642933297212963035549414883570808495918740144881025311285668371519967851641839219522154059041976295691809353128433034323165714655345481468329618785366439744545606132233238336516632509394949641446587628237565814467792024934966525890876263775840233721716391333470941356334319267605180563959805986096639266744069419287330426254397568490825666700592264643219875727147301918532642295602102804173796949508670362776658231894608773029493588547506478939270545056872870586453676579579117675648125919342207593282085090652175695383972295116481310864892425422020712136962218116695225913420009927516779230996663689532022615281206259942358347530886072112268309396171026813103832107427729734563527552283469505350779961143400514733954749390664122871531024933981007414590962346237564480677299484148320462623765574673507769276938057011387320026621753643130431931675252336944260701393391783141723301639358003894754589057147695721090543719657948525127888464341849721966281257929554368167834763964659534861174698189463392278795444085023085972524498799366107651129776990434466357064528928443497233368580460317996222159924104874840006550698424453079296860210023427239605121764667361361162238644099670303635081678901941523540171347942155848430856614250092898967660226003875194456987371461895133607668478107021144580018331077446925298424037676614642830148821723358100829517862009250796370934435723240153409162129022482349779783216827965587090260568550776703493245218137605978176938819870200367338722863953206289322427164609303033553253097495155959836768136782418211634915184863507848387730337105705361634137233894649296344902583008336035176168229711725392216897309744975039479281854989366278001733690821605685416603452131535384547289005898834564042635859546909665280323885934141969726280708281763145612151092394400184232882727846767721096861489357799818708131176246758682372925680023743085432585195858040177732145481597976420471627544229569733639773340937947546841022156841679744189485278015444248376199555052554732370504977007169247534039145522960844245078940874615622184907037511620860445962345069357866843293954487462429198467155792840392969666148851317000600280929625324788329659587821376914890076030336291492259477239727744633690790948493438962186088528997546919581413210953904578865039514267027502674834308488341477935622610409286508924356696295970074127866234208952742720518736226569735062673039427870159833181731322462161772564880342416512371314034756862973801887957159283010277045877029658583059606831368653061022146301466654995551906310411832692058191427356891397233818671524862293056166766059772650179534949854332673645190265715732904066455779899454159363029893082333196750122742635759092341756863238200800495314244089456845772475050952122015818391031237777577891095916266115073091714979520170435854771681476689975768510623425472401502006221883077996284438462397802507621272486160761131719138382929304991482314992404833164211514091478177362975868827160924273242760563652820492599424025409554094214165761572296304186447242356076486601421850112390254750417455482915338344016539594136205587124449007080897513415956450783563026527370701687151186888182028195944820259268938493860986584245322863127723389957490037719627200201838917090343816061841987630839599820989368014339812365047177480204043901323589713896839247823552467876021170641779167107623998226502214827302778188473040951679340524582803883886340508495760653339766882174882740772815009709130709284615666414944811239226743199059152973741836893200299984176644977097997825564339033770144488646037708801254144160163573533629406579056997925152391808512569287586864278919300521253084401122286508383113474933681172872604102086461261623579889071020982838852070953439438117280238078882120178455406642745778587311348561131437525420657031692735878497565077741247758669251756717246025699759003943830229636427613444778275675680326427179709882904759509305634760803734507733530787658425236404163910618542054735597549087609827815804852648550858922003547208517890320824379074237471402175861165089200850325969123192388909733546287565959730784380742173661375216786046170640438565452282862300474796237788814659239377102962749598332828983046174042558126881708393280195367863938596919361923334938645293957693962620388247007332852507127071949156470072277747247674816368448445454333146890865955459828214712420389624270897430107232948871498041429654040802176798131295735119028242293854340446121512374653187057386011936564219625838958469983738092688566071569560136720421064935825604057736040173092384408054135000546265547749457533978177019396289407690070688619684223897892462762805846377056836199145369429159319022122492853415625601680546765229416694755526096208457067784152410186784864534063539743295831682640290757940828952376324050777967781833327317140396565807374284040298990185285093976044626898242375088208569830212573068353505508702896675592053357159666388443192303529001772692264199867352687415856856300257570032764140254443751318759202935327702679530540399879980405544939145756274525348437851009542833261344845783511543050787425699249585706551004313748771405784948886933194846142160085589453994335090947756442110610061399080628838363354586719800674181588948487725868480753209177192213279633891569568809413554143674614170305609098156188299252924760266429064974896657178267107075805995797754505819674862688444998618448840918308199216379429203956946189078350847912482281627816669136136898726880363020370336630119761088933264440419424731663004190936620155529607083913577129325174530940562120513155395957715664631541500948700691055341611602198461811683275718187146895045986306856572588756188603538315164285538688741897614558513082448486510114707182486316934042747019233414460276212781042931143106113152538789216879262106030040996419944487846110443757144159602082511491277400345573061276778222442256954496692909625082756596876835697141873468495516389440965188669846121814719301253440450287716575442762758729446002842761245222226985909338062053920398940105470523021112244548423355799796088339587731860713468769447819578341790208662126588525487051950584890583749568423679597343586620279387063972666669373322772644900103124076912858289062747654224401036980242295004794258846224603473949134679356494343888257412008541625754429211327537940586438961909200103832816890567504398552750896030864473285545376514932663785659540100703537851615830811803293462646045439966254122658996776405055182279067576210795508356183937878393302137136814432981370158744096496548631054972283162137413072746891704281609816390185532878738340814248513045416727964513700781608587599356230292050141981492911408664380541541665641248313255406359275492540460931628550653758665236359493191599154178354616757604693746378401245562211538176698750592421885164275247676128072658552532328955326088425193521451883848997378714453877918693554119079280294344422574730288480263045287205190910248323240661208589692959582861286777040345724812493646055095574579881228485601022011106914772972975775138391878681794371460906235299520354339236831760435470634282183937526207531368567824904386136135665670730288013699365360446273856412299955760093061727134346383986390230891780544439472818517394415159215217237821296180463879643776943799000225574643843199049128743654001019782587706179799900962125645386182754754819447060672363558043354180403966872898752326076028162485562294127205419124146743596354778830925801408797434659293485451342352102023442820509506406184182043872199422389196329675315376487376374046916277901376026396725074407163471897907183279834851668349967497368200251734864105221645681987027337751128188447637747826205885562629147168950057018292129519965234818763722305519775776266751919564876574639325098420348548030974565662144606928877744554564757474488022988701768398403347121828541655104512184111416497912705779356377897478412387698173694766543970743278874950809705083912562995311441787374461378530352039689190505744407733746061152751775504316496799135329021508978340887111223639304636280053520342744233036889752272670039064062344929122435082658262189667097864955133608116172802503777019591525991596640101309217781965435615408859198133565172099508356862225757332595058591475827607406848644034676205772846557519463864555428266169835167442512567236651178850585039034017686989115483939606333401724397725376788628823261397083058790023963788641704109588684251794847874250454859347542313901383703172994949771398846561272912895177882789986506633475568981003271177277522687534173202415786981889798834701801483746810863586707033651908056918277481930074434120859510381216887613678685202065318667805748789039063619124870417340665584911831382448270579426572914766073875972620975582128577842650338617124211189276243507847302223705273855076372180422507295056210558308933179478513344265415829244625344445864829213986552273784897805124970792638943051477752543648354235634174964486744329608741710276907996804835868102499767204602729287039619130444933647667286514587085635037567659873847666447293754806293296340791925956022297296421771924337210152611011242640361822005239265565118900393183951512440870591881666311371926432349282027282710316688860954075947965996205823019599573443938017217289639164441614819446001852218862688146097763644964710184348174411711871580522811395515858297692085402137593378343603279478277168123640673995935859580452471024577216303418701362651164329767930557468376709606253599664182346832282061435507474941074696255683863510375450385023405001532533047037948724088168100936850200152367740967849854262530935345354825074799603072850953090095580323502067510007668978065465431062389309541063228273154245193022895422641968501410400206207522369589742045873041472542347196378484200101346418630159016052323829942314521926257487974901076734664549674465823819559679497831969721059087922796582001935495324477261625241429969567546261849567465871347669799503030438012672069705446534297108478017001788278756711432765090118787649748767264824139600938264121533752469375711088777438228723182162128165711557905508304254790279839444853564053803794066945631176973645430964053435058005143975265402152982432637202826487855698869880923948506873529542368812991451051390365628024618978262312810712962525945886011396917760331505565115306997155608176790338332193691832459172039178963361852060060322635179846528912581084538903672639325023537519702615689045186740781540803047835754213117159141047603105925529626656254676505826405953264203973281033769977966044693485161244608419031547687672196316483545898541189750100497927027236667114076898732476504979762241928714708472885284650938828926981468854076525967348471029171642434938251212058162238755316530467892693816489082571931415879836895663295544888244056916358951935169395049077527798781863917706776384867662809317108497443753072826732559539268450491716337551286028581908935389157279426268726176140944450926274458662151003379908746940733417860483524380157799277798429205485661871410588353456639451506667412965569032120834365476865331352807373039041448408682697467727067262841954581696157496368292674224995233284918158711581498188474799945704029930081121746799129207229392413387146438243338811876508286044829155757252874621642397711587164916803158613473012090425284626589720741279002510456239001916760629393485900201003934497987702320023518868460339292291916479894726340003186785568466527288838901358856931984590330822100690129140084927372408127323334326326091271475384646361064581072255676308748621531527525106667930863899418268173507212043141364151619369847458375250173732588379658797553233806043863486869001939247051397984295392759805588735175370729620969722457567838773010946718133987414719565075471613537444360682821160369745432526413826874362166117667899421036614121187472572891325371998805769252715613686481253295366038198621102816890203175987140643414230575137459350274818926539581426952928662295616691055996213939757521695218940000930704764309797290876348086785579496760163971069036832452689357995354832162549270564530801829666547128992738573143327469839290240190672357690652072592023132083772911661790178379858928072661813557105784674502214798525095136898817561946476561047745405133713933794719517091544454791406655913230077940433792139210584651691254757107006277686666653777047564861274676907905959274181526062745791618956912132759935897957958500591393608322930899045527790758322090174237118367131611007969808905634459223076776528227930752173925931401254006754834749776425118474047081964865362348140293040518240274569991894712455670879832551411488898584435990487845525068717624752897044825431145185051508125313076551905944146060004328507481502567631585047298246547001345485820048165074453502674664858768311207584505637144226684256317324730781744494590837429910498258641056099730600135211019427619130232626047655031911907588821881484571234476957434707723371996990534257379836650530590630913774085938914897142386354993009565201423083921024009661889170838198044332879085205714917260759153996381238135855501403933082088492497983122901748510381323223059087403622514533063773426504857832742614635833385178961783510654076818688280474726208263262518060063555958925521612911136196792168084823320704641978324382863034278828217796056151850606646167818541289052654807528651282738916701103740016540690215236356696261052538104810617334847338853654787669468339816752122774382869292730343053168917168972329601841133458335206142345640738542371962718992428195439661608065349084336814885626409245177793497479185032837683461886438481543140894223352242559668833820162642346131253230520253642216216144688480105946726051645153554830230102113259171069784954399784573831562704106857200175238979315908897903911458174535034994812699450740059212395043835852769170015963064234597409607171157249915050036115780191896620592396086545256924926031493907499268204992933646223700163604212049512483885539154502498511481363464917259254941539088212466729831273506495151020184609238092440060992786298169032698145332215908855023621361487930485467759237144006735957094994321082120206996491929081171169064974695010367344902344947653130079578685795406919484352705860004964816370609428031911059056319453570035095830202451220920889498902186247928467989158562846141168857941111180665954989942506399285330546949014734414132980886843602777514458716434678100630861656670765326296286342128629776768357785319637772786949944920464149056979527641004465545523805967290991564304214610035909585279242669942664899678524280021704849251894701174927428711911546403999115814034853912233670010859956109743487077811125010745457165868817446125401698072353284343249964191376015969863670820010751156214359708441565139168276751790881224058542158084737583704540502182309817772217874553052710362290958456019578337402484805692083527868194833279741265905424571271582476105388905415157780276354362513336924006281561128800515293059252383159693294398308821719408292018450660753817027894161733031500737320584838364335082743096219359024009333969387857269643972547787478468100891873422834546028923847840780553865410637493562245647952524619356846886779489077101574411837247799943769906782480810746823431574930356004662874191035516518691178543782126860588796074268006155493544465692080478334817702885890135233851029250944431820549657461659564000703520548841661410481940749683525459884822874641441760639412274235069794822096670237617431042519422655026197479185711237115720632226107367083786824755815714209087857403036304987510135530149589691564755767681430508557257832211551795520976983996282272279926261262794816608201052067693556133240886796978758176141358737612048130156566930431074265247904813928227272904212526132097926793632053423147674625413773911165602354986564573483651654569332643328950552067291523790246017353492155393879521329226806659172000736279721097695586435670754266907355715222527704179124866404325846771972436181242145535821563169834425582098217146130090775508518780203962689942923805917901642369229040196707375984304433658122485937978450422117596432427592024364674295758402388695353064540799368174001942110519027131842422659769509232664251674087926199083084614381249821962209376834753724957168418130715284177262042925650586259244912188665849622040697083325639569582010981330618261211157529650976977280610776539657417771026544385606309681490517426726716570567609807588450802117509193306468692638536358734629435619039657161152978830601289909230280221377234353950859991669192495759072340879604203644011770989036206500220792159013332623790480459162074011350865592170577447762069298134357698111320713868202781413711448009631889351121459443575892076747071948662508120143204285512503598351487902478316732440411892532678535286242270524529860424611923087738221365302555643499913491705836363844106730431320751408986894278759852766611176382941880646046372701247230900499985771325371155056489424860513021968403121647203156838713765173138191563076674638294026355054526507853485813907728489193209828550663524530185241019417558334188925846825718824500199215467329658198579387435122437527032760060600520241780530924751867682405173911264596395866852960573609630008744428303408232751486083677779213405870535328642799035537768862460667000784609799494815965519699433424617554697780012856878191659094162985121619097111383453802517618065019500349669598381774406807463247610471269671004273392796133552184705523446625573465631856278588406744525887783139796824782544967736217742909400012712464988044274966744863168598571524357500636450424676560316829776163942049886708026354485718118464554215595434991665816012991579616801267462604960772620026238052075819774860823226739058869745500393401035705569142565062969029047824115257076967769508154696600323348775016646381722085954539218309828864581882984471487543194228874936299969087738025281497098748204736292579414571216595953501259430066612644021239094022129744107377832976783910416931172214942657408330361542620368541692107493393859882839471853944044857602551393230342127713473898850760246270019211254326133376211685202206315369043648019590785903714663461935153195438535015097876814238699316755169690786745068774916716672008951394346111548947456984794480883310295714808932047004493005078470310844133028754846498397976295700663592610617270715331969546821837092723021304680970182663306218439143452833923499880905412078177555298485451234128575582101627652621794758281559725747276219927149100259203012029454359570837363752868018080956592158676510994219518846987808252919864619637261166026531618240718148929025167083650483267615689872480270486002938352842122132786174247238582870574730950246884833004794643602174078290825824379280779952918440027965852158080614520868801237603824591674757366880283577273317690192334382295557494616579851402287081132404791815322758215195343865687496408350278348805513117571492314386536084271476543367311028659161299066949590000695534870699566760665694381241664121237063324427962565747168480790672776014766530270388589534119859679550912822101338939351246305619795232139896526791943951979165523318034398911288449889476288649762051838107058649521050149565317966583324030145283093745547966312536566602663094266594292745222697031756619282770236135208332291007932183738116038920107339375550500497337923617715726747023161237923391405378395209153110380418170956047721140361025000763882227382907246488919243044656122308821111883957221799325510011894444909357283476920471180477099217710639554912126111030738705281526395058713387157672828327408316946028695160030626610322120226491193039826477578205030473915353541324056062046813975034106612606321778837795555222969366743008191149011772061646661154211907048833591855525492621185624551388358524814407867628272974957174247913224488345377463827986291036259193160539720926377784320127771123971085170578306246681789465811940374506888573988370426631238757675864380031380323249761895689205776388109813003070280750657841170815907390719005327320184016592776442471364628025062653073560679177913568170269244209362358391583348948802646433026438104639620495135503509923422492513219182396171813925758430294463903423069474703030297970604830601584471134517914024908255488415879363646451635811531698422804351092895415110635601171965848933305387130916425515384364197278603415728795555934655380243925606859721036023055413973082444435498802997138051040563673866128940906896286677430859447151210067728538824511531006479535285236942775633824844054332603376048215533882686400091382334554198955081303924731305391709571646001902022377664957858731249841199432105921342009898438291815936166487334251435071016750625512627760999400058543766715529827619371994281175758673123406997499462448984838585275740061025288373458897495884858363295637792610822553949030349466202318225419610197788527079004882518302436270672890329675652268436845819258054087570465957015943404730415965811569706734623187960734276392872055904308011370476250203950350031473955212610389242744187083035892924027463252547727842508049339770520130806608080085360438775597854550404868013814119610621883337793323808242217529771283703306517782597338325941568620867305320755852528322318465505859305822386340062767879298393592436290201970190344714516949281796998750122423945644201929284994190203312287910039514289341868876238782945935010145720290669920423496532826667067417305059335313615545363803644173239437581601655588216055282878022134185823775252012081000696433978876420203667211318452506874334454317513210795935912827869151009027783298264404688775156576476591310483149696017210436904525439093192722029964876028566255241159167857275350141803018025353392127527857665068586118887538638972748182920944939549585972738968858543831224773074055647843858581391832212192353350596699801864658722970285427901639774511473986544518135785593966196804135689868314324101272274767726561867390991450683425002379298666334251833808864914288087058411090720312233405454745857441759637315232312557724930536395201834836905087492806052906405916540185102018324872773511138025446370482827919527271464956269516213510838574081153339778031220439399218080314772644192776365649007736652284845063316163013321070991444329982063469320123311003288786307253959891415656765137801032028413727300963980926210361335469948109165179757649727746921583576239969354695510986516536262432691106418150443993905890391737345408347386471033380167175196235881681628856090195582920916715446385167397441918741867104515822436221655340404701317256630142222811883791326637768987282500498137941761438045898257689843547968335488797997110194106062129346886690914342556088286640682886320747896095057442430431682721960518807255272359763255733920286848803848828007239478416249753654452088516580876861312894313310254181119741727535263760792669926849343947924628475617824811177080263005389086701964477306799044434871742976536680368012304300623403321923644060992929427961853452581026577133364088581703241209272982985297369994958220001669776526997285659769042585649958553474884948008514538433484265923281419038572704767540467979414922760235642493376300513164402256750103591411616554148202266908712075960289859300974323600535844314217552134558791515843865368454670894646099906632440012077384746590754636450997442217990444978561143951584597456927574964237228120992725389888900386486377012257641589555167816197490358247610754805112250152026342318905999722117028227929136860125412616528561231606872969480471937475647425997169424985585346248830175565920196074109314934195226577963008042949661956280790169353632612041005919035450279449704569334676322584904931414511225406941926764960173496008657788262981550808284144514451747041609740976970546044816071804847217192753698193048903909535691689645763608383777352635426726364613471869398515646662217808842171989124244441322076252683475331613796745964251936461948232926944526176828635852204720799839882687415074913421750459723658234955904626232904573391840624970341252580181439624778895676003173105267017080109859967451996204072813031701334652450759241370322366269624487693972471902644472867163899620304883870135980226143920372099855289037263603902121523640675348135204283291717541838918369156213426311007621361725405829374687158639351440253456573455760767427563870871905877459676865546327129592982953143978883200188550632466632373981324365618182171822391469781306970716250419697286470058200171497685278020633463818328087509390785672294265993187166551563885711217415856403468109227079374586592239698652643897960261414835904780025772424532626783531607793197297602869162885848103545492304701169907603628615222856173197431842402846308284871254172690533061724846139833923844381896436263361617507013522388928633030995149218487780364644079667579723333926161510164341415364870222275572576620597076651708246163489400438252687861373883937885059781949956681301575485705591437037577402323880007595740586539549075560011235051397765166583963817070697805752806651670196005847689030886940231585969439361126859462017637512490725318566458367788835485938822252078857921386583305542769059738851371218354205510638248234024362164282384938460101392237681160361576559220448250865300746204078341485238438227844606640322930477750793048093181144652029974729913039315224515285969127878185654655956711666819531134566151133210200064937132320005079667795628211764790479482971690453613218205121261442106531754097590567462268931435072438688327017537777232064675343611363420733372254582188967373248995399495049830053092721671739289350311986485988432416926652358402292429524708966362289948235774668524688799895633764404572154538756192627219971383634910426768275836740285739285561917506718830643247740807590164972853361401050834724294965386693796821847444554184550009338438194886253607481304623092773500890251404690771271966034360402846081064616249297059078394127274428592800264824062150163681520996842574499387376013738115991689434402579282888500038967120018066200622057064456683385500522833731517021222336902552415404104875484936049258740724182219803097912826331329598071458021474100040859145185932651012299832364136047962813252630541983301609007889622153117486442175828951986066543932152078604795416977342336985383096675658379151404848693752995005210987401221027256716875592228101040867083550622722539776048877616672161639867307648060711740853700479859423350794353592002294702471507500154649571975973653021285258313304318624499008031817924198384118740118938064428024261188998977378780073697838979720328623457087780781682383937764016604837193198838218923137033842349770442304077638612422854975560010511750581828754947208484344559337049261446323374439471297001011516916130516871609304624264158827148855747754245067903205415901806432816427418996095741663165637395750969004403667676303736824944785777763688575296081397023043684239962400636424907894462039698195542438118635093248794571883336106896981027861369839300484143289316548468798092147158760453070051350266614901651587830641135353697404444068067102344415441141474032429661688648237937996731175028768266243954110541160105690390013264383898967425162596791115606000667533027171384773461666635388899654740075930840606758609475331808077063034372698821826179676395771294549268690804966482033235423318899746223534220824572399600707137161263582915271491270989862382791431621979159778863983512278331379837829366085628658274231704154806314888590477514090107903593742036404136363595262694701909750607372262000822358898182490303784808145971462662068867219055606403026560344651767797322513136645547465251834154101926366358198171789940386000925561971197282025395348420328462582229005255100053268569397676827980714882223168011115114067253205477771658445939780370665277331408576910637111192922015703917740121766441913623903000439845622776583374945016267348003257372682777887457861791534967923330135607390691559756780297363914717694798060099598706637343220027269687023585373635060097762427659121226162290891910833651267692498018498158785329190490155175865537225864289339109034869165017593972235251586545955756293247440955681994735645554466776268380581234424590174563970072114554222928606747716563382900427275118993524175203115269591248306256321348599292186353970178853268295119059152169030504829870077896875685804472049526488494613144328211068582465277993549647700063478011093356055965919596310485105111682821473035061643320587150049005847984402531313872583876742733170103974828775978201499839469079902792101946922164417135053688700446936414218635259677701903159038205649699790325453532642773827552774953731580189374925154066406646974000559873866972100901478756667678212268500051734556505018022944346740020903541031396534415461665682554685706894492563047833935373358355972552650897355228975384211684395814118987207144011171829258052569603402965670578746146617877422454708114974073959301090958174799884686996892462057051345782095228264553031426634322039537510629836469893340680129148749854416518330683293987059001490343011256711005086455036895944239521022058412340943263291103141966708815480185233371459043047210376786793167967917236013486986469995100079090652706984880172868997303816821166113507455959301685873802234890445839009659421506250335439956329962270238433882443416605466712582774649287734926082851128796409798001342547679108612234187748278979352194667797114994831356274566766788722336819667340708574417865033686633199933613576666387925815266549195268105759724817907041126909053807487813323677839431196047349691955567014176810577499504309100951701330597720118763298796987175534271966321795453946126424573521633551410327383269057123963109611195468953491578222280338755647126593485205922289947988480501776428484888647349011694975417552776345123581017994299301530063070031003982463499032710527605262397510494006773551153644403880043277929035822780410898789549667503930793379654440624314208567573680530244828322467962237636853670842732593621906745891899376005075286119676699749743877211465264310379744636114006375102708449010596461977029859207851305906134997909706449652518568428934208117935779647053583001231453681324575017969774183129564265048245580225371674659085608619898227474965723361582099258629636491439176925944572166041078582938703980483073457196014868170205630018839802754443234606809800201884813849028893654894845594068041272657922966151219944366530355306912369296759700932505215113113230983184128692641648594094336139093514804393133622517383713265685656267754148689357405296747551669918264300656036232314539186431243190888664121735211248164701264769852019427501577829739297993822665995805813731555327497931183972890283996092940337832892479535131710076885708044472687171387206002642309624546304608876734379467390090339128104939285129849217402498229208713005851493398841211559675448003444999687817118231642941097756674755730224877703316914162440237314179894720923545075075069234845880090969078996978881594829158103479318142697369908116481092564540624871735511648201471146265283819160987111105738033285171120451589251559655469353070879822482273918699363741851088278073847572069938728107792689335844724796905158459838048695334663622547055905216691228033057469858206179120097143219779327683239743527624787809510275869480052921296387149190218318598990001506582826078637071600100534962398668401911353718541423795615374665042245306221070316950310863959344836688787611801235764033783313670483927282551165334388274866063397072229075811646759205873364842627348984511214607688835944810846647477039294953885984442536116560646829876224600898519804913077182264191618226037803260794662945214055666013220685448306894672832821160506372407285867664262764478290324875748459876291531660291573962079345663027056969724432674446442090737033936762575921165402021387768775757418312415524467818625814944375511993374647217095983216237008221821077067394958579649248173506382616160240022564222143034131562134928079110865315105901174008614193018021301615262034632563917396425712098422582075829878971840543969946858237129779479308660765539345765317244294157765456372137617164836057455083355807240620366408226692124802764145630281239113420209105665528760281893051257397792838231055622296264816247131970546134957462410568556093241819556985538662611184702487758974522205426491212797994350011785007204346894593424832959591722444505786977827756429721956483782060054832834861755417884064064291012545987007503867865112580406168217456737841432282102506784317639111141828307139977636831984249894358072202851394014725559813109318129296105206976462448654519586399032693370630985229232165150923928454133780756379629837952039905163369535899346517634774666409697260864985781212255882143817316402754197227906653864952134346339450190547063746535954245061938167010427293133051295285173281844677058309665383141507829808056918918744025558784451998381618648439368757724440842850166047495907806571504064396809822633969867749064063199939729018424258720510457514522862805371755022078325118549861401547281533519507252618222198952853777383393744285995400232094753823798746495582606285620820330609298403525957474070402671913512837897029351468352278430563802148107570262356191675468828094960466690531090926450539851825125313028546765006990975414811343237022506550778034662450108663520859116741078819150403627801507084381344940499335786113755887377529025176007135850176234772411266998601590800865099580492884339165560771339124125379399764320905257447928667356743066472047443201147320850329061255618258957922841343681624037358521445366543078084095360525437094059988641596476539355151732482244428414481020680833015448801345483721381725365579262604132532544863756793047104126596971397703098818654097823464917121004322194835539308014567968073251977905082609667803634878224274112449209506584743189445287510331688462427412916139846808234421646712941771352647929737622235960871851255113706416477005717782504640337729998765395160680347093079006464710221186354808499439314913167193584129130276484378450039955333378354507091612466173012274239127547699708420993514246140018918780541223113001829451979535616241590149246461284858406459711546706542388202575372004295639156682470030001215639273647601411592140895643967199883417055664311026954285264815977352071049207275137547195665623140954617332379395885472062789427333556835243837844885328090337773526253324121857448337673854115576570675546049499688504781481300308823397464929517036858696889233477129495401028525414413174907233729692836310179595937141783728829079259810966331033759006020327222914306883716594050369927947717550517428665693434095150279548205334135682653484006243883205370482984897016825872418147066964462900955170296981739017296774904121420844475400027286980085560471991266600725787388073025993796910055838109050518959199801576216677039065318848304228532548867122760402317877815321429800226160138632401285452924907757391713520880301272718383618394468369763328537935392557788138934720228510107801190460966966867592535926451779590714694977058642644328329314892770177551933323583571442698094586526859929813433588391103081117353866342417272666471736535695328974267328027575610975098436458718506579366588591261825830723702122235372004724436531912549387302225175894436204569915664117769965981369784581116429241874137315486135525114788641035182300113872561193512787292939567210497603014241542797039890181678154987552341100048147725485781281734768904765643968409749849534198006506961855264876595715122943503288080516409116669401053070442005963422878437751472689540519877759238940487268546099441273150212987508095073028451408826452410956139506861983376145179273609967487364388552620742797302971721922036888691759606379285507567621069014522424158818948215491499224786922615560097902892017753918767631877578314158411841407596626894241455758488882854325813559524982900999731206910706583495319620355568515939951405004799338245783154286234767092527150078839538630943784398278955898980963893223977773670760491049881718446724338196942675794779503055796381296383178992366511596487513946856874614760087781103254668110237125552596074376460160298439746883125377651698430617484056438504563692793555734326804431563267573018149956998809022633110241309202691013327260614492391202519824354754734012621023355869587373413430981936128525060977908582645284469994264201431775539652672291967918386116547239979496731924463855334906463929349735081374699998857216046996327165900400611354030642478704449774382900041940448491853786888082108031945467354224573708385602302449064278957487154588697692468870365156482290973516036768357288632387827124585311374008003718428754102549538751551549048625750941394237686872073519563290818666396849905180485019497547277969919273633256874904985017682320937255901526980242414997237679423078333569683691033460574760951851434109048693077242072794381917695014266646947576796214244467829761098587900136003733756023167078754023989892776399885018694801539392685113307483828585631725374033630660093897711129237292786442542102502125511944569659885965674535535960235384518277279991077945358436298797828677179807865474295459287729426917420073548096240855954722572679131437382182945351601317545186961479067987838277755325547896480790685547936040218964548768256925638330073212180492924787188105007398826048140062855112362989580836742549830174803612705386097479670033448932480595523132552881578444748157563762853944334819351580445516255278229206011444068182388173227821433009383837750664996211212952426907576311426756556837375838819988751281285424975138512863803718713557507463898502140841027899771246646825924752796270395351338381475628151072588328780897760519446378685636858066130181768281401211705119807905469216508620413181424772631752152790902180849297291493847301457390807454531053914260524082202947692061812708704784251423528447539925193469559198333230016910001575581219312820787647591428536548877335459817024494331352741104182310561007854400656508655353795865095679455522188398547202430175324544615477888798624356307712317671246172777228552596270248103192633224198924269016014921065803236314478948018116636700991922139259803289960430271891049644798538859165230587970536695046826131982740448900500245232212544136880057700655212246418500458413161795105032740975004776227018941614030502096129810508105761649830079542347721676288388887495903512863671339541460358080753665601627937741118752743641659773897912159998119427235333611604833082574608061730990222700731729131313835404145500887390957738985369840908488938365382496833606177147497413327430174927867634359736308261157315006223909383512517360030342162304230522092569134682381480128525152551689843533967612331290073050294566026977278219451886318628565562793308310211924969805832181388276085501969571228002061961725926571385521919262805981522260151009441160283708220399443010265432253651788613723942055652422172199795419725883750442220562916870630127474100767906640250506104816827581335510457604816682689674761439898488738372277368450247962562274425743510569359674566246633329091569638025173248917698925578513059560792578912626337019478716269081706722935920144474686292870426966148638518681854320867378380266582276679892266864451015393927333566893602190794198938483040493335718396392219815645415518565212348674182243224358251141209020798516175282228540504749717933664600598999745273457799450873422721869074421196657894247185109568748764633508656881968866631327791356627541898086901586475273203035495518358178289008725061946291352032756527037329226106625228579723893559743816574643725609089613928584375059759217569774562712541592544616087935221607485232460274218246446134978676188094404933227001134055305378686724705138396345748495046210128602066882708986473121914001273259193332121550534275859110239097989822007928750223927209174099507076493186429486459709858592406744144572878259365482368072229741919850673259641572116240135827472440173285887156834000164792909328820886938746462355069918452833632042220708638065281312058386325487556464847376121717071474570438326702787094813486414431966127717494442276783277380719388107821065914509700941906768163652367229621844686370134657624154080481487411993246633918904211132641999824429224227888226175034652671059380400601073353483413638611990107112407532127531788524942145729568423196643784119169634810848809900336893601191751829696869878058914700805041306560875083389455314010115503833358748222622476439525058598984028389162186464778755293430924633061585564419907343356605526295595558915350760126878627255528552476920771523306838619507186051256190911895927080257043720420654823262991251529560996174585065413063238994855610227233011447379214342934995238455375626458144754401772345399465151144165312455671809371209202582729284858343465522304995374740388810539636672384231510141459935151152420163269971873189770076253864179964590444703033445265278134955055547776565760130594833706748355625630785282492523600952280007069491000805761366119758280801891938549883463472801119480835425329132761178122794880341575070132888084083080795948001989172948338114741183623233430784344807257056256696024781880016617419926124746233895296514858444543313681394535746077219332762123444493966720951741426205493129563603274108122192647954532326592549102696152859994645231898406623068950345542134618509408938843156457364831991931752686602872038311353797009153316519330825181872591464264244163228287789346294727209612178966529011476157711681364799011484155183464276478326124227596303655383082040551793738395141417134279749062579802969793969741567527332535631333799642634569068191032544255829361100283912027512073962649487327510102804376950243464623174053517920267063979455214526058476783638240182508688009946149305435454607351952406140601181695927648689890997829761162190934751034284144912062106338952502919454445574238940912596583564401714094383523976906603079171632917925202772613426705697886442558042784484068823327996427220652509309800785856863324176581513967018408941605957314968476826943660747481817478443405566417539169466766910873341606891279893898018963722683874736919136085023891063491373082785954732770927278873832514262774519733654536472234717048201412446177912050404957130707690876174330614730159899535652091903910495596279349141690345866712502963160616801759363515409887271921077709151083482007687168320117120402072461311288726151314126463963366460279223041549124519585073228051159700911894310244921167915514930063520084354329321034077283186883570221267755168922824554285000066357615336436172857553221468839698041455945960885303867421506280945246963728138768836645958122588065873876801565926851914800240291634337932417996538957004487630704701384103909164863818116756177297321757742549863264646518396311190487570035207169981938381260101616446462120118931391339595711731488491347935433693957183499348819553936223396873331782630053923393160836055823254273256142662101606841719749400657851379588717217522317417925469741238421903504282357109111940628455826147281117995143626474590373119294468142505989049351392732431344113551746098024875222706405875522757072799753381479460265703715008236807227112578420358317752303830036457761224294148485427939971559492423746492453656698143026046939539714580521961143628016756818805528987618829584448392659440913600071088446224896860733696183188734840974001976268953541312470960481985895671795238833221727772042664106375502919849234462966023536833767443913159206151692111006229506156504196302152995056059621297944540611913758729358840538781302492559715788356296204484661010302379510078887373502863097260084226240642688619101633624038433005089722472503789204418562365051453429274084696426614382975383666944637878740702937975942701991573158611420930111425344962147209676067613257422860535345906751942667942812423398821702629412657561218032249160799526464938328167699037465874123482758964344220565669605113204226980477085869474526350822678714862101886002236709840700746021379115624856837447186972275214953612444016157035934411709363485691324880348660528389708799183187806502304490329403773894021752428174238886124576836718909451125220068407807375734956035799884498976329039462413380951100295910149477740841714986935169774395913498203691362402039624675233731794691622569461604446237186632958846832963839637037498805780697022518901662456688908266890527571207892929227482970383798307827757204383603513402293230752759604851025149132585937918952559937303073960170014906500993446866570740985699059203549090035958001119322369805662114413500334601333310840509943764256738665388771935654509504129007127360621218980049115638793542198519184903272551078143169511052110487601855090408605311177467544830764339822511311701230204107215631674006634275366429182170148319507372374536433455565514373050972565268189088008900873621245659709904655162556077914802145685240279587382274325088571785177153113015254748542451857582319307190298442534545401078292466696637225754391895278208731604368893451239296967480493074506525824772753680167144890047109361237365453658380228034079870294052993341250929172176737515250357968437080766277493725070969038645816667360271042459158067921124588941796137411820268458489608747190045772365855382838230427966595762090690886853806931871546796406540331929389975894205696877656031242798173670222680447109757499005532753064994481298366647867525303390680280284828868187789436338687659233938402329089867887289702846184548393833858924567403130181145963793162827095016644463650476248859320817756600941034363810800424337593930169414010797184007046477487551864954549025380067122033588066501441063845338394483279761013765982581997248811185503053517668562118715946482933305698092023635353707728982742536938987233491137056627011313744755917641726436537965458892932370709793761004757328090736440516991068263632308489733507293494254842814642563758799851359092801247174384757742139259186797983584672637859747397965129611114149851582146984640825169830271884919797164373478243220562318284198990517710902853217047104791519654205863226299019331632270930660230584735063075072949632475321489046154698008376477556100282284385074245670936736762263519067971126800670031715105514728616135462102208371844532053521698188211065349619636781631216449089315107929250407673983643970693593550897134469141832308450843206539502179524190325983277261093809674604049450075434842698035494910836874142308877366952179041739350050321465340229068519267858169488285104877564205473828309456949858593206835429646050475784861162319511564887703370337858221148240865899492765301425618458002703107502649970395520747741869356686780165644966188475575690148314507377822035164649462760658265035704879875152106203592399020707917181156423382062790626846878951645503968801824453106253311030673853453466000687405110405216375780250406177265907035927168157516603601241074866537202106426321354792999416687911887207802248145091003411528026048751248078124385392277945676027143971811731137257784667074487630819915485671564444497817804546915163848286253089205757543782238892927781547422517808011458224103549453661475164738947476225966296768740212452308785091836749592812896282767854162912793548559606036635965923166225895261438873880927261535460716753771047964809705431467264327262704838763229943063051912412286050844776340875926584346900035238642216407088147921858078150750047633569797954568316169052212281047113140504304104356862656325417806187538806322801104163666169507543684510040612234915601121988389078736083160371090619916273735405264056169485314080481775865763384021421917709383699315655878685227802751201089283514168381220757771850932664169198858174802537582999522265905174211119452606532754432387073431957158689525043840684729339511147943433311009364911560988375594359467543079246505458458251591671849255165015564574843937753661080023637421678598577997826892751570158177443126940670104143838551684642316354539650437603760162661405888339447419623455403436318381282798201379945570196409032997539725483055314659816723922048197025365583632391069386703454266152761005848992070755527868349140425619747438812897930887171810536873048608819641994061070521655924603344114117899596287078319158742193182358990340475150365280382154536547573368431841826050590443446539294894781754891484629883251223406246977051389398958979394134544400470738164776845995173787494222354849566519072226776520311310467399234978655646398606382221465572979308508266531022294447332268798917241966653697991680300931546118822400779047224401349651742611297270813900447909102240241070904674887302799602253384433221625510222864474777978775586159287335715976990604471467140090146733318148174662195867452883079833647068369078474206021315200477907093432587304682210670874414509912455598111016302184761585692530095782318516059350638524480388838604000547655659711611916684115396028513663415769569021114856581433202794683003460930497357787236414024726570440318493934772965080553064405695276503044584197696232526848315917172796700108251702213537183084908340116216755500680151287622650006306816876409595609072187448673265464175600941674213690289987020765861074483531665117936711760662737267077037887735482158123821445181071909750453254516951297780468082090951103466851585039611517398631870669637237335968895937507541759276119604976487592090512436478490854929560982043017633748253452206797525832889262069447346766061448227844476823072060647401361991991598496134408261198751535557675948516630787340129746313905930241168676158521695668056479487895138685124603604671809649308158481025178976368724012951961714091747147648969742091277613380318787766592258832982225948325828736902138020930940028905165563422280707524898677916126113050045480049405996759031276834230983999354723710919689687253926917451038637333103887461830467404868896496594904272917112540969797961076068314534551890008442121135837989375004346722619964323859061887963139710440214392398505095874168164347767776017185325117434077782241147716414249645323027511879933056118715101160951909806769451757248513688728794894340197523628489478127949352370895138840729011460139907142891418725355251804650168876157308494041735890232527620225392060836475777658628397954406228211317227098993384492598648289830334379589074581956730452752313977385450134563431041488783611404150751172451070588364812517447832841317684217416097224379851462491597133281078402117278279641117247960237226992733861112680525803601926347807745288079462207982932627986709291406013052060674071885466698721521920288161727866639388387809229414532867511347909360113027718593012976318225995089408305461436485434889141628911499708425369499968580036888821810575701047671874495316221295711815637649254796560110801961226554843086412235546729226422767959423452702054597977355516428694804012339568047096054601744718617961272654803045344800148409244092365835593756582618058270667693150678293001228696219199475110901660856120745524460319660049599652727127564456358146144458395412084670796867303779872370675387161141716369767208059869048536534094676360992602394132581581948967575588155530717234247447474581627030606710354795798668055980497813148322846117827087239749484119765462972968937542698503818745901501873652706159192526267871360663561592451519092451781265569797032179771216880619902853585948155317461168098829223377919572318862333926928978658528751274699449426903374170299632701260338547366132552679394199627649960924017938578538955503408097503609205195447601992677675542077596590554832820963852849039583704799467707657084953915473265402625356377483414904031836084115447784189407772144982551049822237849453690191128048950355480367314571769134694870017278306954515276452436986312072199869609710139236455411028056107915525184281959915611659090447052265814480142693867235353645187750205510327220382001062523189146833295791019155324418060462215818212506347713803093133633864155770528023867616013022927398134381055723762206417196178423284530914350570765597243044996092566770473972966392598998569241112767954695553637036843962206993472528743611054840664917600559522746872940138728791835864927032592243083318008443302024961215200826562486732329900034476913746495498907066092286160665695382729213426816516408107596007638671364316869179181154745774142267655820419695963688931090200478963765870115535096364468637599635466489025643219349081427066704211948064540320240524456030277582134958934216485856394517214863946530274439936634836459591070353798633069082438853942468898791142743142390200542486405467400184515648074915520082168460146763266227792379463343248128384856495107645995308136588576521762122890808466966180344047061483621491571583332697637608918735752416924412152519315859195487969368466624605917749126193171198669612352852419028673592073830173125953301575707281787225493147247742517936511992053727893859984992615630180627330215108388848712784535302828591158788398188133832802697461737073497774661546305950405163522563757102351256802081300595578147434965155105852890144502592971112125189247180342192181841204445071924750575353905211046766256876165583419972032193373761553878055920364347248529814754176449305720778574085373796807731236811964022050913758726100657497893423872265946893025260124716602270465678893723323934182231250729897961152392921534096019913676546213171678987034911226185311895735022345625713266758578509377409809736041320186993951422910244060554540844757867100473915707035670904356827664548697160403935031905078023252731547760967564883943449792625434489191323048350982034592124283437388713512832730764629653310668601696852925521154988119231547299856025042724430328463833132326631051345467242714284350215884152389036474844720998209957365996686735880145570537826517418544732759493496019936747267358525541136717209758657080606802699921480637927941407830932167244946049598630796247232414339396774771845843091737519699449220311229316836903827549367336996480498920427395964566484599180857144960142859526125961885906996948853500209139229948055364933860089742470879011108369207363355810445166013190913605276169227553324395542025392051523822334436374144019730055863129398282691277333630168869018909945311818732488214876065302975230453280721720609206478219321829611683522973684189480519489230493806380897739944376436179789609844738556846461958654920004489185579287474010571561508799713326981543788595866540121099824035271981873776059506877483831516373074493535469693224803458871411086937921976627562127952052033163274240529772851137592959159777557255320665670421779892472001765373504629317427646258243386360232405600754334274126572016092888514443265127023645737289772212209789725081138993704419676134975587765448683308083962986780141835162679980696524215031035041728171430267333907082875747335508217795085046152572600356914263049810052203308028710222449655443321474216346404034478228805201641198587041594655617662648221560227160527281659717548485911897259131022986009516908875401539614050161561365631864267428721266357605015380912186349449859138874505430430774945542571919136451011828775852301360552933756077060910523570662972459354225600323818613548927156936402325795620920408558953677323263555774657047371722446922855666358293250833971775637798877823912439568278718308742988641797183177564913014361513727859097409823651795058355181775227308818868549891742474643287608172494575096995240853534421632396419996541688613372490126417783760026333424217790726556765673600085739289697493286329703321083609512773081501210001388220394842561049653122051751080582828927989922578195759908044055204735976725371728887333081179835687480065045380933001737535686279943855309900116558362687111433845412836547045277982047161075290079603332110659263367597116259359203231721456067409301666128290433015024534103798652841318038282932946374391256735078133479375132594879903210390605836088464692190145948028996471563436060583207026459606234579082882015647525977940849081070739013975160611373498447753867386437535091816834640851419127281067153552742178653955362262178664338263926874588940429251189778877175648523450484039435522178401038683864002486566123276505991196969344875982337345266771374968080260356546957361648202952931331726964143993127266994261877087873430863572620751170712566453854926976121190580542371283023869911405724320944557336434212868872302023191502989072355839593931715375515369125627052778366526666403850529031291556185215404643530588477237899193778501358095447662544971772972358220425927194304915789286205225030790485338255232821800425759138660716154325125044102782524426088930621902036606606120187934291710764214661589797773685743389123311888080810081406247400856285219895656941504445267783391707937569359338904099905874736527845971710769791441905478850578962641835338681846260623043882379966478855271291683349827303857668251036031388805482094079430004767536782945442319530309386960944521025345470082108579544440583004307630665523498552521301706333106943696598951003034404176487682594846334384314370901241140131185134553838499193714292078718315132259677009798913381521651749037349218358560379163147582411010595971031428813392698432608175194818334837496438114924422330259592783684960793101437035450782665208237856322915233100386152290685029836301234849321494349552434823454730079301951628547856375045333120096133395372565391547166426313147851089122086306413412304894214611182155502081236928050517799929198612373761906962691456609517215308559942733346002878166623441729282679699150223219121954844780519047498217895569436382808771476616061986780750717663328177631603398579610352231939965965737216226474272959068616319468562837789643752451934931184449342389879554286070618902005071839131615211363637686537860106233122881977023355206129095969310825309518133886897984958723558427309104858694333575425640684117633527559333094490876639931384452361660640019749304276958240122785981263428498562079485980639176818402831826563895103138572000219154273398565613636244989130588840137277740192941074529011604658138901932670601349461470055591845516347891658422935544480417556363737389437842007985578447359242606422219174179285266898179721444057165135350215310769727521997586559733613613575648497329743007962535317875467648165032398189755276257744097556192242497065795252319731250355179172329010109404957744724990098639672509595887332573055285657515447218581351568219637103908150120573358960294379565990775988987678656943622073496533241733927783707044970059966998895703808452155526478282919015056195755519668243915022670012852907063466277813173386510714993958808983076657774060864145239479535335736435037264714892314671014800176584338502979274515976812363943601996384903585914759832614824113868755068819916804784295648055192358213066488011694548123239581650368765629177002940504050914712740857142852734863328394877857274947557600130331447953703292268634872039226091680488261457342398870799801221080384290306942092228371876165720714303717244068174629645955187237178379128686819376641651452229370190048543920967872692420981735578211850118218809713990965721529129805486551570469971700974337996720469095588071178974349899229784470769986606847267300323358413491648064310531823045357131004330984361702866710246993648297723482343570169336486178397347727051693498490508167787121545115634645699262190316320104656637545187232075501384378631970440894717099588447164332560273354390604221135179539734368164731979736559677094537356713159398796740463977166261475231728002361210885729107524230387032922539355393806372108387294597182813514785634654241206180478318964703661499483835234777115762274833472111030259386727172717554849520872623972242148857458403646246802735816828847782395717134549495203545576561180186202118067219727702935028062068746891307849394045456327101048927642298193380305581414042248787133930137584404092570036060211898421910291156748623569264118150316342474585284617856506732504650019552354836833100228658148400703471501946113509399521529380168670404119571903263569217639113736134635809743800040806083646930731389315901804718947357617338770183593241543132863209930062965348348430707435138677621140079117671644186158790016339973144576910926962249361127564856407529764868528955377357733661936461284203828995167002361394506669457968838254905604855614634050713209316391727328604965841804314476870384888582124160258109840094983626600996349337859226029091065099620426202962263203115620872834959999555305792824183093108437956810750017897652855919159689018302586877200866595696988596584622132720528427044661907083970841433479440776869382478384756344056165673645066117123557872472773411106899957045199904781291451905624252787268245128494203447925723891394839081050845795741862866406231666861910300895476728644502128025843240329685422601142315637098447400127550255934380322666207266952902752103405542466867049314888322201300667802657077748829340198572459385238625381924082390589708005486979724636231993663982099808300578216612736723918402576659930637635809560107447546130111888627782641067648860509842512551379039997869898670179825222343226555174274130250358358586192356532108064170702268855794422552744279044991855490609400008158435205243482121898085597889786483944663853284202749319134447467330256813569940684276660892211324204286639012271533193214410093497911503795433547608278333713959552658302164272396555477719357501480972560213125893358307880772378987808586819850457038839665777050459326328147921586808335133987870042841821722857184705889783788754461619888295637492978028895518896509883648678190232606499150291689393545910468432028421921233661506220893499886485567358657457084741368425028712206012998730804151477826732962185732150160350475393397896798358470735401268870969908169108307640903998120201888510080634810848949736877337525437349569486511058890065809053254053266022832728326555423923211897040258399255619069955523060521749045171039729933394248569021518052803537508331864502038430893631809354642106110236506118290102945904213516244375251922595551005956369976192745608753237135891390060827601421972550496537581734087412634604576968330910931635748001226123305145759406397262304942711543513790811297045275192408124876665243466852253613589752135284167816176364518405593846389421818630849982105694547337511489951435093094141181157823647957613573720570728285288250524326250549217155507636913762176821607141648544321183256167417519726368373588356465314846670704463865412952584127275230717686238820080165026642238421143960038931911467433022996800461455596285027042557781984136599675128729349027288626833536767189121549178079136108138029314241578488205203828542075291743892913275924335563768214419062226880465784712021571967040178753500529887722067857342465205647897390301172685945011394178597367529755714275317259321858822271873221009660210271400079901300974769501083190874816296791038621103427906716990781774729561691941060547417437011075306394332514672617905290712198843079479988658357749894615013743320219057814494923892233827543020996002853448418085949454675365571953066109663550347091779861570108905826395640270408009845125424958636857217624869845933192299243361165552828865916319560234861919809215757869371100572907180839353295291093886216693125081916761968524809200075836682269617063324995392544154275588861699989905746622206554551895231122610392869343979030674235124448435112471183217573154477290265766437574247403228363446026495367446722103055784631933204271022028130243219877988271232535694594370845709278475921115736439047669238879422747419297647326050918415627859707269335398055289965425637640951596120440795747385758719408086486360605857526375333895867384999204342848641781999334019609073788232907858459795639462414463560704234631654474405996465776935731047274826971203220432699011637120035825726386188382668913006773820625883225781560820531955172522032571169709917967843901759716220243353094022202876979738237987942449627899460321043514337371071663965673925046070794882056994531916696265400370294689069022118040400948923164035777657351545208232298719255295771048794828166901888855486304183548236648766419781675742329350664626867505562482452727858280734811414798186196772107609461741959177805025952735737436344211818772922226431234940817784545528609747359773001268734302174319636664502209205313359803102374451219486472265440361782905194351307628687538302958985332278618181790459582973679166398914363203616355137786545178102136960445785459655220526495806436347204433240494670572097590777592505849614095090556622734469934013721958502350772647468852555526072022024116234582647962572053756660529033404976707235257044702805496867557597764944260336495405656587202179480542643627503891209005661884772619918093235318892888158762434429176382358945679793866963880687586606802016587889229681283085035035216056538239732308400874020859043261723348219921534934264308036331967334396179980184377163619059588369403955598592267965383830587602696304399555099948415473755732920998086271159631386728248307704950661165458735116445790358018640595970330350980086440818542055477946353253223441442729975375760919389793168805488831090743720534020388450037087559794805926167365013828823357665861758015016298218512465940149459412928961848126407116778973666373747624226131906702173494833940557317250208137046122429738835648962129864181699934920437993351779506589166469642672237215954515226085794682139059437677297891743426382689602833925622241279992458972717428662963340731083654397161041874687339735591716080511432898655753291810278705193054871834326976496949410143244572077655407913978424427997678029879174183557762901739820757085377879652351618831009988315435948418818873357033433712962431308638727306377081602045595699474377778678350576037088288838311657818299546306999526907416057018835950369970002384475852644855781689863849107774558897292258825870672677724645556943985660418472755946973024111982905830070190353718496104327651246372435378302808906907563763895173287384496345340995009423547450730418297397235628374240878594843455854377104682986749896593264514363398586510938559276200988385334302565298434936039687231627914846909440019918581422505407617815246958748429069105101205672550737981305635338281526104682962380741794469451118259915026672205183201783957313356359410651931609131924650375247823446746837627744920393004794964878679952398983161668322432229620800637662443545908031093427205407730363667566327632084046788942011106333191454229700506745853336625405934247898696544080331522016406986973199622537875272389544854133131839773225851596067005926640850866073361722082916956745227064688485353695960071663405715802088105006543944546432987615718699557210751311830087245419705884377200396469391135896430790783017927746900897679981631885757291154932605256393035540388456555464624773732685932047508788967357367854308969807662546892921356168800448313750035010830137319995484480549517288383658175182128037984531421132907002216094169800773359313752870611052751768667651809422745893185135134441197248763512610608407217549941378528810152579032681185122317551571052688079828871962004268143978712420728443845967729647867780823444274113658373309925237153232130335855071846984286481764121440219987023963756892012289764294173029810030665606432481615021065011204972095159770194941846290629093572217198241755678468309304746738255524635888137982223318583179939802089456449268423000112302519826939770653506236537619318112730837556368989429018267875252307319914321064833520547491517312396114243977199665017100809897927016920865855986990453788936262196230750748804807307266631087784336713891256462397547853476763313049635923129166392642595065873608378592923781308500116425793285672282262100894920927301374159118871076994939064330861036413228951273249224670080880124730973284864804129837420337551330435102147145899617102633151491983718656304461708440780284599038870691943838775657183740090063119372759569046262233417578444355538143532680488918286141959895572924298706930117701613863318923459410969483864066555968113402811144049452854700210106253425854437417723448686779673347632569419391761244766334380248959570272647594058298738951971464120859879938353173024408609518718354911970882730704630227311286982401772457144708632174184521175156366228744810151932557257376154943085779734304837047600557875359841149044748557000754518450566147791219344096890920791092433715270509281193715411678020759120296410699031818096600096576210681536590501780291713017909023672715733864454988024867856020193364779718824986453770269872866283727431277543625719646307224857405255172890588728571774438948751030097134363642942482660601776546615915619488875364441674809503484665957371968945430592146784468048562225646173436226044989828170736721426024001632407763475332634633446820260902837939472056627410106056023827219033431436756445784634439612898164244081954271099674240065656027094830763350325817714117728418398560181928407895786414114081856314857319894374889282971895566965816196989607289985528031801242478623671354544629866520329590553882390207670039634529394201291626383658080479348853278170952202562269176078581952570915214210915880842628278332984888777567309313114888429341136648106922559816905422890267929027039163890944810725382838538959191682424047075014698822129863180339148667885586765033539566982798809678468480023124115180257393724905861245814146153393363376416888246567142171795101754362598929147557500707378004338266703673466216525916308381648699193392396990465090174432170009919392345089971037859735884367033859865940262350135177215197748550842772639140887506390243718674474245505279253985125334886856690825523616023794300200283995953919995858546358622546625230251991617278149384725437311053332724876140022750076261433926961670731458436884841853347115279233027944408776353219261302428853324091407561214141896083709618062719108154613369207892497194159599331955571585125843928686056229974010661676022190549193796876520986104514719539960988338997296043071099370471221438402135098054941645248665441040860063520186030758237581049514986390888826055751059611089849418815484468908383420547919979653840822428338385031073657163825039153130900345889201275505752525696573330691944112371121935762890056620872935261822361177634064208325031513663473877270765019974258995968728631218540458349506745348146342853376873679695780841251415286930970272497322395876702612950360180703887381080775935883881569333672692986056856029640454952024505407439815818722575215497650637818482875009812939410997112984447528296112451930121917389903145386484623041746198605391487797879224770253661608234237525980622134864890368323760026577281360131557383854619402708097384010801567786452524172261995357789240987861893947077171143229809764860250162325871538972569337318681653797664001831831590534397181008418815333140461305035267111772861849343618408162000607125849901915600457937038816669903599726618796692194411564247380655540938528590142993259571337901803667510276339316188865014404228242530935775025320684904153990150316865025242637049857005124383826438310399466675161879680014398009754809302361952170705174649103843785128111300732930803890056854312972159016337533477695179384648778843135738032609919569952365439493705698393806436194008242057818044757186450752710246303585417180500720661590978791196834118749179537900454903832262138389435732048280831078802473075633762525905477370183588326076873386250993922119140059239279015588263694769617316881385319569790242320359308337228598666031857377000805682677590362560538053889699512912301198648010705336023871163529799500862504828843866411393890920641180544991156068799387940549551473833454062025255695693228937050347618809225104849184740304645077548285372570891563682167440294542474985529841334386069521331852186341272272447207750992219629424872866849235231267901421373438183119784483603023573726964154942148103366480473007922822539073153302463475969607647661304391882456510865923630924123621903530922428167686186646553565950064060447896339796547641205986022117090670623159650660932629481939890173363044792477235042730465775766600120703082602978986776836617868842073777569843403854781781536212217882780869766321828158439761316520046831214895988088047734160371011307063659110013057950097674714498484135380509495468139199427603165596111718273486302327089336216602886684938429601339374119407224677246220524940366577288212770155620882385408990603615183342462778876151281097147537136481865736222781946039715639482876196292106856218677641335320996741532687146626728752958679993382265058590454095861615460491512719108621446075781146875969869995151747792904910865968602204776614207493307008411802941858840695965580914414818709503514259837505328810507573753323095089201604452313216908946187313903161908145132490484614059648446391354205031831599712952577721638927384917386314681415598391377980145150558022305149726512700576322548510436743872649208986879471382968761311077234943192656512422378853414419016050183505483134011667551508331735034430247036094425720111132468713506049174867406480003721163395938826386642224887486895810411378099013519181461839721210877933513675068143095757400675631504100726175449103572805708035179023574161329062800039334994580923520386560932814655117521511169231096399201475125075585834999749582413397141317681086365072365465288634387777656441500578507909126449017057418367446320465822672152043578536203382124950521136941384578087188886985241273848434805086024032712609876927539246677260506420454953356756964773632376690776390303376546218780052088700545690429867913825440241614496967812607220780999589884914020658177405405505694809497248375020709452925656201666887325384304793269366074011198297624854281555630439401438971934694623546983288719624328680868226866930817787944341247685574261367016529397468302676918568406894869125599481160855681357887312815906491794049744292039585053216617021047334301278181842326482152236513009219441636900605831655462258133639633666182275181948136973574211181275566748789744167248030924922150486797411259931953935266396416687198069226119766384383416268620134548834597352083619320169424537321961864414547542588885687894870896599183859954408769246235213615485999437999229035397611277349744829342548097718533760134012790432590522726140391884242261876211584731661303785562765070509555221221584780514441962443389863389764846752274819028222844503034630169686486975274634691960673838863600364697472769890202091037584387756778336677262359503636828734276774083789988438030742312626530785047559216354391000930589075132539698147954367116355943341206314575105558187714829405315453055359286323474007009606490136000761000257759327841230272023967984202555475541299258030849180817784709922414525476483358623083099768704778431736515750897229341164937867994491797298925810457623035558805642466213819939240066956688878646321849703605190282219074999144181495110493554714395113273636654680176772534648917952126975884162912990544632917974943892029755089936763214624601793533565939693502474495678057387417497112810405418145885137047821832424609968543604490803195040223034869012889804402739376720467154837393236480042712024664426056456272341259037109913534180201385730226601686150954104008623462343244944783130974730115409660875419538732557365162563449672605469600185009205793719115337537236353315307262393102227000488931535302489208596355547876613496599652879962618437200084964067550426768120493717947233338222487770638026549782651038008212326923290130441904788161380587832390571518591303381105984608111598865944266389046679531074536327128110171825838609087401748784808846862984168522992067983239808416927286282052835149322921294206602252818171780951460940463107368080266411705764557862829611217389656401968005758482091386268819798279575126953511604288846368860676191750206813003730953390232957017964959671104748006161986368762781860030865568246682368991843065619941085944290033978408278678481538656565936209696495230379637689746044696289558583989463812549748325707095685447636360550836091936996766726359916069450113636088118651682405652763246660960319833101790477439173373768086418578561196639723474644227868262366071259679887848953322096761740679266842415391059263974515761294813052931577569757135396397458088161200382042429237974691397399929157153454460508004416215541064654077472553726237380283871958967064479332526638732074071248643776690087749132945314520351740760865766301234673060636172619147429867335261039105039489989782137251331437656113001539900314279142121544530585246689420438523264909180205622146067526630306882634153612216277616968141383887695822197363566611525614923062817986901221144433805417012439777735642379237301960674768164557322621864011137341080451847388930628630258532452762578074461693991721087516164654698880536181278995089373522438653425974023571534342412812823994193285161390856765228178187923022408266828523984293375647124772328176384139194605151987496249853877662852147049007227227246644078165761554031883930096420892303499454418281591218481754333851435762268676488434936094625195339355811147631724390148757324981058797417278695397653541332778063534608914861899932339476083491428304363795405694593852705107973895696287828347882283828188847523067413429462763655584775066878354207443383959239068180177649218366929877954163290407532267714522500794648593556516303282603498433263613872241758610760113415202058215177815430728994688498629720454662225614866642794659661068650641354604363356496004446727132859906357968691697887312567959792708172579218363157386407633574387383545030976667075753876488399409713950549347233499050037488883142274699995980633384060338751255944009685325656361359247948103140039482437068158359286040788473635064386439484525002268869926001267891447391273338227099467451211623978318117789356410693661490694221107034906011190136104307276261397733779663403605818150039171763380521612679024863498221462884384946433900015749083216994279934264376649368920384082173396331473274484756804968265969766809854288796993795635468281952625973141354722635486368312794283494709045835321079032525632046480268370033973676105453480796853490188182241530517343936106354981639665777280455546876657984872695025632419514085480646994369983103247620939430537730930922500757334785542480940562630947316066541630968297140563313197819950025422167985087876073690545057180635960748656921066790966858958683262846596781808826951600065176207794758948381914145508898997655315098432918041569421034243483223731983871194425869667683073054256646712810690430027954209636386712455071205188232174258823515016246093821360686399996184871567529514790205445562589362373885136249761687526172624690597093905624439543110636828202901719347653023182858795440177749352070332530467576273514372880707929827610385663760840063848832178703235968321003671301318424611752836371860301702793650925646784161360422931840619188082374004308760795519654412984285390018050869711581276327143291148443094226226130442034624751506143800546119505623583173323094038710538741768927202247510476040982333455975767137366582213874087188149078470481229307014621879653637668666073138773272823877809164343974633970794550512341311523415356434431538013478277305746048958517599475537372237846738869372942647309533939749409477482909652587895769178825481888721519414153134139511867630442262421731356378229696602885455781882428521161843106662824294385622129447523297191129574458058191634855969792938908378310698389497078105844392855636507812882226392598657149786660071891106938123108000179300475609015695435618536397149687597373840670343451819155014824201849195866247606946160598125183431048492370327721870406080371819566876005301897618728387311672676384370192806153023595924413317839624250039858359579887010807346906828703670251082645255639145081808753170453630340319155617425816160679797478129005240540122534955317511844765962072588122049305961326612910683207584482063509262422113628624896924094262711520199895252253166027458453085572983033630540068449809648081061875337682513164164673231096593644705759901778117543636516992899482656680157935099887075875418298666576006919051401236789048383051257923321159206229578511967008654968953988503069069576475961634247668859187084344325489753203554473820418658841372905357429537682653560861085855964673248674477132582849983947882516532297924965425728381935704542777048563727230400733527843959145102054775659602872233917100090625872722384379287947912972378467788188636774293200191744875698231882723038248769692358471771865398802101642547362041786157803788139483721484338167709189022041807545353973708926448471565549835006384756865201578410986697482802566658330675903425100031142270745139462407205299103000645406859683280300486695216808266073030320614782506345153859580536052639358452191354964767771070826413455837362242942940064483176822023266236952125667581763914330363522025895627164578820342124944060736476748146429982624033126050857850832216979005495101030487865942272357865868064523517537748693609082031313917970507888980119071630867569704042031179664249830015588247909759962898985545666652489144683749751067164091775110489460412119808555072907094351021860401318629383213607310188439242561430850508245529044964518027083315715471023193688992535755206258991626918730879542528724370604090601885763960420699417776180715295726979636959663982927678495428458850392433095800195968655065721795887817966556058769278589494284202988599425980396086122871883198325803224801256134361698079879097020282786975889641915721999868763944918514112346778410936918950621967603761620931563208700621402088941861571198429251941041641680835904861236202073850653864574165949176293262942456163074008092630079865600293236244936097959050297212749338046476964042215012716982252022377134571444472402341459972149600902386205496321940987406522887234550760609279407222323621973181754509231019042644485700297094575024141257160019278401951287239680983968053691263267391939064989811000885331720732599861950297936144741912545935798971511445627693509430162696999279588290181331928155517015760625186311701491240320163294551063722403539399984792019728003625207320535195780342860170272416673997284722521389550390616461470307124371454234529126279156511354291556169076580767385614972709732818770090711698841001017818412692955863983781713152914046630880448874457979195573087352970141792021189667302693846414403784247248278080708769562038734773040037731234150633407321913558871649917651162295577238338528390403718463904269610741521954370121547781490655542577321640749740368895515091143645469727929585554267480534286271104253537780552902795594429466282539509222414322840055059154586127553472245275426736939658454169751750700755494524451318806112506439756970290011161951183757247660240096092295945867256862138312821643595543246607437239830056394871086013826467111211760110774583557470453321298825538522713084657097138619000875034589969293325977332881012645597613930921198834845594215327972694703396883178060189068873892158474222295215709830218736802684278436341415500906283264687928175881120163282531721093336697005635667491151669021198400263771552120846317487883699038600299612835466690143894979510039716499562443298766303578836122733059161992407511427316331091852120945733791566792851253032593767901157787681368514468539708466217540744598106145127417787374469048624066016350678816185326629084256252026805447318525915647245955097167514296506338522639943649742827881321726444847843639637606385628343467955504707625916652775022277484058679386712072197412460039959242213780452878387992166903794263140514302572533073257763818909555207863346933278814907241476689659953305185564105663744825618784989526052578077307770303331851861591560640005895655068564018010344103224499367549718925721828652167188928583616661458580628338388618460177895302865554183617440488462060773947845038371552113771092820123378000928105665951805422419627983533127752022527406836338410257779865275962615951017294355189287617444375427403290141748731063436558964850007891033393150117834283702232846708118995868799443714778072441256279711574070549755930084794770438859927011725784012870983697210469713861499142173279049386446825577085478408811489077549449680393256857603629971137012986882728225917497129545537814550993216309589892219754521246161392792535759061453770057555623885816126857892864904636153527606714597611214520761508325132938493281475284843647355121350194280796447582190389626029596278401219857199229897349702480079483949270253998607796161839715452943828552053126145795148344434683545356569377240275220123165039145623331840187044659286616349586015422819889617090418150310398957964109645752548906044216491212528032743383262289801971388296063314132970050785360356831018131474198762298929935290729557736091711074064446667393153537006985445095958962436859906796931098395158063858975124675692839722700870755781608263713571014162052718702558184313911321726584079017570558794447697905581571692868596686564103897080484993857647590651552696926037300870125002691580349850501296394326434246543262707074609512685881471280130494498429158750962037272898485939649832928096867066592030719945950675550307632321156875544205355287574314917315918418472294956104425402317734520505781506338290599813398540717853739701556906115651336769258856667276252535729826990487667969021003847435900303038765226986793501031722302599429760282341618323091889086119911505641594282966279324026713455205029677037204788225261791164937717919310154080024758948247278474046279375512910609745226611846165369678578156873985444352427120006027972690344196438869141849683978517683028241287196484150799387293233878114320449789465566214968074746867864637838211188543177397315112492238912016158894191387200721237785035231785316708076052969787515891158089516717677694211569138609415608816935637399557938875945962171739858787362184838632892222870878163658409237111770212590788346388100701030157181157038595584036549126111720309285251648368438969897103122319298190645288160230230384211711555074342334580201551817377424883945081981591717575355155505319560223447556130254182040230531051787893972783267055373780370598930732829278007248125152527233822299446967048143578412317629451107902030763603785526483298507938398661659554413036872737398432167004990018741642197077911549269823457671032793588668308302565093727570496373502744005644477800449754266394978124896121620908627908034341643955466318109799130303128511683063935129992604158643125376203906157219180030008746131615019102414572941423134623412934306851585214827539264504814542809114047635259712803527720069311230171634595441078416391960892952954132053709993053889477519363930706135861618791278203577226031938742028974958198231098861604800453177050168023651192292597252265249415577169401116110435958249019996836788545707911614915306564972708703655021825830197916543640077278893215608274972512156043001104873194762252037518382988338532960731540247779826386694479571009044420542380310955469866719072434269953695661264523404739898805915087859152269256570076796883825419123562787754629910675453850957101967143243857272065937227989256790690334715597739167545714221238646465392109344572874831851387986049160123307984620723105956687105443902562472066399517872066737129322102781976945198124590405848595637286229596775312760997329452567416261405229921196350116131881797746557369064937851490213161304800769010176196058748797220223241007505647520735330390964675163606036364274625265994184487241938600777170708457902073629426932843084199263762278023151273936035359428796380959536480367895840848113931764821585675536635918141148652615772450028144340948673201304696859062980038442738730947604917631179025005366075553798254206128858534835504473594096243782587119236922589954921816557014020439663499051110329580379470031753550854820166892879258893468606697682406121414694619281929884906636531383653944249379331562353198549204793210559876400152741506621981927005147546147737326623330635996997693643406493426477400128014738047820252561111945239276307960813212645246420680605863106322722915226703049455410593537754865023541705590233521818547043512971228223847790268204410188289402026261522257588302673323926838722645622832561469548114199420434418175270808854253885401114449765797626631393404573657619936020037826552792916635879386014601721143854983261458113726045888410594017856981403808339498419312204640277106391800428241928181898199629186473168907927538618449244596379059247194486694015138629424743801215990872062883724386954975356410354283637680838582155150546250105546032244361412540373464060259612866330010037801300962311352318446138505354192706377016277593014388698986974766891471717659900390063416199924172125111617835398662238585401111615833584016690190263877202120893201575140206727311755101047269627523559137675159058862837842749245349697437735526225700696180920809804832169391906054603210522768126437064334368493387859654835656229329911316037173024033312319435345526290501423132124905165422406031537514646516277136768365245890215147990499656595183005051417745928211611934997720801697190788426174515351295390943943743844916340055831188679997002124780884650777662087118177112076237548226635739045072318398585959292891197554128477645121392705441849786229816388062858088133802425633103140160192316323927584838341077805303653484451648472543257209580980591970169999214904942281037149345014126021369260792623587912934097545409060937955344576595449039810057560128308056511043451923465661666279039946923466149266049941622668151436763927973379090822216209575045586867367163916003389628596948820012821902101039864133206208280411082410256590872996813407410795026503215157111277572632402364520114065948617811942125909165410582918283679629006236303959356207445221758107290910717756774740696072104462187097146129130515480619790918007044246071044947281592128852735341205788104451092985879534828034773246030728191368780338268294641708992748148484856516789878424716465274005827792061460285275974408482380631173701408938134179178804363374825116908216059824680740334181829826448830724692628620135995766899205850035825817008304942003705272742043229777826186586284721902398994616362581414689766986310092354357990190722347390618134989342452585154986625352597665129096978784301877851627836353925419774059852277648490989575915107733078908946865065278832070488914093302052766442053557910214439864463501654291599653937893363095438744939651688070866488495363204402659896109521985403307718819985504033962181708865929500019054653405613065935797685938457762657291638950338555584348801458340115844876208127121125541282967412590723469433026304578582109043608188773959522081482395624804562580497488746167879528435278966917535143579727692688259367504638260561824042897100446197994427005134258665823905328880308756850412323894917579982095801703991236360351953872314052470232101304838622370735369581089694691916856679379084467204271903644277566076790505019109793503833940407351976838079418501404510929432119681926402956726132199507359571587169818433686776878996478533075366293064286989872700199319423695973418580784315734579519932970035901862989371458410231151914787884903824354315441339944763352936493338062063060439807608524297634978914416270430408124773752941679033735389909431381394544256518661536485492731983297122402005214351914748527907860033145036070383166813424452100273202811308330887391762202980014088356189673384981931904584436117168889422206380643318837801694385314292930825602239803403269515357958240209994101928039477951907615996071080903032833525554032745262747453417513552878373418212182335514807552431175415589936480007164007413223485800942879981953081886226409003488736244629996151915460905325769206848183273541328435172455255697384613535535285862760553981750249368997384185201341382310500223103646665728184412285206550476454939856112032778409342502195370107850301019617695106529874630702074244333318866292208254848235244881775412469979286527103421566740602084294960435077457965946926724909281131360976217789663368183379063252060626226695853547968469449987557759780621536167987497391034715729948582432037428628579699009157148530063956406964338047813224460915183346284761537494543725146942563172851605288494803635747699516664591880446733552674214826063038911211554341582070397816619911954862905034627520299140666280164421706645653379699272158110858050415952987331537986940314344442733171815570231683592622781982085063599633681957370586823104239016667231796094972911629181440681712582456965837029501533050739861835160600472662728188225983475076990627376759047450017230933400555059966775180770655539629413209879825656337557877344427822043561952085542390928872119330819950510131422492403576759468078537772004829342673701047476355458399458879577301435436691880416809052902498043422169676359483587624574038224407749113659749327275109703627145560624079190968912888488935319079660998564724018200365542037852465680434142048294913199756318179413773095509626479871366451844435190874157458680603612801515681464116513820427241114933939852920467201236690655598780609945018403199306266445712998418610739635448125602196211200590663772758691312850168972945386524262320347682710936363331118474845004506866730714828661999222421170195840876324929527214090765399821741641755639783057089348661132184300579338702471868062420729971020172185833962099037767336861283167550276964458658902624204812458942710042989879572333290172971875196322703898133907309351611440865105893872712034335734934387539602040601491185370721029944268177615341957118535874400885311851256868913983728200786783575382169713179232706325178901674878047666152518672852980101117879216267165998057460660215717522541528132816640955444696198097360141350221052743780862069137551516066169948646213972031223240923515535394130503422305104199844904055221170232649121038811355214802742123858457276680087739895305011341334330841397397071885486303873366756710577785924160166556753194322300065084388088954487010576953035887388438172721534045998760582336759688837331704491462803479974264819409417809593984232587855005683775430000355300057222324651548435318862104323117905502167973302152018704409153854358761947663656280170611394694206764545900243919536162998238450255828119966051162165132122428693569619860030523002622184254126637686798407468280270632018446989592214152325487293237189132462123379691051476572089468592558614510187307158667825106219007043952263553172793081672486071949375951777651484049388462480437622280179932662184980778277047697222342378674147524872070949440134960882550158258864581443692395013838951258023008613532805472758525466292739288808640206908967265931600500175313725599166873824613626595012437192379002716107822373705522831336461344018395473673258260657398837538254407365178321745741172221407210748327894990452358797219545985505923653173973420797392320167366150892012457641213041200026098519141672808387803621275228196152589550261281740193688981784185519311666534127061180608874178662655889141599050278131547470791291335312537867975816194898167875784524805687836972677174514263817282923005870893683170775017540433694515163182092514016055464572570436242182199974340709078008079942674000436555984251669389812775184157736166870159125795779768131543657897875868578377794434499181765604216368476568389223143515328188039798912314891309946355259640598536604813578608616191313252785264630463423889665714031649011687975168322165299706822960010173573651896699454683338390221245151458932751484920758168495039410753983121184557845188091200028692808683339075330100156336983518506673162022820120151353287951792734374199263741343671032056542929620887050409805885769684574001596091585945369325317260969330085342070008515688190989999030076143382935702955577886750717438748508062300510212098310709551608754741757113929397679595876405970890994014630463640079977999178006668812860945428730991933547787803412656007337820450299268827747661137127497077956060931374628027938424303432184913457690579664732241492431496852882339289769332477597961127441450140091355083729724701813294764235262821988048143533948167770415704265100270624172545729506046250904826345143196400640211714955865853280386464550449487247180416558063114954994987788329735842373226102677620144571311879716711866405323035098666466091945408218955646983940887023439439180519141773007884641478534567217806189118297880736149182837470509958439942758903242512135725333858730723259207486061811093055328121514642751131244758670385620641606162250446012487727964042336293227209518401802957346879937720941728788983446026616660328963787232104576231970579290975934725466031555773136940786977854295741782448961331379423216142846615104271472230990690519787363190062077664265368393222617854500668128794585143447190492279396800966706735077952263122658926538973280634675872107384039705765871934552706755485501154023813462854058996097445246575961743576744154734111181245240091873121242234537081502225342952014972586173219523789762556409807609124709350950713333963385769653853774283723649392318597952110572486046406117305331782915025224218953306766597539236659048234849119816089542032333115661965322323216551420580582781706396757438117755348174639132825572395935695380950259914850559104856182946971672858561012711820349061196932827769133780240649822578881636459555595090398317947303415145231312407301361116139308953161051712743058448772012178660558926508064168623258632749695484100766077116767991666910353129934245318144987430568021309545970746091601974326656600012201748837101516671830210268010190924276481522706999951164539347856236126239086685486962191308743632923822105822414021939113421441344323590291271200006425401471503637621757749039322045882547625196005884674285753692038563868713893887350575418593922003498874084946538107969125104717938739878666563584113954478552067868307320515554825550043466880417289693758022510543082193262877100536414267341626086410640397096586547476679173691704517077624767156451038408128520205619797383552847604309941033697548097270496811967604218081406748249984396554903154036079016242306390740716937165817947387125693678186063569090372223656010669866789629516177901971472167563654696455658359551730728488015687052998623271889887648244829607484925724520365257842108418041741810416945174200911549572450246255960680416454042227570601727556816601779046871907281455243219934827198655549923940951967779465745561549958257210780764673212791543762361264467802289248515977051936679145371624864045837935660960531659259856474915040294966250160562843304219906503048613803306739361410154362452177148443297686842633900872523925384291032698528578890002387975435988498790266319327127364452796448283562370378928254398395152025971476833041551987631233469498162595604313021139506647479783882937923485882967020945715908600502549080089755789322227138750719444190897753762025752844187168704881328443085413395909769107586710196497799602001064874302404461449860177176640560208204604924691582636206547810418102114243773337213459744072838959204092323200113983007467101907279063302482151655720132722459116487197735636155022044377393833455191784303768476200249357652251270031191831296073318911631150874916715143942118825195129560767296388597876071275862213047004722055765687902193522686187973365052582825616176632033150094858367347190783823362686380791537728180246190752730678199071418633845151445610837323402983660976145023697168839617446473204193604056215417132052961834344376794054384008879099476135923393145549429691068401556673649351562895966669930721050747278504597428148402473800940105747329053352214769326095950282182927709852531373290103672056181764356724824185275415555686240805892847878840845077477388488269060145453407492350283528572887251028501630649315720352477859347707167065534658229973369138155766765541024661374589181419687687268694104571603423553350263243507209539092806613470630860235474960580765348946938479874397174008396517959688263620245841952798484239029264750409825003480315221289784794892302600758375571371669391897437753875104521411119870776686292533148244702954537778501013035371208679262847472937139182395684448367453274154187314847159090693798259601284571971320610708552057062282766448448458357163649267464168317314244956604334436639139803014032077123490493051680806177112879518545399379054703763477096483161149438671349594723423646573509435736366824657656223590170264754186700875869309113053777221713636198053574391479311227955910256749411089090913186294078739541855256939913103050550481420876031484768318466686193569926091940580337570104639250083715397703990522376391696989866702632554002157929052081350517558735942580925568355123926735642673604571043813238915065227632302638660996740481458423725980212302240063144650681086102605340158021874979179692276785479931975851509140794219533144401760883797781755460693756715462781791366992649059301340438039804137639992870037883136130229381823792792467528914601184124973610284954076578314291346319726748426780011273064772891633720488322330089462162016409564400867128073223926420669975721397243136732173091431059301975032468523971077656605998385864398680001625511921951418366374197191262069806019606892654291833689893967647241116180873589245257718525996839403272287914897738445174907786867037870353404286312576994998749262388607126285952574191087971747671042173304375198734192493680241274070249417561368351033022051719106324757608783958027451362825387184114979636480751886343980487622547417226460503048241251913659355076571053274248708884696272673558403786863343009510864759606487096752136849088128964006669946376168198721845503461784910173895740129082282510855289721233356296970075990632648369523185426444113787323411016364452412383695681496774387549595194101938960180729623757296300706363028544869792322241868662018381783300330764985504989806038094213273045135138287482012852457645619716638733523764276951941733896958625678531832498062828634882127806241300415774286319779140707690321006122210391617605221588884381839476843253207306931811774984764890566116769668217157539577351198616655476887566064225041468552110370312897042611372314908253542384259982071920794332052650342305771879579748118090813194350858005311648214188081062775463085589754013032207822910091828796660363177929101956472901002029686818828401612506080064737965177945774999495526766140023385048924142547967727678224964003994482001315920656560921573527942749970856066954923222384381370665228923384687010713775146415944106041800164426565103092422025378547129785731481505126244260772643318893379255028873788469289953881329171696082702224433728190882706941947933991449713858771552793819418762672882860969393773219032857641072905038889272095805320834715351918058862079494122510754238532819120258992178873691188745166644323480086742269258635382472259994811618969484975447485910565099176659781446434719022291276242234584995372434380250129419888172432838815644349622481743761212580782017137717759405201542270954240491357004616002206458338864731898056221080312984645776241125720945168535550017402465850625246252465488661854027586411586285405848410821505176659993771705827158398557937036275703113647630380160339466215025983038326745722786909140779303370942577901060554417476458341031140197609123886251285111058089939183081226359788780539461181386022238673824112588819907787439357910250280378124395497978581677408766851507579360720561524592104989204350384733030671877999627469286874566357576744711240750920709307378638612317302336680714139313953610461192208650247701792452312403685127546258754546871529300829478179746070886595205795960882866786849621994410277160580916297925069897343511040290477672991229246876583856355698123454441066843955542807054291444227536178172158221185352467940343177823284148154449740672379634497137766477217681835643279225943133441654195469806420400464592736837795781531017457556113426090139551988854353514029920042492266375719560773908893942546534131907024777252979058634291817102235396088082475362772775842273129242390995771903251840605814786333389805555936840211804503045750837438843073783496286641238728307063263434090102267985816086112904717515738587032678423192402642606468075819381508350816580504613175663095603767678617697790530256895984118758659429874198916805522610749571685839342490096899461055671832568304676992947611464650376681092668903242866358841990637744393443197207575696007077636513808404876653318680356917399877205955494747146741635706470606617377509118006375411996184130796058205570410420034306608876373531140524559111176725940157618783466814161781488228235399004612951228236926639802136627477258165853767843679171309262353117940469718170171628033191825253531471958918760898170653886131604962351603144948967053826740829271351903610613660324972007713373953038200756229951863782987002875857603035757042424248098015177930490213836647694654973788507448819422894144988733380509401246779112717068049003299140408608711224368133180760918299376430048393507927546153200462016309723400565356143474258462186832885518284155366248756839716100331448154773838154428346394347824063733284066329296525557240965934012187384525822805846589117760368908936161459319382847564249224053870842770217088549740560569636192952399009272553513634064894342685096033183857269835498688392447285944307157247623234991167159881623203180022400909743387485863087915008967818850624903033500767987014252758642632517870321983349949487860091858455822361205195450840155271338930152235972546758857978642799295412151063148488981735492080711587006730016889939060931834411773961153143608816643317995794024076991604051992204310900953420749939376738788652597671324451205899148902370717350802086101359353710342824913926836972250495249987552813971713677300728904059554488742678182937448763631777352393450969904602692181943883472124909393602265450598301365174352781387326797637766732052843936994700753812342091235367862662270428287243854974321793972507250339576287987347016670822022249431387964639938140709144858515531173056616124716353195690615841840444335765721731152274361417626302526501796780606035653673304093444072419353128779748567188531800600233784297724516294315307300443835292124942729756733106880896472511119837152860898648121933009433319765611184190413982766631564287420006809016862011350116878215785683171514327758408099528265711380546492004155480324454711809488187365265846668581195392707946363902099544138326158672227646087041190036891676332028299037513517301450499838143183299930794815598671257009767933121179124842579583707693669047994078404687587972655415409574797855254423983822099621726929205447683447081943749370671945329754609877567046108085461498764277620240434543026638363787755278633595579620843371029083022188930262045028440666975066794166950096017225676763502356524817472851197450770026618101838734014338853849719662127282581095103694919891612155417922828256998965409293519462346448683427301102197965321810516954579539948133589361238262904216099455771358325814305333370226430125273717913112106950721543090588247388498567252708363791399986181021722153219775635227199451134733408911631655075399313114688930226401706711379025502599334603100267976345554207587504475698599850249862510495034464126833396756359290300237052834859367717404608747306515023123360191849971550545808300904824520684847166934443545464709690427273807483359497898086586286446244796519860981854033456592417518720042661067712454059687667921167411215606845549714235750007456225081943588875147268720824977783190091527477939529700514153624551743161886418199417314483522756020493792491592526785326163856094105804325181209718765445179259888485915281795652026383136351275231463355136514456948259024227218412262185764907659861124216985475511567017332249362624007758161400371638050717253709992745790792274400424230023825094189009629634109660466974810619421168099659186718587887484050881186944920853144170175543809231914128701323623913106280519747279914291228326008910911097228697606349789252509468647791530515360048427682969303955616284237610110767750356949659549051865533384679084659253914285474541554174451382755671658974059436209582009355244582587477986672891457039327605646336955634108760309176604346585149079315279375225392245078262524925683230069688406441491427216802343226901655446745397996993971182366785738894788242088825770458385780441890397792382117540625277447832547951121038127956155325607490687303112464240741978502958295243627912400058073344822204072571137382814776457559474491125266247655592344705995872352896566303011848124217416305134654028290381941048941474343372538282971100730758959649883644711274562493222363920194976697321340474229743208614487584595257052941060369340616218982462571075550337889790711597837022626987064332327689834956368084644260861062307926450112092225048942991059989051287005397212390003561300164006781724379377742634271945342470679057235055886562811545257940155043529067646331710889158983076346574776075022220609377146382285193012582705857506714774569386973125960105216300141139757729577114440951340926220955697053179766942745900968009239879910281220426459279693587801405204488171529648001159901994028448117081611196301370682324453534927866060026421439849218509542331693281489937708886235573099050816223302155215395544170814988136966605471101911862649751214050115032729711199485659180198257719913900523781718784519769788929394263432206125599202327480475499173882337531506852314932088031119904031267237558386868550310370847646588385493006545024489161166859359210968970643321955615570634019080729950224553229642503608883845031158679281774744302532692721707183904742067883292754426666914099985064502532571016845996023685998507531126127781312135670606959052145297225630866256781669752190322725202845374706622721818273079728182669720663858390013280134705044026408215050505696457337966374529462006154278405690402834313612404052147590768352316431748059950091083663239762387841923815007861452410601455680277942490270793372402104397777713498367885873683842653580871939871334323574199714463619628899656767816361078244646692171493758630706085811603677339862976875243115878432599173082877453556932710434764887720598298479768071156563194804749150999902212338341371646532332299812472279909577200227285442070143941188010195322818733600458962239991956264146219554578995412690771404601886169784186168644585759215834761358109575024650258535952143537104019310136880557372269242606185343637226951093154082200997259108223626035530256682309608320061267175459000405678536274254141393552219726364943307175995303023416398498662692572488984808704859009684149524236269045059141855158371985733614988635162949141726754694746057104861264640459192160235996198915346465026697438198861009918107801767184925409793172728324286568038774292447797316949218184611933305047039161997372346936717697380181477147872028142842305092188463396509643720582718769071246066816609305808936880528199088977085622566458106681990787526309150999838235317480632571564337008425359548686206199298265807081092234606676325235573615519230477911456851695859089428723862161285479683714253359916876806449914394073953894574738533227919329021904355730787923872884365729129787129927400137958013088227884910928841444089419538419575717201967358811342788235067424725811612877538294345037028484975762442327041094124031088807777385013972675268098398918961203313801848244517518856771459953876654822186960757403896274231865124936131541897029805145858326743841872445075847712440163688679467599443491373748072600073150929121248245333472026493036236273710854554846777953326752769489963830776365545509389691083397288171488574244419325325012672456152444562606268778469548740130955536310788500955091014457064107508757123978031948243510644474545220324622542257798663125894555509871403065380050515334465910123286876100019347331025876786503694724784320394173334352264775484071472186382957847046865128393690639710697570497014917284177318068890096849790456904102293590630500982039409052705227195140925547341335160043510874120478149032676023374791311161389693853652087565707144834246563657903768119352775310113814501706453591329767385248123674186754678747231494164684634485750791508885040195160583009048463364687902786712983242440291929806338785393802085050746002144023760744311498869490408803969220632092581293359817000519037050600106740169877404508707725996873028047378794780819522343833100146265251190759262548167779299359289004893035349109633510546531570374270981840867861757189905441533560842278601251764689965886485843509543558702718396313328501786792861191202175948914142957065906605770839834703948491662556702935730270190191784187649087235235501397069074376370702723257259643892002348135306105279105596138015742670130840651646040730218911802687566623279976633791266181466577153459850166861057888623761994375215623369043281366571911093314884391242793040092435014966821866884392467707437767285274338429621648262166140567897999255780527436599538328198186934308173366442306430881497831635319102458331130235746882244111868189887311409231392152371721894896772284699398127983292400905748422812078174068247382320057497665641928049657496674686328670534579345522593547195721399138431952656144471559419653402376588333554591715055513136881500027740202967237091112504519458897321294716156126288436057568578083434197771588713621092637905100798715314006263526400313342497892401851338813028260118045754343841974561447129972570047936642627604367389003555090995210216897456231642850379162287895895540741627619666176803649009790739317484902727695408934975070414044493137616444149887530325528356722970577235234915087336519563563103388232091229662110366070680187099623155215762017739444073011903712468095142423724742958537488558589685681881092396332229031906336063522067280408615817600220753200080997604549044325437649852602641265602986834867711459194730704470646323958795334367909909964231429541918418036595387910929327082784136669880482733662656761359838691150672590089363012138371106011238411386516195544221867846903639221637700303953656151393412975746558464225687887830046054481060923519130855883169084346068080440340366062976255424660145893296614558504440055393465651637220059621770957024718636959505446021886096168186065622576522682568221529784981077909375165449647404413928388103766219464949956600112280917496358286475522306568742457662886317655838830384115373739814814285582612375674788305829590013126968635954168649379476987806467546737797754861772097627033452529695775075463674931980969229455573582773448471254118826053759764821394228296203027755468614998456611054665493713105375597496029643265283728918111361474762386025358719567510140914937093123074426540043085845713232735996388927326454770296412025849208179686231553832496233128687131190682554497603167994294394055585970601893125290426170685138232393167600753472046848432387579274315438879287469481575873861794634012077489076145748720379172285793199430912980756229438760258518395843261841207698678925403851368927170140536759359781042477330485431292315575156296735577796204447990243558910863309414018337441071182476698333024325672862475249726758169913033352633342466904994770910187290813786548444219019736498134249284095639407595289586558150739585189653521592474508893789832587386780512817951564337888498393155235402680975452188364471401080894724974425375626575605820742442971193712265130438733690294752431233545851159362905392622072408579518684442247311937227929311245679771166577520324971362469535489649025404314360240255891706743261516316878488585894696563908982694489396848445307302994859416646581968094392166820121599611112965470817046970946862438513739016869955795198503659169766230784018607166630541998690044122435741786723408241685059957245609840414876065977256194897969207321015455950917384428410772036310349042829875607971732192169000091576486928115679619004155669306206495388351218287784397491063143616029124381764276729918118788910319089321128436454408631770286995430689172094698141388038283894534440428177589456279747996412465914295634472838121782584214874558008567513872305734664017081610386910857039246472458456589051377155291205370211117400698237054033459325413997807664441907523844512814607365059748389028092184086842301450098330692874796783000487091827040377007959359481787414223767897728172346643443081010847386371723453594278923828817295286982042780633320221902385264611686633114507504041714766552177483304914665118994105731276148961719443314490982268509660766866265082869399986243013256662193807474060311924283073902385395360466738128503437377861491193561959323999695805583039945759834820270048574210161225315366364136944636065405159258922499507567021112383023503381944914504574658146495132528607768895323103394734773708301867384002276800753924251118962511095726483063447347995681036318740007394401459366532640532353384111421777213921770245144474455935309941045332621756252254831053514115456844482269620106021045664860770048850669608859149814175831457448357357405867950359879824366634700191287860872380860120646350901024213980977222743894522087813614097961589036232283090835974804836602152383218377909113783525153496172653998063673316857482185054503938726812843626280656806552678175527901962110200992839146668384963922380767388309073305560913677501948717249317332785676221774412332187865567267212410668888867638215253424915505370713955996997163018640053402185533603099344110319243589316455237440374294222791323649578686326927042068324969145967022475640290913929968472624024180407967931919427943957562469436469798917047449024945821607843235949912855835683115637601812556740701106239025947470385615168589281199708996033482256035320997191550429081658646478080911561199635111166748174235755911792742690885047295423674927864912478814160651454667145571011884466590861879885966409727583138232303468080933577943994642496241320976911801664735487864289109245885391629888139649457595576245184530651337577127816485707906778123579810020845446960434814517128834155908832468355062373279120937212121351836658318406560806477922340478398780137612771541858336550278789218598249549266967349371507666594965414569331739952171914870179778967014550089340435771399420193265068753621198674500346192322686801960016155533150610278828283285984981949998457768134540784653054237255623725511232026874438623371369545729639715322832733913491876487204258287288642619863370583328118300836200215296065063149023637624939203737109365974252427580107265898356144875159761845174189033943436410377815182178956751772569385674635053549253746234148567573256416060805740822834767581369538034891195494170636738782361861460300717629000762919797834865457622176482973509705776811926731782399178637329108042967282562193648002833688199075939886485777544132082762589421079814825581759043298819389161470817215762858175547695515713170013611646495459452175942115460983595222537860490590560609876072030554653078983132719115838183071765669317269580900197078313799732595903145605323604605748606138999459187424711304550547066017249104751307798856602376754637749316571437406140172180343870144568356269883402067432897743999791217101752066921406477539064537129090059313703490542943538240856192848812231273701503515273550005431335928765923867119212494960846463896515292089774381487502864410997521133090497814134591614728576441733492940732524681422295272625529177289749358951756468548138744191084639852835986940698988973983041246300656178452020430120215927627139261805704216494776315398119083842439244218529046501799434029922216499669649387977027056173877791010671949804395927811905314846200741559674739965084638210084641103488757394671637882458298480390843758942405800771522895924079117046486544905630714597283787223716928768910084506568850760696913029213545695459529965205006488742106098421059632872871105057502038221168738291226843369318053879170727685829876418141723838663215493611717625344958023101520133773990038781741806655382478028651377798939944769058077824257815396789114268267541713347500844761842700083368871020345920367989058219778028705586762379557490658740577016294473584524574686695320581800902640996890001952377338995006506522639821415166538530836114734153029460405254424587823389209660641890890364853708225693200320842239703574282836850466719825626847722877437398611401098279947672824766990992898767949547556302950701763974155613923394571093431678272511712205786730828346881141093267449264497387802054187768986498424780771445820526731195569463566455753491340726485574077823754842596357267261986829523210730313162568766537890968459497824591025232792917084497159344242158034611282676189389770534483954000961739759127486274370349762202492069713797205075712140582855384615723475137748112894339804382132647165822040531524318438051420585523777412124596486454899806473508424464458894209798028722772743386454433126916834456116265378229144872541696877443908087958735702182826215443675722117518547701324483507127341340972662418002665029340611180820425198402815473590342998791976250058421025298266456373140085925854699512896319851753234918398313337938103729962330342326438331489136078655540240795792564209553037526802119257999976571462165870326858025193210541871938319839028928526445333953042914152327405685135499380350186624815659108696623175244776909080777675003426096586647080450949239496014503171883791677659653817643873915210404986794125994715351791725631013231128540954798835543597966393880844265998065829568073616808067757170302891580047110986977772406098776483187066316496619975047988828400386789987370373509516749576498725035041249643601988031417359863328358105547189543565066536066534162666611003404430331311663645915243812133577829373507734305695236531742794620991194266619143214355145502823871172556409667728115893669553314236925068188534367354373063567561767860105594130575588066397445041305210931538653133734220513687472698790494803474639273288895876664529511425084556259948333170412984057234696143088914646418120153646747027510885238770755689264282138243176414438290608864380954621600133435976999214722967371320838614419055591577112949481066787562985314947363243571005070588674271426857524756550601968480366892941021822196522550016684666955882839790563885282111244293626419505897634087342859975696601945315649178682713725785856136137680586083726857224725139687466333241518907168926951282410938207224662861006857840086026823649602222906979386116785308916946106105250627454717526792472097649360457058396746142906029478429084241141085097889080106192385293654437537575830125896493982047452700093937151377490994841881918581096634430439079505317152663936155907304341504681106901239428587270101191291120483023310444794887198410348695576389091480620271703110656535136326277823947047195893694138760754331039742615435761039177312497304028439685517850417748906079997481012080807876170929236983447558914459715729563054498050337136586312656664463927386724886588752932752645302930149803437545287872460455687796173451850790943165764029717511804108811968050185562573876337577174229712225260813523697283812725329620909691537177224600101163933655692375600225403930702859051283600606599105097522701730648107072576467733725822408547833669441927842761744500746354221181773595032190429405786830192072871029806089587046207589151053589053947063795748299619384552734671926629600206153110815163883481371918492611810525461280796287103304027209596491046773286326650712765433813090174314073559874531277476789529124378605846198096579984177425275104721057644632758983665473789808164160078536607100084085664445894762114577127316345498121182470133418266227010073268263461018831937140508771406076978072742833891671284460952710529054037977793081072920058294042537278425211219818880583577830620547317291958764337108142528241164503299621125561935532465707079748595398187447688153095109930228007123319043964006228591074773992717589604219199980223979503700022431265498440076494872325199220273042355117934918540687072189437457136086681731213344445437324264389738345192780058302271753143797348722729028644242793423569972428498479776165601433240388617225549072261860536599526697734198135096683696859400266420983258321972799694099680151084294522900297050782036010112299886653025552331101101269242378241588359163958839701635645453940361474968704027261681643374795937450127510656501148227234356387015231483516560543551047809050937579793424436484040813307827611017743741461806605251627369006397738696294879524399866850051783312906404373433432794590283484467677409798059132062080453041466583853509185132805552759947015210877017461698819385441605234633872192936918800610034466180553136673097423505679391644716840887924659691662900342549243074585707771289345099623896256358358178965514681689556346300528157321713229928309069858794638240605284916674499654165241304824211884631256961093088303648991482803304471010993395189250901387489443457333131039395119807687356730989112309455983800486177837844202868186741626781166118056421867287525134935497159962759288210046528882125680509785449913896911022103784091642904426298455472308803983506312177684418313295486050682037487909711521575855492556080881188350760561429487607960816880776416197119993725277982443216937797653878148464586490711250354141343352296351905284568592238403913815108322606194644755376436206400505698541004056891425518344691514794342232089280560948890849231953498980579883113168770003314115659156692510261882766687686439999902423538380345602662095763199523316840994112714472333974298999439679042272180549621955494944926930531047332562443902827105281826410834912453013945385525942404754174001332086593607624050025536766103675635332755368700931013904669837572334725539084714399839649178342418090707134245310578856231665634949169465577781699270374074068835537463196013403191254110742318390726664932911645139646362499633565100620792776500908196857616544800205448265657230671475772066979629070611020683220887611501232147432640043341829017191094849715959792610152882867020345608356931171786891366680406303664137015688454538363546624325102293342750529640746655107474173141377383438955997748057941951764433824290136655815906018273081780058247096240428214746161025821952145115487110086856577398995940055000214607690275025766958911701836450784238385887985247329940036113932561670501040777930466517031635190551953669250743207624490820194878552728357127939009442748579161019133559056450716457106279498734199095561579382789699632123531515088127021035675033883166257676484179112822682563959001420036664300201771455541161715762516777973883402792418996264665252508390600104792923458532092950693775366163364371646942479978312379951460406943796686448388278779291872491133048142487151784376212280938651539235356122531356408312637276179554923368713540265085654472405379089190886069443324215082363779391033762252773547527846658277677483567942633208601234924751090654073051142264500813238744424155345149223990152307492591357961029793486075540011775965623559968557546518221889068180915648366184950020448538215259397347837249077884431020446758092618477218271385146049795708669477618957648152124759915883647243853112608997734196161555480536829378317469585569150794311183675029686997702212928115454807976993315379518330017322715156662493163864338831064993506467180832757848790409108697440103474085324109253467338804452176599696547194620296332030506637552425204647663235379068221799164395255943588705022611538208497505494000535310732919743349628725442711615640546247724557767040749307499410663587712692722237045068533481491846930444723769609543600309291622361557244966123487946414636350476565628972004504114334443786359439051889478065545229423878985212715338550079266697425659391584538968403129791731522418126118794013055434546963864848637083684874775151686339394580649854764658318227203495484083798935003146951211289983992459975322576788853898842649759651867888340151470450516081520540515862116263815858783948324863673612515789499755115654238961899369992335478670785641307528564600150870700265384394837598130383864260390357774985170539731549924397595309986909384309343895480004112611135169454177111972909581621048823029268064876501539921953299164883490269409797182900998369666807118705706955137251753724977257924946863463441581638499434127179451286041814332430455258118391067000829697921954938905140323760396206210333147243726506962860732626391967720401736897349088254659241769966938591329002036808981845778967041917497149271070418290400009698204217565344363400631607575658005689052926567086358710684502873537402777196773698192975709407353636762472264556988393601360351379084876717043525602179343433914155784541573582932888465262984193576922921824409982079876819638233804256632985259851325065081044156533940841215275935053548280778685482293469515750630250217226712023657950068116545459488286642878476898583068856293868157076393363118850325785444964934785543072712189095678783883305554250166399519408469903915550522454454934570545365238627979118522744560317290110585716919781695780869508756519559093943411817855335187141209389799296373406336869268113895511824974339961240752585787476017661286790085425770362401040361540193693214076274944437364841549602972954260801767856580410055320579828268627829104032543301944224766023194126725493935234274569068972517185653884756211751974529223196866773209009930339450561571261856716712904738124519341316677678727986248047189777207648041945297754971816588955908773340163013898711465095069554032648169523632336154956183395605946959333006282875622635776838100512651474421611024082549378505496511835720809226504100649746042520241868903160273631650979544365271051756574434112412837243495310238594037940774199101252475889612176697028743884222548858770360201335866898315459463441840520289081559618481630739521095794250226047751438490663416378565454556936185107971548398368727405623233018290214492209660985359900008000130141470482752348905295973935680245554217963477044448727645151635999613756634514833955275597595409358521779008628682921959911361892375833705177617157397151914796978174380749301988458184313288038629492375847835103173370000364296683362080033829827239719580984153641624973105960113280465934409165188622232244420804860425079421820069724364247152068164465227379550777230804257856141556500739908220270152838140386278160384947091625804114808304067203174039247636450605434656240658965583690507233444360718101598880425221347053422989354932057837340939345235704613728481167912965632162934094141711356208357014957500987926494142631481512137236862713780011788678263422204218057227321689152885154941577318484278112881442130589228665305970705463742036092438617579123197316714470877400051780625673922396513932844390109286226475900307133192363546456193466336546069046021598130261703301060590488742006195784385958688876581213752499659413218892565902159564451452853979561595549028071894211439516046044577702206170132350570161823470686817562271617408716055735907985783722401931946623149255370867119692125936929761740210349143343131734806308636086988302462941315591566668360610740930378130033697889672022926349045721559075397602302554016705619343727893885041249776526307913245684558057429013461508810230117742868542708606558144223593866674460002849268119502955318330304063127325083262255677888321926068073904088133008144143722190153452762569343413285550208424126715662405758630380371659821799141398832623603390785959350244146497593851175038626394291219301469087895301387329736118520830657337792741633809067929104339885328130338919339995930577262228395757551240485942332522896238509449188384842932743416257145116595709462605563753368789684523903019581365423905898755555153572628517783781778211824972509942461864063247065176131338420739432284831263144258546034556567635680778412533877484942247337945710901674675520292122171191404735030101010571320390600212320047839919714014304986646612230926978098516017899031595543892828792543479939094068250817693323156922152307303124180765389793801927596258528523446650121809833521626024610411566515054627126117352948314592557320625191687492639374222305992451792550638093048659749561403976586849121214898843416006937430811886664836513167229363897113318192317322609188963236233997861211427156495807069255224058861850830789434218396152227655162266190545782876915181767142565733853766026901605505960842053926814926778325158732418426245082144853385161222016492948611528285343944865108647757195538832182506012184096634095870242032551806147313669033256413728200568010736289120530022901989703131110585885920963751857280074443919780723371038856439964052253881996577080852785247800063279904554396705510718360207551499520608537785081307418730308459760848263910484967220998049622374185806174877534413953507586713477557006095799105329499565763869721164004066127670337528874574346706656906394775960306831085708253224808056422955592479540662379024346322847377982721970073319058058317073445317809650242431110496112567592290151566104391580551080792452431667179195364802002873024490320501041026751012594827092505516530525937469987118855976414713009794497245463432520118908559534150637360848194821109266962329926025890080940178940667581035691667069878948991068404095746524837810266844385691388343407292554949875671584779078667351091001287809619843501041513690863968999483389651228238419142663914532348496727975823740237071210547141725902450659465838362706801814738510520989755512795601478906423475383368046081277737713618246160977738187077284195980189334298773076658697354986665962759944018647932301822676382472457742556513709568030511653225463238132033584140376630997231486822362264041895851780674012912599947908314874119591304454057378200030044561306528545019987497254708822247769202282608839686224355329231525832543501275698687541466612941207170205677196770641849795939790730507779481301216659777264034838480939382276242230812685635570740859714423726023305045332482891034356810603581799477567580778402517189960560208214231302003428204021916864176524774348189056718214939736964355652775118052737243672709708323505777567515771151914338684004676816435548237029995629666373054211549663331352318026771178558766408262005412265691923904153822789369978806733983837583432479866264620778711188538252164167759938018220232229305346397293024783248196804244112522294784241267201052270542012500241652081054462192536661432194323295412880763149552459159088023077368834584397788896656063973234322701897545205557310551798306250340105407455195938840711786846091494282194253802880472793422886912443042078015598030434400174443523745712942882350339765135397671527820237081536126098087154088260896411114086590258863290932137970599292709055596180764858692143121064446042824843767173105452367323832116463241490285507475016612164237812066953854477849462956012890177094089810842822886198924446347267933494228538243840110112842276657690017603822514404472279568396818562266779987336587558953409183783107035311935405810026810323863537794712884374156398679500667718379964114441669675925923668254456048241957763365727133917598663695350759950014554682142368288395577786651515898242011119092887912152858468393845913158447831682959632262789556692997210146451194121946902240875481828583595918328315604022655975900248430410468529130509674141098892494575463240228421296302494742505700388844220869610495867434415616390211784024669694687323876901633840540985194094774888023439972133659985989614744635713666876244494065962911009385241032730502971314969712084736495577392460137564577516162921373292200881391825682467829604228600603338986247361667303062299345434243171217515033072547930445074478050455547132465089107664918579253247543571692013206240351472914733739759206135962511601044566696629989164805745408507887453436947145947454579069359658935328143012854976509044382984145933566740916554878819469031383497781343993000229928775236111866078939182065394495399401052818125748556884298966668748833343643581574921168507160976769493073961214869096771773357738026555268194953096667163936892872502003897171077753617511082772222562487455910714250808044359247294120973650165762491198357871805549619284344804028069685728954476877864823929635252669768874644900343675008888333670425856907929086219229539179943310104324190677328097903558181018679020348344404732025090917163642290145286488597726255930149028138362854043682757592163870959877485773367696007077279499216405092772198873972112055799665647682672610513687859184129155964419696334480963894610787384718130539155342660172148472684011106475927908680869337778400634233114305039118530973011208461845408173711526432124727373496247932847632821663327888908860699075701531700262366702597022368635378945897480892118064211231982385837110338751645802939307793208186641161305337091240233309610299047454027116968579720835210163436807332973719749961987818788465521960337419199636198821265823509393106480476709983464876857845385310667989423515562286021562404423829293497873876966680516877647355778640695930965605686252407517468642922164756404633142345164727690410347975192195456802317494687841885745084740983139110156641889057805409912327883773272812463990583297180546404585545382202604255643534457387137877518527214865309382648833459321325619488137363319208529291477458130341051734232082515131839679881869435631093046584355950545207093720512431988214000725277734535324932434722338759076319388735401656822523550478931982533230115333848657507483059571879538205133549312095808605871954292228357608807456603174674818647371444331494378645627873750134679935328426348901537632178619274928327810483413153354254464915557595923385703293185262866651179166798874891503697885254420641205631647110203448408286060992555885228666814890054320213459232553303115273436671452850292969094010903996675458864055103848779552969359344403445379759471356871686208116439401242237516381717738427435128757939576157360608278495200955705066779405094752226044959994007564297214410348046204845885925293565717881777739721663732914035872728487461466133533274090663507653224192164433599976126146534635891842441614881485968001341743161445651041402580790012536981104496235498083340633978913459078881282036900738589192810582411846114309052209838210424328388156552259836605533717959536909687900008157880770100290476914416050789053893880929360129631890641152527344920900506208113890492691674165736255792255132858522214221548727974494084178075059477929747351034661543649771057560986240941550989241258806661173005219475562183409474346637181227265879137017800068602427046859529926488463106766967754346825326291736143398685241031649050657165191270861611187632695380019648483504340044380652395796474048383402023544488100941816945967848960652773924239663026774273106075245043975065320764688308081499715805536566775810063512391088370122734709572587918635808621170248941963563661408010871820941055206893477785795484893584262033090188440126974432070520030012519604780842074746557525688326729185148641145266933588382970634404283985966671964212525192833375037089107943332468860226302433365226389828656052199594499215610259885280295593964071340026615834583946397276160799852326097934215016183536375542124381267896108520729948753933305574974150680823479551833413322872682522338513241942707309759264072494082735884091316794284743130485165447775196067960214797385443370557059534713035482515142586606687312033090949511228107651467502521264619413600383713233995276789080784065780087710286045585172065720857194126185616356042823668549841107214580261071532163070972675930412886687210438045187164077690388611541746738807896285876257245281549036548263467521639691155571400312564493970365447349382033967305031926793951464350705968913130093238268088845094106068232371481993790561370721276885648294849519811007318784016660565660554457767190038573486383544746698533882525190553869300974970572695307813404999590775037946895778269004422651057276637974154520948508660389597685438264796401850189578415400069711859324699800405871449934213139966549439890558579511084996266160533577184797179682203189984684342787904563919401724127022058887900632543020789525921382882367482962424213511100762191872586036071883406643503491729586930974663105847201839718927257500611436853802858971472673234089672800733880117079811267023491258093539919962307117421461102753438173230430602221363713951098628227990103507644934259823710943023359685678421714214542726754624116640864616952074915720837891572755245559693673146069112607060383726387773567671313024964517116916489496475371011700838632799735947071659963268463179681886813232658138122622881486192494556163222111928738487862466822005186594991065442174975668073688064742729908589192274019313974231021555297460227865348983245071385286682594235550858580236241829786396718314066936627687234052812803335757586035887683016377852171597146840677092386443875483146851663508410991828344674989027277255508419158723565163296121529835621725515062215794110359700893789705603399350397470819841114591237042688709528693357718305203483841094935705759999601586953983665200775503736530413835369642776771658003080850770144295348413666852160621984405383491432096618011029099715316055551924973374312246116441479445056082679937809835680340919128665634582961336210966672343991842713540869244345292441357178544542212403381437705313967954190782505095602491962746086474398441504514018259039005165353922744621543930155718837347654543960288380880656183192280066784407350324952828238029951971819054665673436750053207652541332740518365931773675823074597351742867200697255491718405125240457797419817716625820979321026194784214966588617037810918705012182561588906512634737731093165088022482769043450385391077541984986201880777731866296719533956017553641393162613339549069949430990818297899353251883038401354330860975612977156444849554952038738064835988064436694664036686175361003182542242560907817906484905429031922793659454171447359420477350720366000408282421607624732044306013976253933055421061327032342153057423028657404677045413976319636704172585759694866159563557400256767926578898891360222888369051488640419818409326842973261065317165164601739528369109318949652265434879328070478945742719566386655804929424971759424378978549734740336701957179332311757180718126218251041230128693968895840657429881882704276894676992801086292375133953909491533649653929391182285840937346293520243463326780046948381129222965473338606997909862032682858298138965293012925788433572174317548413823229477246818132056412063454669211755593353476144831475131959692081213936785509398502904492669141384408461037829003386634220700613924274332567075330896947025750123033294184665389789320016457203383176198430968793851525744201876020450533473902725065347215900362956729220938874028706646064246131190824662600207412256920124385647100438266088784371755010346299316687668547161157351602082541895754673521208477486219733720045512046016270203603142705913713434675683078816748849126043890879393800051049664285575445273073619502285982533950225520069120989198900327348245096476857836621855264768500244472609459001694397768507054751318048584835207768921889897281004961111526867509852595241740047050806048880704884832783248310976631328254013501735983116119651611426824533494344608582612609328824344597823933120060509141915740876481775674012011016577401652190691385984547799397902292778523324871252951826562382985157569947054241585767606841207692504257685499949207147583354130385975990655471001576471174651899580111548555141647367462469973891500709355168089036296765632210896302811100174033506978921606360031100729118699003837578164250579918343014501524814157356818001242204738864358393723534281279546467552080856205969362984168167914811518572288213401703909751562788367789938832638644652827841663644398408351686464380048863432748797259803498241036238907380630105911272375420046622557479807095053828261068729542976801143185471618310288464610345743914266090435165689703666266795906960651285726126561935432609582690807486689257849952869448155883766727259800390666235512426370571552914549901598107781303007383270358195098172811018732415654833689612407801742326635585293523096282515967296365066791300167268893530259802434560524946625600673996559775964185802235319027951442762123200362670189592399603569337111470300423977136518671860319355322218128649563504796582692390613920850184572048884965445983255460898940930893643719872652492074811522927605294005416294087625292266642630178246773366141097780398222236607938190855801262263917134379662986761003131377344319203255929703494142318986262787402685284548883374982474981014391215316918636284789541194952847720856087837846133613947558468835935386415519468942932505870483134128800242505834717947397659424496594137281632806549296780002409173945000095771772160116270470704183871575785594856476028954699166838647364677021952032293877795526277662274496786389383076757416805624072472060062296536653890381248578892097906696655223282859642053719839048301276897662488432957064052575370161949578867441982608041089131237251177449897571190458477402655125970138780307034914793736362319850753200451619336249442462420815094503727330638627194195583665237355781116359861820948578252841214153382836048319226185779635960457486977539282995087954828134753166575630387647244895044423188649933362347709695908654843695096370151174045461172194153672955708617971892430276627502647978998170999667741276908030394788116353845702702008470455604436212579716069672440335712832554471291422271957664743190288919062394903054166778828700392812205911099357677256255760463347226027519824839928553751095989217657761926400510553737138534520931986764804154390382233378269130588061663717603088899205507821440980805571652671149214678449203281669024781500710259967910944421156164523892070629425514557328595223559430304567299586697818894014228918440461977440257915090946832102207714035405890410084726395078931429347767180276550009724590428779177935211017163831338092222512283956918342889570338397740202668169241207674630277051128398432270407463336391324150094986304097080094948745492075769688405511525652140736206166297318769180162794770039880724371770082712687896901689472743778820578572381308611471854294132074130103835030276827978061033525738928017421479300485038921688443019907460690169876112623141170290041088453130791987586684150792611202690254944480073530338274584740279983927756561584420825055092379567342321974075698721095229817914087920172338006837719308565378596234026914139554506511503465620821689027439287807831534613182194819959801476582249850946164464744457415600612684862380472165526732423465989481420231736148090395192296786043361169702453777184070197231158047186202773915198467507955802897413389453614158743851486882348980714250028131235452395986505694189285354260157261456065032000770291067841168000999022122027174367778869832656753851849764224080341365362425131777662354848738517446012864555664556171055001286769972054178476266776523893264942843539736705597682836875403952958985107782798582694586563344678547861201361848746989905580638643322659107819298851705018695400910057759050300506646159662434594807045038987667383798215601669169267535608002782052107962313805121188778473007168027828283255078556423006444659768078547630503973954450524340738963945523272302366674107138332393466489655768553766070914168143715173682508562572931453488868430164189249831586038490408396758203581621036442947080050752820189452786002900161498337314969334415565686242564489714768388771240449755108926251739783837522512301653755511300899456769089811234277801346757132783625907339570354503124681932272171164916800548696272098975503078596604311300172255325501801315440579998855314868877177120552356114420705167142362830088778879969386768534229836919744280985611223351808902078875618448294138839696525352658709005307185728384885018804074660927788788029498288083174846883277894156780633863904878872073788652414441450132971362158764246141099446027751191887596081416381959734862172526218817848174435830425802593655220883584747381741126549498327763911845385587704768309081373927047594183063761619280090371356250502283262059941349428014080237316142601507518816646383882850704977168022107875635681702389847196931639400177175870233558632502668720774407839962719763977744681212383478712211072967362334278494588926044229561043898099730589411521161889132355158337465414812747689041812718555461252544579155075238162415716761731980410582159541420663329717067714689947856223886364953105367010510974470131462259843657437280278064138384189846388546479480034097617546214241204629712275359234324069019981889477420263289965149988068589246657913193434505850378214663305923072505744834985236041089036007892065252389779566479363912342932676132876891358091885482481376337606341280579451813591699033292796211943904086498105943572311491241465389153615625263384802175288590012718556559625461404965089188301846389548418215334095713254660518105176353452870398962135095796089408453045656565014655429512501557630894851677977246935545753949340455257017142715444007064867115970361512998795443486292134725630515587867838194324803569197518686706558179523829862261166357234796647998471734637403065046058840630594236009784790866771005046653831336874289820831935286614733468257668950698766220015254772205007232658409967232326485252320933862406390701711273822257441227360303504296147299882012625241726511315105635633439561030454326693499575225616606525971028622020912982158945085312667636935159924433517980101251053022388475137337454837609242416052420177654810133598300525519340368390821621347266973414562667897530803508253493334760910888344923670108801119250500932706538242542880947856709106982810544847536913449967385165434965596919711090689142777251567269433925439761254192724732878416571828849418040017815535131460953376114759030076570733809747872951404933035216805949872520315068719798271421176391418836950431314724331099883099590125350710001690012963468810376416520022350999903310478118560650421187146445341323417708501352164941465795374881973335137766719485680086738839377561861207858458850288723193541159466468516257335646191179613967472072346255584458935481030797767951158918914426987026016192314550837449821012678613812215427497715108160512269072428624595602868133184016695498082246780858063783875574393781488538091627670184155799005121878632244457266296664055514698542228479163133904856177448507637558720422508109686600072422125519413902352976817168758146568668835928004380099989213256973639810850220300933622743096847039578395935782963402957484101866938929540376330840458862831943934502859076791578733719680847320131957902798551418194413799272016580797051678376240165088053193226586337929562273764902433763140688614912924854599093630142015216919246588923452680875243198500948771333564617158963858163445867940093109739413566735872446943074375581552249182266351187999132460879279766229826909777519575492020715601190884680607187900975497478332231697929349287582182465912162734816834491481577029874058063484866802202378945418190291912010984568423581377112168106425201112571360923333311915778152786498129224593935388951399755402411429935019096790452494415552341926470006813493455852758999310810957602102634546144314973094549310644350541632460098047088816435189762718658284445204294076853045473055938512607296344135500602577507149060558140812120287241638325729644153344178465829705866355667403062708030070536723059064983695264515031286408288654405308243557602893188089800526591442523298717104176767755845898813610716677521114054970337111902872572727884786840069553135127637681428664683158515275507300795379749995958623080798763366078118743609644738218112273106745378307110051268585251208953287975549209712338792414716224186329096630441981546985790289440742690942745365310334463770170676860635595964805940155845967758227715358271595058463204919680524497278125539172167751838719801485090109929216203156030610666038053106925684695374990694418114995980596610045395478589461936133154998962732985927492877825212348447936264440875742956858446784150239610675028786211216217244883351083215565072592123619245137172315695790838662481320627330380398186742618601388330614904582239727659498178731208553776160331465456415177928786859590550709269584528803997392908213511049792470361494443093922773978518192972819250302993638955821594574904326993410042976636397046559915809552069972059338616086664284958592267273962307066752845623829084551505438385100201420937920520639044905322822339785691575866857375097947442906553078500955581309694250577872053104437182784423278018059944503200218580893854492917020261048310837131384429304458340996348551771411071947010902306744320057528553619321794006511678844693182863679444314508065805018606544707336275962452835690220785941333493641808183263658523549697157851491080986677994963051625747309476104118213896509374192049991983018083065497078298868348000298239707138486306198127756383358550263025811365134732466041406382149694130831008064162982212336894357337615566102179793616573609217035295526563776770342863898260902747966815935499435773352383861874554097536090236809668528971749215586057626094862541141777197243831876643295838319185136557007323214165921325933383456579513274019064561224836408511824909927014932238177397044794171110571069770338941527481268963048482269026666759161118882109781912996143262275407650966971937431592712635995316693343034387710742576162311092575797503202298294935910639351574144108689473191829840795564108775339730130279416671673694343727933532204000026436936614905880126073786171523531929608809489298799266260129390704119643614868996057777180226723462471619753056094169596227921590187987397011641073085946539554364642411010967610657319164441800727385882860677338657569505825423787977382780498356151430416761726591449933509332057866199917170902612201725086055939757848871627362832392705565059920316441388301143067949588168285945022966219069797186107053625105291954749965087346708790463501323877451777538940718572370937328554995457451850057262868979529071251442971467925674459430654304221312819757418848027445739742769812925057159368992442540713339898492811392764714328339974163414379266230078823791340488277466011756325505239336997103818709208057707700047353505264712277553900115674600574261730951027155028729896116914034073726613071293231687392299913437147242282411264370549622072578094346149790264582859378330045763377640727115061070676929486255431666732299908514808496050066898480348680092915566411400700787524094903876200326393820209739764206536190521367558037381767040086909470036928218062321585444133488165706179788330421053328151000979863175592240505387767069496333555057610871950188385897141328456911644325228281266890902328717277827342916495841896821935293455397563779331115825986241547070069700885114144406754459027750041087288746917871003577777703846776401283045778319275262966496301077541663652037410855803177470779882521262262848215599906088487713355941142847134937852605618568459181151547260878550326681741494639839917428511828252809039821280710806901048843218195903813005327559012357242679915338622538804527668882202861814615172714581328625366218389647261390391732153839439187812647298046817312983512559818599256243896783958452499293339077281675724142974884049822133720892826776228781043596477741850353619610239111650609520907889991982427408901906006978504486001057030058070691936296524698534131832548898273525742950811959746872588437871674449331411689376364852306864935238296833454547794639151286021687728889531074913996434266664476491171514914068752208739315341651470077734613360204981387085850091635650361589582977800390479702955181659129052744397944090995809307074965392965380881486342446297643373191462547387070612665213677076863689586937549066937798130257694199707351955347599418811194676157118416159766122219677370783315284263139621071523662047006931299121157311605887336598050780947338417014514816767235630766334830426801032603018533058418601774836077493105280560209367024103937131355083106225157266941436605781133279121079924233745019588663919445944701062211099264066419740349935473133804709078203988762079840999343330472799223399576862401010755730955689582003731801098536970309867272272710959730527893811885413265523145603424264274127140646121207429956770883337830701293034565736085420032099687105706511116881185911674413818141287684834058055198304219764968732776088166941687813672410188387765803751228246719429276525661754597600141717014407165102073309237728441243259744171440445705144057358481462264296156968238668730176074735007632108564639371929292252877442841316705652054533158456766424846945090564493527930838356905309246693964022507634503998182944631508442568549951400278632272535263860401791254392077359400147945367482792237985953540006848795255088458603418833805815222063876591382857874786582463162392878410835015686760244323692757580792975507492786129992716776536755214043597177899317901056716650516831976150849498513316417068930362423605340723929787415795580779403886558344785428682540524775117061041608804687929909358429932167901401283593300434820308316254663661075933274282028992530061484459086305317381517658959685941930393580194899894091481514371829600003477903935682741424952570292076146640549601259877617825326959747642551507784647980578478529895225590870116778607558930090763181913589452066465989166449535452211479251177238197837969428146777078795205211280141810632076972495564401817502367279181162996998929518077616228784835030039910699950324281283881525195283038625973172636652424003729651528969505162518785725905019236814947704221268496383005191027916607403970235443938598549107461155839282671564180380724252723450440297774668274897523244576693030955589289757723747201518238136973063641650296813520993695971291714884467079915918027478791052574821445739424763400441329762889430575052815223522153728099766585750487264470947488409225949657015613337781819168656066993200300330124104141310493330533459381866020745142794730408821082258799835206858311925409100458007635189891304089784395855924156011819837225336186092767276595839921482429287005311395348825468301550994321054657006864384721658883181295910452144237585799996439893520068066418208236310569819963718215473845960204404902819523129778526630805867694754011293779686211292955598650445357145965057225378352573803344948870413957529287549608480834998337387427110368091282161383471079882265006728138569872513030680881933166703841111278458925335017605069352918799044190080359728868223363627199636666170888267024347789571850930269423712348170443222668587530280020711065543163487957067188928447647643681964565343885698768231943726903515342155583237500762299030195459929607673122043562259456028124257769530323011608800313606322523963400103325066323028750900682991901320364689988397490011040029356073567738723846023047266496278908020229004704211735657283243847276164203884647719920188449675819786689031571811868074514994794604311197841631524862905642328310763240019298518545685531144153693752060813681742033064645460444543296343927546154511924273763058352525785788569412722699141453424841978142272908232408673293961711196145704706641821691622662408401977398763270291155020945060157352567253986817799978878734419060882967663875297270527151867841157799132735270427502673926394098341645554901518818691235453208134414544890827105992207051574663866444427163439784361698785189717447908627816411769280662305857823245967825620426998078238991053709700556399872258847451580269813790708529738930349524911802693549067290415083045159546336068273420226410452134842685927984950708932939594531777025666893488133659733106384939464417478417737606285580554211584846908805124430054926280108542981260520238145612210157990994852706795060670504530164439343777615457905886397250198820785573804067769245861900776707166422039010274921709999360189290134015580320833750208814286780046360009597055210770870445849847243275115103350120970996038402662968696855250533132879123366678395887627332615871228094296368433945980780080447999656175534165928726417351590720378367978701325357186960177236845501705593535985043670105134808839285960128552047345510463449958352370197033843855872389154475898869772742901666953386773112337600306100562730927165715764707389894429552123202311547400401821954495757191134071423394269491705424568390957797802688323911224598645545955568423209065680361713448195427189920932094065536305165576921084157654911774002628555767093719558921368583123446502812353994676713892265303343153500330434707687308884224237540140680169296103714998859081718351431039314554645704505361517669441652396922354956414025422134496189708105670091225755159307302556906059641264624413246991485502913422642350240455077747928014517982627074038664465417377222817300416493952397912470337890135136167092816144503110323986221187791602834800748343421306827185314753554422431270030326091494847534605986354870479826678539284974590173778185748368194109464796082721313447086115463780206435527238268224320357102893868985154346260472635470308546675977906333183023806942469804636121102652065653408514109860468380890870027045287641956776450255801746457283759176660413319975862857349125424546380060731271966288809898010211425014979442749745603398016617062427097179524101462771333447019761291066964746872322206644604459422773993029766239970933239470839264671282176732284977797952714922288090405218284856516349319020036433579521900262739189255494526607722162394982471585055921977134940964242771773362183204449925248064220895437043678759573675553688374651408524196161904456477657107073014981616032230016110601448418470304030946585250533153956941189402721317650733178936135746170981850995468910413970134330266406884645108956831375277980920966969426360782084534261318713986387332805201810805274088771671644698026117506676350274560182720445272175922636367562170185229753592028561023614731303251541830954567924300245817586206320429090767091206858617307809648580851080720044320903500659556438228684205592352970415212525287578595932936605777760973298043854682639152563633873521692860739129283132268177670971351829513461153077282878137906733673359336067070981694879164794773676539232861001442182653640930660970496028891312055359276150373781111289539587474540048311873614704441580824830757503589605567901612188483131777402321695472553895618673302347462305512081881535395048638155615445681460063309005990276071695090188618139412374389498482333862335450391831239660229814850000511997654776266117021840326289336450051295476460091366790917334124383810074769059060684263513072145344298966057390644050631829252169251040894051322339959741594659749210587750040368617406236685064413756734958411177796675352918794512624413498335554070050745301552057605149818641757011396205656886003561736962651593262632678668138387824629388841471032676698444049847573287721455136847428613137916820604197606021499772631500948638130950606738040025865131470509237277092389810732398853979863778546318197959835594111194455160971251873366258587348975173818830631166018833708288831680069938207233059069620875859105556265227174269864945898770300339037834742655044895323213587068611256211660251887687243939544122463273755893935893228071367272829756999708079564672158127293783602271026180299140099212609532936867566796925587407141293937222917283897387595762788757643497620416798564781931215438772069872236375821485852939308915017506851037041537176886247648957651906375722100286560570773402593184572823567887565962817641820967740290593625585456872902158312620534647640165087471076410522302927540347177177425067738484549300055471277409619138383424387269843184001793601057604175676864509580342722096399482354335859839618823182614906608483237832052615311341117980719376116850478840373270991613879025999633418135096474325585859953651459573079486085835806017517740647324679723666971935170701539094606762972382794507385353223614255779955777600004001312453503902398828674986595303909526366242696286044586956445095508063855928797824810987914438418815656381843951019009741530176450646911257822195601856351744745650971183408513330574126061045632025627670478485471139285622751200777016729872351207467091862039106041088660691504099677151562861534901565427450021854230078635071989828655594803101422617172406964421638265045489007293483849531882210436180041599814120347737228040352887555526150101671899997456598196497189837854805342854093287823987682628116622920994779881987944138316128468452024307251535236485155324475292260550168585162923106627584016099515583982246322227554420306973455909340776716862547102359805630569090022145696047741666633426397016880883328209401313956208084881048684139282134136897022665155506247346218626589034250177441950793697510197499836918569835882443473332448479472678369105219537715084548570962889557189354175665519726213977527872687383959538919933551379544111867371661813446392878311292960614719539035922391114411402356395348768909993158670061752128351824997470876819697562140502757633801949514272935267321480938409517046207601954321706154159240219783822389204766336799517462358553454213423423547469905876584022199806343334299409565111340379081147089741003722258880242524257015670862228287045165153678992796272592946699094145577514888348817022982840201900883262398383435911900793455921215639181422197653418239133458850852853912493636642495374375830575781159430306034009924025190629414388443467822740883013660644620837822358070903142887964899293940360411737021654133239216197844681797063318881467973839007541031790447119515160383186245328395107271546608952709928743993592118206913589234629333698773923763469115092596092772659163520646708295528370065974471248138679810617710833015709501170013939248951390312773787889704130073384466389028334576308857908764294374817805637256773788765728742358602329389567115378146061392690876921057234675381046993477296146457365576339246279785412021504381010072863999687470216881364719491918939022636971576016711572609579008045854446781329798427353504945332952963556295390052972912928787658526905103486008355260804585160426689472657522795101670636333914631313500265438680714805726443743111551002778814137401792439716914291123052840049372730519661781123016681517339115822234139516280380439071750894539245115648072855507078082322419003009482055794412136925556862135478673153529084308036942204356724907633557387881954058445312155605891648489775655011429721125114018228430346897472887252257218057050956855879360592658425032384902442848076044196144926892487594666450984142702000239564783531273739971542663668644900642179570932040435474176142406720809556848104492060776073496256255304191474817560251154889854748677275498421408993960728778836647740513784002034343504865209611327784834397890938969643673402421530029607347562903183169221815134533323132425605459233517219841132287459061997251822256685142156434738702954305568202964292890290959412415749766469871094988688743104010172517059656543415879452472657798401014467452754817124207356128932028202116615757813751231708348425302490796705551207445270659027821827575222627501143954061585295473797227301919491498489210920141618468291192782660183837862800682955194596230736393709939336240117057312852630653259185808414592879511747060189529532145761977888430777364919372706593850235551907201884788315600302827304606678974700641025625444324613176431672101978979720210003491087999325383532969043726215592063757957104198910291502074695808228838969323351822518078195934440414042091294382109316806879166704627961261270982389042972569543887257122457470706814836617081292915176610003563394471355767532655361792029955337812382641420954019459955951867061702157410569818329807226973523955910211700363950955717746744803124084306090936882891007097758443806906661984885478095237186504164725793904248552586771309807643566990462660333056760815228793260029669631207928043210435896339994320840389524876513393131419698153921231177823125759732863652536192335719307552514903154470720293576482855845861460936462387024735270388203823999595445386926402733567191649920225384445889131591035004591456075329633485625317401006984313952560432620776422024885373919833761309438897130693740616087483054935061080002343416453885645401584529674937403486158778420843937461120503396883760921972641423622509407128213648023167658546526798622699511789068864813200229509778706348942664426494532286877303496884425589013370074874627893240882905915015177591949763008469608688202090160685190475863588926888718597291596779014381184803362710653349242948408601452380101257153615365143524477982491505607163557290331344450127429965223257902201954959834896277342988147210806197594243804553996097158898034758854097771680649453644851312523339566275949572564970647961356599160951615302615797977280605538705610979091139040096690076608340958933777992499205613424350268320597303007864086671095052095374511267644779952035052341739720351754524502672285798552062377941348643417156567505529390278219737345719120028982282070520035891256594849649353809474287051778911730177051995403676797851969186081806925062543135468040958014915510779091659291367631135710021025376737830989389262803410308340547165861936593397807927829429603050328398286844071461110937541649703295500235162958995250903051754425694250618031419225980749266690458427492730307772862168605095192950627406415765361847704361588173344987426449380786202035222932963673444250177807649135202528178727690439619834915801787216507572979954403927232776241706692322794066326694897008486721024008109086838589281681169547416494049452846191255356873054167231924084375101795038034118569643828574650590737989096671923649961944069634147034128774986441279570982493027670741796306371738518584576534202161015247353534381451228914793667456603407335676421689192524018603104208818168160817634941138455620480178332179904764964099831214588660895990236386063051760360801185432475840403160870450131397260356138281215206864266035027827752331808304869566537555207963828670660104667998053817434492793926905834053281927338392723333165645274081315355682910096324763996162613796970473342831872192150677770475576389967889965062034132782890149344385500434086378980828952124762699201175119424456275807751147613802857122698394186362869095160269244414320458504491545747020595385621286813573641148041497779695356267687228709865014357035428812669678162157192468177376416505849296622696673646733370129695714419101123041622338922492443293388188746898441846312365932199770154617081851912141071034075461334717002840482675226330219239454880732465569024546071673215658756338544716894659954090393526179565813157729512194126957710435151900730062078873208903879361098417876232961160761672768487856865177872080465673513535615726577618965896677662988231405886872283417197414523568257760947224123889203829807642133369450110306722344661172334097642461829034726193640989796176599971163750915326451813714507787437495866921650350916116363082393282404118188699453186622684617136841031168193100313606092207754684412439177584745675479725521029596951708373060661408000450475185922006195638141541480643022317349262480793916917880378008340347434866200349218494908469689979876269434123856949197507451864567228695438838528661349490562745189310101577197666238613067995755798266074888644132008775165577660914500318096175662218595389776562241464971992842682927595480297345059217212431570824217016101217775076391624018992073718940540170273401985160445519920907993689293993746495133787856227341692513142670757315523065741284039885303330950294223261202708511041120686666978436859600253695442664869481263106689507555711641493178013869756302281214007977543166474724748395846443425815158580387943533959791397464564313867662148051636327085994027994078763895873990639905656228006072096527651688528422240358167015316011414273348627007919013322900422423735911541738525587281710489610247888837509754696103851150146834884611038100067730472714117557700273642760993907999408537051372479140736549275070296942581267597565074455256026426610982585711551961471126134639606474613490938229604994721463557037354808521739001365016026586069459936285654033639434969317510408769456897831781615076023623671299713460268048276719571540423673782810101896114967343422045823083948296729416459372807092787011511522722669503964610998396688318596921479289187551298125358449380796185153351797823354760246339945444477011377888360316909104362374500202818903180030696883291285610910208400223514559716561913857133529996092976453536999867033828004386391622692680993630166065296928485415023600787499235934156274593645454593763572727809741758194125489705920744344846367547096929623198881123027352864469465238412967874963221680365580132986933619953273097379493126307271974964610031361489319060422345905228162038014602405363854043907139000997544243037467554737127575000972242114783256999123091024291499213587071487662027357942047250750572144085394173390994150323805448644879188828184193408095101513125764070579393195484378374733594817933188858095870419741404798592825205538497172099521454876710234308212624496427899057945860579286522839846351471045796616147887112272186051825943119688530328639571008741028247293439638613557082409524398277710118385054084699655516676572149029416910640391434413600502457875023304490736858651834497361904784945610568803044787796371117750841797930445380829378560622268465562043067862224280957155846607446978620747024467944688699061643590567131083623272280175555544101568004354849614141346120895667314470651071764201957006278794441625511306989101795460927169654602348607554389906980812265677133332221924624713223452700380559435894766007033329164221888769913000624965629498447499494638689593635017405800717680572221511860553782425111771110463927860613953415186589449987666386908088423222845486713953334710040201900524410602423135732957114044805630922699771619405749307671671378077894802201614241366480266427041161896191128555700508834695169398321863873702748207478283296541703127494370357376115232067642115774884492814903497311019057638463023314938958835269770405665056280676588047442978938899607503199725954594219042213175570069110724336523817277781459394487779505967410657774330638938783157566252690970587181756186991003524914877323038157102327607100237334110939964358127967869452214507458575519122304913449758782129240163585728369527061097045698370458257711127119369147880390061347769952120241360564320558465867112299658381132293779158675553011544988248925686480359145487772169796821591723077590920189114897478174276615589850001175548020144062506663902102237147658085908806766143263145139687217857760830701125336726346277783000000822089249634796427881350581993547780752765371595236479457153044154319416217604691652653497309352446027507897008213325094388541022986393767059534026399990310549623919053313380781775028015710367137135971588005467160340069454123506651060325992057517087799515450401009857703717731816189809421576882899660639320246921952355119125391579766494738504319108480948375559129103630428164015895095964837033205768351699003890549890958049553615481392482666453616719515545311174698951062751406650890341529370032649756497260830241470133986313746557579959015059590174414523785313484299991365995155059771521314576491304327118167524902413841836477586560177560757712820861279848291423445110099931046569516559119861340341192569199728469563249821867774750245812424956070410829388143148873375334638064656410382519337399829444377461080337721344813073467453123296942752772091611531515983063591809229385892755410383242230222025689617795009786732906692483627753330421979300625988528413597631873126032986544764239859361980554371426711532270087374310833959370617155453776301483914920935634020734145065330237888787770751208454676611451886833815056481440452259758989080000505227059617061570799116845828648005109209940500734774340873337029029500343425307834094094087032067852828835231221117080820344861930163299284806764956662073935989010590244863389040147121618736513417989706000931214443817418642427699435396127089822900388030128213838826566232240018687472000525221551381174331124608154541742665174668957424339869713885231129750149780735679636940528582130877254182433101960122004079606809239052571117120538746894951953919036414648066026813565282678198112113079830762301824924343585193649437267488854174867442746996304055703453382287126199544019912181262474059247109039857462075047462106797176802308836861147054189183352348126050517480005344569756326387889007116258087881415589910575002815471388975307288505275923897758049111136696187372910825839220248554374603944363713638437626035004673014295185339849887135265843241513184677239637556147278844903041610271234532438399131756110735901280384552632135784015030649136598034349637096945986695778459108769492076474530959438983657119844060382597515074322129085219620797353502774994620627780738421163361709298695969179822579296018802985465424793637883629442971016114904192555233490081974082618033955219075973983798681941245431995003000640244081819278725725858358770679938439825305687481510573534284772831261545826608013729184959663738190328147759722107966614759315110311108858373842944079112612010338134251304800711082984805237761333674113530468411556665581417206797925085046737058712973326057282995685587665628911082043949643255780207242178303965363053933655911097288400874753448527827248831841967586096963465602058301278353717148948786629194701554031161185627255816960298712304341705873227331146711033079837823367170572627456880808125781982111310075428750791675405008902664442917424639641866399946777519908310150694708578397294685313273669649046268642527857506855183800825814817911095365005549317843631615885185106087290452301755039790002170093782973677962212994394975384813525158225322258376189707061140014257377898584734492658435188569403346015081461279298947320592940120979640896630440951556799154188199153312940302494977271414520303447940474228796443230606600093465882304761790867492130730669277045017023837707485871637135043742071814187373409925176050198813657848493706602149862663840078093572743326191336576464305355134539609034121187132233378648271214340736139169994157836958227446237910802114516888784531444297222275539641597547175175327532917508656413610850001431588015929137282535414294663483718816520120573929374786828530482408360349831641378355066161614528849808746633633280400827568964228582512480324585394589075683856296212367710902270093391517228825060408952546363791094693643750599708898508761414241085274120410244842702709244691683355062871982700383626860125821436662332011548678330313466807494750909270365968210827965533870328409224451059334648287250914589166599308368823175488526055071995562203069435588397041845484105649983512781813259179866205581184375327059236234859373617915771859250490319726877081720315022094648966416662153820357500752019330034180194872291239612931279943513224225963918378750941036717986256615015771654064108510967885708358205660684025717640130230385390604929292098900990854829957857103375356438719975668169483567439829649508643899821786903669202570587597592064513194155918619532727035380040394234307275489158589996582129764231108700548186734167890217066658065088105682550228234001955429988267903255664658412339072646818550147924480713425607196662652905457850361566563721777026382857743218696929018653294346779895162214613188242344517579026977411633498453191404184130270290204926844797314564006420249386155184599314136061096433009238816678384095605583597687304892057807306732499524797425536501568292955080866944062520135094391166446413858923940075359914043173825514865642309095585721892817051244988286806319400869520730202186490872456751906172747541065676162295653445132418130544798320206523479788816446515171712527328470827573892807484568683903088582615981152117529186975232128519570970849854408726925158343194538466030005494314339221294502706832540027194067936197581945145849673567772325173557073698737370815945185621938527477840462037923472370205758353006851479553537759403006833528764506094216484847770150498385121499867776423751150552998891939112523323346888550368997271982661938882918192615979171953343644391511869832035524448228985127335354443456319260039687672766432347587170812962797179223053438696513599525369038382627053993691183869839784245098391396555271791890076190135492838875329176155021086027822070332336801901791422770066627250758020009094009476831024519682001743077313717033873104734705147436839475323150120786910659719252302321070449898476556680764927573753851694394761420920106405740583332458633977004305879936275143061665903963354075468200644292016346894373544604648993361527411657755096645278751254429096219485108766509448545946259759437767751293382953156684029992803524620867596488223739564382551210725639811348507688572142341773881432079307849367474621875525900161150784409399598090443835688546427013813781785543764603749187400058043853377002756509213302504717639761982574442900043425474840569487506538000891092160620570484391815288195002741813166576539574854093499335979085999108801692252715622064301778735031559953887763598041281403956153952021532105765033789978861940866798148482655771391286126580257079519270667060189072475908909741124820554341616317499121166669169731491309043890678399561333403038906228932416623004746891934931206539011444746900735919234935807632308721875682670280852541111846225759798118753414358247053022788481870173123777918713517695663350119798416035460640604561365154607796956658970374896526989172064054519024343984593977752480440209451474765788518666497089130311097977248092261859431486665559675246731947924922054662350555413882102500947022006550119454502824752052335345711176270544139937130940110274903078486835511070120345179072325383565874625185007136821325164417201361108129914316225104199840067974289162272270055459254288483177409727464383869126051230774425951187684935049288978924250936037554697928416121721129978125717084688871085669816684021513274326844162324219617651365544048615335558377536157649158289595632176084648796913660044660271248963717811534726451823820056544864923025314845357088249924716592782172784266282552924099585316844207364838223303005049846720096361294163415306399581215232003196416599967865046595603320534901270870240567639156688243145228700009784754425239139052595781791229626689360975825923340931943866498164397638349135170868419248424616999827593822987935772414019983705947387222268893358520363078402800465005276126207218566641022311698257455364854588562909336765484676656734086897149470865868338551303198149881981387578056692397286927503676349737492472044848455389528234629166815875265434001460322249106600454837969636315637633756573054806162058828113426968494410541864621882290374461297979112514664597684886371211183612655637703196106888230173087591989700097472004337999047299525095546508576872896462290487599941585172474814379300137367960853761917962841980927620770266679847385617546235958041126448424041391555785707223718162648796162803806886913425477181441954618316197313197887276499543307537289968434438493323920406195297561937917394808522486418806144648714815897692383802096048841036414993094925261498760571885864559714861203441052970095776148153401804272531831026686527501591877246732308306070097483903716191163191482930052485277984492758893011656809872472992859163811569363076137787633228574496551283515625437340364309704247177821819960974306955850315652299734564395921114146946243273165702571150193296240572374460311908399691999892397639224014043963884168006057533632773867908856341409167995028311399197383370208028261202858073269231389076700360561792129042024642410073217936373767098682127330389728276691665430708103370943138989884999697265861400205060951785779267224823531081742052314855669461040726133419271240705420856319456299790843485611216740566416829760533343705445794332171746731092264981478007883850842416820622260028021998045408102561135454746503085945726109111261905216434385630418605060932396135546047219968879000486386961451843915096925503472576128449412599376045007460020074511506517769388401834537623514518971810037876238496838052374772020146857408302088639234294852339156042394166449819871702983331230711259047363697727761906119276053036107514819552318851438245054701503383109841799728306353266033403373013820978144210491673483190731745707994137331776987400168761112493292654345333024435307031010612343162487940525412588143287056270840130773498551627923199956774685441701935264152112578922957778247528765375684407551704896595342731696607552997133808865752570256576384948258160036206839874572491877890072176546797462118718692469251838694196235413311374115815797434490011274408594753612232289668039130496254019918622967689915157113646957196267236021488356674288927698319318166203815830942023905776570581053632246216829737169539039782829627810358729454374412273843628947335576152069405743296810897280958603027437224609434110633924719780997749514662557493562936754570371177684524778648947778744974556618805043571497826984750698377644383753627002481900545875642063552342490748152025401768975387512585200904051971124193804631194913748117544372727892435787712107634230669199246352001580255913410644357630430004152129249161811793236170035858483018108392303262616681322841727041020336114810077127232562404897902015400271819281853280820412520305138297013055467319603794117524043378381563030121168590935287738645694109812109199825183515223999952129138958450977146899161741506776636360937016565166598632037703436942933525055349015332220171744286248361898964247841447626610260682112234403283202937680535915510332700491786857125189617243187265217905422246006340626713614755018309468723072159448759640001357631766123026121269365468386507575887775019323616990275963525883213773928297101913729247061771660807399229923725180452531810267790986245360934170138622625396320513198445684582314659495312720840300156839488530209271207452493963489104854142558414394213326662151548122979884552943222358409327397771658265277451816094896179444526025530384871089121788993755000378741383842692061669612614418493556274183969590004796191578800234622013333197769434001452275469775112047928004381191060643057932832161858139877695348796729867464880994080910262302248068044497788160131394398054587856830935190539802133730486113797333919957575809307328012217818859670553090159861306516456342465145456201457745742977329875525081582911234094978972197556272630498569928723456879156040991953112300539717523123820341999977772219557048281396161564960469212484511863976027965112755161682800524274357007189888343893980380394505455224921499427785925870435743813445187416002599550876781055639770907398943170232991680047564810531768026060576383739161130026752593889083463007515398553576254037899303712177301633412670859557270511790825304920776528331576822923639128894960167472751387972523734464533822330558905659781596078157035995439442833598736172927599320090536048271576887145954066194177593514033739793795319168569033268047697084323363703627309180512985871317045164635026696452854867201284356605348227818594094660677731553213628661500579286121470104135068026547606359942424513715379040369454671382298465081418435832964928196095845396079839707511178424073845826671314042551974684579075180648612086226969944444883491437319934292872168655320368871112678785510655939615312279068510436324816644373526983279515117337440655660632650357580376030697517542129507279200319809811711107700666259577162863608382193755896966861796504215532973565157001614721420127615400792880429430656843300234294741517219483674830893670218063306159950137100211840595499970873727362363112612208628809969703085677176855553669695498218301874603974470401059350501726636732947214162905007542460438703370464204864469417542061747601341577105935301853703540271912406023167843808696540448643463533941141067889042496027552180952968457867104082204130528639507538389808770786137589101651529541398278194094198151134308791104694616220935236770862587590450637912216714304535322466527448939541758337167192071884153608816747144094279688014468266765995259077387773139484535581206081785882349751293188890278030655103546693719342554266622630473202562337627631479995278752382566872479529908111278173128331815582495033155362156222729919756542462504718375587837370388465973126061026446291971614661914773695601223699446210006529770715767292363021721949641886522851752035754028224346739938069049710198361684647073363636170719829179694041093677123968191458584406213603089606643156165059339969884521458521796518370612095337707655068431732320764611084048387032964770591509673061764830403603856433723430114158096341377800262047751187899508265879524640409896141980570564938113779608887165941005949113451151719901530024916822555258148499149922104158082580397185143365892927083750433291330354577634783969653682666400809231638889634567353257185173898589964271152317643492522814446411884259671762581948949164148337530608843488815435023931414141834416510277202520644672984909202903157057850535574835226905659640179992401137934870492414697598655457366951861491243956795066375347503192260790220949151391610291923398818945350063220052332694217127040892664058251432042720278036315514504277634468173860245155723180651908698771778148715733467413184289840550560740715283901467500091951729865064655776114475811569976406234765117967560541148542284380301339075136623594824360421643769972700468414697438404706513530050765049337106410962949677190931796178424187851993862279024986296312371904598932722494284386091951122735662003741940075740264628743517859753631920266212400177899013495187966531048358417737371762177081016163619352134492525946824465270181188786584589528274877429052677880985143295732193277861848074616145807536892687202412038965138541579416591361144507126240788754975508265331438067058352070036572223277187487372752876494202923035860382508451552287195556290692820296666242099486261941293383923662496403181743781493656593921277063038278722461372440077967507564583458967735051206257699956053129373119197449497988321629606511929711961131334372709049608427715711296877803335283452681547218042342302925254013645711742253245357042439268779663847498022140126171923539422533062137298640623996068262977015776441580832766626503064909633535038754517883938529683732610966130502951353054075906827380878403426764873448751718436137701347300683701638325960997422981636702551168555733760703378598458324551286616818579051059676027099402280584407984249537114425221250340832628128967886994291082620746923580704713819087563832592381853648548996566726905372875712010869056507011085309265753725303735095973164170107582250883696158117911865960533833842014202088726097925330176816401881055395083920444770483012333934939616633289671211051789159182559596574727313004000360417907130917127061920351371124849615277998382522676223195338687519466884923723534833478636138006801659686431458409997950648697478555294648665049025205390390803514800491134314971431280080773418464779851394719020457929196113670855833297806022386571555621384219654542136715970171946262863526849731618761635744917072506746942497942048037559653368458709095008319735996337056014077493870980298019174544809294976679655692942754552396616123837514694630318814905634303930682894493877063965976069941426768569946573515041538305096027665074710968159305138298768905874481849910680919529439470347062865777515656463584740783627742769284442552060308996206711240834809674766704178154822721569699685650234932267264717563418462122399653540549641031991344403071313830530170116866325656138336778575234515412496076324487704817260408722801668921988759644936820244200776417809654647262645490559524912870911263525103884177883063550345461952240832297270794725725313513951556410692018466800823202146212998383753514887082972486666459803592153021204135868394866823631121122423785377915972080697508301167716471131480658547475704054803466065183784746487530385191209620749528594011409756278472631689284852963028931597485334300553570862720388167445053169998029673711886651297611748047981944339497061702059399446415264856074928251537352998554950198676971723513257995458924076397342062929489957128296347545767105003378031343091900410445095526520799151803867045571673336708206653133251894546901609168633022379768227953333932535074440234220070784278809448071970158106354759936246579967231917652286176993455360020506974925144534584102961209481732013930217386263422630933554345089687006028806423806084558215756763298487179401071656884029898703412943627802024945959093470364706993857107714567383149619564351782930376295226147827213810500410740776018710657436658955314668597620120847682038457221487958328486623821663939434725800994020640695549583416942279109137328630498907004981835302552477112742575639811006999729960650844738854138741916868289775175092783561979513191348181717529382242616667552215219615188442348564525207910249132119166063010405973063042691229115295706470991783182225761426788444100283305135800550566403337640665474976993642630056025448370958797860383988881242890973646211078354957857251573031830204089429263990752695577380478723637745607107662697924952738407473642093579001481268428666089167096150343584250921537614258926612732561246682462930228352565656095092278703524390703884424708890520895974437030001665042006576383594203771706064307902430274114261531293618507793622175108490242397982194796333324650752707203576986817265674715433880424548870153196610524212145195632365183044354345268593003721588408657629596706450731034584211313953068235224340607145462262219629806704510624593220671217532615543148728125799672292060311777381223860043858119320355229141761138377731177258126924927497373605539934395454127828019597616800123745541736425127484835994975046952076754286433689407714424818554341548198941447149854081578970732642562763517950326147929618458518995161450155183734741523769117749045042402801527553128464538543207234898850905514757151349902842192326021168515845717962388507092244309765780121477675629749379861061002705895958015692479614134640084529112035473705485021336605020659804905087046863742349558688815970275360266507168840453224365596631272573365829240901528221672018572727401401817229328762111398210623943319526718444660182716671621031256065912299426255559013043483098308996526446652270503244832038363694590127093514735758743496662228956566937661610879467082739855253798544279562963817386236992377780644189251681583769767166836015551799662509992251286648572413280713716941422475566781400107084557315022448594664362003123334841209572434903441104055488319730349939902628361103532754644868209906702150563913597753190111282747425084634481406753590448852369616578117979144682593946636889348434208462562344107546843031208457521887727645497495488780515769433276344646451143384695308599217258231745591011564832882122595163388368981031625197112440543859567862486242482354981102129126626052842148649750837232057869857578888318643721068964591262512863811645542471332584570860724072759362713650157537870451097394135462723651736554403823267110623093441163155971435685762157000877717921456528982869816230801542215524021996519333988772909420991990395979341446159925540851693006550004057714964852898908663687868575638724213543712631841035069506299614563163210073876618067363976972016585331162316051674195974634124297294795438455206502318454777568659453414690224269713544374871935879664345460135527002772725086572412788278554294032046018549208043069736016496698558414028424977970013605488250039253572043157903122276856288580651159540664685596814705103871262265288985513350486883058018153024860619416308031316043916339671001814144232710860196932885900048827477497181042615941620542032603362895516306928374424777442524815252167442749563341788097668276282532836957423198491822297536942368666816403561670414084442541251857859828348218488636915757754577315903673337197379769791851358999088136391089736060203695517007944004066435900936683689023440039978955061070203960335065397386441575385557480189407919187605654198615324404759575487559878007092649823977855053185956486156709038160828175742808899312549071809251412977792994724382979229353047205307253559270504860397173700459198933644502213946443979777915052165438007778999315360241641247563468791799644779246648283826328048608270596826847909339304224747013248852242341717340926604718891161261808502195793359330237808463179878561309320933932110979255278759258555263231703911200093782520243344616987422198055386224946745956250969469671460846412900405999171528080543264678102322206683209377532627974163222015839194870927204862179252986726468111875660714276758914193706747392323334359207711044774289450243376024346775650403362446372129247278356302847733481416727149823554366804999885956623935234922945814760293475230648131235815003935083960131627586633985157938254418731698690335367879713508995993960886550680420667710830300345762946531061357872148596001859650503385617208041411411719927469835407700159911395807418385087928296484757464242159473873231067025560716889485283864414629182006363317797725571984348139016082084519053703518764556872593612812225133917051542896662785444397868707082752899522795474872439086304869118909185414719867809444500972767121893982500767019472772558732671175652100379277081746462409640697594211793764945920457790659679484466670022386662539569878572468257873980524781252708416643001420554806541475085298954228769986818898880668823715109333904768978380195932995812310701126283278008480565946947450452329862189361726943036409392218718553420339822122570915880815347532464948017446210474275188796257913945385709431883411857948431203143136139074900273944882034609930388966056711200379213572481241213045402764964882643944896922659114777112027331969379758264493906083499593145933289371243391580148618571995890502680135571469721890549664328553067218919343963653357937447744178044162506705136089725464897726994730518237342326834281830974937462891143722436019199580751480851188278845689668571041522644610253383040211865344390287581812570431098936127142263362482632096899556123222842890975359933748206042518507804519217511204223044006418104129613977057252997589296788077436254263473979210847529688948822524686780522295786680858064600349348625407913541325398250487608282500378544304922844670278253836311721307907463337221670131535179801919408644979138628417680032155394819047272096177342723354842116917595323319854921651388687943198613413488273204233332355339536382096093473894266539903405162390360672027832673236762841775429700702260743797202168681386681332646523937389995003295988416156673328223846499685940413722413931368456615965783631326966440581747112508823191325864008264631788491637953351078316903970638440366430010400161358358371464927843947839454617088130668464811575091783789493702407928162215809131986006736019835551646350379138500855666799587210313996746250500458677575040024892020604014589107224380842693279935776006695522696838584482344078626151772848039546008762989277386659704466781974110593161860006779439838361725103320499591633156594162688385771936301823399796573012158061333827806304979876954892620081556041306123303523599831409895631258095118955840444850412317162152641656019741346080060520621179320068027894090493702597202858165323813826104929291376357949730603254340351570624430015971640778165777189722547944862249581385439997283202515314344449735634824614719644273054803144028725387697575281620658802652628840537201185897401414442044975632097598766202853031191118807683263289338180608497699367497636011411030207204562749734716802076698444146553961237733915958989073633751120196819110136290254907207729188156710348324887418110636631672975844762780732606113193478912590004094803831110215789352292515887857343765945450718582812818708761360784209750810461368582391327330235471998573468486590751929576015076678338899081282320445851683614666340824812104606055603829881928354793573582878358362342409911747286389699294398485137675067701215158933049047824907485291044318650346493283480448293699894610965178010174446342218230702634140782002364115950028151597661898524897119557416515842562541167261850420883714669608341998938236381267835661771438636230698208204371673325342012002486568865943795864713894069417827055665733891644058012302271354742693360081380290949950590081241684880019721541202414177274549768942026128453221698763980242146785124021631931031582359355448463842389592959054038899941479008615717957532966722629533890672705050717829840521109364000975571642378708154011264724304151859118008114928209957251133947771822679298007220196580716514585807771409692158600253736231341616680667742926504715096559117998552362381759942684109373943584387864907593196112942188570991701990342694278317412806963816071986168599646118845847764875531771125753430508129272863942028052051566511611097297846250872136925613268455282684895555637639840715874921290629955468580693197896233853104308567309982405613221690114323801045578352528784209253088309272070637449736811681969747926846902595420172733925955958109303365153815355622114403795428075169606532055616865589901272934144528431354009741540810404612819072157603698647342793279513552445833122884631620640232222271299363065853598052667107716684053022351769904206045235962596879733382070472990592649546493473004055879261321689949698737207882968325880636166036903102321461730466957824131145348713895688053997894403407114332118612312486117000632019679945012680159413328854079057726923971856256720420865030199951938894067118965662338890640169512865703708223861809973525418404395161419994115007600246950623868878639455568723780028550376801738988066402739042217934308551496350639038242728148028012783532684284942855674069364532545425530866549535754891981101809017050064171427831684548053265295971317353699478124294662279517435764971444763965097691478800439121705662102349693466218961980443953538155006243001246061356553681883515853221620884495376766525983750916743977144461574589030137964227454727594968951316787682368545770648013749336684588483988647255095508987945067885721685417799280225084559643990216915330959805986709601400111250590243997809665447525613759455906857338680450409104110257762193013921805746913537294932760900155020658880075299940298117542071553659180336069320555457247210907981729301025837321342473113966321651590680602138638465742268360904431846245330688905039656487527719220741931845461779361962226053048254497222382185050228893091650536277047533072888885036662119812512949078066688380404361929386538577565250474208194841207218629672551248742230243415228949056052949515838478781115394312991948627554601522615080213377409172336178424305464248882942644252265769629738450540269715144619817868093641199881237898037233946172039914817391277406783626831929809994143000120294588517816518958619272574063290891091415909034707210837973738803414894214257497503594513204265530966393445422791786502686561267143711726818619967264058565513498790620591483456619533097420597205740271917124482412189560079981903491857578248516278432798639119188807810296372053621338202240244318809714942692111951635806214483049055708231783886684556854609922395424622176416126482401875760918735316649316556094559130497386169911852429323661048225657359202346918135434272175671628750153106630583483403507834522616319910648007155380949484662082405681179577956434002684672494338738560258323009123392581745935773655988057628827603246908273881788890028542677487902880409860491638512921637024769304735339061406565804633378204654450632313753726218349280755610790884257929993324819350808063566420801060614128715236746482128426367409561279909495041078542241492154490872120493309102404250279858816139509162250449778256096299429509683969873170689673884507920871172380636148352146055751995639102828386129689120923553844969314427572703302162303024624845775870889089633657986180479422292837524666497281782221996547562783714298705110725899890916729932403945031827444383819659480740669626035515739682407274018036883844793422098992512466255641150415306847217276744979756813337639052118762020484083452259928122857863547635870815585258646914928246637038204195019934634997310803503778303065112490049865404644060661784571009451340380291833565764797105382913928808850667204700534355439481627823525229447389077483293312532591699471189989544594310337686436891622304495284434027937467663643865507451605865705754082387256058735015624777429177259284909119190813200088052120894189349631328031700168373099639493003891053334827897851471487362688310137288360328568995089478838476202694536069232352126443454708380367363116761097453007924107258491201706601031556109005345651233032505986445374202346258676488136759862242832374248047541427239225527138292303215741749579201122620172289592175237839731561953839275844913328137505962934474152546698788691900538864852514141930350782455340795090096047261147384974636372978292319351036849439619000812597010200302009135583543441568149567377329255909415239107390745206455543273785838770471586457849397835667894125317590480700660817874840446866929207071474517095093952840882298853146021678759731214507504409374233874087926548578501606734919821381864948779833579078135245684258617625164715512389404778796971744030466383920210813626076108163876246739025669582006429429541559734221966635201475664499634427385575106005659380395618201927571978739514937494834757418105132119867602557991993190352363310291104423899459613050492035865177096812495989220589111049839991481344598475803372391097624098461794317188836826245892125112292070182575777003851006753706938441587106549374943416969897202984294506013598592335294896389407942008012077054867106790669226765179318325007468904745151500751048380005068560123404958533816060803377583059823433357827575099619772750228790918525652149889839338795820741656400998109882666250202679660706953768629960152324896084426938859693002149698822289460856887578860257029251186133807671786859650027789048869117244518031683139371480322935557914497176918597196864931672676367052587063291423629690243851321397372321063358467066068302602890158363285213308908626889880868086380062415208737018513154216425654449164280902683914455244664933533866805436809474106763314056220240276157172875181824924694501259450883590619821204356686672521915688073503142144492961566121696514073484973789578800757853265661380567008522854885394325927428418733787811759040316207348735499630923691551785194405737187491893185699730698865997046281391443904932383341283248703519998611017810119747405088533290606237309350445814844394343321914322368167834761768544867957965346206931809325356452728780472675174160522804787530193431929875316431394496726317236561494684994044999490148907956128829869396306236863245361646348776966432876533305393252258175605329365933837480872416114322559022884580131326160179223903463528263791161969157255072977283323463099301265555887087104645704354317380991996613731365171689612062461457138896652715773736861522299506532471357824673580288891911147111287569376204444169795083151247289962273695824710928247956663577593934017326033681860085410415559540107414787720865584793779955785206273843546559003181011843217587050615429154359135088307000056524922530134249413292099585256127356930817308362898767855216146168833848980987788578622201565656480230797586053408671756406277784263330355763483054687638143566126551464064488631518459704142996766304963633384085640986252836487970330301959111982654964265677552129799713778575077714267442846367688946935844873296485171846181777638239862173801975172065173030722458667134004519146476041268095415727775047805349229522582974776725868756896931131334533315598892410350000851386722847520142501600575531930873032933646867338845984080584471783022433116784246828329617436800212614573802808363761183823519451146322416517740003518582948158262662239528478700256167750988399792791071866016241659263692313193357371369781391400092273357960165231108059012558231835736395610811788268813664135075968893287396954050038987886057191071062432847538213732043613632527526645446510534778364917465173749521594398705714030567861461190189660413278503109504897755597694773942884465389946835543168117003617307199266469031496586629127770118666763663971295269406956986369035210717500672802023493168908223309301771585176698957877227460493604376037476393535114116937568535208030631620862325133997140056149233965401761893109182056071556341256518600945370015715689579515747878651096717823988984413487145746797016865364827749504199074161392851430865282425081883714726288268721944334458466988503955242903928494960003992948281654215088599747029407967879344297903594827211637809749472376151457569970102915034746492754922463667137400642020163405552901505093717237037444230863190806954104941898973905069987535475078358406951976569819806634005849505534125774341194868053723834056444701863139308833699549027104103849899529620659909755845125251425387949297371501567526847404786501560787709900119681840808361649714656531807577473805770913526073878971808166768141792465520110578218353546213952682021422828251858121756892792351051318846705329476722573160229546547889577734006297896599765684468238300055961549991220673477434964569513309395565190840317570886209141983248646146997478170724105292841487793102422449172240444052459647119511186150794309365145161450343999860756023104333136659084474829709389933124170932831441757330844961683943055965623639073215303454836225488196286762624512184439621427827117952885062014943846930365781829536847256602190132065967309994170509071725402161477729693124822661583147126358081579675843345225062438545627873100964569918431242453471327587634227257787032299942781401274725630304183764595277526808832811314265906794101826172074339899852325827521420838413601090156115876664676937788549152339362279183941171052037114721022151372144054850774374384141716338166794847312242826376753299462454357454771353252000559038420564728408274260897025021653709977854252895932151801211035761459778208750470970057593206966237023337282455353848274408426799296138659845737456031171863729030570589659268039026533184462547169567245617826202985463120521519769200996786299666901243543490313316465656966794644056197126445941190643466217536909542131921364267430146026922257086185341412548570010896870754556747867615706272724170868629601341836526662869832710481075896866280742559818427860812347124559876915371850918256115907496912402804769158410560157836705032419234095385303017739714338481932437159292153989332161262796268151996963155681809366074023758308069332503582597924440356440944326060925389215627786579620765121978372877831878650414926420425574469382452428306931819337199544963606187351756719567236811083334092492455275494446445689377073595755585341666484420557389616243960629648726764321064150917848800917114371764932143415626792380749736467182312126217974959600653356705548336498544661338559131532051509170682834134791715431292635139585082511019170544010195408971754315410204726087149943546455029413666020200887177551349165619051394910918519352996090654790280645174356721003973052819375805348007635350806194841673476242619275550910961270217890585454701407973527851740672121452636376408785975032157480429220946945116567993754010579086879600514696713558472822466645171849212419392793697779834980092068036603259613098385395320660475935170963082803137718985679676188165647170172829955594386577750092246434449023902833711747448120056298241549494736292233715562890968116313572938678759437488716806843127936205258657959796306333661767438508999404074582589594972974713659818312441081414979197024520720364743225511896570937239595420537821100001440207861181589556002638803257508233803012902708135294693170517326574223810910770601878357230357937454531065865500100805993729209024277643490981056204014350741993779874644368376406211843884348332623245769762522228708934972963794545344249221840717646197638049721416813153831528336324396610054590294103435136484528459387045633919784246388713025924221456136047180570897492127532921677409587413473752968658048040491236761494293071657997441727579185755750204152214854181153128868637337883493754140409272529192546841485382030196509617486439337839424108265389456641978632454706874759802124981832364128048027496690676688076848598449993837458553651029283951020084861096746961098018335685714110215575355903289931233125465978473797410147354075313042193587958408951867634272106502542588865660154647940545021242482641689429540718642784564719126933978954317362917150806244393723666143715857892583242675765678877759772545510189400448766367797998859159866562139852629707623718854198536446600307944315017743599059575658574207782524784116822700166395733542807071289111677144371636382230238251103525158532450508535338916572951287470232453136577263704466654050729304164339168500134778642824331326177350753450097670841701385774353365686215987526927544624955207198692398529186277582223736881818366444322626726281231563018515765506423007101723984022741072336147204906420548754303995637839731443168507835340013854897501736659000031431744181866944609777837977523090212635480400577757142174031674106592324199902037037072904378598299427452718941181594484946661472492410018732897677547397950626090271227290303405616547343956789879618642530016904668714231179615275554519879794515228186787684816949255737700884885326440572503968909917967595905372841188094710788411396599225974587805261912308567079135351939270016936311566882862966023118014256004735925768026453345270012641298800371261333539779018126663170326474114352140734241974750869772895720429805994467244384529698663587557871769288943588221957155180564678284321923339186531315861986198295702225672534955981082041393347736992859255573007932157863625721714787472899396638870603573114008912808485086266939966067125980981052650230302570209666746641071294055616202445550262144146365872555659779949388258875098980120682754605579633475156321693649667414385411746473208216347820063335460379102346923306914000447646408338209778213097749741814105137891342469910076659265397332253926123913809951401158553208327548872435237096808715007379005189804003182279292936508403509657825107240699933727894234368665043017251104475317393840577256449547214063342303601598090454235783452058168690911097784835337086104569130311455989577347571004324475934757955697606800312065627489969843535216244480669475779668464013029735012435918197649556728301283003982125362601501807134160116577222205426568456996740083813247787819732955010690854526016414045712880976835343062371078691979579463425445650864223003166884936346621234166800991140893209712211810445499736640146911196538535727065528043004017644500099014873458267867727215781867964400536144335791270743678845675423006401530739087979487609686627855790898365647657993888336648306269569975669110258736291596704918393801555864070891761895454582178616803867297528593395529123352464572633066103998608023101539264136311458910657369830365783932011493535757898467995837704224902665028543553232927705625507575071163727437379347093790384018469212641659264727592150432754041345475971148370137446905988996149025320538911301347813528064777189525909363362094946359735336850138360906872261599478138568964440426175804976295844896434596774276760879944909990334798109351453229456312561620827265562243406837134899679265309848153296666145530768163749651900733479460669856110334516857585966492647816142459835666729921359043356675156945819937222132796255617716527049098710770506892013114703408360140246941822109212314703425556337866252735866747016506673418903456527091981387584005320502831484783039184568915792184452781389924567405454203299806605508730384283536657986746378345133054331408308705440283049367011952130743363926847039819414528724725034932325254567398657356825252686421094844575076769544809537367647516073517542477154166861597815600120180328442797589688597147080063776961365692107977961311733957062489556632384067082033534516401797891627628824811925613478492866272112165851691497883608515207762468817705755875969288208161874960834418126809761952496608952729250177643904761770944829174645329707758629282071636700235977509669312258407811788146725116356571087966344475913030086069102197006992943767649787362945086404965783189123741275556469327464618055811204807403732285061519917967085114153950149119708947225173835125387861419713791676697006828550933351202295242926646481370316019897505506988567247889344213402946362754791432741293868917775488633307512621092722208908876076293061644486705713069567775290588561178145097743444306433178134515847102664537986495789313342365163643140551832487929839713021372664461513122330020542586540934133364790547122307191671153229072510148502115770694917044396679377426289610834952987785044313448665625172521712548170323367299966018520032053569941110666855571728210830673523483816931966233295189097457393221502728001408931401572677915718392799369208139047679145141594195343887916602078793226944543802773658230238716347976056037330656246192930264921321987296873587249256580770321017025448900686458235781037894545894296842938069971619263904258706928287625301861117269348236658938920330823193868826201350348007515052696419619796293096102684296262769412363701294968711016368522786681150702350953783927680968780948163346359840337712529293179033713842578811342347085844627829598091704754335875468017816956524560898222007114493722101390835076850270254873712147081248346182085183897541814080169203717904329304964394114101535969289110628378850140280928781080296081515982015766310377435479113286661135021040999459173099210687591513498511823078359943930728181765554243613950794441667508228603425718080842161145398873346954199638689140654948427669471979512809442635428781047507980453785818549314026168685479240377337405557189633324136819914473899861955029603716967952318398782561545909905808881077592277697189499206899350392650255263168157363918964597329129738850030653816475372807036743483192761339846180970658848364257671261710774871421391081052171391568207414615865850542660686416881652056785809660408430107867036332829887657156114803284390451180839925242979871899019666296984208838332881550369211384215554773410376912025808253534055587674795045421975112782821666132240337959882971957254034339859992909738505059118802648359772372276897576886773043124485116186468742341850236908688029154217167211820759557565460763070784177013370418984185185600405205497667636425853699088549758289285223320864800467013523061885360422664008880536955280712753005990440173474926315343227160292180136045961487636281385446478353134217153444573953789489165848740433134029393429947971240356483213271447375964169026269495857282200394584438654920928048475600917436948437997789641358073667450826545127107038710307658539349239235527816307410795513619728327985151102209895782750307010081554495027495270127115373886628622465504068725160808699711035347843680700079259202826939557725374157264422835865848455459888295645992125237135103860588574869633261120906849329127961910664113290603836945546411066893715897350761560655668934592652905421583113967277474300317959481366505006773126241612751666607600442049315468546885450056700991196372700166885896532174025939022279263090869836859180431695412842066806728334513776689688751240803107571735206817376572557643156979572454803302715484059078208472072172943899464880545274750301869184522202098450412820000805369429028071924119592523835894612037050332633815826827427010925729666580396626263040486031718794258598776610787210077954135843726171249647414903127337221106138471098214308223516199978039522433930697880784610803924565439463049156691688745115252868811936708924625177939663713871596291172686341022283513066931628511655097004470277450848590198603436624209647064819906031663232027541752968215258950582119963684463118526164545568993315187822021909870761769351578245880862308453255436662507964902727937901474164453496754747314174028127567616395637101557274559901119041041605421219669646482990967635157422786464535141498387921916552262123671079833675185509533900874868598545656251653108271196853876867372189118712733863094709223531616266462792691711394323268192096960315816148197299095010638323354942643498730782031106847332580480776362214719866761239957896565506014045054417431051818075652080980333015083690478665991650761862556857709281239800734087969915907100927572286943320007947833600030107647892366699978856811130272387648068503459385274377521313637586331688684717876900548043847950859630111168233450296211118891611177829439012230615187338328861006149798929788963020104681177215235292743607293377350384065248027329765186274630099468121256962227601680838919504143682312819541620550889373645868083798230235809044054305523203423580252859955665469112677138730949416005527962471537912171980876309594124631445532930263031492274718853213073574627672703265539430855764632356989863018575416206160547391123332146345809791836306664620820242757055096148157928854088322900335323039610705027931828895266669888383790397695750151167446736847133069099172652091664386601650884507634455509935121576317363837763838467114152483692373008942036471643836611533199339023404474879015722966781375586396355795439876295810007468193808792625181695380443627333754370611623384426143063984615473645151960930993000921513240308353741288304497144193416663782153246846979694970602806234788251241825166825086550722071779688910281848744947728264351390945514017772306632259008502139771310496151164871182614043345573991363493880574208295969124925176433615248815469349426890785077904510974475202456586503463709929988339726140827360145152225440563080320794599171533917634228721704508782947941903433196910170235702187103834797179329549911579209233951532046947829472092069369015440684823058091748891138588648750074913121887076327169097770808352525794443544860177519153659705352306273459680502323572189855890534103956008953409875101814433746418553384581625570887649585551692335473020591023363243800545858628950618275250090453396070312705001945697556453840817866711603343966198724439648376897736715977000316303561701880699574036836281313436271936028194019248747035496021853642404370220211173311773741212332155467824782659983985412630909775495967893050333849847549594778750530747856642135528386987760620556138357930569596625426592867663816492052393044572573202814970880209585343857313543375700865157569710303182256968758955964876655056374061495037102238944540260963348063103466141727517442944918033191363869398499479944463530329226213397949916743348113970740175193916572041459036396280738616782949506244706646916407971376497424180254101260843865665248707490796803902523927926870218388352414760201875854017380450526896116961239271416057551067835517247795732721317538110710811232335535518334830870099478587670762565515728298704797935126463360782681301388935003395148754148390081196620977589409565463717177183511502608625137595132777777878034658948673434167450479207186583649836778628633799282210782273921304374314426977883458339042217305232010265633835971096907302541357464095640310257198614250156801145651217558930019184913695579147120181076017869433528402159923633716533321796028999986011722478700623380876627145143824713422375065511579166447926583914620962217796582987402621797213142141852522608354408189861464290186837040192570452124680743826717762055128041084534057356372429359654202180977165135450227402412530500191281299964396962960621965774033513137368727502509638622125094024687800292764612738216512340113195020711194042562517222397504111346241733431905419855739297851245561893044333240530216695695533047509161301064189421230233227072176277772520446109805961998375832654981715425264593272882858087933062026398757408009605599795009637899478045242332656787770890206409099838168496184063625316344942388095777851271439978605742453138198540914735881748690588468858624297822879582938381718635363881456054604962260060265411853602827208122310767786283776519047919929582176697775170486489701736799203715711378751223738572267063256097941047633967635487895221940944855950439297004478753725095657037895582431281024104114942769449183568588151152703784534899688921345666365420983682316862693010128528987705160063522988142110378430432361003487751315481703786483615691050753017407171768815610264857450834627952786292012634638142455934040045683397818678881246059028897407271997710288108307361680526384068257322783841115710235868289469780061542295912149915000226493328169883299350920351369414925879500840630730179405911908658112829528756341864705634402677290896215934982948725063667390161968715209328654633758172062091466986505105219992455694417758411598768551138643874498878955067457837252205225040890018587082090874736907202926644524118276983341232943551387133085774805372026595861353451152735985099829499277833266897867089888507848314712249096379564394589567746188432603874583478716704857309677027326590082420988405776670610962894114682586195751002903987068949595208903746442444139716781376012146566765354499370037896873629472128268447183444477016589437252667821268231496966063348510338558561486104474323172024638426374131736341896093499073144171300464165913407349738536008434440822021319579467135132295978726686122349738442628827140550521495796306500689135196314072746449753020991970485415421538297843539935763418210649023321592222107038069334614347647376244846340264155243763095512307241433844674238383103198670346674892297986047566038092546426995534948209021128511210614464196709576943623265103461367259057383782647493783688530137370099762520522616257550856087862624630586183413884996822113842990363897295809072425679859918508991326587387738271675466911574216218900847013621578611750721390702009850512439360594237531199462767869131057653224042328574789457846914277146723207457297006294721895666320223903543814624178745186135609378765081255023923800244583136512595829460753104319869716560904429826329663925486139172368452283523989002869427550319594790849517256563009797121211813792311242976583218736489865596208379035580601202624669661919994372557564683940274623007128842207174694131669564878667185565200283750745022738291289920787816737996595121749370368409020417180929779269033007726309294685436202527829207307423037215547247145023083922625638962472394195342634981584145624215661799358532837338503723436807851977408068181400696771003039829132568656689782531944123170290157277657420244440419362164003881858421736930709734426112364529093401222236544554803262505280885461213975554725591887606025630614794087082024620063931680692942541818356174308647947381817964635366290585381412092928795588498710211969237418332156696677652757745753882524418768958471642667809995569005221086708571304411399293814419458961405570022805562780038334358767674339942462177024811365442331318730696170107586694498861634805299609149274587913473835774644306159243082242889459058135774497747252281332527867412341111594940471344856716133267993122450722688402514043006145062369330534811914988113300890036047706490300894041085095241339208388691650997433564693550725478555668412513552258039038050638800382422367345341525099385478009681460070557925262811760929976106593954356644497220790183496137698143093031798300569061273532095450221955237107145074318283882924756157935891620181752458619499401051412362074983035891573036787990775227985634027244335877232131258647811594020310977782401594777968494782303736386277126573112597556730963761531316896408782267805303961410990744206078084843503029129371367669628970623762039566169504429562339654312030610974078060966908016981115631218251308686596017021420462845150734297827873872079073610326207290998559828775545749058953345149136969633179489548148539339024173760600797687907230346313234992189156657448983960776030133317744415916387135119235431159201375635028527272853926934325352749983524363746301068314330797180893888189657295192740663625511279564304503489126793330569713214723267298017345768761632763167176786500466416977946911994327628501710365084486956188132029528854983636742546409325041573145872602717548624468475423354992559233232562676051237270377145687354683502672283335177291225822203300528255700341169050208687056845739971679927978446309289706248154153943719161503279135341421569344472994091946021007953885887681284275776140434615256738406836245661485693525352215110031038339238286889458269696116032526409819765005964046547242932127091617917739238355743673277178675181829989401443573213225058917349934270540006836022717536579275344336302939537910416475491194834946048666667764999919444730449304585957715203305743435595068326023945671747723476624556936552173502503493671536502763119355669467067064438275345004840633302425246759689854428655670853842772315191901094594711129257413306911942038309362260985420957611387823664105112235883938180593975170146109752701583007559283443291920677041184554053597258020547483520019899449637938189054695203925187887563844479473892716915540824017657405399552157949842465252005497509930756395537441154118710851041719908456855064915904965125332340217212053062673292991128596545574199081838890061597467223210760482857893897510946319201373287181126815634683048974365062223905560776211582224413188076744421518975728485242964249897136946014272892654015064958125915739440641003583989276475506074900097559064994007799202401908132050872125436520541088694247366950647056607126964437429772993204186844752869323196705717718598896971780373606196367101861392496658762307722645438308272806343156437340402960778822982373646619940274025314388044476490521486258053138847686128781751005205233022615231621734976955292830811451034764982065645104743103087470380396611048504602263415979647360803975134936171606678623915596336504853569726463000758529901125242026753416481704181435071350345950804037043474820167413717958322533171022072584006252591200903065653190086067957215526395035279400955101491162946307212284970898109618912448662599175351910302322223360443982459377556181320008530297437003438777946304535396015376378726618530127082295237867494936200478931319736415698061712091642705827515726430804120881544759382402643859398574600916329839198060612342834631208952681514230267701843519613019329237174359028057949055519920405781790187936582828601509573993333662654357377303710771527638278951440350459088960997765921712566018475205622698794592657058509508145005650935818677890470629149640680893765584868861540978561009221744622203565941958032944199245065601006703198658402805918971467414390492940645791074853761990248508671477864035331940420095019233274139420906763090031562193784146098792997385011562410017164231475211654023756908708859804086856081352949065883782425352082910703498902049605868101402599076430152900131047614779536295824787305417506023370835041964063593203130528999122538283968923828627802686229669583240783947195642965828101850531348298739915288145823849169201394315340801748862126383211034659569019346194393884396582907669226443973958799283994676217271765825018673808318742123129324159325410213905838666050517397022243473992411656188494603333347703261277994913701924054362819039817740591118907385637599839867380409991808398238941496996187056739401360164642112522487488865378406742158279096553264550427855611191500662407925915891122749447107062058300153012971984447389674028486946979554488742868183613781633207384488115020544931915617482179522780602597909665531149550322933534187706744772032905624643611690946956740409509447955055210923708893196384012275892415612687848449469228354726027105048755132158098298480732793360461582425078009970497397885396691051252847893875536452020656565320220397610422646856942674644182991298649641912869232324502989907008143207503697274994029610901248207601175196733415570810138659897447759044833085742750623414981231927195949228444925223215715690488622873206219935210942773158233806785246501635039151275456546176884831715566534398962131460215310244411079574824571828120717404252622006882317548187951718659160644146504723873740283550707338095278800114151860169210570665814811150527567816477159608392557175937750518955527410039744408345871577053428169146708997896593685523965233564079254654194165070613454111383740570243335930562967646153431972095236699410029884949569656931018333432107028039064372093196394468393597299068554268238181660979766885583178010136389067909166461462360631285845874248552942171168985134389963304078910193182053414524850007101336464846229375806750582962650838227441778860555096685362862005795574391852557430900484149533732132527460949743738743948311866086755873762977418890101852334656786718409176278252945970591898609132730610617144561141962594001850631158844714355333565736493219550286909538182010699843297240500579889900547367389402150736242535361616318091748098025209495086138705879647296004055640274899055437073791364943439147121425281036406028365370077639292046169277231410854826794667789740617031733688450735752579490647349054628477764417856900574868993965610362677442545781002148361697737537975528273687834125837458544582446641291866507665368665983967354092270674930739486549985972126565682993701881873283144033310623411364558192790893703960308626363436583111489498226434166054063937230686171636824368532832064969526482736375098479947468936949065897207254059331494903074095298551430409638051089538479362029375952475730324225485613264421487320861967452459597121117820688228181068903837976703630180956445084959421936046558544093879666492948200110034151178851630567338489835185507358320628289388298048612267292198140760332260266563147894774654998446816139306264246758332525277001532929521234916419216619894971967331451377956771223843209949548697902075311286379739242057576587267306362239388622983142806699284087982229827814753504078426399347770433085041287985861142367760182724437055890820646274451560551758946955179772938739353273887474812610628118918166908002797638563481012787115219198207849023437697217634091421284605717448555596475624872008902752690558799403132499676823132650615002002165281097851084651950134982386779079482990149796839026705607306370849470015747340439006489114273764151525561631838464476222998107355401401822555417154322154704030619685241788210481453508115677143406005230325478926510770917359820529537699037977542918148982230011635639555324665014563055259177677266673101648088541074744322531645783357600617212156952207908766609086918994765938710629832666585726216753891307119277056942992160320999944620455584342955781938070775484695701181936863926463460299042658052317027310960526763819015817308113459890413412413762346706135258405926523319416833177228544224582780860314499958909781167149808906268193675366431815150937094936689544572762074524095311707842847979783108263433535476650523150949474242092988117458640411567766861121583757239040297565113976812218306436183032773982177876669284467954091605924086263139422301545152069521124072110706083928346627374243625643971853578479310957278223248278625474313102075726655220986688595288812336251493862072503279795509100072312168498580516046459041613551747787270728462309568299858500473808081242891812856133695177979756392007907135583434849753898954331946259213611706052983302605186016956174061672074293644922956546137276293072899916793223662225689831524040339073965941072155691701240010478205578779241378016563774586142458661668045722264360175810510213079919503857614726253725422091416471782586668931821956446111117612104541042629631788068903980191296408182487832649393088103389843382578703440702407580332777380098783506334096651784776318553432071074758880307604420672359366318972307427507635803252734444842205244809087033472867078978128878942472026503513492474095127600347455985505345246199738215014378695391841791116018487146548872774834142065790585698251372395782115896387016608981449819581744278006908145304849075326004602352355017672037874139990271703542597293795381803073039794394766583500403734984102382833334711290108933307023046880943452515378542789143379375779961890600735561290233949020271179138297029922018383046030929319014623004771909652187022315665691000393312005715970823016557765490478588993333835271636032840522870860012335724715914971877997740640325046448960646600445631478469785931599555196558181377835558568647145069292335564701501337141452515308821133109761293051001149921381196399038186068824373695142627720230986574333222709861288889380334087845185761293318920242141258876272205391952836971882921675766237924450115842020299883815709876357136118856642259662127778082170509443008263903938938267569565270254246311539323120714299627455722463599165383415930750900092819996609175224399656779003091617956266973827407243639213587112248447972252891587170520924691175961148662666633398500428119491630590755866847428328988987386214072744757176435277390123208361895508729415872762908501973375556241037744034280879982684894608531689008170274625417293547046612527775288757856285188818946383960459271789641223989106182037318695519962081098980126212943088933258444634392036912483911144691330411194288666308457675810884538857580911604365149544238706932510963587977373326687017079668818772201037556032379245132152880968773444793804978565348969756191482598677196337945426707045843422588771850641015044153910662066034510525797858922151674327996118914806486992620003233618148346626758295775987140537269511484362334464302140901811628542332931258643758507502045447436318517601438945864910824138203741952578341619377903459280026700195561701787883289141140316541268060501224059855117537633676379102151871253532168059571360576920804683148361791986966717075020667043335411663325853133287172950584570887532081713705160175676855750578783980776436711916062481059098290847322354611896234628750968629024843898202404080337929551079685150101009596112077763094218270347381405186858943754984868082770006232653268528365946336529663333415420660382346684980253201508370030004096197655032881327781243003125670712742180318106480348825305042841725672820276191023632639663326847285972862022711566627028097176524652953337016434943109472877109174915734446573506364615117542001003587850258543010917780585148537591411106502686275900883815430639850936311897769957285386987667019881622889245800917361273019383726435501527166644697822202141788287455057461626572991819316805700743578477343249624020509804522430354243172281328675323565432720931506779905887421223159207520397927582942042880162941454307381143036883777172756886242080126755527275770929218091355156827141694280652524171938782628149706952390312446011498364270200081211942469775065308155807202491842120836830028245805411202415836013971730106100931043330272523310602798853230942416165868323264734476876120366248257190781255102336621614387479125610122334410960152281438285824582024316320863161047499056435219560282771946232139122963550869975893742015015950750024842906529399094128941738589881903254191563073285414207779340756029307173947700535802674788120374957487572854814889142376344355784961325426676655237088409090414485832628651813544144326942640830538549683263233570719593299697927517513790996763238691878857073975719433954980256379478816246251790476002094685822950728296645109126891274428728484515753188901032701437619690225023444029276529856828920332171373430352136920147869923374741523958412714733589679083517398158252688029301718940620758715699257591300152431156451361664846817006180955479119717073148447913573837058167627902456305402010165307456718136413249527579798442659784954673986845709739090294919210217195816028071226558724149802259338104041677303451997842360393511194848253811719964038982467171831977215525432980135135143658935885102792745201286856436973615387242325097497787339107514592152497791238883054160360869521150145849707631011377959840492694027688133080226670678410668558613335329966621947363765197423119844368200288197818016925957522105456104400848823265629546538140669805058295200664808100000274799176165915881829764960274801689188883966190952197667200078021473290231854419433467135818854301537674653195758421556617648836932922237689854483403115448214693513568508941016337828433666871634055620472633116001928717950593726005845565129144902573115760472102402884585395381421633800798083863873432098396032874349414350522095223353184536213188466252839048859398003947768474112927999755464365402435523820735828213664376935845534504175571253383321590909534562065757872624237316075739988984904884377636009895947066172881457944436027625436603186689375102976691924410656940364336925219744435102550064150283140394974127201982569503189314398619208749527524577730292197630718925220549693451505802501484090438043806769802901247377455093868223321857975834115785587582478110211935263439097252000443663330323838567583825782178934431839559942192361424524388123346299448792642571227449162620671695151080420606447576087368423774125815397254810922688185907951092832166924372083674318464800259732560510779118859929204674565938745202402757826727878134239285665889217102265994442916699795879366409615818258555722100485822670884192503817486563569541200020793433134563138519170707176205996181029927999916861408568653851407434740798719627932763078875248055444012722468750883733715200473920138600589139664383600921159276117921792923381971117209053052727568351008041777146880226079646126025601327490127590992271863212051845608778205313729764865224371662969724392645275500191649747706640617806791244363121621972493579258652431458942965155333980301616991392884938301042807920722614006727442551064457318385129687550590146766062110184877407717706769796000929283452337643195815852123528960006178260756430719059029257104344010887030849181402805093183884429484189818965835538661354887852901521636685093188879359354497350029980549892517871499042222868492207314280789129466100298885509688346844084858593836630723145619166088430074923466714784311432166119078291760443281533420982101167566227735241016541832221022348087824333695589625064061102695471151813542399173348362928041222061062782478390188619299749912136163144190766938648106175467411601624282064507287782243097930717039615502613780548333757734887266979598711510966801125545026659869155439391108211991935168116437634448798482624914884141289114075251780547390216150420095308461545739254692142394943498236258747578067627031063914468073295468114016249704415448222312067180728401635778298107891096713539336071836283878422560082201009150694085627683502032329806355267130174521406653281596803939546050853793448091326330627925602646639579357646490733430630333071714084185622611491293589175391587021796153668570659278660598957834763157358882063206289196936700040439267572472224552927403187936160614080340769557015102799743754551733774830093424235348208486982274415538550199072032657755894658225665405305458242897422532888810611858468392970753850743465005752620729547688464880647741043225445851830911446111571465338846887040550600706725903673430481421319312226196047664780658645937759716440593991634760593097441453084343442025829598180500377167302072904330675218425721359316304738903867245862157277938591451744817100008464576837126579685960134860023116191417463342594285002484963707494758763903975894574185950329936817672731813965720662034736358970982370406668379964614457465300876917870034485733322534220389235574355707285830088925663983044705474156860864549519599765789321158409844255140949969857339646734193931634136002270905793054394011679103206562200035915380395021200063330614153303060208143743449687340078475992772788461907287066269865946691801282531372316084629418245774625227382030376836876047473428576618851478626706149179572311008992401316143773236179283493591502665596691118407276260629380805818937040220214411402062761656988461918660485812628727048385901620573791828741074459516539735372552248643412380895914726470093839170902375322688084252480608218410974499111139395890979282861953159059299187069948359147992255034237081746296241295224633354086061314800436588631704537027912853948492484870080938403509597489984863538881239008525622871608073764057151056946829097835800079761319674503131222938146583055043972305026180159599364013914958466182459631838268657056939766453726378939950392673582698970239845382923790798704846575166191431012003137032076347982579060779553247982503614375432794177258760022714733961995060981941740705151562655212861263348693468096274444683376657386937082472014644195299896398880197653657066295225852464751031826879308579350719639459053462728290897547921202792382622084788979176890043789574641439257995795020392122636441583620555310454754402471636618027156511752709872397260937206940048243084581305796204359494150568096949024720581758047836241075427150741232425965598939903294624473158146437633766018547484461912629634178289145314247065673837689317393963958160814018603551903022069909966744957017253435075413689612047158210978201097882778920641529160101727528744879455584596516301371207162607518159291345730852691203842926083318747526162182788221135930243184316807807494161279633968226723514266303657537770658940922447156431531195795617031579300931297757009604662200404494526092191838367191300908673964279614066964144898406137811176162995884491960898705096816159951517551665217707432281411799420996714788629900930943313206979691466020860373230528287739136757676488527862856329873381319607835754703179988459280274418727231970547098066077080649469164086352051264230747420637895032935546368010489586567884759805152020213318735225970368752928591271533489119675414949730910598080505186257428480584369284066552462551700198797223499151578218881245198577302440048863465742570958045158633302028189430720068841766110035105436411759887862653655788128458670295200977378111832283250171418791481731636540849055635544398149809182312879636168826380964562218616212086803806130271929906249716373231496293871151137396173278153523540487778150119900725269524398493678564564074469749550174966124618742216484277846843022823189835120525947131927944645084611865865455771717726133592881590390692289511039008462742119162244537591519464469010847995004083506891321667554241665183033555231943037170679920021654774811571845100101560901593737322948831904535963606554149282232443113289938935277524007741431707756876582932930674097248185081772303896547539641426286425309192559952560382117953241121496427116401944777710682069236138840113881538280643036428709629681127245861039622812609166800621414336226637182486521586010373609984942281288563154916382360258580436314271700205159222729047577454855344285101165047650054588649634770531593367612202461117007272659182536473983272544342076066845311780955965187815159413478788213498731845853907558699290393112785288795190264925414925648189886715206066528243431577012660386043384119389581137100445309557676460900136408638819489896291118301470251154145486515434526055165802618973664770272995888009138670777231645848361766849010041728410232559988943185007682165996188930391288513412376292834416894074856966694942439437375901969901441294405472649425513369491598297646278427605427079471139442547402011594303172203329635154028981730841001671564934149989442299820674381624575320169690073656112050572779690847879195650124231442105583148004727102870773439150296926795294928510697263032073504621583111133514418251360517544979718644788244854064302978287891256801270108946979421522418809745594843567077270217373395501969677271121483413947757541537727443313656557828468389411916788977677235778589919015643304161379290040548213402200646998418588136696656159898110138491874174211730056002245999360122563035649245451483903156402610123870557164445251439961839402268419721115026116601350348108306478754092944169304583478415573819282480282096798950629352369139749144576495293396494470719287017615092537825629827622818215787146916277121914889095986294582385991319155362983060177581501491201258126040719205188027492647959736204848443648990111815321614896628059943042458463380965960133808883683172035155295360620104756842807569148688094537543924265223783237550734026647474963168033544803708163640049997668733379912159013198352077100560412278834977311918181935402703781329403356761805280958773311386939696823450656942034897799347751555789093641661050513657768552959906502020402575497119387510655723879483988082756512166643209392719818768160388544041588264098957804375523927650748582878730652666321821590284408724500360293860574653857688586263399028901195526887300489646992516841983760640244047052286016704456489902394761448550343871747828793404973301508946001108666877450126280838665558028882587977768307391740726495175311566608431250129643757918116189693649793162716875750254003794365752066259908212970511951378967821287593708479603443415595355780150409913750551653616749616813279208214892430058527501643912683331853363527318421533929777953231858084695746110201509771087194307673434586424941149268548462173209543913394883571504353380213372071860846221439757810487409357495311612168169114697702045188646094194693709322518318476133971889356904551513363527301693154655232274058335291889188451466256031348906295937436401042221214638487897724407207075529707813015699081951111970535622127207345030207344057575847223120778843755894417969952198380703968952912195010987646339656924208923172244964882598986659171764909534491618228458339020594741063982400354131160767551324705485227736402859136678792343442293884569088748368051972146122427672477978806154831019049388927387133430598584626865489667797268483898095739853803380405258212905508515946717911857721077168510279042595043805397399705768712564034935424187521886886375432300769400364441985679165743009711449356113500410824233573919659588623094973597562698666872994680024783544002029404624256177781349244499322712043029955484101485688831934234498907828021105737005857912639653915462820043239952942005966946216551280327228899763788883008369386348826382478493915789040526886500442290147850009183951573477517046381728584803351550599138546830890742473966741471513202045486057237382232299505051283123515270978503377787636932423778589367768123815900373484308926930820342710625129407963297363020145454853879122450997756101990042567069536886154816994952560512203313702442478482273313808417910837483140786905981487179414901357578316766455280559899496186526204732951564148335594905704408749083460878363243006191603557846255957563750827443422946480115082143276274100314248512283384690922250349536456508416782556999657283849045976240985043318934499455673772974282169617080811865018792502063281383657025656577861239335854126380917787105455603333307829199318878716133154156333393837883250403534990486362307091045706071998365366070384930075846546069383258156400236261910950334355963815892851069353961416750397791631962887640924392350317043326355481390280317691825738972677181039819527499606160256706002385622745764841200135989937252698927132551581266300248985135520600830994318108682816120196443894621605000743332535757455830281232854482341647918208374377858801189862054385226891103823462271182324820577528974151904126633211097620920373077351826894083029389949245405794882903586754070938472649735347503690976818635153646820138525614431433772454717648363130884730940202605878188084500401267037569435067472713906553078657066401883508648806252732544782528876561539815744044844106851416551080558019976510448009445347144217331135711651341964908940692355882429926308377169644009203541368543792808442014296950446176475259039988634534442469692519541270730070514499024976765634886804396685196391413997448756843434713683467684405191628302400411300444463543904105050551088502982716308576980991021240051192505245400533996852921477011645488697170458489815728942231323809045241271828309703146439947409610886060046468371658600727223580545693680462057453364477309743017012414680899795738684692728722362225906862633988353336202752206881499261206230065171278595346629455825946643772481626755372924200317982948639187210247564879853694005010496321607465292483677332274960807481149738998687140053068222538494191393630921407141704855748365963430378812848854939160982790730873475635159596348281665217783384259229703425853805669542764097304355298687060744787872539281483330988156299723255475842831332758625248097830126012737001149034560385808919063218019116598721737140369508389707305340294512094886159650544965984421340624917514318356409115089633030283963762945950436585599055406093491662775253710451684972573907007860385172598087466126585219420374885633034172504785540747839255470609869088463825233691038797254371366095294157312398192362812887167762964489274223165219557826616988560411913157502421058963757077942821681208456422491701054120395295712019520432157791271396473233747777719456885372502684513340865836242007219687965664574076234638818148368921833672304218622584740038823812939390664632165032737160770254712319058523233683300830087237149479584905112647754425135077202372067383207596302024726599851674265867704984275186263330877202041193178483182843218944703593421447955038703314134961308516288358370774328105264887282623491349366183478658550890030403680486351367730627900771743202408773956682155638316901009295402760640247407143919873291404364716138355183364531611971812696053368907340160383894489947337206890849406330678630169662635109835730718374986758847071614187686761742427722035325802680748804962595606482846193352473924234332022145900674684294637746953789557155535727188908328459320742691328591922918498602298128228028115612506591409522576389420541056942275863826575850024073441710323931649089062142304531901676923498734372066630902328630501642446431676433284911713718114932694543960593323236131622385884998846161863204281384142510108606973349047120705036650493108820414989967897875151838940715297161401741799773133267639300110064042089122096239191722762752013897492643485442928511327076315782572381533959098845030269609931799751229081525018556334822563057510778816596540741782926930883698782736973861244356304168635284869296071074871476557114583219270398138425771545910479815917827862702323618915182636431595516585808281895988476271372308478868844583044906274136863311911644098763795149989775989375443757016246999623266938093059719834472549386704823166311704930646185865356815350082083315829192616699671782904449236786458910472710395871626222820458447090766359143206178734537369363744758577192660702771358904655464170081321494893823980285353504360524764650369917514437692733029107702038119930436739125467823655710341994716475026024131244246638254617466891900242715516919038903025106413824368904213440251020773287667022933819651048435127241791559241957845618771560920445488491050758815910601166368800882612300403195097531657683031729664453815524564913476251641708654635397902866902872426203401862728424415622370157969525759976837116994300717583190462558952619754723448917973502767828477895006432768456340725827871590112454299038108184160772608091415325011468035573299776480186707924417492553911142493358393571719041323953522609738879664752446563801369351624800716561413275598959843636922631221888097705020945230334277638357174317887635885628057446164478971966093039574978994060206752716509263759592436996899739414380525530596633081939853313524931349570132157001163845139436095065876315771267925154841389166530026851786711781087659482674505262450862688866871637163239595183077516535696612798770339000581679194937306140305916361287816130900703207001506998929885439135118487239848897454719542367260077731186765583849585286484083870334782721531721437981515141281137389818943328496871326160437131785529406551597921843780683730735917615097250058601668815280729440411586941217391470179541117981008240359165857081912230615129171317187548576047075808892442210983104739848694440698553203252484122667077920325785952767927224430733053944910454612364113108325554894698929129201613877520085602796940708765040781309293345142970580170132134658310200357434897075366624514544509941012798691496751324903210958632697196631605449975802314459775784032010244743899259048302940761305779613662315563921437399925057232424877196276676394317978231467957658471921599365963487548545882900208591916437154187376875527090396317511549131898868248135422938927022043836507579898503521589421847131593164849035748387296131971482902137067805376975392977642476863224592043091472684156244840521672748492943799143765367706308232193622928138183236782600786776858618763207204749379536315132516278268903612880697303455181715018013034663854566908433427253567452976661317863687271235456031364870778019991012213857103620942961611296823591721942999833622754508572828855329885474248031898060380400777750812024489497267722049837964756397874382880258290868852974660688578989900148247029708075560299505974825476126442445575439596449777748652327206714123088803895183825974602853387968132310226978468356193973934814034637959085189798409609840842971576296868567341017461204717521936918988385916059841205138593889316245990582697945835305887135834690356723062184042162292585152206116143542246258066159609444711466726431253598564251314976837580695657443027810831326179441740153671107898367742446773346858662144057072061236366007795337341804924072033375189369759924454815233318152147794793006419085545097514356768788706792256466475465507633818626209135560289182091446264389668633936893106357362701472698387527871760967633411796962502774055257795317023036570433731163265550103550067346594659421805123494820278628604458768705434374129521332906145651122170260002160708227294371215109422329295114982527803203253132621600457375800733907612056954988251696499242791988562689007817524899128601185869033480749183283753314165124616725633584467788869461997813990993178098045388438334724474114961861517576765342553521242044331430647875862613340658587467309015548095684914827268432827076411984453689371891505992504656749621929372552986031369750722050323039917031521458919237666201652995984040821607477163414541282040439443412111638873066768780046199538425591503213774001646715986741673354987175060966491853506603164827095929030531816139946141278862632071506014736559629610724751984856233653138534230246270339177298191976952023072846229656172102179860290722377613107599265264301359757063322196001446885727850878490469149614240366511000479980511377212568398249959228566357102246080299368735534300865103971755542403644172399081324272884914019389454933749027848122381626805321140800527176450303226835292776067947536715349859442275776456099504339327600601996020557991051086166894282917641206659604273476846207162615599985641894676614856337763075867827871222065812375598822739079663549155648932961962216240273109868306440460130736870135268724984602017991040588105122557575325675835644923695774893009804590657656014862801704455949596765103866934203981718796455707755943650196181785756137098272816392824757519752485540495058748607742652468574185354368671527461945329596524857078007404968218503301699375528879665924732238745507482941126681351328623238886926592954495708179084581299720874232021425308401766532403570880999297727831877261932905014531423679642707311961550366487302953435923825989809248845121589329191513134052860826347989701846837556771947545012062070280019158046794009552166357576918608779778258836786787659311781154368374817070406841966547629329895939147709941826748698695564260255503958298863456287026034818809086216607553686609613999043587578259532495415690149035651160173859855813663592420471817923888356826816809851261940237909717254909975548201078321109153091035642782422775837213851484776558335693919802561786600503529612356929939535790951145371769719777152017064708050249430095937538157165153183136395406454462999939929474858010357553374699487403253701709399069340450181850213201034387534557057110162977860604289089987147738230052162217090240433347642213417588351784668906627615404017938027404366400091737895272407665604667791782040812430557015174831969489027849396458824301566203768244066044029919534552302084909197393636590252590415442198785227803028450199231094775395608657860107452930156086214935587343125411281772903868009206439616176714849017261901391932657294570957717448526977496658963838611640065126233177384603832640018765813913258249024110732437396136788665671301798397675216556737150488329867293759290598212024107363657030001905576264201892060534847190316171743398506121823131593502160554710635028580859306392233060988597145745331812823871004747418855070150197144736515214161105332482645043708245332360595729941345583321708861879374994821046342799779845172971880664616936467230122649824187574709233820759812726960673914663450403373510375769906035973105892856060361649983932581457417378956100856779725575113425843774524623705365437446804656706834769347536272794425034246454787113230135668183077738282369306758121411275784425549513951538132114019685513462177570077349280101009048975757234396173606256527366649480940757447850091655543666461310695920904178647401850137422435760724258902799573899343279296886395867985961493491915805778807715059406619741120556503553326816420641765376193604609387346012013419541276783221471543950934939048748465411168365249839537136252048128448801607865567394289220633854769386873183624286303601684976240756474022584567397027084850856390801837806346288793641988641222557414016478737478658269556142159004914496326194794296111993512553147307545932250352169626631687292896508198130225844813082085412857869153695151842461317532930378503608894648014007204315805240824802091386848355212635791421769017852491572197524436505562988446433690806347021931677503161495937198537899784936801791342981279548313126563778391228415824614813279534718032807546800549165598618698683848097276211052840443796170269128942040198349320793426235086377980014965669617981767886200808383292230589356512013234801028603332688380099113156969768726636902796527409718231152667307120974096587580362886524287957513556930046522804601993951038591997024096239161002527070183121452142455647842653320791298766757340122934868162636071890936431107664301744335021219526284469312548719385410227942552542672032002879189931979391662394918786492688150678542108702968509067296885037365986935797139352147989558901175451878384440661780286430102489312537612897879247783303292669838077533475818372691169898264286319031434615614063381614393400531400539106349150081161724216348790341311889086302609219815858090214432610651181200271864415680507928294337640775741936296973377630521223402687043716270027288157550263036280409034638778996868752973750607045751403864226966162907386676293447930618715794204923587835140536444631046249142858635151911762910587819963875291063114516163691196397941140535426248167293459567616720361035467053336729336690024661055361118184798944501766893102252306059224504034882879993418911857929085003501902387821437397429741283274927326875433023049596269629438299955062458333579147154807932811553806465524487170741466474169215421178614125602562377150475902046330548797414007996388792724725646139634362404802879681442546949856663518377649115897873987874384119562685909389349500618422634877934329199854376657141627422684177566530315159828022090227402740993326536801776843390083317930599030790777976702768236954768417259028760933375365220191404727664622924439951245712498121858976408381779641462410122106968916106798163478456522070855822557323942994714253314688131923576424463753120606394671951244572229377738913019137372235356127894547967382357576276761817897455611926738063122465061748913778794671873655623712132985831792273210956300934862654878690448176606630559003181904548280537279346424452210273751862150810970809878494385818802706501432931358719044011487797881875563058020716729237074325066762451110295224382214099840746078157351907676128042842944373574604542775114742139529775370728034696586884233918275733613243483872867233360189666374122966973732766459703670510676878668562340596359356001729843846773378616907303800277812163235346091939732358090937924274657304479127023728075164413616473305252380728539389550513350101530945449552951531204186102708114433639380088806567995371065281130016091142310770285901000827752113519514279938875882000016651425327190796378721522355014519848994185188167202719776023413989067768797382051897736627234219227111759438439426486025329924602893688110284582487894132696099286872650135487460865865061837251203078984001801584519349643880381751085926472599445977681998522045278367895866271321393322034478527431434316716814065062122047900921627253606202797985910798055249602052388265700623975450900397222757049604597852709571144890899198862530754760844435958995026887996811976626348346355941051900734978439695955676408818377475352760688449141630299034757111924889531618090073226655948992598065568859436856071163529910701201508827154934909466626792814798951136140166594541487236203723370749336003045453383480911654284678623107495464370518217256164760501477090449246401662883626701612694236035260434402418698111076225417248335433210318698406575503657169893307783560335805444744146754355328093732467627092164866497538622364813849228967224708591415140634665493272868123964208542096931116408140979768675493551678716499128836357704050586142662013584010253093055942772439229371280122069730945808428308454521221589286394929886561665805982404536067288701608517439069107419385985265478345049504555782581011246915055309320146196999613062344270017838228888884968977190580924032794130739066198227302552864029836798118523403528446075750641606041893680644607604029814796225255511975098486783795569644193002106500430428722737629255863548794239168801713574982620005595454175806219752943819732837327910530177608184313685578821728433744801206648922302080752531107608276985286346503158704845920516574074469846468260121272054756618917217559668099032722604312470778703089846733292443047690974757812091187147836977124612666918496611289185383689295217802474987635028492997169834476209430472078807153804390526751919995321003173497410191090337197598860119092717213144703488819951215118816474102946064078063941640601250100467238739765422588851332458279511775178869803490114463307560016409265132779266425299264149734156033277168745378692405383866853212280885495774765650462785523294510180736318967467976984836981901002649492791504177988258057009464258574696073839921355815189405674301376345124280105785899181317323927512445259644423318740089777156444732456395441749695826983704761921186617297928871034635972160531139117584423298676918689962099547479982701367676090023297059583834560235109043589807255495229747732671220022560985662800883349048166710723265536218034013452843639084676832300435901290723457481529445571949017260456773938215397283556741123786155856101905713012921348119330925419691759648885690172091949210119012953279331302790988034693290351837116521557995264384765798356319728884760373113871338353589955457339819749167101808553237958448242302384651193083866843653870628896757142242764755917507043789331942498867525248869350350708766139347336024580174818232440776094087186581065800899360815813581527462696807213981194676220201278298751767149960928438964535640426558256326383317879846959822132667332219441995790551821141733496428961865040478738105102464818069838502442922300822394620523022772308806618122790649491358828472886157667066699097712802606572481725721193863059780186092858579625863786438034914421398554164538277361642434229032403913872345264537923601270963061172400077883804384503875589037231188325524457785303210348897541318591447647735861671232362425276813373272748882163877091725935508174159008696108091726315104292777801043696041585730836451996636528331246223169018364052405063302285919160971013583764391255621243013115449458693461960739700582392785549823253415143302787710098990456140907551590112917848509185351086360900685754013508349143304193342446140110558267289983131792467018569427085392204442392646416767226743213496306445223538788218026418336667522462356074959126618871929828429551758129744622608531075524494039602169141612909120405922826432255245543291210425589762653441181418533527873326963621038617507467297870939254720794451417949322186826513487677728432642970819489572838812041917162724077805144014299166837327773512797907339843899967290634902163269902876643522424629141089702377208475393454389753954555712444723354240994246683196449310097004382741801025418303206944679771183195261509660722352319528898860748979246277494125403624574800903017352657333308036043284200959580839279068174171953117574308105138974994192190974935660715431393111928056758554067230339903600644577424975571147018975393618249474027867931023547132397440203193138524886622037798062793337307260890656890900478755489229188963161572555057319018569760527896915128813465568536545424902509635810815536601146454512032434883803892093906544603416006020087373850185338696334103441740164508999343914644257672490309698834191052536132846449262315071313144258949196526555225915472365526706796412728571468729395155038234391083338277624882686293939370148170136995718582278225843767437235040232359571402894660474944330157962966559529789565571978791879551310171150761474616336731745775086922399869563913102875173483773458444825743097982731302655343917218273129387895324227912432915171442669193832292951215021085864975756435384553229221480052402730813504889618993394323919260214736009847838569057845092168139427957720573292744029023772585211389053892419712098752210907082388778379646769959994601165867667030820066338735254037489398669650036613801500773124748794283726149712917197349801272610827445081458170586856163428707208085246027430242140949157795902335203211485095983532477635075735858544876692742753487974415624268913809885775537385465285695134471385326375899270347132257434276084845990775701338778594387108151485676492337296035810973009223322638141137869333885090049607044659316588626431722514099480275256111915191506673281026188265360609787228330656865031843030261778799523092945651123950608449274984002264672280618919800310054893228810637794783045725508040299928502451400096759976666446860395028333722874115629524547989439673758949881052033852596105490059792007467912930001811092633492500032753767011179132264470604792508898741857997419145791143251170379631919557799510808072652329091350401457626792193300227426902841286350546082328429696253317373289413637439313564286996104718353239703089271662494639048666504014934312340553335886449988401176865227250766066637726198959871476535790563593001230305925847312354867370546507181308325764490084720342026096628845550006316924277136756153024795570448967970661198735498967572636801210297084491089689250645162150374014403291386069368513646250178930530930024779510685412672794877686693121797840034228014428182901233950253108462947073905724430590084797760528983279499351616839700194019503199492617360101042581897253915895705960037893054948910157565847439344066534575344809943378818955088467505365817447318672128587760935502533250793874296523299379651856975368175340938056072008719154733266380868184285354566529135824373157791621112654267303235914190010508839606467835908514216579022903705168805379630275733567643020443233085142710009798864926590650957112699881311038738586271345460503130766499189778687444055446540468131072011452129824630121490737804124583151349368055644139313014254069060680728178408581296920375324332114162991961326253376134372606575790237378275131918946880463620877225374139061310754957976938578315930569712487663297008114753003257086262174566381830705933583347419798902925075614871454013686974645395449434867873849232219035698922842084009066179169219390048795191553467869161744116604392537928463191168363687239882527426378810046071332381497583923839889530259918467201273480231379881822574277804259160238481467144835933138937362343223109153531408969559164176739191913593177149468531319043021872744475450545092721089649018905209434893331802127990199979616474181757830565078272628467514993633357772428845824717929804442226456285644983014661757289773356782088114758195498010404700235985329970311425428651851491928856743243905592191627065258471399806957181566691367092243309056626614618433885392242237737870060101488280223004658165706451627537132915606355604702886628362595211090540193646205848471615541362394822533996313549327463449596735459162725284370157006736266617201010131631813200034533404696294258561554238286616276253416119060507361703403457068903820779405952022764291269078147632780699489910950792109573060080185391032757053827155873104129853886058427868612691165515701672800455717647464690680320745075038626127340569250778748249948926975240448726420097026045099680212129712775575663414158376280808800347525159806002650362595717872647637124471714203048240970266024215330922788447629668754876109692186741773277125101564715244553171783259205403073406025576376040924046242750848412220085309809188883440620392779622725254316654685959851701064143901269966879609485145152356740684475916542442020476836465521258826360101354085256504593007987731981216264468244998434079594357487717763398733447081757331853333970403478302430287299768474902111751782299754811858354725400577771275344720925272318652966328695964111902250966187506347375571862052320289275075879112817284187421895890128607376909357418358043917582120782504114522927537556121994977585163968681299112684966640012284661511362367366250010699448010048350148668211168783804910554318851170078065344559597120373683315200548307671187020854779741277254364576902078144578215843718897721995681896009581900572601808420273123389290414415459926410541722103664534567684142046556217481036998460947880544448883434438305006967835561868746651862664426752867663374663989093221362450416876549447332947611843071826632844723800784863940692707452952247570674803966742715278373296782801176937942907864433513335509249666014529629090872931797707819016765632117913424522868985495455985325046634400775023638158542647567390203501793979469513508678604075095665962612311321372365497837537590932626553423425041595638202115349271847892361429840429194420418173486497667461365832361103827223818952855824019390114589995801159827547857682192406716752822560027354078825240767765456000084660198200799868140633980533666487935532764708425688819764494852265925744842827297065389037067973304482093582862643408878028965298686522496909063120796781196576109077055504331182784055599042149949723675425587676695956042543186768782417639904843681902492677022820980383960087520275466526152710595997563439499042973023673460396774487811471074296290123854398326720980280913963821783328330313844701941902812820895771133016037148538230535557491983085321613138944475162402538524232417883742733403760863616851203725499493097730003019838815397283998267093259336987143100479368760300265869023760640879470930797273911949656042556449286376590288672806255448908059093463926770533435113218724829103383707512585723544322874903609967323788049584041227903411654529579786079992925839506861238202533936850620486550766042424837760749504455755853351406182798265489035079463939254598205090798083244048699731546386359847298314458023131171957959281397630246747176903610958144401129508189742786694626189482798537998476513542803715113674778145768289674412193730935095217063933826900263076750224954716788187869353047614977196798006554606710021055746829979223792950165781262960258408142261316047625365123273719297105819115806255357217937687262676895534827978555598180729969054841132982411165607612573107387226539629382786377336551670650420946567011571935444399540299165539308313603982439556772356345633269080410689518517316091276636226655988657610924823462700356343032839374040587742186632688709724655223906114863740825835436689407221986752853297290853070798090434521236892946628873929304916621520140725465463874604581633439488833657211240370230090741928994057258787151006659573532538851016298546969712711484084900370814941503590875853053801307202439948911980028437887938679571187312227519327071685322072467303891039420962030528425210964571863645411074688186432094610302269358365882475596661794883154709232463071794058921487803551982572529440678301629945355518341525772553232567964564593781895351936503522653329024434522706309841016719829115090331262161819697188612489045640917449990119054740360811813914974137034509875491821606848149756810847650830770950989002143218993286832470935280384035692105723022814398264207705694764307866192628689108731874026455897089668448975151459586419517574034550363149711341631066086141704310608119646873394442728721055463475717242509543651996021570784121021773116895406987127415313241636068549051180542511663826640914029377351664445211994894875204477665631582007432664640014528592741675150793861817990286840121969167180891707350443067076320471211244953481925987551744130757030699205737695718759032938991371780319314820714291589970372031963409755560247233190084982112186101592644673848272662825607714584820497457102202728759981147217747149122320149978785586553427384062900928139593372715728382022402568180058456887819329280685785366307373038764735673247323560512630361595654850194200741426675167034455281235690823136796204568599735812456389854289297390802206072546435706632130845407948510878625239431031958673942634388478743974995381302692327001662890244694237358178865727111875386227209185824534148627766346317355277772297235625337992712065394033378141874009762813040998603423434478318028781456301512942993671242566439674249238121479739767486377762089136704307797172127961578551057750491556436419710749763143769532179470639275686079941792025778497186694237445037858900705290584404811269676987885171801434563129302207652878794247798155286056202380563514214716880542206726674570839395022076045244330894601206477257911541223309313830476040386038087602886082227627138576406454839841873926100900517819941377310328183652353669114528769236117399476470366652912477648816016839814343310039815458194556512539095547028989134919434783527112241790415739521037005797428197600853869985487909314045402528781518675213891353026433502706659025906026114413260468628522786892502271395657159659284854778858610304074578099567733781528183189103370568887985454662833112617701063924277314322012123977444093853158783994911501791974536062436112933276848350222948085248461491205273215913320881165932625710981638636612760155846766518095349631627381392115398882086647363610400435828004030988652799874579438900340534079912832536938472618103777845001129022596248962608690522493529956649815403569109430861410002797075801066859765133401984498765535858733903753258237474587214445028946792174191861830498541191309229145123190503839338809163173395190767880392680446259733465979938131514882737110887566384287837890218361058622528531466566989523197400209165403950435895093495477958727423642748335020714041678713037252996720175739763713204347495730287856391874445044263996323667456682384817648958743636078202319710030606573819675007499044152975260258460585817850605824252977998343494299188037374707284195048756472699632824293921017246411901112877590999141658181665191173440228686657571695091375147106581415471677112775607852969595168449089486410138677696193914937397542228935479428269305252363516157524864371551381440265045201016478489192917716395032013379975941856048227584799516244013100986334877566284038901902535145266548245230614098773568360763153471902448765421686006233880703129518286189773744758453692033893712541907432534243941411361805580528788276884377376919851747512420696817953400655006769475747208158939580568488042137292542490879843069124968965292253977678493423706915102192071973768528770213219570698858613063729337976789849467704837115095735488277480821722308210258774511265342650111912452703027108189542428735117027847825093611923008769408390887310305564321338411084334368431876299386394629671377778433764938659790648494332645680506863308867387000835966385167199646827719673618985592447305570482500682983942047729379196895560302256203420697483715958207415794789492219711866804348218328423938682283516021802124968835335861483424477240656012423787737608666286746541405584267409589197006320214205886273708351334589222104705807743914831688570376553267958218065338385891176211270432908816467832417565562783877843334888065225865498198268013707423820822910995343032728745577914705633081287951628162663719975212858204626370951314554117734568209412589863760488234526393532424572222597604473769448731669703694967101511263012673906346219740618614564351708826377000964816551806942806521094149556184906127279235927726791064082981439584495066304294445285974321586228993485092628988581195475065971919383784054051670143983555095129834882787384618729213677678024204919858461320573500733110358907011275392809870269352683551541236206636447519476986943140142936260190673677578311112830394126895128366119511565100455591903147689978267748127436554433422070245152465204128593276040380371015285474259152098942040719019240726594470673207879008339195352932298694339179449113785361547654850039141272022916581090690578596857424558281196542657833753386105844208618968540675765897371355988236566677668481823568370527300479871993384337855732443067820695532707184776762136703409217264513722805534912076510653328306061356269339268670511800497114881891622103433712054570077365025179816838826205436485425255179918088110512994793331434906101163167307794845287117397231786994798752957828636237059261627947055995777399338376637589115652049856934032924891246094020401557729735868172843882640074744217027263671608754770892176556755701139185793711175513783622247018705573508576784506944403176590751395197825516060704009308210529067035766433142823173407930386058703902038638695792524752332670989068519385394361185053146611286599734767751801135598209432313136567279876599064438169381074959147256996746893317235786497563107097967710111021849582575728771459258885125906019960172294684549563006591207408507884719857197144843558247989089939133406908678615498825089728164207423064186720781405974167739475365257987092382104980108722331681332827844920948504624163665234063220348755662636734460900843878255498919186207893925418941745345570665082012517242443692658001041006725484566252271528624045617605638458565536177293568112509338989854629525483487546003176482345498093382106954578811818970845078814565435340999660679306310661629019093772195261596011216904737422645182198742472426069692778778920675686287033443819464276851952725876782048940763428514247568015402181083750522423686976611545971515514519787938972733774073996041964942018984292020873310828638635863478611730100733805210260454519663984082777093816458066457908266239066892212885440525952737317337852917977322740857783146138816187962684195249547505272344951124733838712123867354886084612993671210966441435481873857599277093446465212446972735692904463537015687749182735753272431909130218885814443193980635117836659682393363886694799579844562899447552927397059800196699719716671220837202057776423981010649386080054695726900118291303000302694252122738677357059279150122728724328405854782096348057043939850498094796301322375828483438540736511308893872208750666130221218979960189933929973320181701185371692274457483138234637236557659213877245891188625191766469683287522916923368151767882022995010403066097341845131498485343581150422983683647239248757155579757011234884976187076729807314971883531638747849983375958184931570385696520741234813279879563517563661109792686832415115270565202203234049322039488217049639121712489849217257097288776484120855775633313098587225714318770687245675772599161527981799840223078428660133616908644951004700253394547729755409185881884300369793122419770676172199870501975053175871987363606706713087911642897501049095900534009370042175124821532437810841495904395231991122809550721724108361327989088256005828948798872326728389326053404961072271370247651149142363461842225575287406708379402902794857367757555098060993202473438686294597488278275377996274797447789781223518998105460399840335905378671262748596905138489296711400755911202718848080100215702504109839167644651004646267132812320228960252691744766643351672424115601780557615684874117412283543081028338466332477595798171044293157265135629200404887313969714491480739973452812167910250712535113646621542558995290219141605964131036956927684358594320218291187813495115472232986325060990936255598762195831520040844213721168463965954536597584863540154961757369885516835177172961872673578820694147438227109606840139473641575897762742948519539954926581614814850960171929487701503797410701502811583961362292673419983719294524749933740120937645964718377728506405642288926167506572297845116179348677982949697104767354759305958538907811226203954335491678810397439101188379737972666078110540994681556774957537712520461000869411592972272499866782439816603675837753816905990463821004877061452622557711781755482954137047521691382314872278662609726373569230834466784974023535861601254698485306417298614639963420555861673798016569009344499351621299234123144815575907996308923942482005599595407615979038940894028462105904845155430063174742418370640580937803921493023496578151186362745756784410022536120222980249082734090443153643792335150647049275955578554300394356459560904357651340537039773741577408475420498757009650714000214240829967262441267262998319725503469834295382941144286637158225985810637640738662186630806552684278117796678512181057696093176035481286149972187567923331299908928571950275469371199710093840643493310756638524673424304127199802907520000114187597133339098313002646967673554603224207640585773939131703029401759413008076139305473026453261551937085851346911867982148017277017765260277078555065651772300120055425124850892734141221345752165717348537577998143090506790177739460360143950454460676245657621753492040771756786191525759377228675775304942404523322868728439164270138106866263440135734328938908076283835853796138997409670200556085899715441002991027681328734073963645090850045488116399555616266093054389186224144359000959679265794411573193379234612180019607645527339161282290921284535054571114570432456957729371882326011795104940559698986457970307544910226216489399397643122986959332282204698728388345478355193972775341903852268987284142384065804217666173696889752245893772006341724231941832558470640108756210229174756061809575952676384580011142668622721155788391037059251537194162244976217098201153130993997432376953443506799597346143241003979700296836484520560391884501975520575052727308191485703645361696247009647284125706484720967385055119968420068732454519134953817147701894802792577110119172893886453219620566226402215176054716626933684839263179824959479280103626209667425124294291363054888490804197660716066281440499687471238520599162403338311875024049751180594594111239418336616231256286849156245081608932986106866072810919273230098521115555470842277201332156536767381721583785563760902677635401272290680469499572792196016036186447897038934687322749892359687614261611274500622926206734118262865594426136460245961484149567201364057691338425605054335349909703571581526040590175681537563664992860604984417691061817041445535378958147184780701780740118849481888668808622439023326035865493369324287770222375088221173181968412395043486171550329634498062097207613745204557111361867646793576865287618415534716928493668198942701130988801785362742766856903286367815033818232124854961868075971689356901502500840348694109366683308803827176912260496344455469737124673237381182029804944799468231123913604841199777326860575620508675418156831231385768534805013529583622839740559303641760409101815942895400368873650830667663054153262921229153623004786541152694145639607598641365288161039866955423823577078438673247372357094682936606888796247689729968346168202204346378242728000720637942116505877205167672358498380610544030607617079374253796457204573725088277558961935337556129880742333986030367284103940871288480596752852456219933722377829453340146694794393286849774801470753177604709012250935455838713799597541402864967226453841215493906757559034015243764241830133089001545097676539232564945346251114070655677905613876890263642105293483635072616321790015342613408013820025151117617050493499832591329119378042272627904121171133517501541561387503222440748795638549443389026384965821894172095970385699335861046851770379008529215465382837308606359584366903512131527654601529676357969865997023164579398764403794274102173976458805055856482536631723968818959136623631978029539782236976487328114721564132399056870803574998100783979501490296547952779319342379636408629832148328706180728232835502014780471819692095904926012845949261496610405831790844911278972002943546078100951391260959399267252456248944831295691153184809739245666100425440656704021685119056545632015216489134152979245583835720073487381904308214402732485084876074575573653641186675069556744705858452054313512327570856172620975722798963214023518795641457325778680146828000953912318324642937478202552952979641200116322531367730268536421950265290148618579307087331649947939761567197270781383590469185206691605431164491005641350729078505741490948420645859233232792832813222820254143404164852228749859715130915195019184304233796942592097831722298321644869902779612003426029853616323131675267031956219568865022744496667054549363397531105954056849632641739673789346365108856232302362341724037721665803352678574068075397241603259667891340877383306589793615974458107441569579499729077433536094419749454829620638273938110087252470307468781424634907745149522442268317865271647897601178431506643857993540667752308416848132100880124204335700080340768152521498739323199914361618221245498248772534787383120517153332131625146601614639506688080116220966644842867594025347881028531700046050728848866016224805274646441543513336579840165275695189867475131767105400967403361620294802207124528762399968224435979543414161259104044215149060301506250172878297553710239255663006456017889357792645458533692940460601484401453452042315377095273882686179251676365411824630956425853275697783324514964418603647957838806107666554734188738652218615384749825259370920926558973968364067336978628615098382065769602062085797568490515071527176091262679146898127998979879049609537795038427644803114692624173068453078411398569282989440853607529576935022929224734453861260419953427534521653268788813138921814747701904975733600870130175813824379725225593315534601743115696372051620162431249944740011718394607367890173956665408983607806124738846072640625987933203257854319156462299833744365308556171543648203482013359912171642770466874323494349206588470016320227241080258462605673801168706219074471989249737166670634602943019189901131455639458330404199921721300352103618267378998305452743892379108066347504933664959905913836056945640712932325075255891705015976500825080286076343861416062295218321906265462815896793442990336002837317476873429375879931802877447555973255973907042642816950149133779815312442577597211133406689595473508171461564739223440692323063522700819431667580314969475686541975771599919430552989393479476201695330492975365163537472420144856584627952803693681123097934582212609469047348578621434047777756083325130481500591308212101427229282132260375005591340464894388853086633756567697684626502718779518119981422946815474054307084852107582120966844048499414678451021992425878027639312260838987357640991757703072041979195177044382321137002233467243768930643373046976542251647179563350849586582940223115141154366488099022503251725292290529540679695093072491935932519235190157488192770655179807850028192235328911010477856698552814332971007294324360708790453041763204070420709547563006726172020357064069055689231315383611403839262958512254613620661295897485885807299280697573336973251044853821886015711935208024810270750785102006401308060755294632206404063947746847076046562029894894045963324396841192178714965801696859910249327912854621815947641029696327448991413867926872631541937299760227948982465690123598900639770952248144886721477779902002465100086871085284139674333824404774103313874231951257663668272901427949882958836416767381750969614245808282912159319336539354988779534598729094373149460321930754657644664514827352464821372500184317678042338012043545381557674850507460623929398194714613587725595026649485342283580656923794332454800824262537437989486141136781639069426837856322277014334173467527911503147760413326377056470797856477912042670987484430020174213105717824620130242700226014531144022011819780141126103434830694693105158570614329878895890430730474475021718360041646219577908360036344759911758793354941785475922243705587947594493120076506443357016552952538814874154595168420118859177503174522886091255024398425700260301936217703637919466524831837501686681642193850951022562730724377008980524882987712442258408937656183816603348138731286601321951193191512899723142041181716944055439979453159479365925762523366898539094195390429501847340018857605341410460235454089302802482966364476494287431176259402341420371338756484345684004568128219764006469666422399937843971679047297156746825455959126424666371089541069826409535324435355125034883960036294299276249868561999333894081650820773553183993452788540555626683388878081332474793777284793686732468957543930041277157615332784014382967897777437010006666682835693619845204726293505195288843621243248630176505924017282931606956481049281112404018484177212169090338652454425137228112849986683741822457584531572940150427751089490029642414350641040920451887404773386087727477263773700927335003197538127413973511472195609953521010777302379992527423654186938732000718307165861587602869243122296217522182510601031934499867647743298295456249525204975059386039043694629022901439833091111306035561591141953868956768108807622149890044072363938873003846540678389648202859867488350948107179837018187137975553672708792757869849084777545612626527101277003585334612894144318039595069244031647255860526419141329260378380099510820986170741417584235088202977587008748067768964647267893583313141861579856084841300607263056214025820156378438969330843679753134375094401060586796676003452938056379902304698648355872559046175049618851575977390675077130312175232065628231895831462249263358893198042325190930843453129018964946166891740429869294409957649414201513428649753134186550225525222954364839654693173429832732591020339379685567489527768916521799935357681211814117023632493004798248237514040356080425506731038077532330577645628365327355767835329223367485128890043600806871981591211884062374188628782212308699499568605845985242571586463003484469967180058666548722165630276436835377845764251840985727658464669452586823809323388398454550684138679134144111927949440225951706751458728448935578104603059277883417447633624074170370640416691900435431289267708111206301084320405698139451254212486123379906116245285450548170367579298460016103706243039870146762859250173533366077958624189876444116573010414824681680988657358850412774769287341619123626756299147789146577017490421296548421283145594254417753175492558954904180088680933730137925038846417962248289794690989625731064228131987451093982486440561727183255057556206658474437273650217716927216422278531043066416706824274020423067114588623690692003984297799084925645891923127463370579549405071464684379695507634507828919825387556107635766643464566549291464253465487740378255979787690435947905451541789458064030829931582472408872200479000263882705172141087652139938432031841276422212080596931397471051555381607112520468793850572165807692932786664139885488209855697123000277180466315419650947540084117605007030345626068240034887892946714060827562657318756622234780685890296390914270518032326116824315737934655579374931410457280863615450214244893139116982391591320312019954556813899716390153244265736316454374692306934131893397008519322373915460892119278425569186336617517172890085075325679141015558955588196828156760229023440273625353095114453517988905911991462401691116625089432073374778131485117375865699443513796606823373406799570487566158683291755561031009686166895495249933816413894768990925147043427006507005222585925498655675176038214890746751770002555332423781679496341264450696098051559427080022019878528974787691325752890236639647980289027129467669327042072153163056950674787213720741686221417134632069107492584169676599201158133418541347740594398961741262930256698821288899830044083028350333189065067605454919538428361012667496784363491261306907590152026947438411311221739715283497653857446510811869081012035056594309310417202460939013233317404923467300708123836087341616648303809359773264980335061701862290333903076815411040266026167519728663590699431658523550238457643099709107953653741678718100652107901775499662293863237802520412058768386379412584430429243569623363153872447776091309921613593882825214118922663155627730279236577729542134456319772379114388716932915975034194578690467924810061306398831892599007766489759586770021413580749918254956812227883571422054499457498713014190907619123444353107903491511994541433160854010364907741197944296123011110307371888411167517709511100814771053843979683786368333774682068116983758088890357413500872328620491306458613065793326608586852792817885110678785311665316170051774390769140671645829633582573395700166618477024830232341605596279344394214197955347268507862201483244690260143280086013439026210030302097467293606320961704878792973971577917411935734190885496185007582887927787804610949359508516259758543832507417826202238709166796561160331087781013870981620759194521253866582025702672726282599112902786892920615889305376470890369247668051853843535209380235277485451582956439080821618745168449407622227474688002683890099885965387853396289586923180170986446388299444542167061862925354022692165982213973000321031247598584733894092121693018670720561954016124756738817213653728372674000023093084618811033473424734879202385934328998870470602760782352936565429546316038499173449387077985349361955405536906834262373473982142168216920637846432834624375034869765055257798916859109978356972416453294174213802343449092526356275987544793260150527508113902161859452535453614423602091978287141093188177659503876205170623838418077671708802715350198483864621071362573315997096403188862530908646665299059365755548834051030740020898134764055193854865184637541520319291930023633378472507191484297840476000373310041371699436512777601742214596851825020476897788767964207616837904722920557702972128166621937666988713716780533552797500442398551378319530805468870504602372249302241872085050324293590225202853497718401832862284948500904832755433806366915565051812297904185909981151356195738684880327951534658870296433155103011962952011780562736867514573301224868226242917585375070398484469579659512983414829056836903902162589864091303563521836828241198467468056316877408583313526386033321479246095648892636081286457662520280445124246713974014596152211192819579307131064722513552540857124612539795306911092909893726708417987078335594943383439961428116349782456368370882559653203847676492867497968812223506744130235022847499093649823360195039579786114213066059844548948202976755994900800180307174689905169897583578950203250703330920577297771605286839634033434966484031694192554425793603577026344466030821397675157153685890039919752582346167436971305199037210887965036135799527485535818485217758074343391328778023900711068914695834696738916529831497649355542191106342418258176863364881092854067285506025623635290736609562069098083326615021681409454537835726490415565634732732742780666454394196952536235786794122125590380424727510287819269408606695795674965802036153267696688434674491370794477806674293500773408709217414713884417706158897093265237147669584204247911849116860184646813628971685875001155369556449707672990563054453254568743544776513559957176652316533587505116015188118121339317198472530901825696729820416111680595648684249904023140201216344956362474414827403989783186314242391386084902408996831305426933767892522220078719224786352057441378175961287577912995186116502731237742678258892473955283637541428124358637947018415471687456334373668349405862181830291498713216634216521807441819070230855498893905783141209765915505940037458639098765806529345260369300410925215864901073848586137807495731392728311711940863105231885703307411943210202576080035560692457130100691460792055193028426215242472209001274860271342985823084498119027315437973276820041363363246841962748860432161701881651153188714334493667707576901195601441469027689384600632669788702650162132730817103423941892704014039645625237077948366644830043811514797160033516552813547383887690902003923778167644473324660898586670155760897532626950966703723312220538483780155624788050264801255377510951700954304758308552641978660960798357396336359044318969732265289887034445253451889336636898862348562075265203348410086398205729619025505221911098817317325037512715029494140297211522530605532344581859157835592567710886838157075173159931142544699664115369357502158625623230782660303636896840095725683941273159605024437542601065925351605888319323963745661093525731015846674255880786439005923613897959384571424370781850685684053390455665115293589089751075208776749191739622483102037997829141766882830415307047765162386647627105896911656883944917600839509205343325760745410593124882466449796949904081867454324584007693056064927737226372026743647381063654023342053937968906734844380871529848128666122209029658353829181627135802249910260950736655327950852325800457441491124037285092736353818323639536758267399130763249756404135628033128136136955656472192504097454724859996551784461729516967959807745372424474026835458114047126939733229957139986576372531763209693640680602477527482289326946970418437863957076309970131380338769276808009448348038425221244980737499961076456022242405365093906578224792191916937467416625841526767138413710596153848130706919360945299172365220328901587048352117027728930673464975370069057692285193890967671274105763010143175065240901143668542202564669676415133831236472041778693375288520426488519962569989497142300491037934404180082194952541368702126341204794908316226728046882676069709707947019158019771330881382409322489752630064705582008913580867026597424635698680237922958987354501701653656181786644201201440094342160356385228981470927350482649961786362029118695249543589929574286794675007658690842426072333195073094601173254604812027947236338050466580959636358404759858287740453738750557182149949148644244274823826822007885734099476337651293331606117136637804323937417845366767394602464782198215079534270060885216805421591119969590287611434955472353708877912490336529949076890281589530022138837060798083782867421189176511580624888558486140523640217365114942574356649603758442582286159985497243146346895554092190881280263830801865908042319635180123444078715553569917163291854807399236755755595248655062052981767317702476686321076221559547207066389363843892286477233955910649129668039369248919165073758487384582191218064876430176638286159551512146812198079410563133485300427874018848778479349218216339294121923600203946427158533046390074915472327219424062171965755174664329261954666685884178415760087691259411475489716861108036807282178714236099760495302757542466232771902025928178282377531377372337411251325841356286698549182942076860362660132691229379339122743508344405209532779402815543909709112912168356313608456839001540801789423586780878384687693482548688281334005170486422128727372938627600611664536895976822887597077627859141533028247628703317351332610284870528001301320025722196750776561334287305420659952699522632649637075819260161499660829658190250654707118868485002485887083404905308786297597561245326113444849094483986716678394665724551769228192756977931405905682457638344424705509717499765743499568330784608078468813852171350785479619039374885753150516685613433613625560625092500596616857552762027703482221370723790845322274278356015992654016357473501084421694763284076978836240708974514284878096841196020702696120860103831470165170904621421948511855521109214188785114235124303487014575511965973094936120253432836762503890372039980198728288049168677850681196764007576475962899463223118241498381458444325118888420607531719384372625473362971965699349943076802909931206736792073628779318243626269726195717348855675461858700495278111844506619950924999311725569535089167288455574695989276193384084546613991981372987240799481061518199040425634725191619765794075658496479286372321546686492612983442090912186927472555531910730472469484097852152949873901896849082395490034787243308611915087888513206609075587342404242558190949577810183103678927186990843572189465968408259510756920234622875669854465692054304349504753989177036663015982715909099497082730434064331380139780415940974035131901045353997775870705342201224633413311293985785447166257051507635321790627054237588244182526200146403958323349747469469960044067266802743870674465939415591427380673156707497281609910828226289361761782317659207132389120641793877523613540970291990314862821398959214683666357816012418551022642081888845861922939673347021036816765294962164196713110985547219575193037387124202374564243480825355368239665109047586696287460676679349375094469456905139992016886737092629780704019627819039363068617970303041843038563324713544654525797950396121771543428760386203057253893710573181843671053244603778973972204393094111845898912084471805813130592420015107328864080059593083615956906873322537661340111752844449582729991994303998666952968480294417079406073525823288420679297338416179890782240197385995689735189566516877882646956420317497667972360518078640057606770138686366572682734056437255301828032947238030989105090483506465371379605218073983496711620917154313607731476989505969222038130852251406998554219033437510011699918633477983279637480839262434758518623705464003663461830692719478986503587793488381228959024086741906367655391359584122236462884230302054506437439764707727673275704438574589227472431804259457427983324076891929865135237046646131696868011311104155418647505855177783939863856356071014296361122578140191699828707931949024872141169279360126848506193940492029059633593375656212345634918731006912906359154859812473517725519938227361441152067256087546660501837520977935125603043467712863578771826344481536964774445293729715894397633717237126665420954059258104588640384500773633856165937787395659847869165577181556572940780202500572734389376438974715640020465028626572571197840691475895629729608129155846939482327517975538445455891289414070309588450963568475504937850713078633530355318857600950799619698852803951964219198341174976689600296094823056766752805180338863784697908266023036384448688001416070093655787779740856093241175589883365508265526746907603168655742255632875790132867470441892110203875982923034976260150174226076522599615349210057162184123263863324353955352069747193193126361455162169134029968845098480835334578864463117846869499881012269717422288056048810487162443722927035766849000659536194473833329849056889468232401704672922961548113301242557554137892176690711824613655896621729756196907471330366170895444572165480729618516962142637982574605252890140712159390083470174029844592834181529512831161476240324340354913564298979829329290033497687012029075725079454237292965564837747415496284175670778604582616414562359444623554825903546182666683961574382769364719148829817736236616552335191500862676166643505327503433969262685250360909056162992552360795454112972305099048071722252396812129124542836049665580571147780334018699342654188684445213869749344814766517160384822872034414372099854242179748357517657053080788098154848048761909526125245469594572482443216434368577440465607151051998963828825437682699067058557474559849119133421778299423354343352669951587206487085141222948356318622987757329578541657456481392565753733017150011881474090471471113682789916101396878822012493621213658948039858864449256943419289954129798641131190942559577687084977394424367174719408169500696461145687546022488037800548121961499140634405599628308590167356057931737841918102326185213275048984146201718023755954087490438207257575821237547390782895351855842212280506963065770834735437867823919600820802830697062637463042357561790318771419257384128604025333514981035948698257175377921799121095099065293855334517374554004236862324159626160373432181089280631038860997500259299837301021362192415511400450689820779926283508542619212430790527369835991095525440958651305261344234981141116821771054602412532046320186581454853091599658205655207780520666051639964967806797776430914924241140033742907206749615747557554557986914350711415279886996108089644934597256377901483902802639249043884655910382499710615554852930580574244519292642588320262497688413134848117577855179521154121268756643370276034960303550244298391639641718050131489731672742613307768794140641196577918073668957962981160430147691025430982343000819576284527335600061221164878667087408057724775730717186273540967970919127162406560711289812906421686956285904911410433760685810853026311314073720310032316034863646194954054584733298412902497670191852673656920783138074630352562704850091838658394182929989955779982362142779793922312831053070301158272581758075611589245207361482120488081352896908924422759823117202664125185192258258391806959104132628017051098906567627681542400668059150621186080697718062540388583580390025914474916779047037846544334865078605962449101124643173590120770448161594892422454554671323598160073787300137301151614133349127756932976116125420969993211924159675245665662503518139265475642963658763789747171078229310983677332245676363556402405790503859201616388177572471213980881958377159626398819006793944457882322752803582399528551038137064992522509265522995970181484493880324785189301351850683645080856607629568633893176142949644960158579168513397926673325507619160038492083493598087487409194094280465917965655700670573123213591938959266306163935189129157899268902178065763424382814125506247867734204319636545394857091474155013964817593785294555833705929336514931311868781166791718319144333637268467643763803412726666682046690350632840014112047345941230851342583366097300359035036819466198761932684491030031759968790507528077897584963266199559202879242463773504454936494250108754972402325812057604994089947743179375390438530941259414355161796486767394282983721976474867497192700417400128363740303375596343803340286669561388484300859982335776923208745005559542366524629410626805553377336861510245420157350474650831499067190261029358084667881751056055669091776310853715132913628646152175296407266107188159369014950533211184213583300559417690711102643691931139026266273056657115426441493298781376510750393027435444785961032933355953389744245049472855345473232739282814570498760419174196785877112221137844055493850603347232826441178331399763670926714247131957738202574632550046938595296208769109980750460022064672202148642418898061326000220556473367972097522007983356261036798413362238735460942679895329298310188217748057286762213072192491726303161327101949706695565509818757607960623929667459019623173394059784695553343598631137330491969831261439186987753711089257797673242430480560888596208083200830467826681675108949338174072697135598392533425640206762219329187617635221072552532871435087888500339797050755693762366495988602957574501129895380566021221840247684143336358902378686975596607764555324892211491985340234336289579103302293529121022993109602933467875818582761410467772107958728154480894310788074803612676064196183366397686190759188706536912851342365332316959400942261154414189877227589133156914975570543254975883931292472924831336078072186242594342967676757787455023121549939317172649690480713579208699460404644636617274726353699709042847104191982925259505949719134313325290662127062010944172905553637855003255331423240406541600127569094223446079997456589671669573236387281213732807089074628050542976982014197731064638752279629904465104800513688915397756501210530881816748075638690780526859280027928076711287367320222525367853628707713159182975867966253811929392771699246967486624877345099917371778779316683586288011156567748419773580495275066188119010195561343316944472117060987883615860819364660293800206468929658824563131486158220822113319728946473700683455665291997622404733817929156141724886702564550256687170322360603832150819440300726535377947102944063450313353492297051613013819417025869727871277661629181028489073720767455470225862115710103682476446155075390224084433645765173305981310295969355994723631783813819235898365816996056959676140005313625769889409638902605833359874753351970203647597259785577395267723061623363729286431027880129137068408540371621892973788295161546213279064633069705571121640473821872729231966303479094978676150869254759968097568511193779015651350794122409112271259908054542567267708705228389086381411206845332266953111367840895171788484175649330140610661923932625535559911043975103033174863552107212789504380869917773607877227260330265321205546027473052308809684070274208051985735311828270022948775773471984448671850751064962996977734375400048863428102000391709897841503063721940834442816215784448683219629711697647854723700388050124989000938607168920994112487652984224464943802925014662524409862596863025295272886830560796742064172713322688477809858899725564335635450597320116300940137160201451615782847215694266979340085127337190589209027333165025737307209643633129748472661032672853149620808490687281242323472208412269596881707215872578230887037312613034436420754589409893841598530315506272523366059286775827461962756906673920214673293234767640862914539236816776352934427123701135418973833739546962318082801708486859719047116009888514419834091932515627880153970983806223629260303624778537937973738357442847356479024906911359009607651339883736278585732944909525309021608931941412081356284179258257023771236801964742684170447150594359429243831299280687919787923513333133120844836680637947257867509563341710620718684650999595158759645931901806323520479847352698079261656179251303746214586180882428461241676262729794378230845093825541623127971632178247126123856688911942281887436386550074747227554399077634475435067987302569943684643260812919797303767708165664607739318794737168771076315012286340424531531784163813749372901463259497928200691178863797900564154934501237457907589041645389281597874305620166339470858981936621999421107798500502543637452615798104584514457746966869174888179876836058169702850006175946586066760661164612742347354118492176829496900801159098520223652495375609155496877510696527955931353663422186698322309531898475574765963860527493260947227565107050081669166575370523781577522375933580502389813568776363739263019213157634481684097802691259197890684781765821645074410860139159721892489107722446327974850357639506204722649613394199644142839034677288854095068669611766812513737366662075631839537000914363167142757955618599744606520510883866932004746048556875031073921613950541235319437046093250430679374242862060013364811416260348037850330247893117565664792713804166976260117621037639392906546186220167367453772897547421895910460282227366416481860826911623056366171231017226835332699951994020813882577853239167539262408604430059912859290896282051415499362950968053115869948673561466216746313575659644028369531612423052648782271382104541748356195930127182186033038264436385778590658719563156158652978002517946173385335662668337443619603808895016405755476863299786487238235924738883566550136076748407352727347066048144037732813537756395670982096084112060829518578228175129978042431316851390978312848107995498699655142092512645157963671749725921730753242940655685694746097107746343365299439130993782694819958230753293456989942386564814023859553922499288449916008432666384000325956525255682840756518686463911876590065964855973483954858074980539093019998121998662695187207371614985398049183922017491467393143154775675450895571210831930931035410616347431074165388640223592928904341062983128128047188401544802720922864676166282251852379553896976536561361263195591198321532767024975892478512154444307422804111371840434546804800665238631349214079074960594887044378708842818826357305780444859125625116985612047621926516809951000542379959240811712584335440863138621657849376087340629160388851584336055875600918606281628030074734902708441255713387990785727847013536404885320297990597266233307480495732369806830846033537428937591772790771309736904467383302300707000561235521135194358198384232766015778705921073193953463326515042781656820010971215801259636823514040364512452745525892281426277317074760088776592268833394396621892913605839124763833403158426389922820603272364949001539048691872921488100650707538324749687585570989601736519055895302395619957311565265073275616655342327340987699555610086390738467948512037712917423243759731515034566458830905446966416036470628435822852015457932192873358603927033044520586531553419662889413789219672707602742416827047417761425659440155236484454771246156420635217846368733094091931439321780203454623991689287097852252478861818826290754942911053335568927659292000055276284251839900884763145350184739467273487348045563598763685523250137946772247533035443338967953832880614882217317580253320887955182471191307470057161723753947039453502197841275502114019392734278179447987151548914289695503572525033771394723852360139877620434312340209345660465023833104479698655386170453572483454831597192357219615115206895632169597745919720053860836101181655949684866397558933019307159204103778066928092066164136482216318737252168939500563734035731445072760267599594817602798399651229793448389179827280781661962317817013649422964157536725308074300732149579953325522941766114416057373488552101714217143031764454774118255706270209082540925623017462333884638473469022818053567344779146415243124858853181797477114877535164985410905322163530502896826734333787389830786315513755282475642905941608879447910033842501609272810779202928846447539839346537583825976442422463088546451135385762825802981544686993728433632772177215632894777882815730037413068107828654796741381408840149564840971473928719058490501540688421785440121106613148432994353928882187552324743596354758182126845349766527063395527435553288171532906161025044821623458814654730496185491833431311588767688741075448817183326064273363009581162148222744440008214798654729413751746000578460188141259608073745101317516895810493668191773998365790456368594313780952514172435536708484403798260254854449665620346716104507329703174197873154871889925524073900195630410488809870253236431452411251296352273021927384593390140991609511166053808373955006782254911961484073987015256733094337015248687925547748193040913413479179181705852558744760537402520832900831068302423690197248970884786821484432680692207749020578286276357631911770800668977973673218013112809827789957491293566226560679512889386514991096378014822423804738475269070406789413476047019258902295154398524258695092490413194677032754780783000321123342665782817164945936342641437935740502857233158847460366103057797563800050047656244440228512383900306246140418003970018127838490845829321517964775834403994578562260420183477140092659983375052885802902762753484773113356184549428599961553197397603871040068638327709059594819767442851617786603354109517060638555357925546901173560366441769294673206761680459140774576294669610762086495433818086390085472932965017973344146402980862154936924919552974118741502970354716017623797176927764236326571609276855859656995933731332473024224116117111062982555837126745782998245710296440858577349004252584005276935497240033939900839136989586000983218736707236800790524856312617766862461940321609077748638446131273753068138700303472272263059625499044403419485758540835040533026906877119704317424298441180678362797704826700719311749978993244914509365993758518868958674158888613209114841906851797148714565511215737492704222959343699985546275075120129152161141434686304806973774060562355420021347912178505308602214513593954853512428320578531932360159723538501416875510972439167921066482174196253107607974091650299057513936035091157669326331021866568799287970891388639342296155411209903448763386479450006425545569451754571794200139645809398516190936270380639950533128878851515043169011714638166755332641986533771173535666907734669562336817785542255246719417274845918842567104566839413518262787765959502161594831083858278212378898264069375347591394074950760715077397247356637364509880932554734879462189467935436812560508651453464269944427665856897648850966207169393032998111556999419210702916969085102365016476728608067684928394152815139337052739400868994187427472628518234214716207133798873618294492065235653696473101588431629226864493330402313676095480475487265499041871667757640510421786495083616034754724074199777058411545462009311754345263988106072711985406979257023929359490784630272987035086252415183847612739588769594663460372090184964487195939718763779889928429731629841233846236901010347266466265331245817804870999216794207792160695825015659217914232464070276699430223722965262978472538545506476608720993138691759258361286980527911785110186096029250154773035738097660221247049167447868384946034587616738999518365140016368340080161560956135297554707565054033706914941707099118349949915188660838770582425340321895453847281007913637862389178876519985127989029242751730222372541861790571096301201762271693415111829600219090564535755475532339999971034038766671430094379075525658862016452548181463193055223361231469130606072938225021449715254520172942458978800856254217283269890041899641127081128564751748407305365458693727849855442826483369971875737895143645562228805627966692300797645833472104309250556101758962398802037372019357782335031784205319236260708119729935192785323942581556044993981182682979952247516337680027794644605305027491056841245652533883976730400428604271051640826365382422061954977085316815607992488703379771759066471194046794155140170853819735253028482027957708591931212820402309272173457590131915600670362066200191999256629675265562380933439008965179258013655729326519917462618455532028688041699120340507114053174965571398297270229480875783853990934537560872322910121879739259312902175716439975850014108105159030940986597871026587125309501662482681367615328061579601128142136436065455667967712454864041501394516257424886900856278394860245252623170713173401574198372678539076322726667874994220429937714944181178743201172488304808757352551060555730836282291395934753981584796238065813122431008855615069871176125529556753286063222904671442099925812913514352317451105049517286695590305937928923047550578411447368738672461336815700388950931491561683120061979727838812052337852648566889017494179816957341182673180636471904208840255365822641495557392664076063683761739939155051686318088357453860336780373263948573588133689716978819308379249946427496677182697688239884778713116458334103865231756313555559733018190379401117929558762970474754809397026362471603174158753436532062341900463575851169199058856999798535440943814022599766376571228640690267022787320776380323264940111829009474185442970939432310007040304853825126824036235490446811429418641024163455796723702444839600978233769285688628496177866797055877048031757825676673320085724853603975111679158268909035866823771940884315818759649618725223813409332791973624455434413402851669858045533015638557153256968996098609851307037645311864402759710743614590999113121535743263556008774272115031745466736835499893695022242774218169968818552186793184032740929930990516947869601710507948958134718089553398302604706716784652086111352030110193127181162961015647515787547702880276701388495006567057426672078087528436741483140080892893085919407277545646909267141066576785482298597416967212081085418702109972859697629486625943948589160559828112192847128846315307092191644599317808749465161111553576756671666027000564123315846304981974641295991070597380928772618356495039766712167909667513251195704661053285538664191472639886119674235572858086254495397227268435741536336563476193077910320634131230680006854869779049990431165055945477059174815513770175124913179137812938562473608232975989777170921874524320927755114809863530019839829913853118762777924173911764407487342889987974380610102225954580515369829656109442066705815264776219140003635175379084141056786778157605625960449598669520966708183898449089288633911722473967752914419615553184330803872003537101375325425806188578000387282797520332892484852157976557078965876997959929512611547155495436654388697742590003798460801802836676853774980859348070245585578868491795043036494190824223268570572463988885721594714916928740129760514590322502237945778621839512234366486145244236217618640133580216449932350637226130505019313977325887782893425237293129848248667574714535953306071524338250861968078382498408419609692642650409120901915846936883523112496925851183879948496207237854895495666189462223053782022562411198699689554404854539533194065049794509507222416085495074129336383773225619000965744563392391106551820480383101359819124758176046175876366518614198843171101076375754095368437833829464782453897380195986808535274678441380601000083770622677259805952406717382179835109369183144904183372334959791343389717272072101036383506273441840545225838669735295622870717644015158749902658047382697767184082959172119323812112097779000110925617940672374786233841921990926911440080728323594446528485303207436996098348805014661975622533773909363337921423666315832830245345267381900798958663309222135114933993300734709441896337894008913275588775045783994460708963038003265392229378944290736826587411890492993983376962130021755200869414757849917007815314102631220395682392527104908731147486850890635251070592165383298837084534155578435040024271636225622277277995841334234733247848211610788483729368005394063550158865728044740908087288693807371061960354162121320033623779110599334176535447879559443133833329790723360989986013534133180526571368190355814426700687044621814575015621289880246405237715446083990502637506418185253354250207824002031587667642511351012173814174031364146534053453710909226053337561540941038590460113202133689876900844922916661094320465943956384010759406739434385317184383977577137072100309852683895170097476065170556649710815912558599414723585897865268641333319582000291012388362984511608609662191139794706755233664316012112377518455625065039000809139094655135087763640447123005201069327734648306170604988333416896786535863346903646719888249928583528149434667528851791119777745042662770020921952079998011233642871509775428114163701829667142046559619755405573419594846422057386300596116492276314443229267604670934874604632137023340832097967297168634846602533877364285316601631033072459796686838207980688565325582462635531782111650495682136420095577749687942432706249199664792736488071038409582513454636948220897965770914510024918858422566644079975178014998381447268493153834207915609335527322352986515052545331826483581377730786977010859229669169408168571870905856077619795416115929028451002530445575798797552820764908631580548936628344663281134463406266368154572323987608169484065289682520086453733228908029416847803753523334007931599489045684193190798465770219655021988519317490535805397588870438460421437667866816105258797213099825873171404323464082210409899215475323102469799713089545818257382294707661262064375732574370855445247668513242845844027018175532802445075976939934624592490914227779791691596162068075167118220871740983727467370152872410407596371830380354847199937889636379562293713557037314682488925410246758613785100605670020356674826445818341938208800041798429067067922738077851917470502326487274131444896782245784562435158807942205755698695465988640489335941514393494463744827141758246136399583645928860247664120179562062219239155536991885860769775193810030644919026584740553593395184751404168531044767136570753455704753070151644949557263356152829437306021274734025145891217931402326068649725241463727729481489005293674446821275509150296047464674758620129222583458008153728209682680503784916499362606981957880171667117757087090394950129507619028525384879879670330074750914296971904795570723701437358593051442238778322349130590002485619962375537020174862504307763831178170439902661710864122952602350393546758056669803929875181951878401356481497377716006470209478014919122646988441438304764724906387636140618840011122049100453731271379487469342752190718868884235088444527799260297651923196480139306492975609517203594576995953342300595545599725345377688218166913925811595176255708278804252815511772470173804700248119929832388599863891048365142339504151925674879887058762675869139673721785737038888919030609048756914833587067827149471999267650788724661993857442987577819724851922779655998531935532558186409537171554065599918207669784743424683183958472976586404421014150676899500376933328766170340265858841107324515642598351791588869763099611683539310385950118124791456286273812486626953729924076592484030603074866700679953412200197643640293173899326370515558304112972568931001495663587002812625607595118152003803118228881625814242398478108626376891071238196803578731699563039937143697864296558183338786712269000851766072846689660737158131829110155154439648147673988814512733023854595768093482742728580888948078983479345035988857831334751523378855213444269151896029377826109268188846221392445533386374671814543504931761428275271611188837550935117170898729141131140933663257103233064619847487676472199323412818827572386431722029863332314873964182049635801328092750351833923231867108412191100158920525361957714278387020165767976422626648893596981927789255848826775482973675929041214276603126752835745445048967177582619757789437141887309571319995862450312645287800554787135268336794504319985625054116647365678471284911389040246504282763549351828277030700968547177822074137634407291377835656816903437759565128106499619308619488707098361778885642476202574364671830046331490999442332642109232572600468061245491224252623418864071837096040036027476466997481776066801309987859848007848832897316068507467173766564389612517119355459368211275398814662043344359889640824921323832968996408002216407760075294609484356112425214171532165412952565365047786022158145589443684768512256393969055521175726932786702876727944992716469276087605332835437516296767472540381997736534004702601272620655659987105674393703939047111405168473780951726403016391756408932279106671956535576106131063959540143598392407077482502633868264057303035394714610068066184399188587784703488147096943265845430138334819785085484299538692985393385479854189029726627234585636772663750750083806982043365064793792635567560878282681798950050956885107904545297670377825140394533225015688562575290144807942318214397177341548183802946874296701350284635214532372089431121781571064493694476723379259971440722456580814593203342033948444633166906855351076902384009652663478037735529083911628125166772101866850988653771931027097740284087938730620507254188466421532687278037287082776738434923396802962607875305522583346930168530124256448868789729310647365808733492543180154618740230315630411979995482535368396791598091811600451897963353544521682734595838461882540245029521880965284848442358395681237277459393530067365115543755649310982544803360559220503654123516786245959774512543517993265949854658619307348265008915718054953503021413320698432122505232038539859288941120334239922853974881517045324757364050388805479301690753221859935733352985639371796112072229344279121704684689430220905330231314033431315170898869205320972069866494969709634964986808660681084573552819360665509660096501565719068569833804074117709971950502232276478926646427024704622029781989434106581442693120748130187901159707041078426818779281911850936093290279720332393787359537473956276136982405791163417574263556464782904790582688233153495704965011109861283796476240558532994743522280091230548865516764378799625047302387593398870354749472362540355334815048116970929184010546518050035764584530518816370666565955664773198916473910554153851224624845985221645329563588252858577899442145295008775241741816389564533159114300645315453700405493534417127863434897723742631871585863783372366606420732590824950696832115046664007282218123071589652389332616840809524483884186564643664276662483355807117678770298948788224943911754047653388692579547712169634638207362728449767574389182553488263430260655715373323282374699754796389284030694190087954740184939456575627373940487105404275555662764608122268469112161428798810226090501609576053404298646583667741292050563402147551500348805145418510436068955777344824189728876143128130127918260000220326956235504079540491022420072564851309155580661556386754832354189166204756874110778904404238478779316222161991606893161742233747110200839301008524469336219842302661610211737046908512411588514466535059176324975649126903534916555852511542815427088256015940344137613217628886527290626202746834465326727248337984679301156221325263624798144628115899730774832965268062944071040498565252014030135532286381377336524368760403024555055339390478997275847196347690672671569153446459113127697296483775461520279243790020317358459683511766599538721473905189168888279521593069981038484208474273638965567200391726924244875988607610362704163461918413039112112847905165357773963764305863712074744636120905597823768772434339857553420892005662335105403897162378526857655627855132768183895180363085403592872709597503595467764655862379080247782041628488616519151786019847397760927641497747423687756978315177289756497085875238317967371404052513465040152253808925218937234819727666091327365533037565244698870178584171033796387287258933540072793598540506650674335175183718926995160892689492090890145606617564981688399855545615584911537507559612227183215292903174603292646661455149359209097769489817588659356074989988766721430734373051938018457022398275548363689822827702129139136488944046652950743571624459163390350632686394419888761619389022005944025955976173608830868553426156615818477405487839749996174072131159172501120481184124873784909103743725157342879215231166787608113496557594444819999649346044630180675590353393622483233749073836757613604577212527155858072593833372952996443292521561875260965760728699631338442793671050355669279294128931849580024304707497041232427221055373757893185188616866403523102941149197194712150632136389388572158154477887395408496693595795791645374611420497532917212100305620342851560742182874166206207500782206382746525735365298445331973550530070334348442811694381630089324514316325859435157171053770525752358344306625713842736332615731650242377745972775894002024172391800120981457696185302888028081741029946571691816980356955925680034642125205757469642359795850886873003500457972567781396959641015278102607387311958281502367476280279604914051487140931523483484599685310347709017406390621468852047983945792837359179939026205960165758677548259203368693044766705970021540844184181351970205707807462926979445563520395736113869612725198752135112406963300393758837160697519424855202773146522084048734927246634003932205587428105632443386518764024248510781458414488410559901163663520146522132283330979754551103093733456184502759133391223935844887400124429377332428277387576562669888761891277278986663057306238009940509642790600437931952545154244854344374488448391561268685844385709516064856208095437269434748510602032538808829400018326907659736152557381749269667678606829250261157821292368532287727745317796154486100475482234150088015359200501057507843649149984510636898858609556637928061506820494381608862943689371202147902618277892080712943365637360380514621609407550014896929440345111002976768137690535339125224637330332782881039291179102402286048231871684680186186068210487126915458855989358296344028727748872289001860554093233305337164931181285699153847983867629902481974106161360726811878330893199407645603158788646476968994748267305055273431940519854680721143343694559691605219846588500986553795984562004916656779481090057144076352397241578416604171184642521965771289007803496603940673101507052792266780317859443660381201524615813850159603522815519245528284037077615031969594124150619378215772046224396501902479355905964258016850817733709421621373629362936499436150156180089935460230709894955763405367931274840612909390930490058323879701405674663825559071383438579638312307211785107089909188778689739496051565544011878629069568066893375410782759204314703748652015630794478696400393507305154728880360751212281295892596702141437113301507296948390071351251872124742541760060044739767907337963736401585881339685086483447184584740602610694058982500474491127245454873298873177945657222133509938011722172640936492097069467449144786959596447657473548918380913896959164538671500303092383015334437985146966947997813260695417814546517515005658196066738407362731095413149629858437373749801996436690218758883318264884172946677001484155354137002502657751922116681144195896823337181987437899959153321088566253553459028023157654675507647779698799361489866987906830337805521434230263567638210377338555853705494135697402073030441337161873332181074084002661591527371652549580176963862622112457468284731025052517606271940243405048811968977458400111574951218502173707393530659505104602731974502284373749625192201315445120807355797073242920291207009070955503206977834063924531366377432666747531272717663767357486845964937483603389382851313113921088838544198359076762537210323225687755097961166455115162802709061857601184228720686861131075231450923665599348931778946026919051000983419757185517598239028086880089316189499092546798865955140746269482205500770710950971554994752549118497646476607849215499553791939254557496804709534731845725682421097381248655447091995336612110483737697749137885232372081534696027377948656931321681929033342773311644776993536622050198039854278456977354976718870249664600952227868184023493534169350209815243830557690471569521248897368510265435774168942048255281017854380755213711435417025428733870645189715461097779705393803047029744884243378813501205236969960083339237443343698105628668094643286830816777488254588756178904349629762336486539839807616902382308359462374550217686905149329478192950706242604602503463849486888908890219818889800245843460013614362427951737874473772611316964213259124986216707777528168115899531268807111063546411910677020339794806617324724053127516336377281036287560402779734992063621993406937895035792374977092921226921583095769389876503544769214220473523445798797731516573147467059265789730351040447169859899237778363406996449692679317764135408994621345099050434267463820960661432070981327971714472897382757390581926951539012762583975126125913225603994820152875488475902755342763150275283071301848704070152330145434467652719779727358370421527904057091776904786476231003163521088404757855911115115570691197531511068465129619930693262394394853328918779987538021715911005614036560186942388163836477205747126771200358270885839567250450580879220948933834809736128203156142410025290189837525385342755894365248654617050422681077381982475595462827806489638971986375496311285882787647276052732139708774975342802080756831573986439261768902827616382204586460923166451218309095583246275938715499906404080646418350169523254719808760087560278997596039329916733831578738789606874318988075412792397773274015115302420196030350742447262180819829825418686832982278936796075080494041440016619416371454627432511567122194129176583222918000686820002316401131240770939270276255440621639822146898218416197623791332803674831000831331050157400345275831049454971934505946615393501186669369111475850374357358243646913874248268125522117170882383746178856323821768268015871813144678260656938919743578764606849845769850250361345734349067054541976147632601063476769852041197094362585296163369409203540377273272931855394491099985270782049814968139894345380453453021551042399232845979118872434580078997441442062763912338839283958293972170324702954815827162833110485606005789631822798411181791073963097961065947137053239072130782906486929999196146833928966895788700219877124839809784256082262621627339340014166580440853006577676827868387994633174331185631097381685986378341790619462752371527628641013782874991500631514016597100832113306567673271387675779985388679284984169726494397810985452048203831592731040249507132409790436486365619170732870235514710187700498784172443442936277914775107677558342063981561801695857566773592237892453039861083067683934355106794325872222203880765500794417528288776349006929221189377034300402714765067162648026075997670179912035128803831736797042480836855982371433044050368745740008414834903862129838111640170150798137030592338885398417603984850810895690197809948952165310611814778636576303234644550570730151497615975935971775153999371100174297667207689818495481840225609954875677856685343750988472020322797027205768402372731595451659190498709286921764525415176205093559736935903960367768517005190529242744896509751836508034889934802083996345094321164164479999909368186506383377759410861549627543634148683034349862671982458434777362228377281343665686040586792021809720888281786724610291569437196904714189332496858320505626882468133901871305340950133231659903765820867001292255689626116712703364320240686695732515429613116377012901803380758059568504974773653625743937690959433802303931400735494841795628151365404720059006859755452955458121334588033620751789709646850799350175862455356642396622599983125568327056741653756211116414560286414667134928194314828804155173123196781254791138915321245020259811355309030697416156903735100206921360980486668542125372894490254011983545492150551224324697462276397391785810189771415246638350861413260229762884101890885299612254126166162646219561311254088337469637699361883269854950304554439657393105399583727817870526597040374578867492181917774291915956235317966279936683849567104397601182004733682252343216850809670659718125932697808218776510853038568487353748101218742450472224397595871137911680960789517307795890537913208580346767405684218526046750401011114731372246940217474003271307121166604157105431224587242686933816648281410302207722381352765829074911503788566943509232017641820642382461902462265069982162991288756114000860642247168589216039771517473057111478824864026071427468402473338030169452240174983041538134513754205212752585809592893489751421573619989779210235735123959858039354730293604747949449650480340668182998106973791812250425812191725403682443029087871103234500760314343412937964478211904593964935253475976980670690061086494112146930111299191827441482331513786932900596886918141473231990354820877078784947632056620764646791883729332739517751889075846351962789098891795875215689283339999566287197114640469406726708642522060014587658809186897754983376358512785461627893303208586203455893128702650679056560833313867376201100797890689929335037674932598327041754120036828957040165192630479332160995063231453338396682723488238012551855302774840693900033205907230619063605289885449743104361062168084062184276615516075499908090748061498444758316385409487985507131755748510647450324565428251374425459811807596137972307650130802052457816790213172975750941542783201372623312290806615489049221727853294527014644900423786057057950652045476924727559920819856673824000179130806752397453243189821366249978203491248342483353684410649575400187106942743406800659868949588928719600999780438370342538991733068576018860496011527615778606917341468744312176999299567973394614211712268491670639881513860381793463655429568326097404603491063401601923867423707807361543109809018098747948138833779408414927456255665885889088251254150969253281193845373960248386488297799940855463765898715429156701920358292516991700781147621802686554099353471427876165144480511839684446775909248607603851577160227284556221118030922812933949280609873023531154662646186853894260706589340079346668691341883360242054489236208916813348061284278297405708875014861010665104989721201400929573201899215375516238138766128440119319860396208209287178873192336569492749470221261345426728365258353589136776690076543427737465147825179954202020662078078411472667994688061698727777008378344995635189083193838576742862719296773130643443745790395809225074930923936478205434649814582155392852152768850079518215552103101878871136996713994262626479529058348650458495571933500513451196546156423516643010663858588918905253364499570746669056009340092613300633431282675108425632168333425615077760493274116423990648898355405711388611854371124155965568512971836535789102811696234660865329900971350441410425324275210544381312281023715914731363191722118477330813157262701545648219901215483666596424798589188331341719500607868301502386436334961581773373417229036471138365090498713537936188446313627543372995227388893667696307324911956389090240194229070101988565380698972742363106703053342733631959102687987067417999146239981834441216189199280644164724282237794093839326954196976858908270037525827689401627650403427163375718696908801494881238218604197635361487226376732196584583010758830655095008190033321994973449777443187160899593024484453303514772880434117924433887733680610667132420448936885299980159127761125912933201166448767978468318065211424738014068683439046471803360514355054601297086249657901343651565801458082398623806414389988141849107951967112950346205717712704352743515476190672796820509885906484115108739223023373850558443295204742376576509355335086197615538578120298142151495127119282884988841956704214063169333154669235728593663191299629082508007487520665294923423838837499455166875090404034132533236287976147273651952263152008711419580667286337557795949708624410948312697842822491233570601813685557101493025264294249488332803313074626930530094242460486229371051105676798084826883563779123059919918533768532308314317281011850736787372480980633073544931281456174485562345546833571091512844250217233034763295671999433361179543027211269028052834409321635144531317060145420877075205679021968864414995568094594938070746880312775547355346777964109062665184291231158167930193000218624001106360590904508654910278671217207640943069393386145538721533110725592091057002501814436501702821329501234836921678322136060040058131915706613666306715298599804821573550264297960377046438425990722913943973467666069123527225769163301097711545670180205378777265267244306976608891176784943442534234957718662945144876483265321313344887979798359744577480352633530068793360921288647143146871206309335857288737025352857025371065861753772153438897273263591767371955540311936524143207352721889185981468822980846421810261189849608524693602684380459983625751312218099062343887322914756624630654302155877379235159916680935445612249946774096238339199233467701798048696986877975792761268219769457021426643212635623926038632729913167966112902002470545199976687261014090717219996997394260280231372798355225106449939620921808028050456231516851339703560036185113094591686860514259839902612008459565206853663555850285728389295392433978542018001387242516455680315555526318313087226810605371873578710194220224532821950680332031653556983395758149637378770583916450804893069561649046744009181347321317727863660244214667294631784766128303082757798147275373655402118704650526404381105322984562673948980641046124956592313685112665386627689996977640885181926762035991184478374729137409877671544593949355338209350232111940367308147339552538279035707770686366164172020046880400250277428719571409195841611575667284024993547903714365370555732466782745113709180644617850953482905340044335945253962759767705788311189762434096287205274203458830294305194424031783314769135700751503879235496224372838221890605030273003658254944884820085270280136755914382642087831399034054113656295875847768412790012352438930957710323849355595823370231191491219421256490407664207097095635373259202016967377085100523736900997463272442639344574208751889494850895742275529794595588754951142716937288686501135679149595721877202629722079978428441449093775405530816963117103476383141413794414494317341367898172743789762916397511949210655191452527198243062315504179486333988065715622098051974876418645595605334005637504480995157751125224449411130243053049029987876469597282099155992481302187901243415266324749731923562094275792902159056731907131551200307690441451349866886143793705193110447746502635143885519220638338043692682518206743634110595684695925468763882999600851894887401573993627406164909327192822126040770757796424628608794121013165032805520664120766207051288285686960762773927550454648329224760446150851427046569882348316225428251604771403473724015433040394903339675189037196622598733081951177894568504512054957571535048195180739341628297898625562626064196802684684183128036912276753152446111575742161648107066613274997265688631368988680625490513036337783776794473037715200769705029315605389158112757206714779712872908107712643685262369046802250166315984719275283485490663162386324002827879654522967035669129166361621431671556031683545982823672679393230922707108508868024885518590915650311224750304017113261516167270934366616500409010154054492349916860890680187030792531022595697923768780456369753783734951923460288441737204744585437176185612441965596829716823547044011405370274430890467734887797186138291181168715008571979256481174384581466318735209511088899256737182085703102503293027356174118000195615770537251321966331546682720420962147306346649581856711826642448889602611679417364852354949633265407960845434846133986609526083042589591878533799856564591933966071598267705386668043556794637083635992923396276233010124463156014125913279301786066668518824667300435116376682251108692323010244067536860411891469676802446674160102914586133642084833947401468345858929130713627030554118855947043187912541477571929143857090952396391287787119382337489499869395941375786238732227285756551326177950799890967636759509093837746742967140510846658586080483630233432324174152281096682881029930486837275835991179065072632790099732392579115881435244941659407135605425348889469088205366642242015324771563310408098665348567957955815392752612711168402927347131665470628552921313256139858042559240399199544389552951659846997150499622444655114080445067707514544529871220328282671795157501666499773224293787792189630839182241323837237992733157291355957213486718575523239353272369647754518279435834046719040661870048414949529963395702835435096738163984410915507249532511399839666931675600269505120357701313144618861907684069756599645947829490886150784267684845796874351449564377042564394339753444620749744444500532691266072859589392007866455631592680818708671344900006945209858461568174412345126387272616652596642606847820349182606325686814015424768014506951947334592330765653582558646923092584414681407294081210991711983681454273074038837679923758705287405461733884631423175910582446367307061964632743030382129598535392577528189265260294142637545327070935526401705981561128401085145430290066349706937513423638726526982744815559065566867794361150760356253869778817515048009963636326376823897461191595665994380781402800617914767300495457605437659576097372190434021748075694999805198551719859759401432545730900651310714017832138484363225580593310715383412841474765658338701335437981700525455288546819981484120518593165999249505048993046179939819044941415131788277451582695049774214123425496225003578774029450795684711176362714478535601240542193736920010157458115744361767386674442224298733429469852782360236272955089345287766198530845239986490614753387339662637821857030707044041655208480955844550721700457639520121188075662468752849078639000902295416792405920142675418523348313866826654369678758614430542745086204401649309835271594923485930123125929686660627313878687651714291541020511898033084260945007140895440809006387176588516529759145964609257290910350898801453314397034452807582015268434120255074736774755388885023777373135202652478316327721897542675682713622303593197640157012306618028557872340715238793521440927401491978787318709779635762706321195557275676228020551469295787940692848128576843191315178266581711284389929669601450276677414771512354760660684640858209386815692888947108643320194280424187833631543007573146885494561749707643480396530963583187758823182695808320743871372846802235305510225366614107494456502184948372570127010794334664198999053011353881900461383743836377663871856388968514141947282084276211148401100468776264592232893436528166054687202936340317567000425703369654476475036320864108392535773489732210044236666097862904819536114634280523668983818798117240136796740223181794666011262960272583025317822595372282082370548487584484619914934834232417336530319595746392946269587259714312848713211085251305719422024974352927786189668177271126452276564452467661872804205376237499201670695725032087695305238320121550260790491067466412546986078988909664849460515138023849513962821972142965529745927344141823812122822142614378251239160297487991552957977794168152280755480325426120338017093746686397367624148765141300295376661177811772794332636878029508064897414782422812335184329357108973688415348259996318154385490556125279421706011151901463555578860341880903515718338343505844875297540612317094439784968414798228490139906291321517881421627486935934405855768798236750280314161356404299891115426701236822675933808178647394566307001366696055541147350524154543395794409632547157272146610423183254799318509958636037422157100306118432240296774762051349057336653200483981748508740905441482859665348428845312564164493425449806629292903109514758074080101639729256445595999565043529263079960799818527138276949078202450132624397498753137509381409657414885924286405584004166907141241529596043121841314726848813472138469784549949015754849468736038259267903413122054759412695623870730490292440488459830074989190833713487216002833983996541840099253689586029841039073271962659864413930896536241357508152918918756818897683958746426891569768041936303817708361413326590995967724749756434932233223630369575329676572260618868066795547496990269296023035822916058955594465507378225493750313038794479321475231081395871075593468924749866744380481365381099752036771944698153227160959529148346171897287689258917958637197486504454624962888274098692101956544143202496662897350593491832717051668070949976858116641524504987589930075225137839338871331214886933154199606007649516332642087572052395529712317629094316352868204752771810915604779131041207265625317181165134781323825195072856501466876358718424930725452461270068180845207703444183668220921872844383613183405882844513604735859561383349012355677775299378197468284131396110856161188694664540600129372072414457526316811169950757989920382702846064479596670546668493866759686779534620215742124817639826745591325124381495082300514572190364296192804854786764502162718849358253733413200201727971883029141062438957331771658669210550936361430203720908034491712558119645428700196012123634933751819822873904742384611424095420577151755320810401875227322853033173162503832577373664795605647993341872820449150852351740078749570923183926552958929411580619185616704363705889648366634403003344053424939719234653371218375015575189571728058279899188770015552549392522466498461152535903155534279349959561621188725173692374689820914482239953513313084235002091754814060478895849041249736222177374226085842513680079280508471610320837944134701678404808646473020777930080340883853733548511855330136186376911639640121261759305871374616639810329698600170273898073490473481998138810110536483873818096413113086404991789265797825128647593550840476689825879111605292384787838913494448478578438416356921311932013273049178612216572791739576960275551648926808201245590280959319452259985060366399409449374788480238932550571281766316403490549793543036395995538136396189920923223053070932638761146130034271691238723233094652086538888512313863937461775184250139796411942713443752403219918224478150892015813609809904135925764638365306493875477770384149159821754060606355368501842234063352997350245406390869525102176838171545266851670046557248223578825346535859244027295379547465807324568395697923251683736411085194617826008134029576100390665682761390653391666721131577717177015953955855207339853104840047286992665657404961163655379733196254053323646979080316675897464304962956179635002750059226004134013497841868613717726254740994287216973543200217514689433032302385299138600818769120901820819128496191798722479166181480818613263147804978659513092139539997852382013988840904430286609048854712267106810085227878924665823854711375935506718858696238262732425214361731717202913507145701980617351127845316897181407519809819138089153527837326841419314199791650604832928096371735469705046733623651827666021805060096820238414031107775752269639261641319484087707538897775141585684856950191782874209427031827187651088325068352000464125164807749170255140225422272384657414963141496621084153782839105164698967799362367669517463374974368371378740156040431693986669941904818381788746450730250789738787427113800582332931183576774186458147113048485846483547195820023529142354214174134798363928046037785541167298067287715689386808677198641664324259231488357013624153104010903603116154047983252232225306620104358403944817015666954757851665036427840881766855270400618027126500520573184095833456124109106521567885050108232259670613280709340365499097881131046256262911889522496542997911018113815901605076318924629284342784789806005854558826491299766500526191741952251005144993286420281116657964548573573940223048749733966808940948139600972153752261087429040980638608281495483067950374422814956781710768608076039904064495085160714267640295730670227050222586657038101256163418409786468052035015466234548573370609140914172177643482057225346889233420243322019805669561107017590303972481605276963825802536285747705182141372140516760211186247705968870264289307613669917736786673309887643853501142390861256781554674945563630224338586205357159278765868771110458239458934085749117141218015265600337323257758067097807782340720221085504392798621204468204173839173006155674858489177059094322367976311512049200660087946414001694560135178476017752420661037483803580287533988689401678885033741928346342012946617761493053095323145414137165156356421520712521911774358595663090987302094085762916420216764262339407524969421857851227563636820763164834065108879400718817000071252259300990742980707281288329441555150791557776144014140604152586749146982861091730042977860141208837707965117391587657566143942380459608470533880015493261947920848319343078736616848937801514975118349474458862252375342945938213058005362225303115528871546686840583393320240983896731605691063215372160805483053286072067893819443390257984402273802066822480542006560871625824802052862478645583840063230350958077834669133976577315858543178755664061010517888879981318902027434594299036891164028527852711724614680361710841191474730071597582504069699294278774904517100408417256295883715431178738836905464436877406628712682174304596870731310309819685845959181974168043796649240797995296302575717925141640785392177855863620410618202631311403572877571596233849376598252978716353411186859788140677630678241861416689170744890182026718773805423393651949713762371170344980982423327791466349281757727037203743242403874950491795093194502332024636826883776744584895132742819057809608526429567269497124951168638738598347746976494852644313826699748037407711789759197224716688718563358351601702397832689924517453913831910717727759671821454864607459535630511472332223470257543519743901810986549636875791784787527792539524227146231808034905385850310983161460867328799469521768501678223202770624799229436709065866177944207137603233384907823219543632310559513763190716747666343476889838354276982096853831333010696777044278544286675395302413255539145240698779990794347732174331624467129749804233210884498826352091082440216814877395326297887604240894924312097000347944676808026710339419088776724172240411434612749621980541525183805817699493993905777476637812439595751823693377567637148151344681394534552592753641718023949487756717306706929253957409176781016184284399423792521371997600991962300514281944856494955454583537540185307571853683485441024630578815636994468436926422688929480352590844172980245723328282468682370943740782636049225084757220478755999568455760425985392865295862220035882766664634120046605603288363038176722119241017307045188364550421872417647310301708028009063004301845958835542039155345344472486854673344986514520318267862381651213010976692536370076142500689829551964429846029720394428691631758459835117927272992803931911711542742639167421138399146536605300055927248347676963070044511420062158794327223548768868558578566367184532660825955133963175919254255310590933665713980185475864710458645440372654433749201421246719350829613862733616863852858727920493932095373480153952190394953362495134183613357160326301687771086833234305309241356453136800012445673846963426304374758132960781543573079416698324400491695588132338518073176799616179487160038509031641516711683027670749006261628585700650260420946712549138420102105529442509378809133596274539777141068389770358787496030717646089988221046977330291350541776162678856255446518355899839563003808963305315722612530299939941955149274068532177569422723496243482792591743992644823896576988658365148228829063874096857853213746155188857095469891998089548938925816399418356530706215908840731925543656730172956644443585690569186847321729795719801160337781612850223975774683566028401337668161564851493490386199687225597023456005632486147608829913344468413801305914167175158801538491673092726854733395781047958902196631035374710748275276910466235674991770003433887504302456406269782540764760011973250796078111347832751972961057808578480143837262469508737382462615977342565939449644153754692123593759658876830624289737947990998349762104274377216456004228695314712484376072310423027975307466718000061549954412276195098069719167564666615189013688102124447481182421250601564421096026440256717466485478246884976387727827010448358106430795686942734025849229418416573926140315801228249239878859952039313130668537472409163904088017333656444793211153096734492702541393433839015699546340455435551963240362090282141519344660818562818574717749630356591048311852117718529432059409327140946824145204745603174664885204836847253806114959957606000879385094607197473087015259221210507840033665081095987120254565184694264846158374898020278222444037788077779724815956237407524047316651581553379185256116036768696465194818787967376494502856313704562888442914592335608058327326813196213625650430451597144777678856151435780837238098544610803394938337754081185072335805877613861202930884679865555694767167611213985775358913428501994497903198845236254940722281178734424950071222707096288241714663518262882646007766103296236794150348324276122974413050482058780563867851990503818083577703957577986924534886639102862756841224974594035290461215616190928497861770323878850792801065116888595556720781999497873281486744403516333770780087649128344868105472528105771796545444646694015745089156244555734190902563930948925369734213737840696292445220043836459431947765701041340024064365230291030195527601850628211695679135164758629927941881922183445289020784283588930079215142331118071141035639468671237387648772583333500767989343989718006784939113602539186530846057897919559849682408734380982502504524644319368632841507726379442688457904712384585580013771882072612275253564114142298437141357875201268432585219968001352305601642539937214453300950259201468595269070354336567819038753508006426010635857626039414824658297009240588416947914225688215969925946231391604147182376731529585115452915977910447031966237645115563655953118514020676276008893802674929686471559572566360852830748138426021139999103249160343185580424347310132990520799316442327718011942076236672689927000376434573130770523461077741150419975250406300868812211266947814294860600696702803564553810603668867756903419589549811069059257511616495287504952525009894654906139539093393043461649396521415005164521574515742439672564475985234742353394796475758620471697849671611879698762264141299588621724158253334097068589383135304937865503182802926441930262204495568959620126851644757512497826032302179047433651087470956275588899016801817005256230126156685971346349083387913630573132561443147024947940516637191208055203301137329548855560075858943477532838687143387236748017660869474808128780694948125826087525141786953975585188429498838107420196698970681858930937065507632915685425823537263077595513161416291424294303881684247021989064869532047336656218430577297712922330299372683123623826964986489363795102496612251372489476471834410881632633899847053420327042552999323179014431340857003896648042105926789739178814066841723402529704489153386989214812311012536936023551016588969924548200170221630046018324665489350078816433148308794333987358366116667934768975415935432973785728361036754291276016193912375664399500126344373321948690644324975099281946770427365358394322162023087353688781741885456836482014491548132166344679085906765800802652222911786567509336109984273179105590588086328934749846505674366093653201221417852688879307880686035613664384999923235580773801154101323794594555874071074823301648258189501605103169786868401405105625627317264934663693380863330439646593571252215061858369814279178259376542951121735763398291323975388522228074354157242662096505500386415432003526143857187539473567425719216928846194288947793680459728595218551721384323777144500177054812466487117646896428041719600270206859442858328746593280986248098717419291987042504546647997766244711010307825984495870399129253564851170719563040129415526312949213347810905977038891441019869374060954006488894976983651490115613218013872270794517267226912952711931192451722197044461288633779947195775316904021812271926770910142063188925846593664418380391315287346796124891419856436437980904128255169445552126614650583538959143065433727777580364635745853625621671528362747674498097826879532296451662024198847701708096034822418029735806365679640480668858727546757309160415759206158495792808200875167332465147040834528790825637009863189610901039197919694625383492840171684609147748483362789749553998636593783576371254181561332543435227194304283710053654143244168420263169635969453367651368735079515229516109026656282071668007808049387881638000915345428022280202840354350419108306923783468860464647724785002854404030380653381017459258653714495415262536517343162979848087405045895299063109976740673440322614822268616683757294709357950477763441103457912635942953130712892918901725524670558295232043686710984830756439175151924289041486914755435864333317409477128340820339579720571385320245209007037412439081360524123043489190027180409497244697606963850871018496145344049349092646578730294628147413779177959870569266670045500458605549207417490952941306616230036949181833252919770109768990966195261526958798806474639763304975466075092186221162775476136462427032867656287752225086313294852648216998723594687511970882025858643358044652255929903608133022849877863976627997540823437119002434116008515640850600371516056793453383938939293133449126973497041377332693046384746192048447924358291196260839554712854841154208732482626261846653635710518867950034432488199117428582818420568984478236638074604295333661734323139604251673323257847599170243052277065628804227816847568450653545891860407104255231907590471015281937954202442907003337730858471594441752549998121548725066781894648309196341279483436846982139435285621393057919331002243971843470994843339438607670732786818762451719375599849196622331072619322673147226356068388512180060723469394735337559363301491174651269931462342417021111197217255881109598376798171746474379047035078820605770408967778326859801498623988739120995764079751708569282229869047939586152555213138015556783897122866410666308964512896195832847177488577791584387118168544123705502413311905329825669011663338116253057543154869744611122964033651402515372279570444456126006803982805351745679459037131548823417158703075000204905133120368211016728710989806807028242429572811386819931282451776644565296133392184445105470426471570418856943651571740781616724188689842834738578969248340978911416913965853049121956582540054146921642836098359858384133705902607095887987288744417925612366592966783314767218968512511233814929602578179907083073751618934598065834280407071714124276128693094294157116533304790758487179392102304450860944649731414801594289344841115440416806330945936672208448479903697820734324074367031793408460823397386818660307267749662460447853862114996002103007735606582208606717403704829766071407777238905330342494600200048172845298285340153276755006931959695639127090523109490387349084247161878150521556846691795692286319317788394187615434666393130745590322788386369878530243408530422733174832472522345618207785416994695218982619481584845900073360158969261932763499321397173887239571953357355100400832061160304140706749943405893043855615427500974574114220600702254486295885255882453577826877565451443110344873469377167388882332074622398652086590438009057757051883631572442257928653611782318065241647737951890092514532334011264874191687292517558502636584644998800224422078152470259287579069030719088835647406860293768003807681339795596993911002231971806611647057644636611576258531141497877525899484544492044658512384526623327382012573785052177817864448116263728734562646032717057856249749228310091472698225587928108263844483158316494134359941813460998459821679304961927887466673047912984744956873099372947899374252726446662174217000178012175685953134169057465746954666627101715193763754195616033929393206417390895295152382305701310122946975004244930005884272577673898009399169641174926841061848859566233768779389826993933949036840904067705498851972565810132081461337532383123086462794453914007073468753582085757523656451342996548728007043343397322167045133449050327332774657315426331837392625639424026696246565491447275538219401042769765806916650086613561021179972911861846291736617068840307833358183982776751754040411601100373786587193913774278872368998245727737831477989465848655581361079174882687168133230884057306401389038371345323070120149528882753110573319502073882448189606139498553583268923795761258218265525174475996812423817123147424773705185063995525972362045991055248606576370085259570784396229903715799663715663607249990847247806091449699463822843374956371751282104431032274316649231761858733616391820472051277859743707599977048137208322522847352246887212369044188176580566875954358651622401275510910009742495016128889213571030042293052158987783610907969170465683340168607509666384632083731983070265183290990585823504374214386524259644277313425024420507341524428933309445892038150206892068220619820031113921014379295232224418425539740763063713743803210981708810657475107301984450465993139118639121816957043502646982393862631556457767285248258624405511132092312723962321726146159926607250037874598127528033265575156837414261345772372694189455544880058003991943728451242983920242984409229047337430171207987984584598755278940659333884450446806524378552563176481072278200052123207382222221140527501722319477115814043700096179657798289576786739772282008442539790511251462949885276569318095793544505186179689972815146121478938139806969492001937687936990879907558692294592158615588197143991236390732433616674653360148919519333475282948051215291100611490808671757601756861133876308335215629210629416408414854677473520922559496293791610776883955181798112719048371898966466274785252460809508543770415025113746075900077519730533985863562838232643504967597345374303904009066898529732995910979739139121222580525756004997191185827872606623027418621295216089980127834471421555843619039495002412017157780229483204043310565132837024939119055844624481229800018057825581989828535224847864215662280863104238052529484939210303562569897447324845935272926976497584533865974798552852295918222029582390424710211880167131987352493665773039585247749835406193758536700924819803334808404268656929622433776496213655154740396622734507279510670091678297942830433224665750523244678021743101310081581100312956339927039806346744101837504555552956034388353572783430001236732909756249263307003429440926862105429055874346025312500762328233015289937405539881632277097518785296247593428548718096707965482191560868806461589979027289208349900596542495120653842190847294258461410497305103835852140319048626880844106949944120716820249482122696898089270026500809538028494683798218712926424900041811682192715665983215543433737964918091562066257898334096706882107537382975561700146353146543304582149307038708924843432133524618510502997527081263581484710209720359390601471681359272133965861024266555063575203874316530943081585346789280064159990354873484217807395456531762351662252182011888801553501229664141226682133949363536675044388112261568217266971651680679070322635658702503715281493361468075593361093422548463679355177600135649971807794035132150127714865601859819615144717281722508603275320710290065750290312908615817877875785983588350197063634916827011999781781891726777421882816866359856916289570082976748754778485565457110970342684613510249275140635048078402376376288325137627301172476797774422446262991885873250099052762630670513295113503051556839216681476182171152975934521026167856658292438572515435885991689570887607379984736832722399469567196030243041198357892364435496112196002252056140093377930421772244285894160109645937776586208710623714363098904545141107181483593562351630939604723840700174622946167897401383900625044229506651783067639554141149442459408956091458463658158227440672820484188601441560806439518620762488804183554224210773366253106231940185237173224693117782359839459618927326334004238542004896624993622326417148988625738106331964315459947327010723489163642632387968366258422371927363376820609993346089060715999240617579840689770161677686294263776874827886118157753640102501322946466858584922018266817563872866505070080943157258300847268273478264058422626548658568147395238089166860437234639104466955170998012756210144086283075299806367266021387119793385691684123691217198894545549452423784194252616243136798300091693381395975393737031063386132389837780931170598956508625138224462257503708543482548462197825288701054981373276437528948357503933035921033055832595449592080976860991119291235162434032862933852777725865552132739744973481155004134219910280563462751765686877185884041430210100028031451717132272610917358069524374046099071472893568620915392000047913988351576653679384823099632885978915112594305421332936902568400133660620854032275787361317585339184597023458719174360311366523024386115524519119177082320400937442420311377765585419562712182347830114189500582487378029762972125262989089422935786230526325750736858984514496995229678739925998366029562152246698671652182807704145573291348633081120506000407546949398237148822193357659467892741191537214908180319577869396050084517513204314161216450731385039509551911487385273415870388801080021336753068186169701659919807909703841102950216013460928914806910553221038401760511497303178990943735896486133314265470842197743250411617272498056041587388298912624715432402164438645648113887093670305346511843418996281187639039554916894839265762129372870901557516058440147576167241952358051550519417397286010838684809580432108859465186886658456988753734527027634272488037200400631281917625923592787379564571102450131723766019720610996254130763001866563835632165694046400063831673210801878445387739045976237528545227384137650890375345154173850472112662153552317423232423455480954860206321145788526984025477505281483688933846334027409039279495073429389872821326319082679064895352261875543370841585106546312934677171514642445111516059337408290954941289032875398228736085573230714852867794386902911413548751982498325309881884928460060190643913130478662435359007942508229089465601809727501446328802665205722103126192504636630487006461998509152527404778126347219549766349340731217952469548844651640025761443548542697701980563084095457773146199011197779743835099032183289577112134155727696145505890246689150520178646787301938956255727742936566187239849390338325381532451258245242905875210679067937347250047578505137341302709699162648603239237597816655189278608464305258376973493990811984426640238324549294642442629569989885925627180280906007247515254936828407967890627800789723546687855831674324297144918869720593293680594966680662251720191992429111096583502494353458036822933246250474320346549428923259459278508835150409930209092810382589549319817614980189927190456221734758546222438997936500749821965532527920243913250514903855822386036916431815438509399067746306279568004728271115607934852780198329662388333269591676203237687286229372434065133693772732589927728645872506805429724795379565025573205866014736136833549939447093920551236579583928061952511004739899968118880761641417500651698443800555882538798607736248950930238581063884795365872641963709542143234895982808163069203007779749482743100247457958464627745496665493317227619870503033248166135557558886308321515352541541803660569644464743053135809870326454567761153033235329082679128183627243706231388388963820329802704614417845834429993027428416262394161183750440443472907749395778500310426905555780727684559582422256890814594970015861474963229976999989512453749766333657617875795575407811072441578519961576235588769116120284321470140358944724481894882337610945192598931999698747874839562198570558909063332208726414247591314321289563691944612124331612780493772646854409143905382976404624764743363789521610097096763607169044666474641056035527277519479602329817831046521936911841251071932110138180782809397202805803788608937593336949023279113070364368386367698118143277487393337035605892706264211486863532297453380525711990011731937027562860360944870844567915463184526603801405663577416386791641978943996420720492539767118647002152642179424194096199090867252063069759096809741024833997267790314315848178503618930944602542362244450227637997266133796993516309741399745667483706031646175584247759228575900037598693649707512879848952773031841927917071799619217821279727457301030353301718799111492922118499122255363937806318680088583786115156030396243384663716387193017571517213865211780479274447844483792843380441747259770228212840395152947123857173140093058580883622508503343572297846514438230301573843191605534746655408359635614460830621610828115408148351562591018282697266032073062045860578030553974450057082621587378194509459063795471027163470620003298901939037592223952434544219244133979656229926421498334255886448226288212632218686317650469402656753488542604665583346425164016446893974658962291160324819143211783074392258686378659580774354164745789338495211825566979263133122857996474675649446691438957669647545149395566563505108124574384381772518651691391762246299788739687403621909510684941137868180401366708439280093428403370484363573934135024242523202809162342612673756091586164888275588525926862103740110450954305055584621878581901051989271532297063560335967864509963900541862589818211388435413799250132488188804616475769577220246142150301811590576884216921404718337017924988301708180253875302258789831892298350429508377077784768311426507535891125736565803401831025237456421842797530518960588164102036326523140040112598100058687705047410323178045106535064767298726619859979298597925449679658958687573027494914189005389306841522090074551564852118775032111441592429906281905322707002313715026404378715911748746761971431855588726886615870542692659125384926219355308946881342259276305473523485323008504269788075743476470935364323319325421261508190022951226742680622730443878570211233919236113050392275167189875867333065484184525547664371646288934508248202626992573848621840889984618901995773553141943015512291977157729891322370568594568695316388116679050138796304621230682813089994200711562704800877104421816246562006919093069071630542332634022997275209957728925456617978320165592488630598268739557816668964177060523076145933876614144657392302991047376668974597002149510373897329236440726867300640501343833809002232528181101766425932469671048207547837558278768531007163007290971500071528481197310625353780015216635990612633376888325113246551756155739881286637082594336726937739549486929444257565493261749894930982600975023249872894799526388514398096021001959495246062222754164316229854443845984201830730911866581162219136588570373947704993755319418742905045428584719291051195448402640174431350316956095136367740354224471411709013393915759390954771896489159624003974932785021133014616669517597237950090986930693784455320195469552028300586288128644522032724971368745280032842242008222487472796061419482827070460353231300961628739187760838149457585802404085783189685478381955264131601114961123008584645928208646040698326705549584657685785904843460041233924499925820043043084335457403647803837105554606778859550601027610613892941651272238183874039557840943298253312443924605440531136081694829239651522544981414121367372949929511549410818032662167399416834151660714870533076867121933567959527722620227678220187443664752911868222138000921194280181666557751037132802326487081526536235524580923774663967864450286590139342663815934045765570968098227191667446394042624462009771667309485533481872314121241634430069844619521069579825470039893922012318041408453175744524067779791038036886673137009878104112968803995046406920301231167542487580873777088464741186108832905471941848049667172959656062875435293183859028050998664148894305226497233608972080587273637455491412055532331935065018386219308428966870394975797245739184921472266071443308526127580182922750388543569214097728274927244904952494890019557230208949160215986974237874133528342081358573054064108718323582653576355167757455765800019640957584326636604522643173761459616113817313454994834153270770254538127367796510297260173451793975697183294022980921042509806594536967523943942900856980286734582170613056471179649937944876084129333097506120384525054065298258553735755724186286789861030852957233369185178848011548230446902969093010984128847014944299371867855032984856137655205693511848817974641525533132446958884702104621156796127328384338391015845452793254622554892662082831006140089029294537404954240965391100807703801420959659794129209298518627160766300632683446381306225632025374052529324235743167338043604150667895405901577076444732667656091699134648378157055624575095431406850542700098615560651453816331754702673425697107440439915495244958417196193138454828577994344743620855100773161707688720988903391425308441352455617343796486257085312572275662500001096664801772816773134892732948214035877218946479400071753572761079679138987445036788829337473574236008027232615802829960433191460925397771595387350861338075374592769156125383303941118030707044746267244404133139162422758586887638054414462203707186636409464501760696545519587595308189480050755122520082943142342199481674675932647196935040783428478014279581342772153639425401747152574532434920867023317507666114424232219335409517331837111990500945055069499019409459320009168770724353728043917988483215076962999183807857171500935137427612900760171123931239045261872395496384890902575173440186901196557670866230761363286887659582143463446942437424340428589495416501931966886596085069673917819890401542091573433798572734311458101127480063972562293963248357605233355553962571226214074789313159810434127294257514024079607191263317502856962529512339577276734952222758812283776210914203662927696962192111695376880300611515819445114394708016039053393119883093514027670243639843747121178784825379862092005755089111942437441502738170774626409142300812278607875409476403203986115585326940092827100504990301743055307474230232170097101480186505340295311608006235893325355554578643036635207651528492429022263908430197085966310556128556980483921023961561598993057766723249822637411228344106833719228975032160759249984305027074587597128768692996563131381275636913921219367048643005721839055366591162387181048974542308304285940829142122911424579039063228617613986911440485125911570391292127722526954872484551599976334836865383636626684516360566320044581820582531908135049820278895903434002674485907269993012036714167603593820589564161679212091718103742360999258782199268650267341067668455883130233920936939821970945501087587657882764161937812364865011100017829399660860786623193095569273758564179852902352413331950916366839130660733489984685966995851262101290648177407154638354728772018996696163102579627959347691915786571447330039583753768209552461594057760482976729203149110519398967171563936504559512258559416977488153833406003805284094241471788003089664721193046637842782289977522088412062435484254542709809533363196832503628127384268694564547255798370837654810791616316428905249614903207454391190651206808336370133855716060993335810414596683686205940609920429735239363334254911234831337542491452552532443833736660380848177184167112318038552237928434112429817043458350997477450161460209940085176193531940347717399949034203093695476673942079268776749044314012704260914662705546233586598040278304105357338386177931805680399882124165229023705741182133458492083241526451845242154375083394585862422146139233049977609347770825665326902053685160129252653991657013277135375451918304955596244391623887635292285211292455074951170822223577999709151732058489408118099786870111709766068237626237506361634232429327186872630729107640410564347643189995871264660082800762615620116576271531141402064622935037797279655810667813779211507706185082966650750861993108138270676384133212798332704851315814803598527022142790840902839755377881780510922088277827299244461139139459818856639247378088983983473627903917451095430322911542282377723724995833231099370530911292731490863658587579704315204877231940033431618770753463979814563301905615180138402814571648656258295927712156726900956058005629135268322291329664225207474204451495016996624672046879757626937889809227843665856151072765055361255564769509109311084063440919008819805902318304307880689238480904107933518661107325920685562380895549890596741155183421274501559772687090805924288721857439785175267641285722735997640116737064907496756538010789862176438643836736657317129459595119354254493419462158866174872309794035681958380744399540744270038740912898173167440354575583505286374381472664295075469954525053660147108189176667673329656551940254931865697361376000759003774748312961182690761568903060807349955709798393481045639624279567521575697300685168398441763035602676830094156302142489422913144801009080147360534188215211388799489269136045314688985479462215562641052715526676157759229451331687393788450461373546581364125730068329360915526996663762261292720833874846146990526631697676078300030370474125072882807044300767371756852594358516994059431567777689636751666120105052874068208694904991014385865140683050932886160615083339273454842144296023684601969513183094105418581278798946974664764991399261587879885468137963110906234083626012112175578283333184864080236268346118752520197352577091909554953282250246870038554663086206170803259566629276342537152159039628815250249704335253619617192934847410740645179224721889831310480314476071234351907746649011207523109503750656792203012781966406476460738938218630699406339058479467316492694370533145623570170043737932354682400687311948532100959340411345714572290582733346541642685513886575656202344094847701341250520323792211445925063644067793247630511083597443905707848825867035272553444971478066018876838739234495537561391124348949407979333091155964522377334787510116118744547506108059497015314469351919217231541517467009751728338873023897261675658740434052671809897525505064707595114254714133959715503627854284017798358056982357189744962489057595270455730793370285494269485317910033807302200163919533561384413875080101837486956672134933991591655015505332299072243221523920298860277547706968873074286549536918331399345698412424652447848722779388377980974649032572909969334881754310097829425277431462612149382291940263378659725684346302960116489163888882965376122321205505955136118777841764598455341238961108096929183144373316366959580656855317363731641756710538594173271539686643205350849501528302284618988241080245360351782118283461449103453617085958223508876180222657066254598501626686648692415925553698453769133411013073423964749131243516424472570082565165577893653586724809879693187014323845497016547383911028208240731225776017735695807409878277756046537386087869393084489958778033010826164664951294144352690147287154661234032736920412662501971930773486899203054794377551444129539608558660356739812289402018315929861069800535819662507910536389232620811894139985256084681955254125373433236978313623108686191749355291005715086550219977158143670822778380955052775145575510990063555304676044023968206313157433284099872098830289622251534788783694487692519707369430771149060535283946116433981469413086845272626662082003522217921568187436930663730393567628589306148967035135655948094489047399856762638410465650161300976410556225630828934982834525954407723161667019993608411319677736276386932768151930245418884500594120150054182724526737409107864504749960241768853536146351835120405643648980407140081805451074435309054593715223515921215797203671846182140346441206618241183866155263088342919640721292396070317055855819724722642425937790931983871797703565576911501239736859943230791388421859246915814936675455276441926709817634614831730989040886596160068795371985403174968046914258691076931688070031964843199436441224286897928485228430421316251333509623156966868440771482742264026587640422420988021276087689082863620975621114323540098012442514258232064086141236789207975443730696808532620108934890049627024697063986493924498984718891308295307944481196585235500254023440039769550117737283163746093355865556038709237748026002160087325889092561102050430396494658379110255523348731933897039907683964075879185690307908600086779841757505470394684299769510452425330364020474351864826557751677165077846242922112390344532441696563258723472868980560977358718505104218728808617811651775117265669813994144900694862679967089782579333976363065263367340793873794228866637147495763422460201596617711094656020109432612944753647459962190753455003053923077431625698908706242946609958621483431543136100462244684257925303091467250307799347505509853193876757146646843576464075776311854035527919793031876056665681318930167353857484231106227487193386731486564988334168408986495416887518212269659648486883796271390263916653833009807042744598432817556825376344982271173521650812922109218353322122722902206011958719818948404431257903449543776840822622937672335193397167402804704345105311849742689863227229492705763880337073135939302555855620827165320356265997814902148344451825170328192671721102797494143683660916838685202144686827690931999026779258806618371624161535393498080475874511669820125230182403849932995223833557883280955862032747022056728989066973489239664779629195698688432883810000284966882595368638281940077187937660169225674629193840672534082142604427224891314574360995605744072504408386648128612274909374638603511586458583705540726999248716550391835731575798521581064807069076145683467149221342056529315938097167231251619596831658234758732593623304345094624917362555207771709027044925809674029293978888678615023372736235941899869765605120058024004866624678035427259607132491749004528710715752779694121957702629716174421686749607929682099129900825170135244167497359417367775569110857851434116367900406292164041230868262569621992771285952613590183502757717502828022564910302698200026114870069620955198548292188810416433171549768258572416283288618214916919279014388133320694182913646010860373217283359693049505211597216700900822073765641058401807878917604647189209110952034890530087886617438316396006059351808460294238669644390130900094292479011272889673793028312843680619365221984307837007862407027890307445502050496538513149264474955199843441889815801225807740285062777392194575708508184511498174127685975773226900885959977311613495489614109523074992876318463851203912169596701956691459676203737274210963204263865039309997272973282203633546368645209517306797932926472935442291539239911498739787944317185147282611216877420721249994111654743121205358430567864599805393759830090429380792494607868194650431869898836456145136747585580082580512024399258279270496384560633625268217803807375928194460532528438243140896108628125120923277497206896024990606638667877895054079183283200779006039991786865936043231193457794794592992598797829894161052864408907771410923510705568875889945037141547670097579148880972932621589656798347315417821730760682119517468418940031813143436727182380386595825240964872872701213252018681697536820692062755825794495196789108307912932407166363265506898755181200365673196229426328487620796505538061604257374729615372751203215896390720122539935951267691480290152831869461975873753172230880117012468068881408311322956303488231776127337252378031728279083328928345602464612838739608978957053627785843110644823242600771202230194344591032065032773800940503291337858666892620116289191936569028540648496508009569397734999998632721984338409201129260412618457678649292569134536685838332706744061394832206068408593908464281508698900851209615591826099670932972818132989252575558321306030878882971280156219910184882729284578410913171070011695922586950141263343471207032894925107334024980679487641037627310607075775373072842277147657863272868209675444081967131404478693468135878023610511761421842592417927087411913552005175981808116657478851307059929967230384415172758727471261891344665249732549256357199373078303524432908325931891496771030147002233360659784826011629204950699432788895834370278591400200850997309818920936138503769871681094389564638602073105720876610205215260459029636453596024241642079281571263596812706391225679836302975150894117150588004477697914503978933772757371772325100678510075733833915166853511152045052811317259721726032510745484426144323728432162883745327601782719485462542353687380514411242189682505112121981589517610092765365093588445621954834719429935928204371653791970032068901444190325572431052102007898152429529749849226651315207876543728593316518697861985941488377729923421454966910986237803777229425419333566765790381372304157167436942783148494858991562260500019013637171365893635096713216337611029897480337463567042917264264215953817614942506374383932092215107267025058827534821748407013546499323166750714308742203275804602852749487956524390724141379013541273477264696762830973212258449111169034619562795807432234718274725186475990014106387756893674466067281184946167604918772889583241260284176870919225177509371017635488427618376346382317989625502225991387037857415653082179931490198458138066269829767583770432721806483322853543779374572370691036041222820942979041247774366314655087652306040777542894062989787363388979882139122571196584058248558157874362046361876134606028199444194923736906228535264832086856101664856738727454970012529051648815087525889463863630234719451723253609783222891642035920269927192167986954835765103123757673051874820391395483703177615899793523263594336872802116221041366529731530953635571455803426285988292109193087076480766501818188524659532104671910206232480498557067564438988864521476973193278318260158160798527705316363326765467949174598007368033304700981005861982189981572168705721880402125968077763670236328571393116637069851643889708019680421185584820227820101138379252560262696749737679835746296855363251087674165885706818255819587921950129664579465039335117076856091263253789500297751682390507119805751516589456791453606509717056305068164178108683023552024879492820047546830001732440075863001150877323187508604039627929188656982686315785182529514520236092229114996146780767220366079891730607629037329425186639446865999354033994319935069686474851494033164750518579366034893395815161134413856994748779089483217268147351487502059413128583458310488995320824765138601459603796187868100903875901617943530571965419054388566119927312746699078871930444622837479698526841709196749672567388584658327823243934707734801244694832258083708008638527086408246711692458513667236728841718910261759207406586332735773878410473661441449029628048915906023002409805198060049819171472893881199065756373441381715495693407226741145137181240379037689926281491881426963893631121883772548379330504199009825860312309865568962907250790288095178624987470063724883009495112432443055476893336717538403514272375318781296246512684673266879293380135078587593645720328220329620813017770466667864653119296455612685932956092744358493884735905378419497704733222905199543728034185871075515362486817939299745471280661460720476281522038733070214121752801580599679257512961565525209439204015297417145095813374808741478476233555279268025911658196185454108141782855174843477987718253190068282733166892502232050917137629462662787985636737258345903695988559061810187962944703501088502711765718431906835254577828047140142417810751884418312185358612185015215143076960648246451411929275541328294091384622944517351536627871014671664247867243056936762442990886821926210989994762206325886918603095621316775577232254586989449462899067087823264715253223978062098167060166686715514819406888196898626398407397168273714155544671723810743128983599516501561845058634513358498312593268064078924809733784890171918925483941032794043277308052459709091046861708156242139259107650803509197384679473887198841104245201700749054722041124402561844090096303250158625867978208316810640868672574857873127956422661700492536225447804565399342176380438597651068597076684221913476445883495942315904181705769925842655042644260107502296996464384209215566724209088548174304832693145165154676062779310252647695640520230458671224145943906007845395650353660510645093484140002486444911450373619558963685253479190589444489190127893267943511217693470827830488000567225813925839885519831251413218506469172043451682364926419440726266370871895610350590224404264579597781301013352662603541153994163192096459095384227144976782334485799320736638637461783555073389259172555443012157082220482187622560674953393861768070956235762312621224879503344022861358813075451175842191537985792776080578155811836709289976557439529962236135166573347347549950814334077102922634522944825974962736501135221889702348210915621534457301969279096323580586100154967893262624076362726376750208862712891110445588130984574083218460740485530171086965446313256265578983841608498040176713410834005986536076980686194292006827580380661060389382268366359703732831723807228798173630014712983876396419704616439023912559716899258430038481424964519501135299448819965489647758385313019348787057922495960271876052641952764338923616808344306774442414623641757328062980333210565880307579858329208156228838482176946143879320755351281297925359825556053614526615945368323852059802917950208888531695477591251613441214515348709717354502979360022669155522060781476566672151325907710037962170551123019459815522798948287773567827548362077707425834117961296745957811507873427906007157417588000917538926150252337826320625873381634714440034597789733812849942415120846641773321960822290594197604023657665237060799036952383191494381962939692904116878217934091660968294689439803687099698362516995820604252547691822451864787432520400793494997597054614018658932054674099867971703514652101544873856213215522083455578497225200889877728822411760675627473109518910141950871711335467452955359645725191056357096294697665201741840653749442460376298000653841572067011803010722894113102340849768382849238906316585101753217611399454278824882284985698989284719806642200777488392416294034157810651847309692842227441369697741808201944261407487453353570140871919725380954040959204683977784770616809848910106357148961623847062407479613998278452632179676805684355501073903055951952502870100140254513221252480587294748293295944556638535893662649068372135564565256099145756029969546234226075457738118457113907936362075415918611161102655318577848616232521667044891440541106679634466974462444949508709724465369937386098380467454670663680076001140573371642320300274966081136287847487597552764548075894186325146239565489798572133451030843187347763715086657950384093087316393636489483555247005006039377470675082864781169874812945253416575800978703426561287949920467738067308170118568025142386255159976017218812058212440257385134429126727067984724706963234908479589397937350627887439750065013412574465930007928757209094414545288283718065479324383965626993765260242635527323958414062760543720869448415707087787806520737342407211871401922955485808271813931462159711752163458613003940889526029103963761056359535978685118687687517622332212622838051648527506946977440253268630964398104496296166390299712290280681842604653246950550393495434863412395063060597945149374065170167497165261217730827182904850113592738281333385518454396209017663085218956261428502212802360141215515612913287766212739168089770539153298959852523049262789825176222889696716365838813952939413407692026310533750219321728312148992679971718548231427850565207551716694487477506337687384710491485341182114158501181226650534799689802090634144779483960294117063306155970904263135684691456716559937008755986217769551739494794500429017157881067166301376309172977941116311117584654348622620211061223296891835792291951285836228272398669951965418678854988789931324149022998934566304093698176553916204451338717051322817683495944344984235256097692611296332022309331068104580674329273665280947743133958512803184437869464662955862110894679597321448336077995269370332363450682162167305188701529456963094703723709090483158848671161406746904738380978427941206583749635206628966371075254064850327643226863860073352446543206735541425920410571920011024547476530326167134123756800666249303720020291647115897100205803730402102046568280979575883910125052303976068553097382292977122103712400566252559694767934473738618045492526726955390732255270780795163873090436032179306862007291584995931265783010107600814812339280699339356503524558874813082138063719364261556881611105735739719913442663603977382154299795775365037727962616197002907351479497035639160507283222039763086696037462121825655874662716475920551460666782312435419411461041157840873543046445155320368261932636698793676230134262138979491076342483497405554397891142313425016209502394081751159842790761428202026025594702489625933662762037565871658750493493247758735123678674065873709200764236966043855711272599128195342303151740608592945947418975401153533264245517292227770280835693516027685052465745418367382803116611322790137096059371703374889497695312612509746178234588912688961317532541560400266564227214557167231802649362103169466754013363026222342406578509827613836470363966511559211418377063713675796896825944835962351332375126226557428622775103376276291375116004578962616538871855389213033394829125387356819451324151554585125482470571909608957269458571061869787379518360519021090068576662037675532432214732391049295773818513808529605453599615374141183704521347068330315393907110109396413124184057541988688297745453496208720341986822265760089222927387611818909317289182987046287429357858918830007441204772461062861440035567376038608313127690556390076467726575346798054187540189751567396762945520056719128658052232956203319603350045628924705729140775879792243099175127526830191654680111057712431206393427864854366920061272449594177962232298354596592133220633816887465000878432104162502214596557146619150186258576845045676966220403414899889264565974085551026931800451916709094200302935365098678811867363086623181627035872656443662674643650114379292518476371220847293873361384657417483979725835684077182730839671420228302766670128033344208485742932389049806801620603969009505009477441275959400870781942680021526047086952944122443078852246264013197335090799251564455012602562198755352284407618512456898357405143951450793101027658070246365630357215571025703644724119597880257127074621863221523242033907918514774898930105038236209299972162837490836353768559791690783503259100716903890666490104645002524807652582952418913413781131717613032983415905536823063382495913964684882995295100865895027852040503725397707971295053380708605985784106611040870828428828713498024999530584269901125670184510981164364546798625319518449735298344910438297097648661351573370095607556455114644953244928578091547876300712593051928858809375352336254899545287456386343159605699512130101620414107401415904572781829904459567858839609666414260493807655891235928900040318158182898694316853611896828367583920865862921868204299572713962083275165751792257072538837054638680694043983348437077694031188358305037629879203406902359947382130142170923379966098279614605748801458565771400490364148296079451183459287156307246070702418700709242779986029831749430204988653679408664798795846036622391858097220372458101111582814016089109516185314816046153891358996276004631966105667580589079501824256193397229819581375868469619720870404577432758436802527922001374492794192297794816626551717480362714653673011748596267581832075853368623869042393517448538393072364165901682790264894903208118777489723846823160921867933604787749293754309893336070050158388352779474103891953919015236227841241369962070987617229957007332858242066170225500153903729034457561823645740027708061896409116613226604710946956608152460185880190459913023172142629540924254361992018672613411827220200035374659929992773061699049368117859726692077112561739428264834201484294175378034151975561356389749888368982254202618900728118076945642409380621960584121072628203475630879873687416879882854590999558147188550869441817390266024208867591649339453703806502814567416719002842737512362867726225889624691369852280318181733556267917434798161704249487120669117729914288239678406714771114694617000770381871263590593999057012662037339353410136079154478920022092961286073956500658548034769444976273471755465839022018487517367378417115668992605409922423766290333377847937501369761609661039351251696961384930846755313122907574895600565866556238869844020331401004935520761853528791409476481612444442962113213353078601048490266270229302018264924768566259446838735458019824930306953586845607910887232046892651544231958478208800133206587399981958787231533739142872664948510120656510916633410899201572268777210086014706580219185418603928786377994152992509763708385399199307380473206714543795540737953910695336763735877716917048632296299157575248842552456315365543863201854718007073250665512141395264634294393123885763015899667391665147979462443488957535825241657302295732387548117967395232398300284405617757068033086572490675680492187303955656512239584182919448671849925299866740603595279351251342384292632746001941353948235274076347818092203649129854225344953641813553695225863593703443304186631174184022185569992707333403465043027899001968254401891543004833257580790494066882613895545726924493400024523726242329917668600582064727791311273964691824809174818515629848429196760369764324877370773664555083592547444070426973865377536854956550615424564793361915081181734148167002409444037863648461859829308225393942103172759735733521013267618416098514472675381021250018303969303252272783094504469590047453714178163146300454522782304215512984860233401234391847362227770824896994102001182379335088829845873702950690328526969525845690767671260358710026067722876055039816847259718231708241952869119701111989066430807915880222180582095808013793683296157656192894187682416671782044041295173679302026804814638968178473709358315344466594797270481266855983026037790016210391462996406358787564238353422185982943196696392071823151617763864445881376683921032376031664842308613674814571467841708423110885013197808557380994654423486580551265154449407956892575511172137140903254446789939997772338077647327544415481545802530527704655206632367103558199042063667153207514136362449682193517543722445240446562712439444544029124228866042499975142855366952981172236973846111855046508262626086012894592955864798345031272304167898401954645519808121703860932802529474185657157496114726771527594874469281044227275980155989559504861981220899732633541861849050555473768268730358724436469356663595049498979664399897925900458108009634427846758520717343440002793217117844311035527678999083626505886146527250816833570072371507430448141349944440763399261019152452938142479387284705334403786263307987472428489789494013240865008404528357277981109904124394337051572436433343371638172165769587543910877142119952735226609200164875988613103107895107806132133473739478073887901453317261673118911389565946231368124310309185930555604057068517740646302224294116056276573263388736437431763914475084445469757927908911278536942538760100516743010094346371582994890101296042229320102633490302812278522057986830877318161585275280919725121779273111335852505021008625142246092857832138378849478972000403706166901863934409474144608160472437414258823146924872641986729157252634614783438535515927172975815197052251037932886551275557076049541554966225760660835134923900889697295297954754431460925213891934736164927819788500245850812730493026920684778936655125905092992882065123745708027449607956365478281211828901333114107375469783140407663001591506271086474895420511128997971249598277071135203702015602006570337604977870897668595732804179030316710378076340134787848504045060571725574417320267826281403796665729329518266691445681407996519910627193722086764744186155344367248052376595667429226868527569644416503511180027201949686222270365819209365969522695024208691956423090832319498991886301608906327890501265158592526461732078341986255376756371093639265765699810635295750398279028907636424480687559736514488208502641418243778618090142225830988873877045323845603021881940627151508599068747539133110877932932928567723584680202895971918334350958031965888596562248056205600121736035273129152502554764713799439556184938121037373110340501655117137366508048948851430158320533454190185139979377246121887689554308876151394370709245513073378982089167823844686063692794031689122874504530231220383808798671668670013722271784520617925654850817046540288205189635003260731142616365077261432089204448973068218286329928338093853744444179737990112159461231424895899694711591012512136693096684784826783401909491609271148929747579418072484613176465583167162299672275590922279163272819188335811882637027914176649264201441866246055483529699327770246527312338593329279238305111492482202527273491651555279287929238509935386411290218511922996249788904691306912482664364364203224021322155452542825279354623300354972933043548979976544864325393230371744759302428627517213982440650342355413909076428288520650979093509363286005868033718660134870485203470870507245678635457869249070147506378441831124119902682767958632155309004828038114938090104096679334796762191596218040052798791463332993827578144187219689927716649890865690772659002478334754053924542827164119023620117371947135347214705832659535517760938909280714649464256585227860695938875338107457081520659493776133930871638075871095183435945121568991823565212467017708344232120736609670336633588344301406340240858226968636204639498126171965556090369111516964868209411670867750373558935869114032599461138731535506194431847643891477061216852315650266647211618958150264269347118754424995442712541168560938598593185889070297193397198119330819789068852006863940655734774199340721570403318068297630839750552740729934229139911240037446183298405319928325786705337918981845352802186951584153527659657049225636285921816793904294464194081097545433735120163362303480407425281400988012658868459742267852000586846325275273657015002534058728841560905035263982544166458824127946064292412301168798252959307965810142453772224863965132138862639385379641616682986865900635078933788894074100323428068707645584638279999495016294802953651593963784053819477188957661844597829314980743821046347122151197541793567998811762068668554986897630059798390089244302532268158663574522212955391896211627492152705632555967530942920774814597048220831279510520769623457414822262144131307584644284351456525376619485762747610385348601124365577777634948076402606806017782002793193959307214322504189257780577130496164198204805412099124997818021984161874968437899162402900416529957655869020788622036275217360972747230850605054197370294267054228371413479936727039627042136924177467218022155375981387668069542261782536086410449713265468564764285086909205506883598864244333690103894566803660626071333636046539170227634428119395614175348458793253408389779527646995823994572243402565677904519287259021112324049761156109889339456997800695176580080404622587982374319966546648731444940986560528834645921945865957198632752748726569720158457593062940964836744374433673286504593745553054220758193845157628252639209333961888601924515782157707989842497842223864342369128478931960635363938929408536930449218949005317281962082632550786758263238355365496430660272832103603708818655816507779069155212836851006691621697072849627349179164390886064763551444053493220935595890498274176161779403217042437080930956890624667291153402438853653737213410414737488975022146684838003095820662079978242059496971464013024286417198386914304704952991005301270922175446401771193501527511977782935569382505496813700907272947178421609976415196893071236956588445480612422421515577006432478686789474928726556014220198241353798495608204450213540138990988373853769878077690218306904267864912542286116204132012031418151070133876888250106224868721167302108342794354746187458377933978744952977903297346853121351317767193825341082574704870148383084113974935727082154932002987934254197097971157254797142464443076455515423886517680784128483653329914616800011221209413361947290379043769898370617264420496580482366239237685777864530592055554213130497419302646690780016615143383002076002111518385850804693628688183910488412236639802636025800907595533065996994123020753385049698284526294718000917842648085638213608352849660557080840775819652392079815055303789396069686781615120839307309534482611609206709757154194077965850571264708054908671222959448583359079877188163044981510935277348103976000749160366284062115500399173532383596771828350993846474175038623941214513833520395903612998446835962057061598222974125625032703184200482204220608128559412899102717024492037173246845337340869077172283119605622397962270442172088954990329392574858484003980737076042140372792154074932608733704441831106424054657320235949732419538467616120291255803584279410361901100066019215360453216076246639410811951051005659230717882616207146708041424873059648644848510165776573047166345744554445512238459279230545604921818413854381292630644933668889199246033689628291705249426820601368999601423368770154217038877011391506876236358898835739205266457162975702735567940132862637097296346265576852169957015453645448237717192751342845373733003583711885537954033119374167774498088481230992093349945665598319860283531165126123968039480116240412894269883281300022743866257660304875126128164657683231062773931826016141379687939232276907281129433516425498669662359277756137043998746930724052046888508579699733412405388523705835369761287860682235598639246095529457337665281805130629980569195289092946069008538955721951129919170087365910096990477704167472314881635915156359519859542244922444095908483100332220337749143306501066328340879348338382061338740443778027703532936555157303029432230753004873770220741944275456446655392175012300505969043851396187489440501605363702013293645841937648467258816665883848090436928702754097561022275973900011506194940109524706279538395489344557309566984302294516994380884087633730177119976333834803242340333738143927631424183161297873932447984983496103140027396394186226234921394006887013300388573698976396838567224115724752072034477447243709764742971275260706655115779194771386674083635474676493877888000494615956976087897796638366397387693349229130351607734950155268879173466383608229467247738169911992773700230630792916265073499577003921095051001524241619329983621641351380544944504386882966852598217945551005289170706631007213253206519675172034421293225758823004832984694267745583572359356142158588851660892542636364911334124728354011503473211450359619017366651423022624698332214965357278536029277606020438484009006104523909874861605408800344581945119004935922877083537100237965778652652157083978574648194007167939677000174816639992933534631936941521687598207637855754645123118859608149655831071021462143847937267077385572747841307307021204609816074379010377179346208874612706860385058384425453060886394671399137751550211498658661277472105578595339909870407441301564305040471790628695414590010162449438524182218199309190703826523399608774671788336035867690129408829468270424657848804044719836085357124934071718755470149404254062271988704922320559553895201508360929600708866841228274317278968059810173032934408726676134039192054742141418054078675665441783891899035751654365051127799255719649495176748872048845862810077500362243395878577353961032138804193367821254485168968562980450101210096658689088312729971375435639019863334751479593508166528133869734599264653323028199686810642502464339678314000550792431990938748277765703316274698716874781866186783595584937119576658297802236835791161608020754326983005555718939126260814981167827690708844239284300402360660337077416593680214073474081344931890867087875413142192281900831870054195729711976503416805461866297718400755963368956214377283642734138498889460835747852672489884459400745012454268113315135219784866626404395317739328003890731884994351592257106808011301736554236392254850353132203362367371017465434650590773213971743390207984229559372399900839097331300310829064338969847892771311423825964145221531958022986491765002695692570675698187521154104543002817546595606734362441560641840720279670898242668180458694577159302644530274702088134119922599842894826683672185125910085258412326632581944080284528085281881510203833115020651551837556677588502362058493999633151835580687832038038147492121821027870295314131831156130923562679372310610708417707962396672663946103196009559951543478991522151146411693004141991230259237290210584242881760871724169819210100425264265710493802204838635151256631393072362640468533357688389537768045349755783861979525200278759331047686515517952811185410005682314173091850040137040636545847903143280405160220292082257350459786278641502884383986881194606690493108159081903854473862837734431706271707529887578917150893592314125334966481383881072517460804772803880603196945527136651933353656952838263413761627016464643507592224753314414134998482369380610078453586465520962039299176007998097374836455219163808478962737828020162751849451711833388984663198604622252137344773440794111631259831345685942442740286005267910967763620329401063613024063336615182217385647084597293588993622043709176912292478327046500790169904801961718778045022245590666828920255105958934005851044960046361810100448043053400920822669763201019456608676393009681879153596245594114409443443495150663017548711417325237317521652318831056431030950388622289257846568846136876588009461894018258097921149092619354034073136811111243840413641249352499193071080138193874380896364972090150319514393007097970104072085447026950215890164647429630478631086877081879104038507264604693150993515147171098753587385381885984651980365468093608337151878834090053793726054623312811214181234573602718043450489325694944828965782697919927333467674538968536707097771698226473256964539154398818317445672888249367304069264012919719623000549060104899846376288608535678216341710049244410529766974272006375405110324626875856433565174060522494340372647534657070378042432218695025432718271845928688096768400837380652697802189895159047896116033043332017355180092946706974865664248581346274478662811673413470768184993284917807088258753378802606565253313216134777366520056084931447621607566540968307137415410389570805420747674029317248823209277616936342627317832281198775574574795389633560634826486489516713527791846290653023958916922118100147218598017927912399237855974829732848601424217446664044522739380701837619659622141609534672874095945421591989642815878325533006512268384939103409304748163087070707419513536445336678523737911676377070792551525083922652959571938389970615660468594879954045041278700603682786215197862899800170343614371266821775964938097239149799456748081394767065107320384254123666632891135443317077331869286699594294839223885373090164847414559586936958014339087485320598580562065929509853977862652015233093994021554010330547286107714078013901951362311575114211866796556034710836327117078300151000629631764297576717468936833166633515855054039745026676265388911069920612014114638228347369663072022574595921560987058715047705471957883950666939791378950663140765576866753834739841076496393755926562234380075046054830873180164453515355801786956691724579552014724372730512619337406883763055373436311752959420743117064725424787236938032184206042720046168269027091800571918466489532521471316315187003801139725004905254136450290046549182887546459504213038486421528837228346227901206241325105726443646274743113778165833593318598487581687619684988083114313017834050322531373525157534739807251449951891724419453656902961505790199785216555726340156014692407466496962720578795594640196588591620316992234506925319836200269127215326366341926733969947308973143237139627960553308769244215611769691784309756128925534892508415814604955327879552345577372106711435396974527890403855673122657568891680571497131174662556505363673414997857174079840773574917158974004886430985293832962097911772643861219472046627900221627380599683468538057241199411611147906658511376687463590446057099810095503556188248830731334297343512897114251732941604601276182743352272917189056822453808398843397574314997240190185468495180593016642199817299643586012713606659300553731439179674055638500065093139390606914227906925590341339488978437253489632260928988300500297543877451533618451798461317485483974893205611924502469665989641617194561185681608583805823980981164883786354851523869371919345970574529513144440105265113556564010672100667715633850228773755874290014273792932617851899232373268224511268768262683033167404737750806094384343572622685006823186576074221494096469811057527253084260270625909408128788347663351605281627738241586520761648731452701405827230970972925272307155448031320517627490655752115739803429942688218671378436743852775991328659668051691800143385498755533358259257201538304085533983253957565617171466730478781486789176208771290663098491331192660624744585515693191287095852551513870683545005486323129553481171448448562391341079215265042331994815569896308679531830809702788426259663391243160832992634874515647987775491344373735577764651573288470659908514617761283461628021266047864254902363877209346428957515163406318434324281935479243872212192545490432427653204898773396161169612883253572574887540653016907263496117969068930309129093229422062856993847910044026648011938337955134775188550400801198017326478533842816241936336396175705729663473767480257721473141376835539254887332414121654851713167957436715358301567609682363765669683020636647993059574032441610387625146530590127561118180601359366393883440355092545465046645422896559770151942248410086938241175408748224301525754447488045678746331859150448160788517398589880501936160129148327117016833392218836260824036455020230546313296913857476313705909920874860256745478204174144878104619530575370815238778783664982726007505014349807809412240679758580143525746956356339096938595256851312833893337867782795866781275258844600037884214363408314552929144682614257337086691811516292364443549060104690277616290127438951180116123838373167578767476851617338945197453614590736610057126894042004007819956728556417098552107060630864272403749243388411037615040339315434960389330618485562924828644996170464310922257234522181027347262354288644631093392217282521006844038099832305746119916396290487925216944766821348797351538452436252711823377103958383561891162617503652465937859536003711467394223746279030286917678430902893642696304488386653268434892628787800152014556315190460640907461109510719435855542258496950990951108946804433524696465666901754770863618808894547001939656236397791217704424764350743092050213914340441994835212553063379326935535615758614055916883452687794692715494248703257600578122387303063071454937737091385705942016878877257642878269955725357254904598498732946884410249778880343372345928511748305196305772800713997942820796447881647928017306521068497402807963064963485938000114862071690549520935419815774396289019868586599447864281954217094077698271332764707137259338680603118511371735764972047897860265117160229624939557410629307796852733062738486305660369244493787213346079616766507266726369500716461135106891735280450131433521112969174673119310598875228041696804502100574789237811056303273446666375101017654320901022715463706831604088209938064822880917732845089364679874302455504048617988466528464985903017685788300671380440709698555697347575759513683115456369309707167827891680543900796373275921729297388753293487686620478855745365229881907028009798161332266123268149484339203249205913403283477546083320465926058862206954815440102377312888906325538009980977558093565315049088333722460643872763019448830600013667685528372270258562980509657234862369296091886032966782122425547828257617750633831569667025323488202256148300361910452754998406529803880086048683892417311877837736177166847588737512733720685278233435071292188204368498747201614618100479507008458959259967755379127761364485661259057448585417806635737254569795749490412575160156236907104305241108542764499375643870679207228241226576787026189346910285594953698914006045685183913480547627934531406689382821892916920991807825036969114367445787809585249498456225656118324422908133697930108219180829574287383991650746797651571998228320459172782673247810161068566054561802509011839473406225824953296523487861751926798892369811595607510099795572068992523369951396075288547822566646249196396092734691713266555440774479316118513913341428731407240965803001532896970164841567214338594050416196256958304977473186335184882328064934018371577088742170582696341524839791196134108785849461973599333496373635479338989789944015082846852202414875840165628953578353340727745783139790585160290680566330010568095432520901340954573359847211533957919745905606626992547762898314784898144529894769517864377043216434417422491173634003601845016820420852250257928653845387407851846235232891619758758244408216373994125658392657699042300561295740350901526877300293564696960443061562914644624094474486894952264941902682655661446929405175321054322526949275354669261646314295282580900926309364787362028248367665940439422532103756685331172329823587028770502337526472901259419095735735136049965575565653809429282699759689643462066491524360418310606548447716350094924131511990426037795848160295367129906871022722779352138670409904382606286613163317063152117280664558444957034622342503268167815043358118364887075016943002681988669251615394049450503949984791965748730792581916119200856378914681145602805006064836291344914286971002361180501268325707288096564751081545233832889751764525204893688884290508497509130056975514025555207366681751994295950961171157395609662212872992056996242693279754711203521102651354382655306697627749599914088750726299841614837243480754312495645586382272611841164826770397097702396941267910349111895681575454256783421568410811883469342044617917940568503250327507351611523046053810365533009792077460467227714590058314046443536053742704642018247953628534548599302643525773549255542094497475098036499368075117633430179639941916427192975947835821819886799234081570941472766816033696672789826104520177718475554020909644815057821575750082958669468790922724608099961698104394281368713804024748044609820797519115368742549719776888464223534240308317019199131266131211398239115740398658810692405528804345966525640226084993114519689770190096964511410259800167769536305251903845239574853487685511390923694323908952630614590933645506238685607577044323126546352188386632733398383345693797678753128789712944958967747462773276676109440687009071311004209741456684556530444407961735080609664509314155566493071023900547953615439711914175364492603014056854920842036571720974912757864522016692203411359276410098780081959987114899087109527882310114541546792883624635339914347479482127373195474817875088674216071962620523016390171407249549861402656358148671418985357599373622276661440329995958029214295584623597547184890732637255204466599046594220829812779849892962691485104745959864916877476426848874206760079571445867820240114256719299338189258590908462461885706391172057947131150958925763354234117509094920583029326258215452064605643066570703405128828001937034497009238756698663146755390066829194592817815522842444643574127687363796814518295696562965819002708685581343634811035928673397486702927999891746853092536026856077205813786212573735663747149321832217672376474190372537583869678944550891892578166818444654050187990139859766404472925645012484125645162241161927775649893824796322445559129709958056045786003831087562801976642174793981344697635906658478958333073483995114869122781744732441183096368506068893994873335764190478319444407836181370245178661840626134100204665332192022104441176618149449511654196234687512013730936788304608719541751263120082839383655972265019829152950561487559078179012928255301913704024943009297502557576135266661471380190200710942958211988799027449804956487892948858441910307799026638638547107055422530469147632329375545031746866430159477535094981370386346675516424544797022407460882188050491400185205354227244382688185126406803823451437147905186201958709348191007370532380358681399470294731478998578896052529407850363558495778556702152418278629494412571173096785460542553383320540711115523088186889867392223341574610144284376996405250979536600582918390457437568767165231004803221738268964964362506992710049902571806813158834308637869431260002461077022888361456209209425891064601229397784562453229340461020817322750116999821783129651081887261037836570042451990897584847808307315525114739334291838111562123439172804468490280631580457853830021038548513055604815724273712239580669094846563929314171322970711892375170037047753865090301364061446420180250154414188693195127488017854954059502774537094985081007435008921194264883601149150753243034488027238945598418990937199855147407232309390984861457478505975802469053121800212231168521644797182517161354144037098940245486745754769757214312921520501003224624156069081808499085099665626164212825140994042402446492901703251589813394876876108984228691780179373673397545219463303883686429261463533495397907557390620289129347579673000793515537102181468612904852652203899037919901269164015473610903345968894933248927568511497412834352658819566303918489163594085272920744510492177207012424448386655641662054230405717871237399659846145600818819171225695386230333260994533173429810550085181564038299448954785351071466998584165245789680911441254729710531909524472881886132494862430889559172384895332260969428681106120511510617496176017411289926230305171962969486473354375883632363360657930685619594140742794747635762332213330992173341172084145894368002287599847041019047229187988004736474639261542996535891495119859890145544241709929750068171264874074861938608003144395842836744765733491822616200717000057999533026876819853950651131855520894679582247235959780901691977237141641663043901804459523338291338926384464931287316672788894312018165472908919168101482541207357699192648943903415516645885834808927275809627903399156757513024947256577983766330265651509281277553697208604068819929774955737249209649341622666100058410602744957698520205718594699983193141066767329976806881013243387791733475618372273131825424696373579877619761760419923650653932262187915562127357180161919894028464412357565870066386053600411858918822999531048488388751471034324819105543171099901313747215350321916358367047383120040446230490244264724599955496482381832003835819495842748536289759724584742879969835933416783215911850761695537852440205002968246866562195724676234161760301283658008433899822599229875553170754042477524039771105957460360817172530196463200302489880859511699838895531731523083512805482483204382492447154569325907711041332280792744926100553137457975403957141875844076226715929415593652195144063715779966629095160202338321878143808619032069118793900315433337769214376172856892850668539667957320008260095542869311210611308587933543587603012949476375453428437210196290570216873828437435927154356853737903340588501555761140581105727238936655149387183322295633536852619030474713685266258204514095308184680070207256239670006832214879539514059619246937850186040646618217979002510881856747540710390203218972294091668533197312254287098361765794081550282053290817045323867623432072009180906651262026632100053019611811743208424565954955867375932023316612029342157926445932430758125954352628981456752014363425646779618588239647673141741803980472190248196320275363972963557223128645171915450570453735095757678119462948717798558242031569757014874853455378728956470667786361405813686604933082144522454664669891923969028900184913218063674086774209371195994752349408767981818599614887374865651964819095387094887265934044968476987110422312512214316082011715095127868451227317695696036156109169954462274899355850460771366938958763966416761867494319501227414044494995509481671472857128765625490523485724746709250360363855332340377662379306702413060309147268145942968346171973183632718514568304047122316779540944303711628606329149356328690101292238634466700234053933154108755127502320148807621066970426391222792916400291222233577064623651215811686524375682622218459970171538842828576886874479564879285572659948373825193811132031001836445882851887685722427691021376686789767940083469091537949758708864392896308366598809497308798024658131158681444570390526004006605766521049043518174507021040832988798568421608634800039316073474485377530725649791056242214184380146817822164019191717897726317391657822170121562230085896669336002229454381148632270349335377135111304491793729525896978346423691312980849330513948551222378704264571763514023886163759162640099749401406668444050688532242909169938995198402202930558701508967790053974652269387904731028868722732770781948751522292480818584732966395109220965025565040830166680694834678891205980363612883915284586714428264472603075693251445087850690024005126546958700666635401096860264904917704530305163730423470134604482576199724006028936510947410593396959679461559032821386705330880958178620117031024326873986525984055512212943467547594830467839372843940109293507849353216231605701200891525961501831817872568924471370222774822744293939743116698543553165305887027416804481662514738886820883372190139266883411434834487170174824159816608213547780628287265704763565071685153409896054623017364134238854661449221299569657352466999893813894462007085645725074407743181834749549918342267771227261428824563396876839263276043086652270790381855495135504879730745498795869267050721682503112380175693280867254278066033473250668791061600135867385915973188930494221667636391710900528324664755662694997984830260075290637164229444953133842294142486676068711470702634150050387651318603812887714253871640580232345615092542809860149289613431701021639621805760586033980807334404555207636745526224949507948170751821197632056723008854944863739773946514406575961248914631024898195011707895181703084332238977723646200730139770049390305242390348929615024357314599679225577574078531695975772170025391302915477500824696765065506378952916790284098158009797173811182054017047456666974223296007162612566021587176238140213042658151359844300585373260906511210480795684178864952918380661019125969805991034708851107778973063404261820274179246635715526705626441037615887363933423325462359850040482103431954325322181706820255573783177845977109230948039782231811134879025285821262179682571608398250244138976439146986518837491264529911666890602442347649733887310616498306995280184581837776136302483238461682593931450905167608838410154225098934194170967034820009844133104507173674992544902208726945984940541307897316208834314186990045200558226022575639171417879223378601134101984244272251017012983255388218301113200484225202980230951286832606938176160994907541377957455893701110870125001386955192169478790306793936539823545747497463971801668160013744076509959811895611640658965119885749045145808594655039417050151979510011009567515635288201875189571402131716864986065309413876572054855282622654017200736132098482228448302108382860004586473891640238437020004844599640879283804216740119049671026821196503477328183944558410005099349804716405454791838338808681221759877630469420399638992892059480251410639402605602777273486940535419528057257461967412667136336446661158080540616424902067596004027724971517397805259421646606997193659658770031919681132628799873497939755055589060363771883742165807366244853637703794865619962835715588419808435093895249862872852030433788164737872574018082960699420969820767775016351820326533510912100689266531373191416397171254893840305174809806823143147263744797784875709836434107181130858458808826190280882337730515735734597008451451538854986896354951951422521589503126279958316663001034150572268751905649858631567097514774268991111584259459329772735363148916299602671517280842064100242169533334975665276897193321576979686384976663972783306377080365897702820340360759960024479738224216770942091592864272770945016961715468881334223381121782805291708511347724940551659130981993483693109922339407938778877305061009657052694895900104373402762065351500435358469066322985354352603019218847603232791544602335239657691433719809805298887390903619479222264709793652365739774317053447078002623477522782565708090717645715538615925405858098126079504210285444103502826526158188941120662223452422072637043603892512426196281372074613097897333200535770981276983633220249397138517306417803561641815314752236667461262845176848499837518255051345098230914762698950854879360244662551659241492451984517270130145208207957382614934977906916510068973050725260241624693173203993254954899914246644061923373822040093004081808041681495854143212690319593519017820385032390512961041700996991185702078916944297544234924643747131123491989449457687192325810307339172302506624070384551925977989551242744364251028839200817449015163350614157924394944562441667182799954283675052559218218243472901648233280985310393865832834758230409472942510515868820969667049850269693771362859018597527399137990898577032070394774832581529591864984076249844272154266318370184193588234646675369682153835918309319464207789901230703088063418268265604409810724552330057008120627949834984147397032525648117507326232571599597130765675477425305158391113041202262176832484135185016342291422231839634410145680850466466680690979842526787690971027177554621522522663166663062188650624891766433324693971277432925827850031669297978011661762426225363608823649457151724661507242514532331623194000045623778133230635514073106314304344432909457433769023385023223395321265974182509486868648373972126532820660797271819722694766240041952283675261104713399318236254954846912733845557638359565305973633459050528855561096624982633579168850451222237948516483208142113693719850523907148506014484625931272764141062744334383932963777208464835809046736655285099995698822607234532474536666153295734412742807674341279663291115221387535211639936042923749839021166710030599361521526621410085458631371598170027663009893312475092996712123020959335338924903319295961448510465656469603312330084427496020025078712235709389019385020903974417234340774255199675516889143327446722448028425547286301826077568623615608740210529777102440061106047186233193830519063792022398580161938982324943973393792127047632578377683470234971949090522643000701879562646970389347656378700992919195530121377553764369879254168357905373680320508521416292520670452446156224656418447770131727543541648083958303111372384322762484840872657140640995874157270387639999461002901529005502933159629770370635172799747611832195459854339639553013327777462947196895843858876901553856496389170005313696333881027127477725665294697075229335005481276179658598151628019306246185489639963335152308274910267408727266056042150251630909823290478522553230773491225542238677552599122122900087217106345502214715167203475895885810736601315435153974618295248781871697396458308581124019831247675487878597832611299474364475180233961755635338269170181515794327149787201434540018656679852906737354945315335137525465492965486612765433303724584065193509107123879798006183897139460542132623181704053178465683576443560193713251669295058897787196338215031463842309618432910797504664590294129773667201088539659286237492279328397782363215446313081525881248151942513802437395550890068173934968707824101480726535311797744861457896851456249305980300081034844629992606793013446889811685229949010609336549160865561026616061159405069807417108949121350544133779836680407668748570895054058985601385997267884882076831747848531570788344148440799904004126392618163902657021560322571394020801731754953203386823324222884841557177321082163785656769536635096105680699242877590593739551118291880099564236183793038675231735138208060508592049552681079660048273007866789704840990396545803607955611251726580716022797370147251461482093392561377529291695547199033189898427292993837586290460472456235556024792925725392764660255545251184815909819505961735859260560802430381785015934583891894840954539041848610497966108790916497110633384130392541662941236619654973062937447163944792442829172957115028585966489325148161539834330062553886227555310976154229954315030043152183268437757867662191702272862202875450862962268876003221002268659786897158393921490405409012285037052320047944967121296592605361951664791793464325043130493818187067958685015875326983495226879040262435988896230434125944165006877262266907735524734656307357554549812729889148785314618383128794688918118508510093762970768354465148224164523163726155231695781727324623478863918002463156631181778956165222212623359121726241503555960602335877305486296996568030823014233528038588611419285512363399462637299414853627780380851783942286848754224284158475252047603444055514310210126864159575489283674818807808316717848992095528164945624918897148722842162444098438918156014495409427595723453071930961911226224767133900834905837623481883292472079610828296680236998273732989100744397126989283921504396432085831760409505559691036371296793558877282352558573247961818910714067466591405427023253753222037814703386243250515256992831432631896499577034080202527013639654871640350082020848490112996724597162897857963375341629090084879602506225573229192565452184082193962519109675058305968462943962408172977766103788863955857102330460105314337780213823229848371483746312294578263795374380229902460433306335017050807835654006208177079861566601991177541097404013838299229815596539216886495261991822873386661384075224513428496624084978188173230646650475775417742525501693505997380597779109352108355621820472668740357592217241477332411750810683104392951785062747520770976218089958096151880915957500541446709691851019509891999909879099263815006698351575578128010598469925216626608799671799789116307304421275233627867116303094399225222406247663020973632590816417578823978742648636708081001894160891823718170611894333931018323725442460265953623575310389484041500638675766543016802474370360203501728230521518255986276935374635148676503671385793431343081848899940985963552873706874351828359828010317647357164711871853695143764704934565635060353084257285265118709544349221293569527249479303548960445307784382867419040916223974909210362476520749725256565223623950312564965129184085231456572010439529634344524922698079675201555942422869681485653140772942837207892892598411223795576842986717292246918004707891595173361290538427990593680087428063110732966570188998487050848361832302480010149624065425414986568900017177390814216621594676658632451019946475766292194133061947177274444235623252336719625529634067934201797534148447123808684778049213248499068235395892549116118669883604645001690338805380843048149720272700924206128441171957341206761426901851126650405083642635408988579469940734171022501121752621064097057078096608690565044614715080805402583970284876721149663144691658462179431835324137417258248306819797508339715663203409801890976429384849032305639458703868503810109238630713877884828130228372392508525792550032838250778209459712926852426627406695092546902391336144803709808811792647805820372303480709375546247758754709253508391378912651363901941536881639114921738154982995287612112560209743526128877411071695514858307583503431242187918982204403148263421175261303876834429305910723979252386056464544336230807502641576409069636145329623591585062349791095840941878918568402477000621874717887193840722324107677636706939829648565566506524203904938425688032410532350085148876818906618812549510697342420995382517881311119104782066508759813704360930951899666547521434590724750732707146811390622059661530947126624286633724198611515990408697301202524331580944913085261895461538814376285670771054651869311184291792777319282936864420592034737668343527411634379515613617028835773292006658693503712391269019713961492130818212311679801686989463769600282099141947633843859648224462770543100722160401394633990539441592426883801805698011312450965599894827594342892173743257434778458622636407789491226879619732375496485498311037070078037987183995164470695190417754058140532855276650561887554550251327886620871443214555658913815282397478458946491816574300482990274843626259375100525552506242693271214666320661963823896928948999604391453986739063100964860637116582538060915911027990256470007211147521062450415008873085890142368514049569188321619202305024835021554581323265765965960282564760943226821835671203987354466791690620602640961773603511475121767188841554579008325193926736954139779343937787804213515908240474231259174198539244778767397353073550091826912883767335433751388795470252433390100538384232977455756264041626256069796889270414079782301130261338708711235981398889796751526467559479224665983447178159291058575157685060348401705988031230729791347366266246551150403615892653258799906620465021939255177976628545010880020717582299031623596968220707849835942192749816672712541581326506257474690425154660325570872014498233299850587267813237334190311360731639972847843239721946236687696131266003068706767902387980015023375953340148954702457582687092966387718790285862876727409069007963905003897505556051654496004348329087056139835643895533519158267146555935171571866626622270809552296933119394707289867476142881381292508650876952677977045813614855811339032638826862760160306038259544852625087280642255456290235985767373537870947949405762562571540706968691009747462402799668955908277244000488361756609196391327617504790194333841817135468665795387330184999549333036511726676771204153138751471578950255722925222143812488732174030694442903818770185399994705509581283491573081544483881750150460073395546946010106006586947952923043030904787621957760330780979756218115059354518589601193517583879584610771421005275780980798615933196153085138277804759243852465876329102669564341384560482624897685355606051218216942946818750403132357633579241770361486587993817538621828486984690122971902794118860846139015904029773145890653105339006882679273300924484648776650661691926248666560008446426881299926987918639188414434104786065299572267034967342288636062677430099100203838397669107870708173963437575198237552887229492572053131466576784429483577259823152485535870517325847605859907353459499231154851402135066383005607672342702210558234410763492890243294816448808269727337832769901171807195017811407090155071053994885366717253380314200659395481926755163388177793232890455097604052498379988657801936110874831062821522776955133416237493770583796314574027445342647708838607581730023031939085248630918695369242541391883276445041509070792212358860694227796618830722955724580249743009163920899758625870339610620873629794149985301886566039761086635435764947610232734683172157997109876047803623429473263061926741672300143369280175429467254900173885856396638697907825444241601233612396628783333145589626399047330624993199604485217829059917002295161030602518786626445556845065379221485875229600548694421715379348587052517993340452371822525794695310418789287243120821905717340798358780529351256761504740196433850528146829907588018325457070179786560976455915493240382045513319806119373792090277923291909727936251288349390259016379769520404041304456909047727828221313161798695821418376450672353837005707441984099251154550527350689945469146634064958811103374701026570274884834688015680266805748376392940468975392183009676289049229912114986256606089399198834360300806942236997205789821242447892029562843858599941774471792051834032632649775665716703111342452176329942158972269189731436680914901612871543577394289576629079003112252936956521377368524460649600135584497277719628747907876809779951480623518651889287676830754643842361377213438367201881361081523569415275465438432088235227824800684057923965915495678032492169507682250772266155503457945017533698434319876422306619580551131009310315425389876446442773539334016132642539427759977885542489464955178503796328722778317083300966288781940824946824493002675881137932967628667305285090242238636274127021890996335908035415185482966580001812417845967962637414401494691031878056155507038719724092585398756785534121314033590949048864895052685651547280312826711110947218804815336581999704537532486017559705203107308065941705355621684889112987056711055854882637905705784656987450083402047125819757965611622499405168036003868307272080117001265870423956435504048619658430828652222665747531272111798010748165981304556457195951178158025048681033964898419691317158414268824755107160237748150679356819728358610281769897191692275118276779591883985091753931932804799347414445573087157187280691849488634762797726640399709389482642526449053069781106149948505206005733549012206572074083594377582928037797542487994616483667155647460427983559495757211266939903153105935113132007220990296593408481607534531792420159772325214882540638276903121420154297217873466032320257949930388208910914766950647240451430105540733233749787914386357706468903275436678448776586245360397736761193942376659496447739346504933896099770509550702059978393952563584317769981062759315121054162893343039742599087163649230557752752180892466233154525561171640828853608357784079461748395894090897308993816703089206981806381877278150171876531068165674350707516900219309641655784718054444122509278147122774927816035942850687605423851746350447585159910607746845438421883275991016361656692477946224522841692592552634705980812784035222248961542077800962484874238544110999667129582969368285539470019154003643775118861325176772880872956061674236917156551542511542120132604497394498794128948536343141734808102227351907983701028086216210455175756431899736941398887077230979311268666078306954799161511703653686485389468939805735133777255632260516828304946811142854217864831573631438933853570794249915539579971890814490415994349811118963731596878949548559120499921201238248136311118631728705531642654981104786543433735440654505966744082889058575422077302698950517581873443568946180813107738602066143878140379542024361668238356642734257164446455261777069954633604824305781303983379522546095482947707211239480447910279242330006362205455345008725288661741538128575261492572227340296728151443130643976374096223719308571568083429473369234211328292589376969415354345915293245387499297921049271146338985907320043201666762525749062653961461195575095917628387428133472403922102609890602965659451309255496977969896413467728592863344650168394164621272415243481297555241410247830349372794883579457160146440286912528363496740521722123280688079326985013240722756600331527627973829421431713560403946965678890415606873986080356106081118467228404371980672355268548148014520755744312445584163390982297946860590011598801065292669651225021326035617996996228258568602875695383869792915697632923280329870804956860989256791425658686711981111801300861729910955026571037230278046831331164818710256350291642453625908181568287092781318473095035584476787859493974245987706927346369982946217952739306639242798753997414912011926576225394959538147595262090786692293545993682963854975820572166673406649886740586061585763508417148677610244466637325502427750221712260956085705125530078876489028780882764732526906858840306170837470374156168681850987934505141542091592251588989585055894042325444362141625269454289838340207122333496947355305046066366832846900116129907219700610205961679068753252292513935536427435013541944338500890960682400142429590398533251671463952885380825800839786713382607898739443394394026399006980692632598829745984159451519879349295639473274595232291636611224532467866333159111328708045204129737147656300813050264000278263505872661245660670823004016528319381894882753475787333621414990416552430234923543726603169713822044899141885480666363743548366713413667482314096721075405510950705595686395538929852022036027476716725247891723052862176774465646689670590392553295351606427117834268599848321491231611304684362770487854441190859792746667310859625192242796715052907692319806883741706446722080961089570227714627464286504276046171382340115214686393102685001042070923192303822699495192886597410005898283954864476331908788537193756780967007336386268051565020727851456783299286033058783668325019473480565451674915788119437075802265378144929003446006148302122570239823392961681173853815503967070472775370852842583284975341310148518591519828301180187484093009072879286775118448593648153549433779671163827628883859841586058316870328526938332495141014963499154306393130828832659694224158260135519854490881060867961526151867031710241557770374330632728061772550292856459289329349329895505630842573469531601457835032347759709901101907006345582414970554742520895593514352493462878368412990301096115921590808242966505050105456733839586825680434668523502459982357227941045618012508418489505952191930676243814584599016660411374438934005038746298483291954919921730192757269090723671657587830512996782751604819929236714487792118476795831782440338461072975308405908884875714995311355034637926605061938741115114001200874994203578860059094379970740286581976141383090042840975764122390020361212814631709577122993602090509752390475285082458287266964787371538929433039457891085762962505111179703505434238511476092575901173036388170089096939299877438892118351461814077438139829487962716977935785522403643497985154860521729640810457636060486982794317465571609144604062326917533608020029439133102360022221002119767335279090786196614930006477139089158911440181737201680120993526693927237230214323859389813849608297021592634723100075345476530233026933500527751826678058426692420320807935286214538555589079352478884425798602006060594347016100697611917251570665653981349985427278149289620710014998124084116772728683016064298208034890858202242896088990750514444066532010489726444702578801902284991074169626430091566697358520310678263351239047228887580416573087003930254440362539520625648233169172226031156760786536121837265268552684658916286309358399234292371948355936898418054692771450859882280067993271429818780740766332721181062750423941741980153182537193826625435698652240391668592842832805707361990734397983084651776228846765127000813496950587634134055243563917835777739885732498873238076618170337175947089922388290159539575686356653734124128805528982250184764647798475718060780764793270004802484153026191803928157710396049079939028858087145439636880647333337888277701226283147034610319206011708460158775355671357664631240987564110308625473638767236608342174818592132692925209108637782728409645866119101636013819932535173043793761746891846670400901504805381495109701090253652019183206258417484290037325135722234050725958150912969622414377274406947717305936427377280053214625584049390284643249871041459318117389571538787056050090280497005112114987716055972740297232941229626612883753854039167687784296943168599237634252633438718722503469669156937980552279162973591268985096739032640233301337100035852370402768408131564336230474676508766654582909436640520490689654865119055005174590732234961902321195331578508881487858825369745253876287647509337986970407546185991878353645911723542729890931608522663127414487109485578678463158022074075110742059891424048461420995105779644432412574691489322589000373322815588512998921707951676711586587731007841925323285147855106001395623388272463255749105809444533866369611692496649512642790263468641354561495472363776098623611929178124727012033931621637836208528080169925604362932278785246043300064642194436682415209737345067842542392719364936486892854632675338013392565981176009213666685459299386922725934276104788615886584871232389992136232657095195522825797941216382613841616206815366191753400299029361870975660502376896020188106381364043450033798916898615024423962752551540075743716002096739785726817471712521260958822779654749618942041833670957405939112692241645466672628790240914031220746066817645267964740437157369112347116285912392864829509964344671288071728996952200372051799620439586865171332578151693022494112965855546677478159888825969036119600203100762435749198303360993286980582653028582244172889791629778394182886373236729637502616111539298599283378897577064725312387000448789401092326132433952343009911055863538383678901890993332185409467198062382525171065742187341047815169581920868504635332099274336236009284256209982524703471313758166494091700000020480408256769739119321246407466330805818842624385137385095015554954328602490531865003917176490653133805887541398881795520447132924226448665367342427526214937373188069288968779529466543314958554243389582380706204294979490066274021563188244163691833663853429254190146359213859942240266623938236078166942083291439631000418584325819694599808733174977655390641110143435618594455152984780739742343160279728996068272118781624882953237301593503654105840878524909878814376090669791447912783503053819120998468616838912381131209391491248062316872392246613175225290876689227143564415401318835179052475977884203092666199275505161177450091965812558622508061888092526596283094973610486150784789478344987750818390604606926830909129749222737913598492176649066667258644920496893793879908983242669990573077280462850574837983609759216769623016540123271897734769071745332439964229199869296123455357429376844701113304171012793935284660188739582461239885922618000238779243938753567134693666825368808039405076282591748448758837639238445402552398455392878782865711903925068089623149175113979460631691831163423277732755581931433840088989561890624462507438973780131378857566859156237779103369684713103664840510158455369267020781698012066027260633298008133516164619220203635684380849536273212613637208963255624292477170667377514213905025167717216412724018117748987987617652997364311299274755050459951655764261983695835821738979024957356732842196773112678710456515340482046203356653180783632851122447602726963776829479161463737442800904194100779107031397375514604990828716919238935643780160575867319410581386611369800046683913799657191002105812646958586137088563637744375353649398628773260991505150440733726865577140929167523396991488942684731221450815110816636305772914785576103577004749167782467182537330394850363233683735249075762417315932282197889767852694802412850433665392567969026613535291496196380495893532693887983428217974034226650830210408478322369999350077128555502801161846080447808907164547083387945790791693520338803840483395917530382982452013809668683639837930929739566272451438948990164360075680869469297271745935402758716262601620029378389594191875725011511734382633602717173003964349994776386392546104193863933021040694970359871126624135823541317972351646012087491940230254726934523699246121984667861152194321264810417908773789607754586708995736853838192056917613213982099792155167757627636159347848465376111812544725236862570719388547202519820363200201095678051563484631991354379335648014151740487204724350750033211016229002767905363846186484944611801670216895419914854193813834276802539276809448398206388319720658293516762303306685530562502321369327966667001071963835968157912978849075924877170413432830115154723611159447225376734818694520725674371923586813537109397190953811788748141329087525774401685735153029586950320885827262741510902383852534958046283116184031394973391085758022183690093906924794966422844848039212868945921088550666340323515167103321584385418735363623796849176456752154397171206615541862920525258847943801746382606088288462067222994262147093813780054243028737956617647550754496374075512466754047093618141791062283466301233851937451585385040379913579862719773895948574523274467214344857952118294538660469691293987146798947520889684333004405062131328232205097427958933874217023976664839579931348656333900053164749218843522571568939832914570149407809666555324879830054755319275523705346683693198298732881608251515877725878024439958664319962869183913631389603072183864096169993513813603779836596519350184946265887748082536666885927083915993467508444690434805442977224585568926217137515403788917176806887820165238830114654295627883394570728472730470510401609395814155541351085590035571011545754057289616134610707254527344972329619587170323368583746801006012095457485172778889813264888246199830694944887401111265232240316093353095148024082815768828609823767864328636773985051302932247635123663351617145451161713826042891397332183509810360461766660177826230307508998108179877840426383637672461780914510691823096768102847074309890026820612614356435078092284545685325404751963539466499810071346928772227194510479969379355264062967034278271069602851886816139019346140442173815410612542941197217192892758656624156557897606964538321971625090475102492483539754855949547130354272897978220697987608454300086898624741059362121719708380664299319780818360292478782616198090820584093383646962610137550147614291024845960889930435960981562698152538810806683618484447868243236369114859227476521327196352344130149525085438016094875008507900155863448025018591806210129671340426891645720792456725518073171510585954086477223055273056217689427701279721907422302732263644881226825512989425424062686493217028995748250260629341616810287822984936666847826917185133136710909202825648545067496105115981611717846374788060973086556816433948483764103064320404843966778510940465011088192947433477652447127406456689699126817044911362891317688392773692368297693271505541061788536313573723465640711984839537337865366890942527459852033537230105242434184551793270430311583071331525931355966714387991249548088249783159572888008603484392364250993703691553885629944119058661616826729035386301979174431121419413292693224263049679437232501645115821288714120297015489828807839040465062729829845179717685824415597586085048813190820679811401803917233567256365484911672499799999874941150168192676408415076350849833719282751225699859954004724151529569544069502891505373269208764192980975861609538208428366049766376367223097410348924487416991282828251282888024581386323086418973276228050092692658151564507331117197987107130596154038491432858685532408320408941648428149754201686568645831187679168356694305885667356777661265975022364499861665975508430375254655674080278848323462633764288533505934346462868944242364900401697721751316998373578267001996619836495864190688074293761916444949124160912658335294298135440917772003429339461728585494818142129539585654055130335810907304960123352965359101745848700632754281262695137583679763865808595690298430589895718447064816150604433278965037681930993646158584991765413011384739903442138027446342720547544499329854516938937831530498251840041302013081376373118578407694002028606384487441963158700987479052147328276982665351031111589391533323251550082109789616145297539204859024474912048490479601379983758721476925928448567369226076736116214872871759587116435819118410258653277917862810499046882712586331110404544071016064914180464471741339109539728352158300607839798262112127547340418312384544472173860597737488306140401287406040975914208460922575389851740722250647561782343517352379120303278067752984818961026865186730147291109933364811561135370998604705917609335565799267192072605657753758632739042893521159258077008642082110139366449858849003090563933795968397449683843767133134777281756312294416727297167041912830311695189788536268424177658290773015703951826936730268343836221165873101963061091544501609268378066008498318814803042821746255789728379089957448445642450151356541950100452458394732421323853110656546117656929496589708947426238542485608408336773418505917613999714451928623079444203012644132569340983375484929214011150267989244502771476170823548124848747276485255217435937722751425180414609127795879780455610228018748563776433231807259305295208695889481586784907090787060578759197981218327615706592137666432504559715153440952586583272512384576294207493992615792933651021572824207547529423278366540723290614650969979845948464703012660440661209963900694321927039134247574055231675885859948583856512647243099527913889274100033012827476073506665658973385067212452097974178408496658160504924180700541947261646872789520827805357534319083560415252514983623446923473524032513059266794706862561004419869824078710043780212086085344641895197403664519417187067007505731586303977812089378786257184116089063044818613895427666839731531706795993018606946330248826342936451540482680703623288743541482551709915952279685318098407436655665374440887788518537615891711294262498247067647073821547486961252874852521420837412920196012770498077184037715058824529495695389121761811805947660218615329992086065008015873700399177691912714662771255646398529877704241437869487641765008331546110439146211717479991639819411166137429832338271653734295055420940417661022318199790928214321183906380974487848133037183373899385380462262328237790868489202805863065900150304974340436523695249898029326333924012007573926262233752013385527690965515009820244275075759754298789652506809144381427987516394143725789566788487921142564180733472315209012860518609424373211106198190772303592286574953484199855501690911174456288968852011196661719887791648184938161913737085566378598491310495993257499563294802749926037846735112165599081683616251274866899395212445503019546788540078914766291606387118787455451299722498807845591184745897251236543589673116312371790794736458777131745816185406201162187467610642567570517250897404587344945744788109121201108288100609393747377763755170647329853667228904841430066662361066623841851228445149848284760018656259440270942497146696215152723319774290984777358582885380942359426293883052625994512239200543639965872486897803078914004447721908742947008777726137819419772690597941068156332518111325349083398828191283620038573082913124412434992277984887432992329165193204650214640790477717061708705155169994583961067954654629893281619805350778386907131732858940893642031402862445302436111257519687197066546449952113904687395821043039476090399272131546669693704274910844649700118744194282774575884232498056156128093369658820831965557523229165274139570931240631861560629977480362125062269922122737912741255732690958384356883495687904953010408146787106087560712005398049469299616634964558273399764958477706672367423939336210693174531027024647659594316539324224237404238942819220033877669257235080924115360636543897510040842595288350733374402305834399490060992341611323216400398797631713342953910426971626038419807622771579983341818389938311076749759459737132581973169935990831143220500940710418852522019855400360950194828434900691627376902573638764361212177584976875252871170302467236785756387854634189436264572597606205552766628239130288937742532146753308451736346587240385059170852887771041581978860736416298612459168956892659203838798501762075805032188130705805024308218141250426335594763788594474833956634721205057050668261574215464973818918302747711406601377388173040513344750033858955297729017794941833193472271917666494857357717386101760504949576512087595842162144895523718994575771400772054355419049934204369318604835632227038559585585778468279305566063996386850447329425750906889857545342177617087616623240442797003131927388805745301228057383929207003387829503100999711256450303698877630122625995640979921175498745293231823554915637746131820542287064148598484809723063028118314768418827961768639589434717521310743095654742101037587565351296084962439659364579901264591673689903009579715543808444612555321968682519852366706844138926512434628607867116568103681197925023366864437509855357859194247037382021850090817928676682751170144344304605500071606968242900324660114650005748364311759951611108679001396856347808222840841104382649831756568019552482232782122581681353595772114026337249471288321470610807507387043332690681829570266738154389503244178512673373920947937647304509325656465432039118380555661778620270036770581774738026304822597258618496026877937686913906316034661336969018574773201722919106562166091583491645459636346199571464901613646804307830029676456001279480709423954331521071760390906369222575892564373046724988982554233177308527846504851398072793572473894536684075560696433762773941283346166274280830456286381307532700446006039058255564563524917946412388731176744882789973123627763482727261561965004366573310230577458863957457277579731606319549979556542704735394804504693646084991652812675882594775845375108404333750858672236200814406137441452591807201224814628785368588959380934667083566343760206428154289031306714784167234743274527642251288235849997610025513227447879421375365736102478392762418905775042126534771430393984436579574156421770497502684981352128869272577552769053023475553207059586155356700156051389054118429723357743797097796828587995111459549940960302176089616064520945989127909648627657765728106850517738778565551569307123785970943896167678398175229154613074740294686717860061563770119008080228208375868832813117455439230920116296704294716982489680495961511168902063371633669595514317895171346144951237561775579089886980435465279568148816231800652571227142145507437954763798814441996110796745538093720995665708342983737990408306338240917031300845449291050381227646784432580985425537559773126188473587570743482628016995135280727854679142484834716478741945020063204947571987186564950499336514831729476346968306795269491363473552345516061103056585344321906423513138243425744787980724303548139273108783943158189712961020501617706668371464459091985957555824690231538775261525267115230759584639106938987104672159745777883887193472677318975872983022820073559605928901220315216629908680310977847202144250082145289178771510674431932752481060835955635395040330291992247598848167075551645381013708086194204690988744873985426216909679259689973699173418276049322343973107567589800787684628628902092387983882484650288523724748545598022560744002643427132618257707974992379858236556599614167509910432299984296555477320115524720735013922470906049396797794595557588122807369845081761508418887196064533891105936989876767569262883675777702442109342097779717048396268868234602746681647442300126932483029428850683229126941216957051621987319943597884949048206582811645477415287684288263438284781216855780249465918063631904831246496653517896801830182301374251733611622807732556513526223117592967915000411874616566642905747991802263227104535692112625156523663076602794861929235027550367029681151982118148950739473482889735570822258224963279597408056992925408218155501109334457362887222772671121475278025589290890609565318247207789414018317855767188617046723801003445831326559628770466676072869341754988492995080041695088348409879489258305895379398126813183388692432319830621191984851984728132289032510475631527116747058702917955726343527645306380237339763825385187370621473478529581351883955946489242199461161970221850194574863516406062298926367208486004708153677830595940807280338653620905199256426148815266437009795772746601855245676226464590517953802096252832981046530910116633930907868766926628917670712129958917891179161000480774952053055012343012961571179222192891426441223432367421425246296079107918221327209756349881136844391828670257617518793608264929953280310617729773105499997764371932913556606367401689527168031117389672051135266664566455898104348687422483968332621061055434895212570087599997884497040026023955306909427682817176069689931432172412159393658020573197176207692486658797794728532998213855412553887226518138911305483275013007105279798938206538638012830800707108975316357949857344161879647694191170837619315852368691597152245005933822658026448879166756772801134646600596402925324621578341718280038855196818233077844330036157228386847653097991131026860895229623074795842422836758672949846857170541085594115444160026194361091917218354127136158959815632882105293351030910722077485044027657119156658476489030870941725724167230485956063389389188442135697721964278835392799308990198461690789347288752362621814333114090899364638536938660390144728222193289834131246230369618148785242141514753666569731829877327273989052909254012660678504665908519462716452120650742461212619120429866690836655510111939671950173575245230759188247321395467105695718491703035803975071661853894137827515460082556929163807324112900739085804448902886413146651161390394889741937843144700373733774811538826219173455184168596075925718240800666609778479619172912586377995482155047303635880599072557837265824027409914851994060225420764299622752745966354424746748006884876864967105420382548413941408553505397367753533541607450541097541440370512757711461166649274439704781703921293859569855603481127889239058167855479011543112338384549134747218727804545062468910786914531191872720402850795020333360904169591577582977206537649238495800065573539079748254117609619301496627543626613252711458563002576899438721392697175289056232735075970757429203779447481780252380117178133682660669307119079917226762279693301967516092811181656975230227499488375948778930470738852231842045167185984007634058960113658265911618723465945918884457762648875091240001171754475238573021470982299349232574127322953348541261159850530364548220815592586002316257686726599749962351415549839976797200107123801624869268259885904586797455498013086193656172487586997524929330459880670534744377404057447868352800472010792169780482473613283262985587156759018043894829201505371419847774337838327246208068907052088436754477981104169876646727885660059847523590087561586863156358390483586350564576938642096677805155154539511982665947814058933332194773775086878007559931872693928491457712962392728133218551262162461473932452019024341809158512999377737993654951412123075080120980586225186779414317932100299038266919931315099610782331769792831478341215566671405893589868734901698045596498241433039717327964624944743106294741288538177357766697379247785571799064063019560398964202815925198567344642561079378985159051022426540649594486131700478325955951481515467374596955721671060569662130804679102061659619490064201869407347687281161814307559440741134892778102455554319667323056461147444330184954339827732684542377109897344675353527247699232938942213578693243018484602928543226795810948346624353662735576138646570485783831773536723956468592713483399174882019046862255110430195904748509221424224647042255263805523151742807866558018350197331646085973598585800706933560841600398556653598688593547183678204513834065428755274891461123124688182274765697155858085377237098972223867534702383792618823844211044364713277142922440794821917819953598910519506411119561740190462033403545276818897996544423426047359644269109462230828317880663922368452456561924915462131220193339775819648646316925296732796288747048513636027571583512398658092185596489267528522391719224049121139313539563892829195448263502802733966720217174900232438439251848738853493353003097745743883080394201589577596165793687092666840415080963701978364279091449181805918234226480103888210604295885197795679970559065435484403618409239766691227039620169143142271986695931356573663331108876100876361249521913129528305163291594313516877823955004244102139580180681423658465140667234810418577288906807724213041515587137160216499243277304389470781906364757749380991540048278278154747125453401851578063066730475327387232264634358928579416570951686493899412925650079351035141153913697438245938994963336986239542969696354586403765416627239799591524908290096778520026242903655924547732370404445683924057746302144943435020269873040496656620827917948220693209971844839061644578765352715351105899486550691821697605223852942021344332085677039877955533820128102527690428666659986930222290636808219575887351240873880099570624764431692666127377582023046788503470646461359185151521605374213378128575190908578104556078108886142906260166236364315308189860266308248067852793186799694752707816698795370142315367486867129562424053680525495128542433547980794834862985609676358488373642254713601504281425854992290920775712182858555554384448439067580018211393649715546630885327312915955384711416541597432032221741317534697761494178259690656522280835228775322420383225995944100958603110119155880757560214073125014896218842520495260168356223974395254701543460777337970630438267700700596337622564960656656512302772390802817485543033788662007807998090690627744620579441272589901937705398391491835748625909363750161259009329340133505209699823272903672328254796686323823692144799159065271032229772719980606738097784094829718451186987510957653697483734120683514051174399682803812865862261583372627815606074184944890568775541284160834529679804638718169949239130137975756284435044096975274235576785376695938941143942849295796142703204993943236189434968594602357150357871922885437525944380114068623676351699804689889529344879669057971574578749986737492445802018490256448462450277109413605562266529236616496830760730984220973870008091484574209260729757501710640695704856129435261708153759812699688426758185563412156700004604799446476021767562215353560103632053740145861842086444142332460704643398806339438015797408211649444251096425681308705087786605327660485271227026826898859739110450246027415713223417677188931774601700691101331490386674520677484503904564818089259420039597804596131070130599685948863080833629794362344771701090623354310712505911475412088163818191970666286919981035210406235359381382651436948392018697746970787208274014506900467378494537379087695506548402098134407994400146554436403958001167967405681076031579478130101666781387303903847809263938940116072685100646936062084547842338604102658252142608526493753692241885279142465605473961525018038737210234394921704997359206907995142479269065372912130183208316622385435668089923954055804237360721776384960762182446794188043178424701494382849930531183190226814533068163928857569869330567571968357319569932999254289736514723012642932554437756798856922027101589163953354630084230607913687983867520613024335327753345883243215834463213272715240570994909054667143919766721044038071813234915225093893202215846315432882204401263728277809371186937228566462142977193827946425632555613654322597824234218052943694582561229208378768799948213210981714904195687786274085208107773122862640564014446483572605571888268720777548390360714674173254750820428892764481930218842995430966211845187332477371170861516568851586515099372988712289553957179042360194367886316815354815961391843036844747152728011366360408313179356768564689961641720492813278050037383555431490953068458634890177137632938099979046936639745082107258698114115690396766295548419780110668775348097030537338096700714295399199864562463089358096374007536698462306168110839959133157104009604566316213109183046624949546360253829935107974284256218391132385916097674923632996104531930059138719525251192724121980412570299576473473507962929126150332012239390759133575896109742015869457141877877156303361019929222973844811931868797941094155123673902823426064311778434818182730304649000965114703432340480674735537940469878354746750162671803445188394608418362746952371873585991091970686135463225137088859175875482773126301675287797175811583932995090326780184620191675925283509442775056984570911292102658590930426292828641132490487080989856610919490367245770406078608699518410048222446293322248939720471201062560692627440842035943699388557268603222948266915889978181722224456383596588270896932581921694904532802199235704340051791838199686604168315715708635771640061843704499885227542896241511880239863192201346385674185782753861364208905639643600776667484950051777748512140762697679621501430669565310854894595392593441126037369515757637575864563316278652235030835388764316758536278760174421410897388152356066375023714844629092108394004766337530620228774416135486946710942730805117155953147860251099339260061234966587260775309213671889524838190958446171054042004866665222318726004729569546733591676802010084514329763166637276604134380738304635064710386204974214603605031811894924241050626480646519818967236683635127222230402922483632090943013033817972755631903547635269999090988822165084471783017289903839375815754854630376252066896395132341212313294008959745009689450812819380433749641875459187570001296835081150050425104244305573127147094676060913412612720676110068072155086472438709253286148271668376227607361427379800575063513058907724053657699404301777134035537744145456507585975069812628014179069997492964166130424376909812901184819686916232152894265522736544223901805885896724304436192097670345443568698574782990503550157060306158914754939351898076197225258564686918596601412849322269810842777887097753341063825968453190160147924576834368203186409908977793786754732587227499605080731766981198244998478330810691788909497113733186058761242778549160415958222032300950296052961631929525724238004772817491503535637156902476650539550058274433798704179216915169096243387454683530088747715371692609172935292882554378840579838036045733531203818103822695503944281953903682847711339322849490781383082780934010740705730683669687277921007767875117446787465975701464371689475744023294147615652247751727881507355381025160495536583516313579402556779476953240112183183236794319778661818681902075036237423287096233329944685620844740376066379497226066524318121137701257159239461580803983412283324383959902230180082131476469231433962256593245288047062357808179635998100115184754309306737473005369932244922484719206288731854016015632492832582060612134176159923388826862128346877366455038098500566971978186918885229818988958196750955295290013518914713689380421688204270465640159155824837412348457107830490751855016286994049296175811511672391408812782435394437640257375187880277961628455899630027227935783174483853364812684445993644232824322778624104875080485576447855176654257263828165373887987745060425815357453117835536482902278482019700622169455592379116072642434868369206104717354602522189367438918557028456392704623804264969871358073753816363039981087837750294400965893666306088642864964664251683713976991730890993983018207792086351149676852071904201781801020775361736368534190298782487584313391769163837798031103599049316074400745311182799679496518735992532826349048258078130744912334633597384971111810883174050332497326719383908305505330850284048776274052837430000031554260737228017453860053466949388188573391288077348865991779467572070004522549250715455511605971779197276073758337237145689362642932852885277632132349329299767818476447024245429730996746884090541800117676785867284864756230422270221864313153363489046732722465165307290323611922406163308602038986707806745285561272126962452173511479001255937534692926308066180616707092056083863665492574718139577918089717269456330499018284587826595655118416961870800369683281261225841027213439608501973039026713478450580401260647455822414284384611296532451824548716158260025783723865867730344962910794170816133764084594765818486946811356256891496539011843318904343752662752228353690129794292825663171851027265047844600766618094496661424802663901371485060668852530347684282484185114461219208934688118592258635438007839898901942307896850946092194884319045876802171355538361872014536844739699678718759661482643578185598178451060408893956170487407007227441728161743779806228913247619299836040157978040032234737492700344082872054501002471638434000189043247733409494688984317325461801122898408425379613045588168951605511504576525221572782847858109562264807838031587175295421494371054581452316345892874703039366116950577284896011138381350769337960946074121330819540387489563648386387088510049448795889522031787940440620316710313943625153126381939946174825325374264242412558891426890083332249902643532125451486628799700513783934158432230574178234155218233245966289477666591663014743737763756703663362846517659502370733943238238087689631960165609554618596111373894612603073419828214480003340143475008954473352220632900968243320925453789505854429493326955175088380111442237102390879504115728221799056071533288984105665941425714612553514272502755512650141416058560943697666670319313228936382853320120256191591491824586312761842726114037227778541756808687477102155519498221697669155929824124213351994863923673226446685221460615086437754511511034748894450311927151692668510895232513294345054651051607145512667707757718699527326979074698341182711593808348901464173075501223111585111443681634911837606326446228488723955112821037773716169351551231906352115976662187119237725716381484897504106582773311512357790946522509292648008151060168886124261991818080149582925871007647681251989002608041816523525775917918013420655893753185491395396658813459400865752335615726954209375834957616637424230861434837016098351787361247630770035425005387825402076643370602806566521587714226866873641871943976964686468906023331216622267042437022320370438506658167921296153312311611156270075801332463306116874649731912602680658839624905959954687336203267412055736941690584068762118309061884714558811418922738107504887888046310964910662963838821683807329739122664046995480800398341791877084242179757436216219205382958417795260241002986970868417144434194717026798828372953713620200732197487697864772350213583399546671836039958902203248547756763150108988099901433878092546596461586204983423867568393160947890964264181156326367635803935002673008739099689844230778267485659013570842855676751107469380014932604657564412378488902680136630948388114231675142508501429276355478094508195485490210966178213346242339147753543661188464663164302499819516291134466217466086518999622088344588995284231163258059441158162133829028732579971732715752246941953221946914125280300346600309024805621486601502198762311463621492502391920592934994603403828137964407029760887015341857659444567858978039576711573137315293795324962228668213472169294616169989716148562642844852351125002080527057104400911151364865923597605751421478048771662467379541100229106379351977996095577128258140347697441266664821293440837510632095567181641048238222905442560728865447453034470440351367489622262488356107859262365399796631623238709908210756805633506530853453645189583629836105655264016779072150858277639517591002702467327217773328599449569423732574887875296637721123950604463526236899804030411504088885605630535407538857955386867452740278139836704510334291119564758975373368102431797726051552185401637590836766847119059370240720292444968666687987473360158896896937311706389487681906544153293704539501008041013835331573131590304743774202663931174718641847963979398310664474339076570832321311426609119250379085564548336200451336677909231174674363387202887190482811644146961441615259578721976233563020282040205629985919546321837745470179497652155089755739151747044320085676144611547296704605699167084306009774844100533727674301713570289552766988308171120414282356878452359164570201334596728342419363916309623926082778095042354635272593151706268854856344782592743371355349090317953483488034104823453387055717071389006757565543516552295468777607583147751842150985843014618792322336841429884113324071667305357892800024266290657607158571362440909235944530576626747004364618127201516941239352993485846914344624486118322118528003543460297161235962373768492812202012242493500995135695514291642327213883262821921957460453967475670730313118583741622912163771376598536798550474770869286558684225862225520562491875751073231210756034130550528202470193251713113026754427323483471065508920737777379470461949610297751509387231447213518571562244483249265853504980568759216683743801330324371058898116248301889043386341581139561556222772435085799133324762439412399157385126543187968293745224405602194904461431775305554188197996584442559081368949876752107331927288920741014611950467244491922813094492760513181701792785030749132465529869641631225399617761512885568230149303221375277224932167234364430930898822260948354707362628459776225431850220549090082312124850080994644342610697920546607306355952963845704997902312699738478253816861976535999301204855230284575747741226961755768405396131509337143249062057306862130784498141510961232206315728601786450035754833325637545832036248681855654466716765927295826611362171975511655255193271038850971548825146038378553859397100484895274973568084572629278636817098141294224537591944271333109309626850487315911894006137059574600963843882491841815636751079629046370082958055632791226480957408323706291962945182242924486103347561684026827545830332626364001752024295616299933851595926673341991663494428838099014566822288927619185313749585915849965490440890699472566620418690869523293633823940902735369848513380812443018800156301018171732570830261746113344432766221715916968811367007058441302753770796898323804253271948535479348989203915064341902896153349176327369477472937347509718275995917000061697459242587650444554487252009555315189888925077059953027085695246103880422755482658877428549748158286221823199865223162072434398450265899866972986721741539082282287005901192262846101593915816124704146114095887716387413270658703269023535132288954696380012166239641411646467900952391002247251170793819856743293399048213867341125262566203002534204406082296785837351220369707095712324709713564399818786407439660814222796308601495917938782777429427936459608924047408107036796323822039901626951919161966947722355530008885110441712605649467300230379415998610902426579118342505508434951769334939096244114228229542253032276771439662044473319378209728872426623916726155185526453294773853232279554437483777190631114964019252900336013451806624787198344223170691235571564880307696041716700144282627225810181684203552970056020115166572594024258317303907171342650877779369612260720390259201483832513655537188406944133715537093546927676543297614895091131271992029240981534481482972932605730480894243732971981137277510021808988512534989928921660763920641370885654983686814784390710663893382381333823946108616426923724590033618998242948012321080061834219522584222675950460476049826912901310961732919248726712597470014195421942960128185339430359381668021824458533345406016589562776062212135211545057219360378925874313800673663831844860113273237476003997074639000101360129717274372993245498525465722350307859968960592700642645545731555400098038485643826692740271208886919372110526125324060810892602880763180618621031667301867756424330424368566874602412319213064985177951314011392614048341812343456496152370536328366848225354025914247249025298214385884672984253152406456179936295136078926703092561098928206730381585744073843288600582718571613884320797608034309771536680927094486796915456571759447467673882564754934996347075767165614776634508276927088700802908881940198764615638582257935505713844720923790208585276305638933273465250885877860577766591071501284002109522395155577406342184753856981135643866903254772157425361589788312660952940266110826779123932428919472493322326407825915019390589643605266332133012337257239307218467014463966613165058805855755014141827060438352732132198605017790551791684809602220554256435264488899890886429586800637770231718208452041813012288855415825974692589443578035281703365615732764175326880794077438936367959322408383798415598222145713088663182663737498032293516399570364645807367533774346858582968937625507878991724165208002295505138066133017191372450068411788421503729280960694262165804484329460761353254073472035855580169728301643829212306530441531143407388171785515229026003503344295850364561418830609233073968396988711170633824866420858622571936382327352412722128652415106063208094783227266753005004563077061571664892194876015135849112778261873930176189556867485809379921600664952117418606139299193587150750714375535620766316599911215830688321476748614818388320383354625129997531201341429792625599250986478234545569647017483510437785086067077805796299357828267660031101229245022957331311369167561174329621607986087178580125077254757047063225113509632242606558747011334430777831320691140413895942915154965139556360568438040348819343686180485413107953155688357348521664677249542983655588768514632970526954140071055545062139559848295600853216572358647866605462849320957465974255704205447872160568628637169835288626235568528564272357248834804947601099162685400739842196236361308426337288240652631436705837869843358268666372680500706443722393062551313608413424704164182581084759938144715879538372922971906491046509555009482599061857922498226911803989973433652613895851659222676835464953187564783372737423823350083888557665622895773235318366496442694035472158821718878830054180327183817941440732321039952639966628560811291293900086259110063547537366917484266773458957724334402064260091814246992662579147552239036546730996919992366966066215068869616345863576242443700184635460179590077095025840536968259475111424664465434641625583111111215093938536663874586325211629285881297632799364972883531008054018551601809780292523845118369885166013427109414141844717317082573303059360657499302314674069483130924678057395481458312358110799653780767088523813937269414698950963340143322845004547494927313694359994788641400154445751677596943391797811647279680597026410189247138771302656486062117873027491013558201385948801817292180569315456296675212646782982844399090399530749362173475989951432212306214835857022004433618983177828961862525232318842324013744590771263212110789544770665113827485795603907245098662453299573500667601067584041480731384676524634791070632500280933147735134440157451069128522012259197671129345560441382200470475098989503432785556549258757026005404623940388222200372935572726745938012717245308433025439257076606264170166473242658998128660076670359535147510350777461010912518947013930275246685577857709572013994264396917135182461401820894907708520001832880455459439663159240135100673948674150917451813580518160238266272064118461822777169100955417128331030757367916324915088525539766640307309763082742925700311712750893072858931612761512685079184132396496702228776426648145412606977647452837991320996415487853525693461799720081062310528860057082888249791868756974523610356518955106929285584079583902624727778085656057579411096032732424661598047157508116863400494949866457215235210045637384449852449056246987053782706718542634555628089537295334082115657023168347082476930720914091482887320509168778489135702753102453452786939232023148483443988798507729471130894754628655657514335205027530290200062878305721039774098448453351171092825318678695622670365765649060458368022189467170984009957655446496315132567216981034650708225779396167477135932873970180525985125216497635315411115584763928136749153756043600932830998437739196219279992905082695749040031028815556795564106089813501829045530853415020431805842175121417945202982706236784871689109773609708476823767001572463625597865661185560529668064434787436862594148782402171741510693867286993177548752924451122391019220998662914283193686165817469241860239425631929625548187045838005069172278525053548223143881419565262528139277413831839861582986437525888557659640655386932662861605531502768318144894063811830023201556412964412672286910597936677203986237073763998770514916074120872990139954000796544292343310799778254173816800743554483507870358485964973802415709388381917143954595107228115762034426232568929855431137898122499569681897191905426293595789764021684107819058128914930337750055487675484072221735935965245264258891353662065847000580009026917737269232760515784854073972439781946391942359215977460438158281713519514806530484944034637657723969604194025029560336525790969461719439302160387989370183042948282878711509776991387600952343675047639196663480442234473266186409866811546273691273786692901014590200864274370908313778817564133689216838265425305518141966767387909464902939422692091253204785755212827551017034886718017816809685142644246484592869542253679104662384270173906994307175254470891828723052212810976208469019637105760710512024032725487289540243151587605857639886285143624411414181853717760367400751711670433415160894147410309569499661716320555129057073816543890328422138433574143651020007063448363842873827971853014016067276015832207182169616581172561073732499109218042899171234603583800185273068183597805792619713036970046263940817844951783250047361136960817936799965859886060850455815419417950300962301184811116764077751869719031350011435971802685965826391744944682484579925216997536435799489289267124523972348026832615618107174801283151575404544016635063320998871022810837752748944762983608546703808490278839295549382473356042715170411051734740682623062352623978878454491032073034613646354161249543480081516312377934079875245156856149771239375958529914742357206974739927570206945185971414580693658007112182870938505401186921421551430079929383182033060659478796004383406183877425908913673531781455077468284483086196691383284343309412627184121714501147352021688364745482210067356161400150133143984901354997913308301412943457679168818624048263055260852050851802382547448991189097688401822980120577665520817267261130529951126932075738181769288004402807216316413526012402988118467470485032922954201637721448117678692314604751183884518443100361496948616811987887801977150203359261356411099777895401866952994983812600707438802883517739551640328532105303257155967129650515997581894936454106005898105550015580681486025482979438369028959938905789432930084051519044929706245040762440753074905712616516529220516917571447841877492353558021587131730155572691574503704549278834731366007687132302202585322745046140596448128472373531442510464350151310376603968416129911198452264791261261667931143282979636711164616059058050400328260003097570129802057152820164933370578053001777319344613858903138548474018594586137369781424850171018089046715073614966727885829283557346368015181455892473366415354834654736348701353890502022514970969763310147735261288861687337358141900667351269380327189289966061915841463865156897048893817587140446937434264461558301370985672994195710990261728223025920604586795510410245080974149479859396923569817448841787464486370833210014672072930424176124269396584856795191555124256401996775277399036035533278789706908326039976075962055835836254036348657875028022915762835414196148716296637917982557714116992823466734190180213907911956786316964317045321563537183218179872079120362748869424785512796035210342814749105264089965216382928417267886009309599747998108730821752474553909752377881919660361665075398003830565969106949118708856149649278894003125336896861656827809083657240623755293149660815774619721482833164827258601327470518583022141334228426205197633473756913479238779060714306133983607589844725734335025653027779782400626737602285107611472023310991056858604854620972749721378323577015008951250199538916802307420316705437129285244064688871808735787846353025352944438501576911092942043482372025281744373785708899087554106404359064412211069533283930829796156570767240163155615912134215024104241971886343504505976519738479922627274691841954778569581208211878894026428756444776117159034880490285529695379894875535252688254134128941049132662062852837599138179405706694084287007241782217337382533077112961984747701770804286480230967869169198330050390099571398993960246158930858550245286134849084827819947142751548271108217224200892746520912550455727778565986684186959940478398577374252485048626669407451044662593059431056453520933772749062204704293852822078074313437232983752091320617640422260930200288547950188246770242923846445457561642274397903782940218180601623253487724971391531619769044999911704677662154346868818500921618887726968852836726330959707573780911169123836195782418639767333210560885451533717131613535384967042645661537735616766499077017669172737720735329575499251220273801247138425387004480463605221972364318292380870083536256126600989737331128288343420934574949051343004100536320897872750730491969291846213259456754923228219155109026602313602047967606591818450441182146922570963241741824204818395325677865601519967831310523026845223286172119121215078919755688760354207807502116535792347042369385624333849669600025635779196629853220126455825078219936818430433915137045861229779193661418791186260176601855792200991417323523027854628944219584118548665380245737261489347773529305735075886546651177104561203301602805090160238922841738798486533261066688309555325384833099798618106868139426061961265267572490127570820140882743130434390704424300814516162654201426434191629957221569476882848750869741870012217106655748126402761621351375896442335425123464736739856258787484693943510539497573908404593094898540728085374147688366483490168656570734380216854945386548282497385124072179838822896676092875577707320269926720011325594392780927789301933007265397248329348415792136428326204047180806903780182326007218288938606797045732282452450959009676555854291186456253791481987094682332254505696783537386342968469053535941231423032043750684033814679495216343890450945634496119342977570310172779679458070378489241578471937882374491115088988617171393796571375418617265799102164410236520985513355428979566444816100135795792754054695385382452324153984516765858859126581227928970799955981191311591349145123628686196476875782858310053709217625721080225618995715114251767049186277213272644838831728300782848586765452325745158339804550985769252276782634739867190809705109871718606055483790711062344262520222020747523253404725877423577872291263426354631752540827752052279959454380769445116457116957361996321330245442772631546269910860811257279610837964049127406195266239824043903458449222343615070464393901811942992091450370740453322320748717918761153475228491170300911742513951517201738464209235497751112884762732225263674038116774585311210082195137953892924138630021428551148602929291199460522143546598434896278106174408252200563055711529076764313709038381444946821103437383127981397429043376573448958516621755699488331390339526393896744419876809753279719376311981654914996605133303259905400336407369952064121890340174296548021240263727988709943302521518844870312574676864730346869403181478656929575699703030649893369356141157761508481198624199324615952016126731439393721932685130880103540420220033246405106277630441646779120181572674609286258008291486473579670445410944485929404197173536322060483687734563461745681632499125651318092758361618496052524957296740262867586152686991654440334684487050966426769148050592679757078552019934407943478000167713357922386721850906791821752712672671567773877189460775811799361418795748767027933437937849017555893503014410299129052027235214699094126120233433463619454365680012135630135701977652952762198787472836820815112281277249292318928707114789589813883928771812629501624287978146259593393569136928879736585131509364409657657862974102420728300415156652207832974459901642357373609738061905033324071149723526565113565809745803003466702127889349233138367911357251692975811823872168475535048681571357768348137070678027815481330480818546089735961212658985287082366197572640279573834397657866320004374817873621728446537186750139514373262971187504943438237933898993708491352047229011179752968838504064275048213037153597504984633603398372258985898689347921758479028197350149964410635025553803888864102522197617832609032773701880038238724916389463953994524676449966621537437765374345707773158071769490324413244414679950686667748579543208556215232559180966553843645947740378033742592399681710311265368383624128584354438051315644934069799054522489877832557113315596102463504994713890337468299110682039666862119807715233823252573279025716591208895875829206382616745403677848799528514232576708631883954037157255922296097752382817077340209005718614230049787749596567446233119899887540771165105920212502388506483520295168245859959488410030095137308183808968027582235298029692013951473899089051024246584135974158904150985905131976247825607565223365241517418264093534610212176146528931089831384746578990598983008737044477519321658624068690755339023343288834541602556376209322832221907557814077650318327645739197787598498022471078379000591860863969781297494723441832186471694692215047492578567278674975772253984287838840338774849974860703136692278239778236118883761093482458113235631825286474363561063863869688754131797019034067497240649730460177245438679790434082904298140871807289537978091010135311468597680049246760404245714021990021803635546224648344063532797769567923075292074691093022195037218150838742058299212983394042578211552581132695199822402859820163663700996858188340087894326445886849936000316621021817679698242359416303530156101941824722526010506173315758574952300654948546075125950029957972545159480684891993785038012975117837556491580167499687417176365325960584659120730210170876927294738305772744959916722706273507620384857992321868942028945836632879148302079404982769832099915255882320419760738321376119346556931697657553889311797053780643524675612129400324398056325313745166739485971728763103554356429450810357053362804510514907714305937222446736846036088271656535436375075673434314696043836822951714228409120119798868223105296637431523548229911511484215693037499861950436468013452587035211419146193180689591113918838402669989849188787923534387484778436533333100947329929566018637446329547280891445410098294689242829292096208293788095671250693445649034468313225800687054238511011602489208749446128366712581671792899568393995637904083635347795456110607347024940379352520255399722326686299816242838527219802523182095192573233516311670149584375167346563190412762150465309909243411672250694832981714391674809328678650006235258965493579519433200140636536897083330551486219722434445915524588146674370370319103020286174525654410858765803696144207918265590457277051609487274206071823498750716257368922911758127317436433111326809269221030042827097246591253699042182100401475919802696092665797262530798833858750993996249313269311940206473392829762129682932612273353245077764348967843509188467252910148970283999589790386349344624354614747932901289294366847476781712841559203405532410110903321438832319280050807497865183398211871128482454468946948650045483006719259727779148840093068602791185719870914127690735567434678228520686960820104254753880280781978903068266634650826557201397507451278429778114376414522997961632241785651355408628811579067461905517786676918764940842591183185822391901554535937118949943943855916748135460877989833932299848463768004995492072941024260837328922100180376505102104943348918093202116350907859785489513779989197169602884690609264333955871544456503254017653799361124737297990278165598295947733869073234641499844001466031200607520991949482804845956278432398674572799698408713776904491164533461490960486348787967175028553728862385912393421375049482770029118531624037635342555756295022140312975270693949863547279556313429981146592994431075465492084961225646581326730758479758317233935204260202080573985328479185982658599965002090606461903317897352710622817060595393778792287963002784880684848490438991425775787687031169079404993051395415130801452202668000534778556796845707980262218694936761288718367890511802617385989010835707886480900917918625892477952940882134036754247376975149230590800080516532411267475950197631712691842517210285476317037559876811215249062163294079810386860163550911813419465160216586434691692409904509480565896625493292811629603898475728230211860020157768679189246052520919313487223084475170711987378134553217197217512374830082277783184797051213602169057350148749773955559992129497410883134373223013333852863577775093642497661189615715853968694101519252230817860443248931907919904000731314888566499202713195347302763891473368500928084657568699581042384966080224606337329147151770259212056785708410604598428095967826212336213849153120084029946363584853640932498340871598814892295536189047499396001346922101026535453537643036564428941828307543395366318017187382182624463887601247625980052353503696653980625676066987100140077189278098983120945340612195153924402899071455184527821625908639068688931591502913054785095491606879364868166481276467620430138457104546669141832780316132446823167109522731017652899774366747821279211479791189111978138248687748600835249960091604367700083148117972301390033053692462291653758373479153507072755289346758278082234499856112841973093696050489538685979058110456665444991998308930779877981737440653764429891742536243930675209393316573745201734539217927278668363080287889181059011075171198146197452052706402619076357895991789241842044358105162588912955390534730512775710388825770066471391772183231952196553992435764642393421936740001134292375647213157035775047488209986786647515886053414213669744601279153078114597176320202483689137994176881846288985128390342232177571231380453109438402402501533353327395736456611437636748404950168976127624005813943515598355541521654696171489860174067649367553671534854336719265102687791604238907101885243191715953203988263244689618198606006998822707179379413414437020716714373080182368827982866442780516956148771168152997846868317015441364647516139417804611886624467876355886511863093220316588848183988572194093827814685982996586974272605677850698756631130646711635594654239400354204832115536672076868360295610567326709952175434999023297816937900721397067052797971976037559914396291542917430793909909791764631260672040624540168529271585948389259201749793644604174699413091094333684843887187535865729619367127928079047495441504467154366865767244464617172211907135723228162310900239319311235971830491018919563509634533626324855287535795053242022661945007226578488105386675418419227425756550313704913483813584855882858965741157640939677482391003623579736894388067759349448877939057482737379997837358401012334827829502710233926135475753748033619370529663356022244172340933558334836969601354469837009389741894091634745607012864760613155305821657632889612683783840818525681536820343002479572027822313758485064454028482497775540929556453323171687697586142786545979137316541531008858148726525357229769955239792572800941459830681846267811833205258786195617365823087207747954097504915822699177230879923985050546888685026378126564910855244795010016381266966087489546908117485625579366263788964677421424666320599372939015595559810509559047774827220796105253589548672668036419900009922913394609890728216697483874910359555635769593369642816269114749883363158809671462818862306390004257768788887394117880834621387881091968211229937609686889696515074133124507553230982812976796122759299999418400890616536429373511913245445136378770638158281230583314006079123681477377778030178534048215300770729782355170866456868909986460071101730792239182853644566686278828096692785361460701447406678732527507015767868489087307629422141830745807125643271795141978415026560713554248807012108526226742340656609438575318820423402656020888367584092344904026925392363440035878118472881905624100195553963435466993679040068376011212334202715947307052228094735518533113369835296873737374316981771995164573529711757099811848126948018237358861086645340882973814681278897364364548394211987181155942650750343695129988883984125658709188957549706064668654316844200578649768244957164501609932385691973186429233173879180870530453755168887039270334562030647195548663706378319624565724449683512656506202922974253722766533538755662626077415997242308980754197486420460085120719891823488942411587716243302219032387274639958145650149502917176053512544618479142114302122833872524825586218474642084368059354627490474253604263878175234482478419655253303333684698630174984952160846987847847729398449129051004177619075565887875175864973541051396018536166845456002134066646188434333869158961291801180699616235586340854415489555691977546945979540194650198155399798161818760100233887564049476770428081439710165934824578087484703682034323525051088932434604023936132539789777360725393348606985492592511542354465699578215265109020165636962596525339420413501792495517438365576029909744991341663646469344672312033398444127911992497915781053742842056962075158349947942316468391095499755763559831623855894134050932957307477318545868471101084100226184655960834731525213675305317333542739820373742798169624446686740722391752491509923377183896049360016729422742874285961971625687733875461443664354516854484252438105255152691066136892489310623856077884221087518539352690391348524210950358045991712125926242450900576332107474877494985578794857899199270850668758330856939176919096876278378750071367256101125998041688606876738624740284210258143296041193721826737900567058404414813774656273259607891069400590261736157373117167526626038555351325729178452937645615124601618024765013722758207364797243162714897741506422428241565393995687019128830497767214380981045381879743473488373325505314261704960950954264418449155119456108417645711727589326947040682165924698154110589412006235951673774687677209557745394186498285024662352307426069914266761031534450164319493770540599199682490635011993199706509343550924952136992465406732954785454018247539278877705044711359241319925881285340999630178728130507083353786600953499355783500798191305279669382885437646242648695196773550946224631200194480033279687360328709748307071967783859873380743136755110993647657607629328679675816920852969046284572824800673405013270400282469466302656843851866998625692843462944639580516900537516642956319276130251259099003986786707785631287344726610515059349892978044903460357574966289592130674043008022063352018875090149671278571064843652990799248942077181705829524318579870248116749023897297807659967953240598685424522030433106348247135969094124826961854117032613537780371680401052294293378938016028999295899168977867235909847875304687987656123850750801396848310694615245746318558514735487745263137104587379366700716382490927668317562403633401402306718100947467275325824269326990663520061930872420530131764047469223677135549047982577558314678441964550194262733128877341131023983026341556797236602498783669341665273284651001954483259065726636490839581757135774463712904922302792106529631860058478304778529176334984952552692195487947591302860613952963558593288356742248722938427921387338799732441210690817513648991724613242273490695743012254266291714906858685489829484190185045984994239015719762343297224666956619821956560047352760740233115630367511012263727375477106005893281267258689784722763781557260662402756389084655235237594950242595688803854303979129632564255689556100403913352140575359554684880344442797761093292530699056973111085033708585303486118867400387194530685496426849328184714522089192252049920098492786865352649284209478448188478812024457918762845755762820512455021052516770273397919916210350569183543201803768811590333271282261087821319297766131939892497930430034309603620974599502516091126737925172042194114701300340592660747262085803171266165368149908684316265804941944917028175195967829485002596778271434795509788618903007855105457548110295904980588026277618944217502330965584401625679270256372600982102215596351414180129477076252483888325690631504039441640136985613378541108053626066808863549361050273974812743433577991334271873031707846570391864051175830078991196819192158174749654753929683887039426919228811313969825221765797762215640727014642262147783995542692038353651878725287422899471783116349020240288410748660461789934603565568436900991753008125159208575952613355098334080723969641663273734956046472694982808727935135106338098821988488966782773322583722077407928290129858902510282132615579754588723578349843845079196056436372165303483459469041329567850367411395674588965982509181070442891375204770700057114568289852886892488372202581281436397198027054514785413749000838566959455536334746814714233824887618844708233346456932346124325790583534977302886180210536841628066274812788373177875339948995733001071407962152232411464569767302277759944716246832628110728873483099190345965179382136251303904716603068780931427660166653536630465422578689013116246810061452663195646980926986371373970653140470419807835689809387064864806424812439760692804540228290965482143750444352211386128309450541239392295565687035510086686371221145379913113913042647575213475038962461723779010743628173720813241470665440261627145235285494667824804153419539544077750450083572123079617461927067214938411811211970399152625770355242279994327174537216763575287311945572546241965025777292295291926610124748877087416916096255582693670668627735491906765248012653682421122050913564837531870910049273517571990662445075043743935845775644260367285585117301308200084816453902893046963832295598095521429479929011795193948605825032298657983188525905535832064426512405742867851015097238162100306191911973568225893667785209009720781699264985902580456145648215066737600025202517526646247848198995150988723631676625938952418101676354328426826826139892762304466940504195839454745718023075294361699137511487069212149440311407048691874059014546251645273523336162662705332954817842523926262380380605036301802913391065234418351489776843814073674901564199589956027150071289852591300188646214217630386362608296610228088138550391233800799486004912022107682701825670796580599159107595637785809019026658870602698021069249797889942881636537702883929085434995114306606991765257183540292948417997585116540121712147294363692383068781097785929050852557083299089601729739111448989940737635774538449598720295616653841691868028596812482007957412907725944954522019272213943656726474211784244795972061332552572178172001457730720961242621596535421086598762725057908564551695983611186447702857949218139676120530844066059699414135612457791693550306166705039131215963194350834404500603948484048027663384356748819665437306580411894963657093130896616613599102557504902316736093113988514821292704369438625107187803872493564575401638526496527949989295994867184745923547328347226905706348643709647685404683697274048384374273128719228284253103113277499151875210110267499905876608192170109253524860167492322323208967917726063249172603395424931481816978281649992076881750116904520079718225282958146913436143449267683658812111659232667595756017021256157449235619550086526872866602951019532905851381313146813362635870619514265751550311376054815492686057092122779191835431834076239116376155305712825982870939017672520365641824417182120593407597055154569735716303591252447683013479534374574506330222513289203580639990181130678624576704260023244968522230695799329302415643135146478781645322305925919254355285690685450383373609092947833218743062552743197467139405216858108309474685162101729960467918623269868806742020943589715805846044311435051361727223598846200337114096556918149316767930619588608258187199226341631262417692469109232180628888993107646819376472725944183034263696594378713707420011771781940654244601730038258885253044733985869316142751927232491336852234139573544486608048751056095805471798005127571433972114744202082180482715406132497257220208665725763854006555935174734883792874479586222159968780177326156927561497729856473672920082898974563977867300344988452404516887278025231760980528036010386820271375550721208961709790355531328025624135131523731534263794760636433306380032405405670696434763478064256710180409913150230590083361533506851691764398306121026891072086871247105725025326524537767496715409585047176724068641806788690760106506310213532721417568592785913372427491480616054897753922310028946622629618585844883256857127405980809670419285234950081280125391803960953873519371460630151239310104746151457553951261431045203841433370493679078066841408570992584648477549081717423298383733263914590081701168892152386888107334340377248511989874521393316233583194997484964958736753592148798149713786195964555623406420645255138972559764505839211260397437936203847439277741912022705314453724184414809690408465362542676772305853101094681541739866450481082419991711795688535165039368276079996234595104615194949444156822609706869707142328624616750743684545849340413578870771001426631758228688478514142213191948942488335893813572804119155420538120261206832844962560336160521000593489649848833943578251163174949621987055854427148073700121121220732247768770821157374225391227916335227742099770224255776378031521072125110054682090896800372337039586836431860692091636583829453346200734721525282499667239353504963320423891988667027135890534646076883162779098903781407925893606786273161931962922086197768878866578594011876520021107761557952982688378847763567805187169326032463379166152762996897175889683112365633309130470253743550034201100309032550109907411022000966736264318389684744284532153642854952008052419907660763695139968441062409603167168441464461992913116839274765369771513666653052102395430275769572976674026174641404328175940854053079525173651711662483125307683219064340896163859091650779681723160575685326177504354967592198020647980467592655101325257176910465420126082609950131816039756097766371849601618963122327029534383168813339229595052655180240969807418230842097473688179857724815778146177050225480958015857984981074048659009702680813956580537248018089904801658745030039578059725457941781859281409389209390808191087570670721308336790169750192698683151140018199863647179832555393428865458424669585779703736544416774410241129136042618110590487339753456859435656708332226511038140942746679348876747776387884668459675251443215584161200311528635036856589663761612351752435216901274467260550443901910338475321082844953444469681589985183414297195953072464454944104625410400305128768362651271528352227742921733970626775151348997386194291077256336128005042089407509251686931342708042643046750989953971283211719747238958661967040389979064402259920748458190582389517245165148829358792323589323156026072213062750080679748820951668563340712201414066776172107940327279271631450423046231033495417799635484328244949116598699813529926403861466373313425935399293485355247332725337185242357073018381499944896405690638994671058194301831449520099344371977282998708358550575345076989034014779651775952028737555482885769868478254659982844981418043754716840780304010319382596434977243313918424461475167870148120401131786592425616442093882901239529817637983885876484037177158449366427754847827363805757950058735507494555335430233166119634901332287736539618448727533356231822185272400662804845274633219138829777039828736969955761277633471162517328170541533500298576431910405044985610868069232406585760596198288540227541650417077342572132590503839762038844812866187746781035853511222788203839597336206985569250928270060261397674482054056488178298035058621055207470421884776906434222941609544381510970026668233899795086091588987518502343312121379993416095302283632595422668764671085832819267747882501515549091272476822400934732432479354966508233404017813409547975237471508656888979180691732262623502891433885652851048629649692586622360218091648502392986433848627553588569989982321670030406507729895492659100768025620779200702737022204737321735368930636548979398008536253234617126391675360136087848945757359669547426383556784069659020220697894781613535280310050550301828073337256865073298323702683799264725305523548110516386700226196144711604777314099680323966477694759652649606916187189582900483656850469429775896294129039158633282995827816774200267535065076767281137667024382427052912755720261719425688964135613132204424870350704889011876371545393768829255614840505694470631271532543911226663730091628501997449323667308936123376917743869684766528440023837278758135447252381878386507259133748893021709256493051065170983463508697114813657555215473531279621413862274017646988873234329210822685595071115318273598327639419815200616373425561377650640244662384610239650042542172958808897535681989839491796492254530446214850350586917724064782413388287223597372305432808943142639603120411063585974994269481070823038151702396443237962963999677109973362514557971501202365537334307546070845216180055905674550936446389257325211414675756481320218438294233851756137331091585593212649883141409143747154591226307363914678329009300324450585573132486984426156378361768900331198001665972946037138206727553209837950703765724745880804845957828141167172480187091968078669999437516471749123042563398814417676682693558809456426308514899417294008503243881055707352736081837421760378153143723759807280615550892157520591584127042103702242548064597099351161836215181590074689454063974618033868652239968880566052146877341071447158353265769146257852611766304262395457901017600321148767399972876754324919744510955413590195938092826210492272894513279129857431495015168776631189346859526003110878748366241641880562301331445813897659567119763266586481552891324745357876243384252870886669349351933516822569287622035003569185553337850740103745697713794756027108288446263386688245828113187636603082557846104834600711260858284282927677110978861610397877728779204412014346865925078720047148496953910852973998828725797800746283804061187389223456723921080955936382619614587080436286012870452945667469197415409404045129638639871562313950569645844945034415622336035107330737044010400724491665581263936895536695263013440934423251605657333495561665186234034448772458850379726038055265757125042420011595496454867025570141517052945577293662451373321195367644421860601546711252768239645888376796930547680809499015975526517143470069563895509136590266513154488019590932016295614926932202218140895662976700593231761114318405406223094391599227662436260115262248695999987234033096492387363303032791338164001490340388530691384834704586878375218816370093293219625730809405144454546335214327174603440948149532250585153728196760700534511769901828305683709257673262482912247129937820995468945896915529706206791765578923463301299243854381614771986019265258205911242098525468372470491394150510531787654990665243576908548841234829425798308882514495259539996813921906432629811535504646696720193775839436919033961452377301192564369173357343823464714581018467157188973368630590083223129421444115746165260298907292709544920551659436757969084396779741561731151132838527679238247387826564029915107292301556816612000275678407596115132653473459323180814326787874896180747265432069563177181815820154737484378974064466422860469511762210446966344963328750035975471106766967821545964770489465357548067725687703477172059086550268429272689381560890368817668604063516151577372004811384164345327328466587565428515235852400905066607759910918216645489255297248761300932523206018582858307438894124645611364783471377577933652822598812056648427840073389236027999858051964730659360475359897495391551944808069293035516028492081664785507647974033245181972781681208060334497225138069884174917450578152635405829733966630441765372821360249781809347804291908345186342562056586710436074664643390658695974405631968413570578270684746328017604265870230521611995712316040343488454273990362669954957393870840867148639264603954370018956332181198712417244301855277264630830089252267540293959452517881373340392222431761421682023432287900063605616089879545941439395035908644466231043229475246847876728934668130335764626195005644212582655319470891500338751486070425696571530624284918425116074033535483123010272930423053043717498767911732134403459860524986384122320046313427470474059073514740609854304559540925104461633795895691280930958236623378713806293248221791521060999268413102433261052791206563795587903820442011017911578020077934650992086782137581562315927562972716413578451359431879044856634482901668810339193101626925471461050261426268877908500854639108233875344298600305204174208049341507326162013460558525289282916728043044197831768805041166324696741114097462497460995293133278010139503020610696154595658663876940923679319443952996145223223841265544350892259528484473494723982134598120418428717870507241431506756276975377611500775385553796376101477194174326722504515601760868326511537128282496261458179627618187199065162923826612452480283505287246023493648748719142147528689296468403345472833830694983428519641822988348467939831817284488792894746083805154852047857393283050761661888169283274361352187553850574475493123282774471366149282884818773029700077529322397680269688114425401486649328534647097690132789486709692339595580448419667879215941117841597169804354924912737743413172489540601549842500383294094291030277355858664435726709455301582119599293360024354991754814458924654642470515779369463041544380068645184666948435617139335220438469339864443964521901591499232376241249976188457817206514886766102777735283713938063369867933816518221546244479371616995284537056613545587554570660376397058020351011017795119373949234415085834980573445622309191752780391355372121008613485381579880681542681923119687123079188837988856232940367875815022411066758478760717182278092503039066080866327310936891142351544329132484302914001085627053420238687075965821919851052475948419627730322182213311046882051658248304215687111742492745704785601160866051798194915716960809130767717891913341595286100569559251372248246340844173199745148325141946337938065402396285083585917079039227552486815523875616820916672789232802551859326804295449683416099691901991641077451494581072449077830832151471141910505971052344879514219550210546634752426532550168182257620740499882990304257046236727617014921744995794386640844269884587651538111997660674652187951611302251499003665166626563391814068734209931138622478308291088063474776809001405051810168478703291755708033218040095607589423218191117093626023314223645629296204191459106743747482975293882797257906141451844527082631283232371800648347875965240728215283375266917888371250476138157590622612256346748715192468180302797416892620809585785323687182844148933086908086260980860279702559798840837664164210228117771128257697681809532912008782352978645169857024583535903493475618522488437102952336853319200143329581909670826327454976327441021561664526737111106756477624790349468397893709937158740629584955712681889902892491104786460849504775739116079890934683913211506724659242993763091810746675703622251622719834856623493172203102793952773237367453740620820031927926632246357032047396087231348912965757465077236177511760147685706540663833907168939605257120809244963378290636007833031109532977802710188620374823257455878541452101303107187517495634326948232888373211188564686599449416386999139796588047323336570096438643457596167353101885023981671546865543043600925056797305224189722432501839044376371693262469193823859692353801293890727581419130798775591624566749212193751765051815437834343207130258192249072065666317903320588192640136075580101171608980000397377644822985118170347790764775305321915551131625365940416793331263207125099441956195847038079394730045969086555632028384793873223876380774866871756557006390779882139215609183707919816414407861901633099779898918493484772709353868521178509829764948866581006596085754366871629995035260955680024296358092314419977067739521847026276358989404018975227202231510131235911702900925756789128421515880156011639143008994096099142781388811058539853690178442140626225105804234577848429385158526730604747009713686427217657604750717721029128794073354224469886811876052618590924167397257089135005284054560146836602397926087547983105184780707025180192252695639347223029682776136513006614618750797653224625519570891409403153116680347442127249494720641657895480259000747283545821653616036078666041704384491506513388957312711420854126044875522408465706409017064432600259384450143772664215665525479041105527473470347437613603480201045359929828392307535583639071039865946453101240891316367856015011213045580629571240076458763911992215468224542299050615450844067781717843387262073168767906051863569905831610284244503725434971739131585841888765829017926343606432326442546757489327561147803810516419738440655795059902071186687256210881280117507567067046470893313125075710781357835848774694850969668058817831221857571298846950739675817298624857870127449116300376369298152643932309092068867665120279006478773442708170235257075433424876992192445053207152933395796286068232986849320777067283138199385769054414300641416733502834516769302546507655314007866864244136327366262961412357476775183904071621729096226874700536957720773326842418088744760817918280384399997338361662785677028130299282913012617989016988931922732837893688234855880363860446720890257748709022884038705391096079817113444814150995156772730224967991675093213462065099631438319641809880621075015125869821147422398224396629404178984765685524658530876124705157548495315402008054226942460376527150002420096074514428059321861317517851474183637681738560106672398655431271286234536612969531960678239788573524735687301381385828417719124790172701975130101307147627130214621409493676654019463863047388782463809123473095942850124546349002014775460771646124321934042768475617877899761000013810356915219998365749740131737356409946327029817747164103965682874319700817203701649729220772979057363447821172127106404944735724570215053087308533718450911935189159942605518956511941891885916037083559452587504340176744590862268653514492409738202362757095874136484059152115536006583283147596872614935218578062626556221156435691598492476342364367128732171448753647272119624576996218433241547885287356494328485631043583921103944277313755718255842018168230716251988171104470973815926272319794169964917975352806906027510311322400577028833622723048489170824982215152910114382050970856061541446775648091025571461259234682637746071240983522860512339916633579959529509436852260526578394670729010414663085685753509349395888675584159962489025455386955876451347990588815865757499924982121814868373539589828156423480760856156939778201217272698037468838988856369661336289762437660009687049276567538127541365303596807313405398241745585789181562991157790801809431175693319909818859971614059722317847743010042860436432355819552555903541986300970679077861572694014160914888307983506295651390357099910767711058314609013926794235845744734413975226462571067840910117343147101905265978772367965570301400539353739103582523119704732222925215567564995406207160515653420154531268199391721974223751772624567316576472543299084277682126061159115624744237290364812765228101848689481632430303180563489519504028234771657129689372028252753394427586393477561184568072514965243220891644471782548189269221847823009558890930290141029555811220213049841912029412740919670845174122790753547902218585715994998376771867200252242663887345977026417642448218674783275520699765903525507452275752319427699798178024525605107149226368517682352305921919786167885459539726674191470803928843069881779349337872577921257267170494550965757605127203369609826169911859291710114368889379360973893762341310471286135850754736995931212645238825662778476331842898048528500580332713105309080481949356256538563418808809416005794102080336456789660849075594241525177418233091376367256817276995758078169198566022773982570881281338044895767497158964116518297729496065384117215316818442967702355454117818681782214219589795714230955263394934196822772497001523941234332115669185914650406014522381255790014530488335742583728245340626452969729544579409686388775603746421953657596410048007097168201077716695316780235138048102624724700628217594043425046353142561313942167631497918460064676939682726857606193296003778896558592565005183066082923215557336786929903413577167455964015930362803540127635785159266184300366063636752773760433125455231285295358677518771396316423189101426646731829285453039832419145126520771428225103455728006545344235928756929387171638932630564416359758445130334059120872763393423189442994447384938420350688278986915810478803803454035284598595866327684653738170746636508399646065499501243730125925165289957554154977729684794143979249734248072721447756574099885280311579862149235509687804485840949025432125551916377883950892289662013711962800426342464979818086238493896751875523218389940343563363398903178387842404655597680218158589100585491019248900902174288932730483174755570201397033716992382966112316242344842375762065194931888929051329586700598721950986718262331450094915697592978298532491287364620044621634236944599281174089788921206073819651172295812588114831734711256772399008261868010284177364240120996199236336463570488177166923762557918167513498191387570393229758463644251617521981113215011255148140868213695494345731625606748053288502225581957501770000272671960791879434560637206417305856403106364731282648880638512345484019716819383516506610966572451098810709289227595174468299856257939871229767093666487383156142552622835534489005399558213140385188468106306971653916029775802311732908691384833026202501404999252184621152434606147903936654701320271233993848213971453753561083072297346153921191831578649673530202689600431577973853397810629630999207071467138732249122055671302468647195718533600250753507590075620769347680628182304458568655769849186434738417963427615717951553294791536119514131438833072447111268521509334199948812398375932582441055252321023156108995135571815538979104402980134762588545359859205830952597360226044744438366456706934779045211697095682014524498972437895220294396342062238944752472145464144588339994472201213213140808657209731691511070405200059612795383461028788667959006645345321893377135415164210335384206265190443538311939950862873538173157045605804270418724340254511859997645639710916911497286056499332244464721986714529598160033856146096495652072496121644042000745293085239222287230698004005585626370579666441636676594366432199670541634787283922111001626088468809302937768283476182051183638665994649612231564257539601407266970303635954529999094853163707062124236528794187765427864364585341786187946095751865058623220900648309310304791019024569177057687666467982148054040287946671231099814177333709608570793234703788515987896096679385735137519951629960786065424442993066496109575184096545128960490133357219637121366763188723827742948811510969656916977796754237305714479586170390997494891373520049811694087031435417913133664833736964307405119845272881811618364887783013076438204078638162167332115207646661873029211616649775277104325794335028521918922866261712722467630996822784341864028043575494648183865958892095998453993898963090073942267266550018406578958382712910491903504581112467919196591685687144527050204001991661074240727170631940497768959922268530169076067393053929777375293426908126810106304811567298981885489642024982985684944634175751570426205824440037089363193365715956213674520613690725646045804617189865940488445472615386873070060738242207122713753202250165916693820060673734207447632462603536846768517923083160438296476339705193448338487744103077572400708791925877042857884428353293342927641759132644234935960633336532904105404219222370679994347716207996223428069661870703962803221856013334413179542200373684841516655268427001479227792092542561478230988460824497898962748789331579783636851161791550145372589492846626292719474075677253158380603867371801324649040878566818427248107136851367114865823118586168622824367643564988186635183218009279050356272695770518374718092248974550427648058944713848383106157373243117161536464220343954796638548084736112313134842190583793932489634906315874942474080012828173089235623026530225337410088373370131436616183846665078680959626295810453659145329106783520587511471278122919631945468021809667786942611279604304436257623875747528060235642245881172835762795874220171625156916853958185550970953071165321912148774114448532978622349788369158107324556747258887290385973034969270420264011896985317007625691261563408629306513640999239908666989632470309606159611669493548415374791357381592111554208479623242340945460558026773011486936882667741386463145992233897338016101641041625833044757663947940313207434716791146913439085426522937121981989892872915353180619735691089348574828489325561402766605923932046291295355616894292229017242904718031630628502562479448559788680981322510406455906779762870027505033317743023532281414518577935671705036710598577584673260578875326742933959138722694045085826706759541621798316584506681341105762647930255054059899936548145541653689615046463722414840826605957956684954255773935505297648276893308371989830100924110471981352425503905249667371687201940135450359748215276804652128214539270061980139274882914394742019457118797379480769958180003826341499221264184675530815667827046071305182257624890413758755943324353417546032036620607319609338916662867718584586306219792126584247241696489734155937152287820507354410951770286345422690537339664709135382167393385025033910636505778433310213577889523535490686408025396568507052551235283325429507257340058136469320136807977484571216421939588377204362298510378904069914877005591163421203475754459392117170163919467175895349535548411928427847737731615902532546851390877347155867596599771603924159533982411220584014948470312475786580755184759733190227580371994669626940353793229545673227669200658642914778650342787006830032910333672572564378589189571842777333923926339272057954160939062957961137980402685148312655346098699553106095721409579311812520107994228467717732762717320195117519512545994030246565129764660250244592650811028455620156351818240923486456957927647131751561993763132408944542030935628119355584865617803979749179495635013951793613347134412381815568587226511480046602346304454459776219119058969103754553173361633133090646525831990246241259215338748572127551889358542062484683082477432821464801594865847654974790716047987287750061262893720737889901386468941672489907673564219882374552324724209183052968118185303077144746558377952399250274339783752268314852737001458095375675162848230816904463228185941484131077435739793735228442460002928947052393499049208725550132242359264414536181169000062161521727213018336804401483300933890285418086670389743104068365106826601282451482150638805593624537025901791165011356807461627814891504790956809637990942838782306583019207127057518469361207211239677663970801540932575608066131289604962120299241561782830398957624996629921613481868759345719853670093964904540005815241073773523063891120468602707164844947952956710191186328298954919736564052660777942513370774818645226486350440044226288619328297935234238977506421712029788109442885180637762089564985047039806764604235360797162551183660023093467745753167957392672389266061940251849224984560784634845424996929036228391975462130776233166143387031314040083761736215748300680209142034961864204408244819780174831851418652989169896409849187690807488001199673071678935990662074941281575084437671782251055664578156714208646370188483162840162254179952855373347642423569814339935040299597804994435462212698037974611544490788148154540737615453764302169072368638793191764108638016506465858376976375429434269472733207224199898522911922025479968746657814018633172501683308799577876273482471540270020142865898174635917819495929320408502748137585962579306339087655748727657817840842745522514036108091415799341382226724695765535319018377317150308760016886507748769155908810149767492331793657664834012597822025027526069482722687819783359885484039719355114457164162676524794787047770621664539156532312743360158714004900578832462682282149360291270181777038553499760230723123075599218189450815793469357620507786240323982739664461747861049971152277956706424349870141940527221726284328682218407514647040032581498498510957003767126860741901772076461093091337967519082348897542475139384452458173925369391966416460605881642544099059297786444330610499362637143686563304012521278080883612287631704060561509582935017645649578356126302696939936053840736172956454113084941225278485150339257986299758729549595053502929925554343485495957711192181412517787479219365193311137556932977150767611714472515812332813533001357385975843130205350715699050846268745008125970379439109396671588921119328288917513208226183483326192055009315789379464466463895471390290363654113860582865127201335649727638430572563437460570730163446901036556490175884696465331271320243157676744909393775638465820267921153851563156594398593941635517301776401251771221793589512357248835121725127786525297203093768277416504023556285297836158921320433039220558100510712732665399724637059390847881424912949584092650921159433504335861453379385694874877018238448927276878911203045347417174408713122673618768130228277728861844610968715041644822618085942379498925228231631488553251642170709391693153063019121136803275482064166064203371596080580487222291611358001837285787961407494714457731346385594572017876093570114555061066834664131480414834924009618843524862447203345376382252432132690803803932919046232807446330938642019961810037797180683865424119343098718924980607763284693842136785352318920567267261554113029218292746249770439062697360715349848250071321336407411735924782016529557263426824249873516184720109391557017501867998036089690988005031902009415637571312041427258899871167039421403222053114977410681525607500154279690601736206547139340464713426356011263009071151858835032897537767570563300551924296302967046936380232864519518516784046890100405397855479485137409455358338638220140720700259887126180544481129869257456664594138498370319570565326729736675558369034370552777421841579868237079273430752996313184230667445560242969761619694846626806733003951207934601830166222539349203012326148662325562230479549192077475006376318061421250345237921923803224825814473232597640127719738917447827144538988097532565159747515626601734751174371497849081809223297830619394621663258638190232536097226283856456433959523109608114923058392546495794845424772327167573737351653805431823971716431624821017413543329451659506713705769572435097852297137593692394439263392889991563330592811327128429751426751157325155918858104949545564548503609675455594559247729293857488949607385356321016505205539473401887346854706362610126424638717103708404017610722257200110474041428363634761742275169738007547453169909434441388714885771268312351167315848609978874869170441472472164077891363113922195564740467156795962495522563085163488830308561962521764749228092136870561264068707021070498126834685867497721624075634890891866067922944748749132430727500653634430213343295036734657457658660202684982942425554217429503091963998437860054245450161059575266908826596492044012324572752850824092390946975285843756112492533389993630697580134847142096683454884358516614787416292680539492594705711646607814122826869252396842350240714660467513797303738012388500769095445341386740002546192342528981861446418460006468661755058466167570903841872199229755086488331738613504297710119032105994516482738446933062221778475400961993237071247840297128758124943601021319348221314815563432970460648684936979469676613065727982747383933859787156133514500444316307025720589548019365944864952060849716298659126334087363010639919492934864958793602585281621884321301981853703945683546200337526328811447433684146092329679072072865048039834214451126020640203566188089077978529423797740952402298251524013806678968319874313874875853298642314738232143442567580925420047691898842928025475830308025655298176833795943470914464753281923533237536732466336208921983760670002751246155228848078166597458783649780404568521991395710147039543055926311767500580839384124397198130100759333981798018850914649594710626650725938116208045868067540749896702850305422128640277412239523297131087520772049678083249456903166301365328235113802739695064234376011612598728948544675939145017443595396385884669479978087015523316552795500135334584238049529447377379353573305923486749990439982650511131193263282585323209641399710642646137667493901653415134994920751017801333194621076802307796933946314926110313850140763497698817503739327651531268824870651761611219098402946915416032116663921733842493695985175655077807398854244528178470833300288277823959078065653583555909083695606000134124394991021112800750900094286754725600027751308141613084986210647308617831682188639059278554358836282653503470295989910843915556808527834437176235195949039495984637019174543283594690246237545820765339449368918096548725529552563364237183758894001606827645112222701309657952574348901277559350978649208236927734611332483563265256677721645681280252306170682439363265927270111887754353618459477899885025158442815376643598761862758870772839711707020168286049659188314376895089208896682088622433488244703770125305137426850513685354153099015455811113575123346844660248434438927049207753888840736996264956174280578955007450275076915918025804704633510477393625562542464443113839794790600868164787164589663162504860978943161298919552469009354395931145422157948964169403234117514009315937240176789560856724516053981860101244744126494055989836166025376947188419936474021393776447561287891800416095282188664650949938062731008827377981809338618601494273056448257418445988095287877491843257303171274445363750504034012238367274406523919073006138602172318183030661056472736176006296392522447523951608464943958688216719063074348691359792971395952828726932171693089981916747279454244236135311407023207804725864478599713124111666332058460040120954965915601979614724390705164669038465158136504017819682078673117757176737812498813456073212260894909314656346760785050778023866102847139956189090078842975035038330377091161650660777884839971345456971471532546413928800948746502444180293636827162027559824353508454797013006869646412491028250312868673656499840505391270556848861861396767896358906543692892449020132316615011950615645634992327545085010794894580692446202303790753958904240948245029899393956388667413406087866030672184636884275417521857570481477818652015308207276088970859753602253522687129087244548745474808538835952787801685337994329949785151094950352335181920274901327669225619539456569393096447472917249289959832800964357738871670027079674256497812698989648511057581754972634103734028294257830616012380953860226476786341026418841997693848162905613617176385336827760605336725354575382940275702742444597719035070040877021393670492826160209348356967298683927682203211815688982902541583063603780076027559585638805691662379075390184717276464973317693885043599073452933553460722171817200293105661388260645392866506493522440566771261829119495646336007017823589717448310433392664300121240726232321109975462559916676828441691080645752660821747097692884475604165188146198476439380989816774538085208200138946303882358302225118365276072646901210128109993022114373627605981071362260545318456636024003086665404371952575458276162840826322567114532341548705272491274902335660136166116099131714837966539269486127043491611251483420051658998704786526526993893007506703367478376952127868215855762084765801631697226901818304536438979183428293418965137265116475444321322198088202875959171698542294308679816732728583337427765748392248734431009478540458514311345699673912760300554195513461287272522549143977961460636765312843595534334812122757597771239832459849988928640207826590573950326198129426404005285486480848495972452722537169028777457048184035482023139742156610108443362105979945929052100481766667886946795596192765618978920981422096442133802763354784997965233791144917076563785871897579215342028891880276567504488595873352122356548247208768494492223641693944429179590094282200343594477636556402912592954995296400394861651734818368798473897380200886452430506711098781746757644293523476369020725841337664948716195484871003311446139384678149421595128258734193390145903912973922260282978994601577556050897668203857097024038041451097867931493611016454703392491796458537272632525619009927446390048592978707893522909030569105537124368598215084398560181746277554559945695032379920341157250030146647690180213097240707269458056937997235598969230902592757562906946548845428814717985832444883846935862621079759889126284356760354389350094523164118424438531175641789589595964299447921333917998993845977063347972913187299688399962884325190600742804666588671859942713850776948718661953099088458106598362083281118451268213608075784354917917127835887695912644665770055244737876770946017176349943360263196667865357359851735402934805865533944031877212106675955691362551842578157871336509682929943374239379375298016360370639050311141702155874810445094825276918837920140299952752864183853110857414536926115114070614806686624666570337152945254592943631050299465593826618839035113602682165507076934536737202902975938018529560384826486532826981412954066783953948940521578610616306065003012129848647450247457458272270525353842635411792269075185199133824199762512808995694822567644794155593157235387162535418172817903231720655458240220920791668413136690645560528013924722415169926467289409068331633527992133611214435261290287538254001681667945495417625525835048425130203096754681987120000160680720773714435317656399572320204874294248495813422230685294785307196847726228659900804509261044723205674790321781617074038337856420011874986812385643833423401895761272533376050050026244181127235100506130455027508753234975224953079952484552048930154585966392770237213909468134713086877667965029446417243112443961368496828514836072670347832706992358415950140927561722826493747010564614602103676632862650644207959623278066104233619804935492034473383883755530347368210573802328110245952456407446863414024516509673307143713917512331307799122345280325483616031118749783206470266484430236023728380066620648141293347988536825657361286558878651786025712772444698502524374319022091744932907706335733357244337335720321617969237700562530042980727044847979349431875866132682837268372872445777942833173669386631546949434247740445427566339684522075253490664903245627564278408111320752253510546386101912062939564967452375857953482686748762716435970353291024250659901714014773964479018224782670954867138497116775170845794014379622657992273259585618087774676929297837731443415545125240413171472827935548532725578900388213550915360592742637029155248311018879079215778134739213640724140345146195788938306829624926270654357408354689679965291501082742412645351924363761423584118640023713536613130108121958792884841276483729227983101462331524716038059759190267558649538305636474983821579570537284143393928665033747833306827749093404513701939675258345209944853810632583382111622684122051428064630370941054609414950206050856972919058589887673459956276772352205511199757604216525159770921754067673846061498647430579972934297252490348866653656136671453890414749488250988501453933431352379355738356155573802686862573950732351832898933781610137903270886391032594417641618230864983922845052053586176360320136483721228599381999578545977604465358406077264769253573700219666323018591505852483730740143995767427871474095673865061765615146025734136995009896542485232195669627586451962352507794693311288194844064498872476579328145264050375367907589524811146261090691776281918376411504809585036935891929622117320055036782103454826465006279836285097429024787666972446632253038833822584441988209780366976773968969908267545821375720541413622502808542861205615558072693277688860256483400767343589320500345283174096557486788618120716200899089401749947474033586940051879530544102963803128834192451977004272161641747499880829535758189990520719924341056711410419900378065020209127846213337702294747686782905934787483386354406930334775710369054513570970458105831227830846003558458774010680224696753260708057213251722802123197018911960089115235474593276301292089906419086269652314861384914687680021943540057830035982065522553226867341379795662667234406086364687599067397276114450806213999735453771820174780625052271225056891914450934594907545172710812033004182044238817872690207991723890199494741844030395489196843645759297547515775984071067078236815154543825451851859273387408141225090416679962945137402379044793227328019354881885114209284974644172358529733716145401885520717180044726342735056379230227614449001448209259604417682715021364449100292701110663147216409413577742221264691785986367646698863363666216971551876572390080826504893674268957073871795716124004131355080397659729415561991345272531225465563453299894299488283919532163236600135489611598543054541745297619113322715963780503865808037595975763240336111267330901247712346767775874435184090766743762783027100912262710780527893631630592272462600455354405091281928448926752238793439840769769689407543462950052170304686185979562027827047367766695178781470917495552778156521190864448997437040242151232182668203643478303223066815531721594915467565427293738502092297749939589501891513595208854397077162158959718512390113689865300614367652371857573186161889768045679443164373328431944727300440488802442764194606104940776170686252907906820869136434080824608143639783659333786412883971916126131677391574221477148663980420613882998189326463782411900550640630464542618641117089489418466049555944132100170125757191603251490689581695525840964542172328084862083176188331266597912400790391189679586057336205397160873770632125431278290132791579917126601470735676550230828600327611072594327306466764159263625585914165357787009172525078733236973918306362605901961662094591600090800897238592873732552191358253682114417571593268389557076054621304545991157298175325566649097925036890792239291901529544738583504761759602398597909925057951820296029817484034683172525629610112297389469932756217373622156011316778962007425997194987428366283404015476879071159705958019357249333793209073224274426189995476952607254660968969338658805787638716121051104954180021858770487657990898342984086123407333392960455636269327099816370876092098967596626516920653797690555379552614119171837110969363726706244024109526938207848668744087484453912068441452152316523012301336039446968784938764962478489218742827953591372797679945006196109332366764336300966620872201718987456386116627750063805756690052031848305964813183361151766429482997734871803923184176810939412915062016782016312146934440004374591669049380399779657673049440350784452472636024998695933058128539223636086792855226545393106532119739944702383500167447279262113980991468154338787580192398611654585754862993943799484555741288616788221121689277653916858596141415439613777918671850066344048522865549923182592046405438812409652488534262585416697195307565097902113879181873646009722569881813644180326571441456800730124188624056715296094999449444223467429706338030609937428344560759814735050527112840855321728092153022636107643919417227191305410981512711692741920404075204778210058229321080631608043900209701096357138611909132589042241151150684376770865677444101742635836164341335412937568451828112593385429437085343867333155542140721882581722210069086278336756180304236214756192285411341845885725781997258813334808629766259412747514286217876283025585167766422839020276601203772188254476115511363176082248686478676515707118731168486174907873414554028122597863450524848704807420678830903326606945649218029397677355463830942690839574834212495486347601143216073438689891844038654495233702331677661964346996883357238104435119118703017477557339758879096324507534675138408812765122462352819486360749106443693808172862408075437055045329767091369828259077067139727004254312137458698912134535185041584956499806381297055183873636253433644374379007672376497977651873279865828878987615316258548415895742746961397188293932594447248737064277828316947769919973756064210676688678694855265755624561698397484634674317963003000738084186019592962948096266102169293419817059962386286094460269022668069142905653878339256939829418579083845306079958791942467692404783857611993705773454857623572165741056210630697534770564788477119637308934371674387445445891860123939393330153922462127223075196409825055435733893585317700045888677493834518514841400544872957341460009531449983191726226219833937475021521732060349559535862131096871994614189428476880003562384710524447953418442531330994828983572125139254574235434692831286763358132041304427208363626537691032233687866306486883301170642709794304092485295046179852208943203263255981567362288306636615894168872665836627488120052104787341247535933044557027955658119664239125840539586178971113379279029241093761637314212988279693534833712890363640949943832832989198967552932705094136254959892812385715405612565382064712719106687704436835597218843756449219427725491876099947823738816562000611314030466165003488186194581220552083296475646811399970977434441059550446566481503972660069379785132684589580847446004031056229884405455163019211241588368719273903470807272561796327608858390766364903864921536602164862214377881804252131284052069301432547877664270625277143190208239154060123234701725939864586354382036878395089200387547763037986151686278126346723964226047921414500218501331143939067906727737345853490641774139744790727467431489366909672281692298951350049406556624628141621290620225394466757088610109071754845173810160697446622148553609809456137270380656503170415906227681385532088093560637133162345736687936024025143092530995372560126970364788521594611058594876220001366865319644626365493023885185323445833958101799639782343798843444256069851102498358658446610088133825140820089844261847429149987302216736210955627778526026148248376040483109210036209713569034638084760115913197915395014474590858806373293013844188575374791051880185648459353013800758441331128718862749812647257071162502357553794081495809207145701172811415579190503979875243660540610854485791737507420521250462250274380701584488961718158212997622554280219173833104552614472042456514685347206567301942378514117076685576117682222317940603794313509878967759907490008040544965882115207694130340181489898899837254524639866921629455200426195366370527918765056623027171164720411575879726331741675749658174921566786946354076909764747132077822579721301441611531640902584527914493920586479914407826023717181729835655066372834851379144443785876799342413561284715580319589138074234776783920732426264189899209741050400744174180935639888033687334055806670915812013733306891886615519505139409208022383656214060560369238618805202213759212520173258327114310094386211015897146183411628647658771024516073986319057564552608410024993255177111615262268468561936666351775186219073724766529242660670606021607646394786880459617186122994451278830850685159099346174671344351271342144472725230590576458530018713423434151709114708538339959020661701445265674559561440283439610223240043787237892013813778566891639121944602839716805010000574008746349459293762474798349447308072111626529897942539488861787763178098381295948256770504267391879848273291832302609094664501183114843305611013952420650804165963624379324861569225739874704434835291338388245758006010606352832683098380148906820718213837241373672826686619372703853791527903803745512734282150159283153616590510762008865337313418012596755395868653117785408927770846635569521579365659700447874539776268535464881337819295036460351275515001339062292195846843897018607602817814817389633912944519525945177461549172768754724470660067789278125933264632028819527400888984251880448995012983303376929277424096478292588376819240911917711427979167675470574631606422195341313133962221669219256737415900235236219094737143206912856366633005749202827813643183676912954098112420446222877505379901554792424402467415053186983515509705327017509780206097253149347133978751136753109846617250675562451587879014201524672098095629226607447357664792300030844089536302874718227954148097315045651594130255739274555055389570050349590845247415843619590667235469222633035121591265612351089591975514780538088550903841714224140749833634508506348463283227292554807137524282421428484108970060713979157103809715956098144706879232038054068060956840614882582060239309504060447065083445252905289944363634396554503104222519478571850949957104688632920815378372115397962307466069142493211961714181282556661434144431714904137353934739912156483150813710260854488021570283129643748156775298847315109704843953392831333141059842215651164844567296342239222780929799919198722728045872691881414015877157195239171648288521116813690274571610290498297977475897652542938178892932052417916887243233831529889055965198531477959398997758950592882486727404397964127800006471751671788570341111409392252536682774616734740323420682788951388912589993436605728842654796043191753240207664805735160342353559980910640381525252111591374448127407158846380484276497182380724580671676623860557737123974845842627193418098801650557607023619475312140065767261207884006979803207895050461164115351449500510313273210836490645404652637250127680930793134294160417288053604101979144684070585804275450783849887255684228412130615721919543511480978096312958040908390109155738578654984433472603576423281028953813141282405579709821699894074352300080814949436888457164124387527805915000594846569651934931800297558192132991205093866080209405757848463504917170046990239531286578855282920429941118284600937584854782257166052510108566105040518347869386991220792637382003707579074505866030325761040123144189545641530620936311514643256006166490929121053625554550207608688613409613267186126847129214039202828949784312819319142311064428804772735783112481622968572981220786592157546691153428628654913221215479839583882501763446552160064044293514418201505945000445391881093809858719622036348120024771332872778847611736301191908325541883637119540173596394713026880845578298960912654749023646895641299915843095942041969008178971446694458971237399154410770642573769280818705189165686151216263511865393437107841568970102481964158415095634757847801353465962098355395915380889684136479882896401883770288029007637179882763926630754790403195016412414622051443847267738341416102375517419881426772948266075172757591429878978510654452058272605081972236958645447174153330656116633579147886583005925017503975400157328815386473944295986552860949123965775173679089489447083364159891138733639892775510149844275798095067371824243870042003848271253264628247279624954979656094211206201117911081526341219610729706051849208595130461573916377958818097002122503051615637399545761363702477483980890892907679040787433645732148452115899398211959410834254579511168626780721817473331828330454829349279777409317718370997935700089910718923244050868785613310059723539946666370494586045965828095583110977595559455907618478796902834312405884317000631195030564436378139193836355906119913460796260985440089144940093025264726467306593718142238658422512412083162985345634986483350556896304287331015854020942214646320355806566626324616532383782555779803262362002375629935139737661700309279182255836188619024198894536913562216821500283194677190589116336533023995465918655948509478990887304545112822639741584630651370880109610765311697943091590778594728258785708485681905603338742090855741699396938573282521379907649226178435078186806713925419012606444642424065463885189038218699923592425556937874704378713901499421194292593971999231254443717545419563156199134430071502837245863369599260330383821803712292910353728005817636036471173831628153220763500976563774596847621271567560543338519930819673569063580389885102062477330235929891315681745844150235544826410604173689724912059515203823996487520470638217570275399418723794903709326698696891838624992284938217850001434565504976460805091662939452498651364227775555234982330033422499608385361698178315641054940050331775174030467934677656696562808868340198922646349689018603055385821756896502510506850314604685264175063104969760256589398558598098028352396614768104102338057804710961086686892498839046107735634443224962108947622752702663141664945708351874077166217368303349007317272328465402081085223827096380181071926238690582066667411741820097025708475684587586081464665658804259176469670331899998587507315134109740349527198167737963084063856105662744462729375489886457654564832493002419252918958799407010227308063817047864675457195489220245398272744822061030331874705417233932843315858784655606770663114948918771429680716611280186396262949659346039479695015360735281536502715866139162260500668048099292587845625809322032963209671742775707524338447979363009116257331837907908535615208853762987879886937574165072041814525256511010486807500316595416501579929823165498287053023751936432689269649002514534235844641823803358697982465314826442527056985670277114766778584645287659019264072494472719587624070449178821647990054697778218148388111627216670274466422213886971910090423110058235809702747756648371292421240675850139949449493094776032993180055859835603115274228324772397985159498495238463555506173933230151510182249523573688169515467106931824844583676110067308819525061643037640159961546510443048797584590857422883678055809436056951191763022472457465832810714451170966391803383131792461859298439379196084137127984483593850873017106276146574800313395544868725478037953287730496379090883883881491106896999459393584206120204026834148624463234217993625477486310788430281865688992592162156902548444053874557828508256832289350271178286216700267254878501714273836849884264632822959013885399938001264356533377098438051021566998923290719502817397363746457373893588293813572553810568725333016781134825270966536135208452511593013639454880114838596703734646034124111749065760260331869390658491672775067507784027834539249400558905433019790891969586639960521348939686616511292559604593056403582081635481705934813872033001034005388496754059479199892998153889445849743853869544263330559449192654629789118734278821610261839250645419841382632303746888826500612874691806575680815842419596913367240398123772618369453763458282780304345411963315238467142604140798824557435933803953446602451157062594201696362569439610831822224953826158733551767287881074612139106352224570950421746658001760827974435238311498553982138914091564394911887657785177907644006232007877019549962102359981617067773648142110335148535293093107970436442711274335847397856314372177589787545199051771941860616370242301982963869598015646986591521520122559462040312131375036842062792755290920136818755426459393418494836918991718263462373550268805463666855621831281660986808992388717542862066438247026220600317939922354885553853001954548176589674041823768059147730051663689687461751128882418831236683232636265357121649642637080713179782895319542998307330219086385006776807995067221131531892953825706794255421796873141956800718431699790137581268666723283252932492598057091848759667854816016851195472176514086280931883676664273831914312067601733614268382084739104461502776442189612365234425628807992665250457226237488934270628444109704625651598448080438536401495133513462676997956158041016000445319231094172708338936685111237453994380191593760506102726889551076419550589937930939774999342787993580718733006200026525445538176503053847224206273246861176518330188532191548569626193686783650848308366904570671136183097438121034618407059109982231022779366020303443435283904232715963327779644733432104071670043113012791154285093259835867836241121547925053742163516399459234668246881613050930534987831001094652233840159415470411461664621964550135224915785065481979923662668009149390963038180541968538100458817762423826549635190533800365125166309452071535325401479582230909443544253330914712959286898653705045543310971354600466580393794419876706691365134742854758840088272500879036768845228371119145903900391556333880740899320612950284712330238918725507015846422225546036376069908591785980617323977680932596264964404602477296067704182585931535897407222239927650592209259797616119656738000767797049894450867780622910625631420676991244461677573071777711334962123734472244735126561464188730865379531407649280019786940661955744742893063362833454103061793585623527137589468217092729753056168768822555588096743989398503951508935351473276844277153307179726813347534737161113062632062644844525179366241286008898838142061759525033759713944710680513217827276697345788083600252977822762015839302479178602523827043971513242271977995460778440796747287581718089348492934743979508054484662741255477756939446007173621687859640566486737751803866109040563148619944580108977386158677306544863053720428311828759996295600741834860111266820663078969634163022473904674076770689562681729747904704893613691693923805862029386568163678271664141525947074083681461175127719248958598866909781852693390544841079172869559707726479829533660078615225618542036349316624455384824022229832770426120662184793115173872617799639362167174382683707101555842272706705285247685342577855207833644378406838133844794705695644815209911557810418562284056845466914438418965665376820215099609975590679445814748490734094808757361556446505300928153280420641840042305879221204157844374779812541875274734829254339391460875249383989482365213627245666178700701632480774821522248556000101880268762631287760841799064467128889969607927863006685863052825616684425709167827966225752881755705796790511700970522928408783966888570773799764107676385512776419180485424463515804552496685891839743406256702973282063289639167244354725923913207136489591172143674422893835270482908607010540590105205331821145596223889116693025323293342605610904997830110421774813505500696193043636927267198810066063640048572628316986894974121996287019437375208753089230385537546889656020105878542818716981311299812971107460131515818201309707979418901598165655644762580807131260205904532765145205447296763945586737335900036841536791550799628288036274262923846896698995193144812297336924038469722455270026896097924717588189645699396247845983906009911178585595526261948239729660607837986207530300940671145473453825082500853948426237122723054715986432823459441213926374661826125241096073326124382847816020461388286340806078066124741418773721973214063395725175797691026584005727799406137237859319341478938565286874313281970881323556384748659010147808715530153890289673380621062198728603923229347321933147582781850252322354500771425969772252559020001054788672870619409961046919369196213741639474433544108352354899067204260170644795302276619265785097636500932466281019894559145011666447492317266044727605731154465970089447372080531586866497554786709352969563348670663869166526485301948243431618048595338872123188044036521646379531664638756118395255729173795692728631989838531109037441460823543207332131320312608139324820024948626736544933602269114633685188955914052229089868451820149950747931238549954083598002075732285956530416439820967164803670227077110844107771564555411132631510754597825921300306670218664302736279933515756428149472697792189708691141297434962690388155414176819304393857931776699755326464574060483149507224821133688803374366079298661202456652938444260440296357033887648970233826341283581935895776283307180825630611498692001364675004408337011599908980148644391597138274792936761017613321395179284237307768219647168177947210633216791358655107939284644368262218344707619508013281893289324305248087933518391744790408324876901943233646236735339034244095018953112906273833717864034792008687634655397289683149538047630222804306576654481923106325925236958219983669242981346198720483340516734130071906303342193909423491268022852944047452518232606492897511444416014143266537289836879603426028438002118663769212944427633587580266849476789049104969052082433106620645931362143913900427189751043886295144665352808283813490763484595937103395041510551036845863064508737892481484244904352128877097194351416539442102604128010929668177296298841958923350601964892915933135913762069840232414818292459239160257099965578463936708014318898655108684668150729670620665189637503564783777310499303039697069098856870992421349395171423486745058625433650556107156624665634392243228512372311219714603501676191429661019364942611521615474467192022718739178362916769480682030297691422573543688153347506655819751448700335791573048168341657875952065186755701159519623666124933479220897409265796945134089130841039495474398781966584973058155498795406754794249989761284934842555189115202942443782638340925563623576935398291049829693133373295244827883193052889499589512602019526371485893588753748753946468946666700571712078600480422362908040869338823317761120331774997329490748177603261252678630751099717884015821091803826019114190757125519326181255435930487877876186203467662622996458943891492983891722482679419045021158998272002801688536902751460642559823649610664865015814591615667783116857802525016802256012133670627703913545030335440435962886639970913542425228355897741218609106273730024123856412822524081896596498740041295633494567743514815922068628570350500487946907684952005696061526138964893573764688689243707252542894562026113957148933456075471301168225496947536906160231280204849536418064421048542410736317024116416687478743190125868600733199146334491336167511012662141174167524014812684317120835801164719030374779749413292347059311290307646516809703167579783149709262952863017615066028637322649070740969700311134691092805238032929050964589257597184262277539494699017201903282919642659493601428735020653980962478335457670640469058178186236995021427641134207442986245797274014828422248453540029931537794723409977231869604608017942765807935666108331923191481810060541767417295962602005961318510186565647762935955243812194214157012741033281628042988372883435212574188044159451728174388170955476660716155481717316134820394753372865249885159906149842756892332335806034968856372368813639994957792315472521973646973090957060399385010534874347542233493051381191508487236144359319441879191636052896021852124674523262955299881380636031354167164630851746184420317312080680229510079496018524911622506476416898953843308108456671265018415606993957647189334050029577066550146022823190563733043806772784116323728019971346269646085510661215143294414647218561994767238654142902810285500853423065455344502638121135915332925444370329782777443432206238376193817782997532705717810065383984570935713017632591247263229570825815452821358016585832421125943176611388945407838306066461034078816037999609145966304862605769780257436627374937693122916735101225370796635588757398637090812848425049549152692627023299630499520668601601787771623774012200556651861548507318971428408972730175751948102288057236970365589493804132288146889959159991639578395518802559864586037028466219897662172567311544781946260009237450236510693101852119002234073910167116338691594394539792212443092247407921829772836239592433224715920222270105961502309489085210950691283779758020474041767350483832117247054822137480748380454949054973974453196011605686312343895162619851958392556408212127866952858387764769187209010412630001982598680034339661895584503315737120806184000195599359785033613789624250717134429410784185913223969092628863008716116785691048120496670538910235436594474306178149456255170838469000038320512114852791500864393811974289288254441378258156729679463488842281548725517331009913087337404100726902399168710574299404181462568458286147074934176031863759598822398439430452868945392212238790958086942041087689452979410921055493769700037758677733038028843724103123684633396823111920546430130239551430015301519793761538036371215313466837547974668680271697110397661679701099599567220873229934532344787636859751053556976701213614604393604767380187807519326071716111722507969461334091566130941866431078997480908483733789142870828460620983873455200972687921919684515085786685439177655212810259555696709981607779803891729248087296503728300704071656253431342838834423867897751523010463119948502911047520751982910280592095669393781292835942059835553148493163697133210203833035073650355618882025688848242065922806635297129768831671165673635285903880902428444544409024167615152664293183186300855516124770597052605184625102052768273749168448295306609256346604426757327390337515733705674205142678971620753627148566610538527123203579390670720269132577320038614582919337551737994551936416530817499236238724180256680341481744509189725263568900686773641202578836094135515951056930620364250075650679803193124741115513504793591414360942759385899640144879474185142555049507475368327473635438521176809280715525717520917522701114731157161784185122125016378074639527913041115549343990334761303547214307276051012440587770863986767475114985588681666141779701456931212474509214819549753801419583410549835645931922302046111366773898116814675948889220620436393285151514284582548964385584057209167687156739594005143946967237475231831736310250007597332601200254735028137626173844538812075505378570337169859836183312324660725558477269199420894684961898757960834936206294509064432404499897710045987531683855826866930352260830955323262585074057978623687509317117596972064501118979917489796979127666924350480180660050494496017188626943865831539889964408293726159579843015415121360804940935364313788262442337827769895019441326217783573233754401839849798192086912764291584901804760543918905293423587043849802459914159307364535865409615738054319330823074434216413699577121361129622782595995711639187239845346421344775541563948739774728165338809522379587618573733952589957583332938720174006755752252507581085308827616796315758862801011272677204264009008643838445609342318613340994212111235500164431813573024266032625049253438557548377445399201261954322688745321956417774006479269543645568192173960672959433227197903667752914849967518472990857664894495297006704356421321268936221894564217296440035347296336359308008545772268307053762981762884823473882131668874929916237732950733040720055458299799889940347563174346072693872443918775437988104624905363611235797636624860082717044240901083921482153626460707118390545615835218120126513618339762000410675041991991696163637433574816504636585702468067580847919906047313389477558165094765006228365052810430390227296841743417795407792107595833768610893431606238460495267141082249101220648537264966899338040145150557205057568613576371551782081893924246469592824529592410314307051786131150511715424008896432986423923741924072991321653086072867724727169037124084279315783717012063077726225402198330342648655165590308323973960872827477278826347153912643064358009799826129890011615074696958426969211761577672042900211070391960979501656037825652098359889455427114765593151111460051027473284344235496185047671317003930990729945804399642280253989398504491481198253293394551985735562485790341559800343269784282219796550965364417308427654071913639008778610344713407655154824974952446354481331944915432615974687985541179797885757888272570223164610530036939056400354187851226808599670064134718883272431067621869045610576632819134650050376990155311552907114902441868042721871575147092152282688186263246769605935789859872748663411307086070467087721558325445192612930501956179770479853459240620861518363701266834872477858755772917480556039882342690405781069265552655860663135281923285961083347328102970930147639712929718445239555203824593531995857471764658092138999552305754466419701436607940661957267247455654828665172919975434498615481280262628695489051900365881540983934504897910358210428311513254189665315467927763212047701070055409038861284040781070714477648342510118646910208648329750876390626680468584490690366469618678002534021197463566484657716504899097886389059098586220982393637075500904996987527288486580858359269913201314981441897879681889168375199847855196227828953319353642009954770412795611787669504700657385244884791528985312913862666976023688513565425281472274199843917765261784800904391908605531822533344375914513747095212655780085707738144999595999758388529924611293874885664510662327594925715425969851147859319135155836293150870359969261957153710440955854160412634434394101832858402822351354950973395113979052600075734822303961864177782340559289210093594938884193781380517075316872594430453203842067594030113568010152531432118035943269889891051208167865292465845997699910079577772562871516849584655298459620531194946123901099321226227098841523000290161412043937445649180164658818455551925183192095977803854844359214416745142259631835777179122117230902454405959149827746562872131175976875707191767492119357074621035580410292873515351371764692901258391588199572625440813426942846834513797504911037194081665398171646088997092538804486033715874121999732960635051230160634229421744380255726433353888256959948733134963200805344729564300938298612804293108703609944843167502844984490402360087978190568044174047643738361211863221766266495301171845734010638742922704366604887720498848351452065701287986829683603212133404168334187386522982335386443388354592137836075956714771077586215968843867441482948104988083269752159216315116848163370856986510728892404333184734983236583798067317682263868871166695824527052455407896493966639908046560722774060505987726207743219880870927178810157575163621067811023448304087921453976976665989259752767758809069391986241909388543560435393714009792958712867366893564782321973868868386102655023142382661849335012526328317499855059281284591720135625275914598386416763976096667117227605665665127313093080998021259741105138943138974371308612867655304287097783030275661261117183112419059348934029246450344041580851677649490218609771249554133935838545999177789319430054764484803004318410810306962209521073845679683190798317237186755983260126069747250701647572650064596302637687483478089190458982887929784327609631559627157732100532627102321253022499276696968525980719331121424277158466391614715061002025648752278720458727425067682190774155554031960570506217108113042406281719800170567735451063272030885641389604628779503428691176715672253109435456822393599620901147041199204550429230290447224742954544421827482027964083033877211439220140862555416443008381834311903564601441546774786489133240896033004157125139409268062621470134182286460270033564106200258297807004604884413235215957722603701041217383925799522261010178157572255637967623965370604434127769819569305825998803929025110052180646582373755445361614948770648197471185297739777031429502120130928920825952417128950090008427972313166568834806343394551068512461561507836498163588315065159781384991006325924486788894630382558298230131004568175044118109194282499870889153415760101425876186880555419131237768463354032374966283808479511637041224676596920036109977308908070311671981982244391742548265037810265823905675303139312099045781106992758652999401083964602485157933382932689243656594914058278622186892793254534301080932255999788510756188567058414829990331250264151421955509157434411573361801006216990273005828731241871358366636649883999536566944199407161030623398396997763335316031939901661956273138875456092655407809189126611701304950734555216410474284742637132233307871649520536791893840966638095776408209916688011206626317793396301760362862713982977154878800218864755550023695473925364368894521147573217641168008067980073499617583504540692958196824008517120463968067559504344677676157173786063122725522574437137026609022713967653647085819385632744273901195264489691857423732299524420322471847787208358282432316328391838277408597182937329416844892662122711097546758955634576573496603680720558728498955800901070100002148060736024425807153111671844371427595008742911652887910058268963959539314329580213432829310212469111032114330976036721147469634302243885086820126278569025308080332099802165348545942526770682356012134858220929946326750892215555643482393119947752269495545154468586556664678590128478450697139090999760175832585779456540051567285728917416453462929364896546586835421079485427095831333012457612680756622770289997236033314089123937534268473812428357884051160120155649488559859721251219183978874728448992532315711251844186038019708180274231579851614769480819799123372741337888612258932254660791203847400051720453499311651943637918045868719765266241408559773298017284324909200718979943924621281258760856950969244498718929435850045788809151078239773189401414803934689849242383344643550981989595337948855986911282504998962186074722717711811279547557935001562249764980737881096706064665519109643623779298403285536529522835831459355343432917696489477993976151817496563164589793308749958938647676543565140368617498269924436864058675154637129243942251353173084538977884592808188690716623790444074263855275875628862625242519990576888446948582540658200755102970855510169211440127731509250518870122770132963096254873153140033182581599936262300788056957212735729400409182245472811188751236217503570987165930086342139206824279773957958082778137297197253963576478024235631767615809563058350776913278138120650902284010043072900342614685664961319560912471116547684613208632638734890708182989542471810164310537809557069188495046874655151056823336737700948349459398629360972357587466740486686136858770567628817195501253991525495166273090271142043395546275331728400964198578819461130099740266763273214419620381962134885429840800615281329424908872195853089760627313976746242514313808029649551838450886287436837503224721109815783116571830878326562991837736308112661749698340826750391828289936898049813416488293455423155397469769801571396384393429657165916510895043418362870871123872547385726564112545003155430294815447183584103786385218687287127044222655978304161869804684909291576639567822237655422102363510509280896517208525551272606847926169518558594670253616100547806806630836777106340371491852088958711930710369716756832678611651438833599984395705262872725599111662876614262804484885238899692559581177313813808698554698266120841896293684752939526462661307492557894043145944895456688265829937483769816202745194020697422054772194775195714172670938712431509911339752325239088193170321417922782173667108767575995959344210471595618840838759986829221790602108707165614919527887532651679593670073466742964650719708155644144661900462999125000242216219053062146908987873174874736685444699873508937020686404641942758286261213888557361741791927905033687184925785202167118187460793075288668181892594411518052417324747657983411810488258371531178497646459405220839996871372973436539388112346343746756008353094903729381783702051345835074805165597987131308855198749545010202610813494186819143528492530455279248731285541013960982216255156646737128108048045338305651026735073137056092479868785062696188472059465398299747071893269448917433546730317783024661000069654932367699841757238946305144823287495587546219272200044519324293048997969416441575765486339581081115111330022465156608160328158989238497893942655144400313286332889845637337245278136651873153616417751329386328449655453688304333392988551481642991905483699088355791543023713442824953908134015495770727082902789029936977478980160405861860623486769375575622306530611237669916606762581462476690455332449440519334886239076666294141842145309119194083074955248890853601822357264435429780576496809749720496943523954781842641427641321869139167284759043823195741316059719911743091449694654039011662204021700233300139768476574581392849461819187551361400159867505621447766442190343319898325163302018207047850248353767174332106771416037334404019956193099342588370014440830435046279943259001379242066200384709220967328201118360134143579420327574147259817870397719829092484239309658215853317477621402003852218848795429700210609351633296020095541793934174927111529328984700819849651629601334054064924500571773142919488661316407265269536969549268527197980542597081713207644895111940189671626523292490780233438415936651677841406071595116053443574347934932486304960937586632286481327616354583037497482247976577115631046559749819198702736727210381148240111050212191718906060581552977109919607926857055124175340509488686839892712454349777541971385968651179334110894148751357713043340967643071125012801315270742356622821337610482460096536811088945578699925873280146867605190673621112714083653453508841744425678570509948261273638862226391852415208743046530503703117327606479376064568152438438707349444245170127805788834281379343247352016434616709053160835597893636747757072238060718445001589239689128362873444012704398314462847667607563713421885300168472626559637473635589976603492767406586549820157027070122756727532861382685995000821646424007573325755276526841828010089828845290634785446268128931209765255709261008565864860193224675459803398086982871123830828939685599628145946464914439919978648004483035157606123990147487928743839588654773067035716344467596068058317428598815671115018979152107150426348735041085699387385262037532954035233460096483392915014800877835854728667388784643166468376434667252684162924060385544066725788373415563588200616117534454040756458367032004548342281767014356617776105683129068555231403826704441085815721243624958676310121404796143950264151592471407105993183578225253362996469161320771176386750489286509209748442454693745700090397091406949653693820131255385199083742250485126665888954321843344419493896754172195894684275283444472624787413330030260283228466992135933274458503118179280324052147217321780901097085031852335208263950178869912729892051687695194789490658314619613038350248089291452094271956451144457416283547065983658431549713580517240275340778721909307159180250790481492946938193314008300687355869797034191797169613003985883961101501896743601309380262354993928619196613697263110269726455673955322942589351893672054431591605926121098067129712143364840528172817181656337548416988482520193788922324029505932857715570076282140408266176845280649726918071782807627047432673671909650880775576699617020854795427496194615861037381761948721756363349579108118867295817474526406798531937202429259987146264179973423227548731716989921943232962125716896045705883563047557798560062378485478595463993042961324955025536745863912865153439424024634860512020376166135304907976153871026134376019044454785242478539018090514726828392398447522172164925859053341664035808113292175815553039439586419135761923675940381881411770539248899345468139696765510500029004672423605270394768466450431122401172737670032973548963136047013749263249012924661100494859503675888731122782045051007559310100276332574234522085361948662960374216392367887198523384088623689877458107435869141506360266380096068090512965525435707264897231540770167880032242169603039120103133035865594003493186322893364242082301817682088428205962620923698958093348753124095703511740416346674766276974655820155776439369944371248028791722585389595134720752944196269451949587714431375344343837237508459590403370381223037627867130780739863097712406177991874968666016633127154564474694894622942840371341037593806931347118474144668205626695211639804420810707770358889679080305337244386305824625414767828251777028815947816823727381847858047728063998300694002978551314257086640012660898932839880982995256724031644350626367698299042809548133158244082156375529380299708101043890134933603784508241702829580268430054056921015136675911545119961773575444720173430491349713328407014520194691799877780427453928054315121681013419506362344024175677510171936454343929005664220350831828260550915103776649179153101385773697984720709223363752288595363912808300992090970181781313841963897040965370658751001585246293974314149633517311249302050496961456302573808681665446458855675405092940435083153573896739314809849183571758983948144964563887460802449204607442876092491454541918235368645513874525344418146399112199562003443220212478148723304845596773101679795519590143851421773860291153420293253805614979024348056788246994255582783644999910426893727336047997042406113527339213510838451707546380321926662990565445947542763696878716372899141092515174517387234208810055681273790329354797052403104235528485394608585415761190393748933646055649094905284590388101492890357283956744822835075260695996381572715086699141103024166451353589888243600117572321762498572241683114951296565632908509903471949961841856321101690320625514971188151561482979251353599423094543376542647539403883052280530105561815794979079698079385280176184301076970687446640396331380806007360599069355299731598555058468368472359241080965437545541488962464576010138115467040677963681966851880556801839029662234428982931389282316490575798832504637611563307678993741859128144937123897946391267199990786337923312225307129168157977507436428652157985629755273695237989719745842214412193407156276983594665780461151910585483830274289424152693818715025602031713119116796954047592141303379549727486211433025910893408880298607050459494118593991709479850001131115104261961908068294872711470406388624677675110308593619797577580644584570494547452314715399273500455712073911216837115226957480281067154720843883902247926593335909481218938461749949664410920805365232625809949767725439478747144949793924726777768932456368658842252544818433674725794585496466534123958639692132277371378035963663064661326296360585692224939718004958758685991614924003977780680174141231113719326512789141293986906148065102511857721886457835703276246019467835697815579879451490105759321020968187654321068653111362928118837085700796225419558074417371741782271399108734874331760535673002031921067166233119666995329720350873472725477062158819366825196025450810858354277657870816960604853156888030976253571366882961333995363616156408951491828840824048278196130406068200785767030595660793272077552685786723825176382871058081647181382285094200515651709692112126587036311066102787214921173613535477108292157344435095271050780254593855159985770115009118004377462234703820801786493698968940359247838603838958915899409544236420586016293097466710090333178204316337570563337134106855305478781254609345367281199011750290942025042438598771386107549235451511878374988901287967325507191526934885493657236339763927742048774704908025889850478892289383666246344002740554035414689101415359698282998668179839013458325925596306684810317301441412761078861774532024731213647406049938859709942856038751753711434474226483341556565754510812851621785000501462604554179340632741871008233456003657563372705234450415977496492787577286213589859274211546371074484996334096819022366914973296264630404075732328606917577741438506974911618905574860828284273109537901841643600452415437994073153729295265488265445032986178339689433696283127563305766157913987309283293017023828309146829512006929749752436430061194167691660329487841897937398101152020537508906418482980000379232470611039418439967509580032533687808641589425750102622211549431410025158664562623098346878080454380433016276920743332170925818748165452390937848490097771968231690560219078663300770167192221027738574147315365470948654691627850116719520809812382256832172263404371185805047199753508322926674860208038434918230913886621515668206005965133305057222146027005198137918334523099808899602289476282749829279518625372142283848949054674361028713012749174533519051344122593162238110868818180350195674425567111374862203042996395812148877101053848793438533708365843363199728894890155862746354884660707486619362206308414310356155254267390559853042958865103458372885125710923281355549835282295165395222621172846556814285144622594571413051245305202569277631490103460188987381287272347357780168467541165458400057547906300507390527307548065628868373332174321830428320025265400186961363914063544995564470451580128439446099896874161633869707007823525750068272508168693228202658067444953779325203435344199401035146892536845926447094022614681362311774033646436958871802897037267958686551407537573349248529967084092031826112394169347994457880171308794073454811874946469233958792030158775091767001628572177955699422573229240583701273690945462993124104350895985471960850775311867929785357792567434208229531698097982329756467870423174062130032529455642903173226280208008110311975125167843438833493382586906002669867886309712920430261252068722855264699696067686254205075670464228004468393067514906018468220681019189720924578999963618893013095730468571804711400213283945811163308901077139069905985818207835714816652255504049771343874277595993300014224717724401793636499296520920567132157748682734909137314256621500220922808740913644057958051034156828361798756126217485828279770436040200053589548138329531333386351186134543421882627556368187191239909960254366625340563816227014914646700033288227815159165343468408766466300660128766893662483272949359320896143902185156447225787937055448810315461840520911710197685972064485470375310156344285336044666438333263450811049094134365027165365168955934872009962073025395800800313743640871353533815734510605735167716519274297138999541444889843313932040713057311145227336811141165252562259829662260131430972327754682738396979021027838331496921946048790810449790387038037759665593546739147287671340989075615699326995521045448284152373415772237123976335069241101569361356248145885840361978062956131499463500163778101047319409590190800593275889692602321383414341710837522042303984032679612449836662895299510550280578189098433730164942370637286962085638237354202368028699751619262656210800563352435668388450926187401231083296484316137056909479168238678975841396417675360491841880157479118412231193406542247153741276857948017289279183640785757673728940632372210652126686252031565978544402118911192946847877512742196693395707947821251872041662404220577505479741760807343921830185522638372505394269031734005272007596339266165113099801049390354364551813344143076869261538786487421155050095747074839327250802406772568136887341501121856711333509973680645746624768431455487884011714872570464856746135750679395222463555629113813186844264262869791800718823298039995755270630888035189629098188088199950228208939906379612552457179984559699592433726620939454358395218677601211208805344239355847148767862210013337320221812898536078982472041115163111527442593316948211728927588687648856234561412873014313049836104285921023108549971560923760269709926347860202583396812357430113594977906408745256356108670846561678507660646404957208531083639013238630223303325654782517711873372958903002251338798933811244401375076950932437763429426650714694150067352190086008882031818633829690252714246701808384173985699376692576347567091822354578399981124792260011347756626923533718461364203177703595731445961497663006544637614978550463872356119287178565267412809571848341751741443286072035064662662467676649899934452865775916580042912844914162672563031927821806394214399292513885072707433060265539395276780734860201531038626192074921164861431986572434833331938073353409398888216569989505279813229982016939114996464529663946616422178488023105395025973430037675310633285808233013087891406146368161229087606825865304859575090697846153968034729841267996715338199021211205246111446989693115459730477769119013974615455411308992543947306008466680853714512224267387080404104724375411106002376756233947766882006583183520083573706033230911152604212637719380783710374887839055936829593707336337809112253079195333642851155267600301077214483299614682403496154028068877721472464893850283556520330769326743868036896847672167457684923997038074310638497755158327193222412159107315363765297245852451708215726366096425664518189569968554361388123537606880071174006815554561985648363508717342542143761965117635767047063399162474805188216296382983614411242945852410928500891796871774813963161566398627927793291294125114738307017286461910254710269059435804410592404967010440924249873858667563666624295704041781208119959427621739883013260984554621343110753036950698546171082857839455585204399947111730589469350894620233735533622257756068938213591388144060100722208305305330011332808954033653245241515707060775003656844079547699496971388109502590640347442811978643995933200534413363143410651760656928388798448496672634378452780030583047657124184463633829502559107197645338009544732008477811196312353349444039875076458919913961776207311488252113806164326170922304023105403027071971783283844286676062741919537440878487110371034106111796618188809307993250511163254017746693023977663174521221992263659415460832419065222032952594000184808645445337047963992655182692305860552619803494195437031957404446173500175184752774451484772080090264955863859474330720618584177394001413038742307639270694857914007363065846569303812779014408373116491299391634895974946154247676813944197372938937031920201649158508750502656814261993375442331749094404789471691968418113982041718435351948628581547258690808212559770777280894809584799900498476582843678701812072024445648489195440745961047830745810037222413277238765955236665846083273345121682562273947536167563246921297039255180118431097058347783122373785892265782343052159565170750734206275600717505277154323709185697009981751818233786555838144898210348415386256928029360214565054642874501215641561869173291449577838695974897826921942819400839052917685523399142410988123187637990641091227938402326509498913884573344618248086425437196876195521049506490827292949922881087482583191809391295710039452893403754924941864325817345281968755877589110962082912052525920141578170325502646278123866787503688134424953424326591453791453354429473479281761550480838862006032098170121709488542459423188984178992834317279905402722445435700230702983203935032143470452206650549649526910991911195992001130551241550279114169318288024228309356051246366698881927705776147042610877523251145447536721372977202354208690910939382736657790255450975189977794728348918327238590019204678219255145539113495774932538665665881746770786417380338015232207979593600988811598997464949427083222949296495587040631744072067903421799538694923248942038827245268926092141460896162484950189781324656142292668737985366569885178840089460224124607589932632671938520160883783616228371701579098253282749590028448042863084480515164092759366295019070400356094974807239266483724906231634179859841843940890104224252749992858433333848519228901250075356896955234605211535814437996559764216483888657868937926531535936172674311630487932125724930388804289424604740729114478099489626262987090051510384853048008832047390446141666192513935782965230577962313515795526743264588391026697139177878309236808046549626529306101826766581002997227153780056846485844523447935910695032236315436480737179674633382654431376888117346348238551673789698399227166553691093227941123131361787671210921257048628054709039782612701629537353425386585884958894833435505272943909642482898438401524318892995741497817375043358141618272837670126299868232491113058937020932271346472526848004876874361828395678226955565606884982526550628470021209413695219014495143639770414351035565088670323641837244311144905827135033362879860558003619127077817368908373378187887101055158795617928215198088151935913122450532052882656438067631310207343137415148054714303747124560059875720212175376699723864696372365094560043123949086030121787458837880927199157408789221365215195535066080670807855463879782931693334987523206966466328172688673497992921196493833632805538692419413312809365035591427078298913373371117219789578249807800541529568327984509296891210252500733882297931386771761731729088872695784603410203815502741831922720237243658732640026804637414628248952510880984437380427724821163433034405096644786854302757435036914392885706807040729035577163853787633442585866039844006181310208320018351544710736023277041545039382496529681993191183308801512362690573876126996107364645971688398228960763222720376912664058154964519374089354924951436885341397694597415245075137606900359571492635429203371710474625043899849186414205521898909183713077295531301915972910688833760736389685402474554900023081300259462149608231265553645784304398720956972290956070545549431574893371215907468719876926003432459546897265537517001540511236813933579771208403941640309304511713983987857730752167029470258370916685026822173726479709811885817434941221905705815419073744348064118316496602809878603482041332921557964615628073351684778036690195003088211235955413610583129021770082874353568576489399106687546689080981963814829545518554964098040080268450608182545400848443710514999482354570598693598597567794466695122958422396476104459540362890416795134316623858358149195845710389963689822665538643502677220366219356388065820500976654590382198154647091861636748262330162315574771953892350606600838867429060987528802457162776078750000879277754982079633035350031052332016783902889852283763455370001226383889773593275340985533963534830755984665836425740588256559328698199268845773258670200964455845576867164205004356309555802862481678420004945036775091650155804369703014065672634873918268921329349580457813116374711141352231675964639034495012760473192338176964193671828754513788568167208597318119719638386184742745557515440115219513608382938214004799344525872460689257484628044119494598109546557564663258037983655569390624923709192024247168042614215071931248088495653030286643680536803815761967779941302365314310624909983909096737788411889698314711464088901272719725759508485842500934368754182586154027514793397231540381126206650095641323765226647699740080225004278351364167834558671776019261709898439273405979917431570041963307075749100300204328733411832696969661625219100268812442147985219989377470294120231281020773135361755132726411420794857290675138222289498941492726240284105443549690138723553671617461301795174248293303845706427437677630665888937822712877343468265300378642811530728824502573883913622489290214099547742908808904912205394014656971890305348906058232406800076281499782685161600633453849746150544184889695509277470754252406599866365105039547854836650442010654719562030342855357399310346558346135025618167381131800280875236609781173342265728946955058430155235263008253596825924761201746589718222736114197121137276361445781474524740549159852603440111412674115812383796081064729442189083544310911553508037530685736196292810516038445317808143544507077675236870739127184500824219419083255954947668382862755611188338142972860197889796179701500755042532008040360343504335136582111164723729515422501394631272047676584108088641134432302596226626103264844165331626435310389174495842866746880524717605372361835084297231970294941466145923494245935152839801117407304146259243233833988865024360448327675630782981735995658316411095158146093056515503115576136367810742768110613098887665906935103192066884300510934257336014104947709021778647083318084669795763249113199738641848833911149879825639381289478097709901365858137922000269212151964745848268492696753647897075339785353765486118510805589103919688042489119394295482631939798515770338556879634445915183428317426161010077568365883131783455125688204971487652815730821647759360171700856339410938741926963344454024053303603100290271523367711089342899000346203411748718132928134172798420433220105438167302081143199694333999582817388886953695031561447226576030232003808214600555954781699946768823538082456886817956826958115875978607424126148894229414814469657747634510942860256677347561063285352434823574877158322682296707316643542175535559599588933270421883592368677832015316110512474214133372554358733483360522651555729915824399913306956788178315485626813821041421553931365240877975923155131832186578296816471079424811521368528856106723615655200036167961753276098456943306584106152439212843953529619477746711806917521183922508743038567351200661814774564891638139289845104721192645925124168740315668914563712454887652598207030136459653563887316693907178617443937828044200104792786472913479872075129299044792738975695010760322770332954184547823127036264453509573418629572800905122087914953977818327223731308909145122059951381730355356380954572765263612847823259933271096382661629310304993821085473711294351742984305783520953552019446203700435144477583937385843002535266239842716552842713775944822068306123833398879137984478755483768628426470602236116374679592663329972324834641393123434207045548993417868407356251899893659901671761532856959881553073195473096211429553198847849125292103745116207204152063719213962280878293833970460673277329098637125437998976267724412461567918647848949756137278288817243433467956793997946369971625363897101128123659676788358602344713271152531713607716626574774466741818981642979318068653366578056107909503788370679855280229235400661445379112989267024741308008395097268809593754648961427397794435462571304900998026550527182222928892211206376535979593486854939003416945535952248394784085726901442357530490552946810620610048011549667957137958976227463256776084732436711158092846503741538611898300140767253912783812281718811712322435911269185971087778774642653763360612638782571735397443619939874838857448599913239759368353321300139545703735898321745799945837666798065050834197859302036763137653109575052870345131003048448704133337306840913899359398558953240196299156988142312522587985742146387137726240973683346056326987641912155559381398545218157025308818574686817243642613453065345335793970435819302496737446169725762112644697065819445389422028543047021886204313033763752918139959314914952938290139735460792651555548344675963201041687275580152525739109340833983739198037915837470094007420552243334922480879373926203493250953696338489184951423886150778152263294588892827252572007947696188427496758790715828165190730856149088712959768966473693514046341953747859118857791745043182265262020239504526377536562330344443963401038413480193405275876875913255610625447892095083327336053093572694974823416422486801467111270488399009977611671402949722661697882088568207261800237398562734985459810532874769845020285281494843572119977042920806492557151952889240768139660468769887956487777472906729745638041121289704948960768397651735350074763615365352604279493622505528259420165801977047178659222771685197595002900220456361369249800494761864150112839637136177611661000656594184544589423991941186951462317874102218428423981709408328597440806217672657244932309964822628336995371370585959919231163612708071820221615323668034820940255283683097262836226810997966046208605415181607595008349820767835625434973029830316627592924485695861994805563530131646801248140603939982467526908234505106949590566028876473661618022186739357027274083342815144725144108334645129622515651499295121999097740827987771017400527375909083352907389416534946639906892809820430991621524071783421347707211450857431020929395215422530387996097131299226355875026202678104677190625785772830787734476136112679385924793309587273400214591459967726135090805056232405365655602953523622904298068162107348910125231008967177679246737987437624840184070762875146243555352996120862837904605629570753053793503428092856882409576550742453569904118585174975455819949572811643060994549866107205957548096276100170824228299543444416917981725463102205659397792410253536969441013887360328153865105629212794972375834542913741675228007169054653567976985587604103634717700712702132245506706333650363714582953376507770952544757902564709777538422103727834097253927934162411833801153383745914112993349617679723650404128375739765591534180014866109555506133135703342247860375789972299997473550966308539464672672762880028722484439896856626370889066673562216684139175543079981285371812066738487762261778858267703218849141075891575793657633733057817823680371352356187761732219834167422826502917556806795217729731352926149390886429220567297264876721908193583330005714410110953584008750658901355695693544924571574448369388662493394096344825798742360821134572478695533020297242558684524214125646287576362772128804532926187483332690129675550762406412220644633178973567095767509464500491599084417333701274631904995567011988178887778240463642516846065818655639340396541232971953840349588009073494239835852589343176242390370672926045592185011080928166629058398064923376817386979308248344833748767394745506325666099734985251454810364282903053673121572663976439455138686934522387523898850271135210213960275607287343468049700096102320889866735567717613958614148790912919838598929754021748007998570457419271631391089143093553182875056987424565904198303702439838126048209736460301485886446240754124694471759153925771093409664333361114803460159788931112548932875931176698640579719183854305295272834379045395779918713840913916717565200503877602163513147230408388715928387719850852327571513486269803198792273182137052574608820345777418160723630875327547715300788420448626448928107084281810102316551080554001684050689307449808701537970507521248530870739199507068264639526245077336469807872758064488232746596429251778124752502226055291775442257910940072173060487550828440952551788136670451160718192013073894299157265381096115683597298256408851919276317231145954965772889862683065298833999966064830198665157643795634626838078167376183915808762669900492953301406697904674415562507008458200846787012061120282597337219820495659760492341065010855658436631580922213238441075231758990245139043701635945289083860984520731842394013444918626957849328306257538115003326870859601470841239785605241152946214960375998479059964229903164606233782085813741319446249625679393494364011177711939091423797087226462833795035030336923170301120574092597973347955459916673533381726693770567923803102751720925302757185656673606367033949625565080070640519852471428259793292989020160363998828929893447052862190240379131560484696999990325673478733703923004520704150909712876436930320439658786628624187033786550507056461269836265142636950334918509154055605792705936346037273463226718648157507782871043280183120701877576217468963118676179621788862901230133691408068415388156515504613634504152380024237274931231394855958764093693596093494592370861360003710455040191685855150005265949328507900927037459132716711471484543168587946969869630267749378432460964327168599739696788509175148155233059015013024581789122006317059798166260451220329480853257830004287275259995807478963531427437724458788396893031716805741825880904235817440431014432871026190920064883195314112452779020451641876585518710517727111747597771257423720798530816784719790112005167397554440058446242910711439284555122576590310609471993574423790259855261447797933084579663919831166853424439377018827323103118051437000624802189735080715202825093958615380226823735462998079704178856579727690812306238916068464843934041390138853955568542670256731301220433385528111781044725805671393827219319860715185325689506824137579721454746708130596961820669154440390170480923928700604996387043360568619636191118220421464159517455873507940550068814920011569281750251350393350675134588786092082919741682331835959853475311005107662663439842341079616161802054951229701794282480660365288353807157513677764159715601624620939196215498811970336712015377571064674103458391248389398549397374522235703433450941645329821250126096253646542586083695208449860409018543620539447484297357394161327503534138104486719253800261652552831385844366174388552264487879830428807293618344102300565541132612759129687894853448613667750614174817592797898341158992620579599079143459430590899593279760639175295910623469682155514233180767889957508344128938042481153729509286667282199709213375297628349154657710683238123559150178008458103919456150546578963600486850793666343091372481281328498960238410758227988126171423046607763122312192615421971781615237133723209077897755898399109996649710718558783738458821449707901130194709696273240257045939781307149143914277362300121593430050528849322969345298653649082548478850637234404682061463174834971602072771124027928316833495099940236319499974448953214244033011520618552861071501641616401897260308941403340085359523044643345687314381901709794075591893365757008676652492855334880454805049737780627769094295059552609148168855122993999824595432352683081032859043934828639546413155380916793412820829597667097376565018298234271602389850852899452231651261512779933964833540838658339080683893767466140632213656761276589734466188275503245577831127058541530854937148446483859060360736571864834484037908562061045768658799811648342998905894880510436084183240735707278556283315393700174780417153360212021167991186775123589815031026040705154815367951398397941466986420380817100884621801824723468047752294312945032059022146218987209525888041634026906971878146130201310543366170740509161356713224734105308639713539017260018334397273722720224663029440433498218244011192231878808636511173819283838228425790320020325212614757908305557922071315620618989527766209662506923276584609180382906160026032272772749699710584912813335801950980851571043827872383629653849976163329477757079901579762045607618955825851980491799912099189896476576248481333904635991730736518831516543443843518458140599339805599837966290315350128822988157233149204965284515633843226603460713636938529623896764851796931843598449419357130169832969247612553732935797718839158441692043808911090614116863801271239220010405001831153693184478995618755124588551357005812785784173927800480748356729163083758081693862384539328411013502324928239366416642833143824095408659244563581451027547316697668170328030461465940046268869176813001530894349504635720369237797254971784896503483623262773451818596198407851944489247303088651853449280376199204053753902017481126835438988926533888123537203840786615136190259165485256926773659812160536712606371121476623530341664459277691794966543740292296967597218915164354288822131420509374121644681126402297378459477109437808404333748885037673010830584829823858847763343979364567016582609717993783174123591792814008843836061560082034652906926874675550145979310064870198360982939083994229526302471637086944858903193080769450237643110573810991223678202776004880247993748654414202148703368309864529592984077937812549856205407828177625194402407381298181700361797726133008776313492001057315853001953053079499140970152056407092165724913974353263685218802302212598049125870166041081513825835454320592355248983606692000477688467004504427921392800286637025394225053099845305183886169528664456583067190946178608965434365691079205455699485793751091962091785898565801128723027412197172915245354223609841249646685912706930581351698911298970356076916188973533301392153837629348278228595012801089185411328282805074072368297210060027294889827571138981475127277498121642228631428964952933461028517468250331089762127555190857741682665855935694065956372787336632310487864992035516275876809737390348766803118158403596276456994669474753755056573007097515361602071683913058182275637671139869140395700029286614289616221351487249689275278892859529023787465437798048817231406194875135628112102778120398296403001287852213273250981945659560242401015300341104579838342591775903837627606790673876455545550047593097531893588171346722281812073045044744387663738980536120415923693931890155116783114176766285262302165241260923844758539651610043202919001365512666458472498125246514921692124386984665955778817407597787353719380441569898340972512176746472548491516494598722118375607805592916428590964867869534852100928051926209633719125134563464303819865823479572560759572847424316916924133653245492883941158386842431962945754728790387057507717709134629647404152953024878420832294150082566649455633162500764697276841146128520739326101215471292685708658438661422690321614129844386408986040810681348208878596195113281028671072724233451814223475245344594390427510956448572864468132986110290494203362676506881415583126409116522940191904834169154455323988208094910670666448470963040543672450279938944614892790975957008104100326497976418964177812726853304926211600077171920981378477986411266477146551399541182321532350019470655230118993016842214417855843726522021754880018150788246006321866925666897179813816007730303981039401320906193986599248103309942370613808904424933616189212637951093720962518047993267503009960159272409321522174877515983600862146305385329953206778429773490785562652014466693467912517269296289301488142770490133396754683329789999841012222774251282511666011931912438589911298184467474673755922319096976912042665687416556521319184282545181462723176683875367891773257027604722977470057883163690999823875643572423877150565691167428255609953565759584668688432986575774417316422008870985073232430063824978213502327239597533230330403434207836276229243690894564040853769849322769777932924038818273205124315573206376199712101441346952233014385007572017650216380666378294462645577060739245234163775074388350506110445094601140722706248547481012774323948184430018985739978075823328454821261207856077318402309429243636839648284318881607158265926442310612615113146433379715008312343708992722998255296250561863805440024899733889083413802792641062725701531336668198703202143280066065251059673658584359858168668940170466252392885056213756625284605115614866686499312766837543192947337894156856705017022909683882120354488075445162102722803198621582693863700923530232194231414987173717253498846513802627607555033100340178559818017492903492711504547203797563545493947815554368958046449180129354362966832333624794657041012072742434346694134625590690802868592120267407641350169261200527704670613370020790552448977103697050174181889623277405819962239114279523931782765855947422774026098327048959118759612655817919795283553900715306389968661431806379803565769700998597041699213818440126017855815760550426328265008566956237970925747166123022383564138190356755206391316124378291158602561374890381174131249573233033146611889351278956056063322600237419472455804193509518128396187695364954856711692715389849983112044266140400102023465551628615293966798704913813725256482176805738015570693050176976025232417128635258545340759621989532849625682110141389634529795899283620380311209056485323284073980532283788587955603942036457885867433944334728180598947836149621759397512054561666874961659935254895025950492132291382013809043007715764978221790964987408505055050871311761904846774553439024179058060681760525310991323979103775234553479109747017872369079121061107150409747990509676604141396185032717545999206171864241277139770953673765645478391642032525169451893261778581575898119267516215232160464227272485600876635685382533152455315985738620683436038977400598668764688377407622475499581339497892840157965836925802811945970005497294715905813157612596998417424947765553625051726188463419065286581623642610852180288919997405633785899539353096201972306606906191567364948615615026700622891221903315080305400990522851643273334139403273361504591266932224209740104070890084411567265899019965803652496206898624749199043620049380784701177276294729694745344460836335649975593868902413116587829060579900340440832702228292776908377365974322774077723058199347519292504347581725579541586494711917373341329490367154776676152727318393300530706793926472333860615654189762919666876829073198939453503924569835172348252957161073886266007569090385062993567247313523248487437297108499555870322521681171735655329558106821038274992552253027236363561432446593366671771502184222995991916185264112366533470622289011163874643197058531687703608996796888199255420980964274318464484826757087746491694501316441978042541984752368725357351646194603463684893699773913478361867611138752589034529914028435964544787769148637215809603680481320823793163700573388321604111966680712285389650401621693053225610497575259188928572443787647892479600832413377072481078477242037546354441335292871045948800932325611473691053596676214821175133773187544060222243644198222769827930836778758093024442550783123790324915250851749294812678792941461612547494399003515077027226161434343269195765605901474573888717243605050123699682025286963388697840803704567640225477794223720939142208778993713279438784089120105732577748624703798053803524274667566423734901673330784429004697706567560977023268725399393615189635990065714240685041206737883487125138977087051746887362972547331196128931237645720328223925451236502137722000583352188531617656594092407034540117744024711329360003697719664194122991805605850616924666568566295197183541841172281079758053585768151484771855055942418738109449715628648490197826494592128238639943154155301881579442015779677596755678833796422231169505967885775153503087880900557447234634867344649959129629753002327297700432883147954131857564532617324143630855112229683633370386138278198359508336086289224122376747082036763324526783744270771370023694711397683060149978478418775769992735904995453123357068621175437645341204836801720777929746716980022008169707945437995420626150277109417961503628756657897456928501658709689394452286803450249768897628282021265622940655451041330938682234088399464949059070765480227425768926303558659624350524050647099035679252122362287153973627803103464026577193909997860242530532622350876168888763353182923534449401879992471337870060878507990422795058471552936331354984625547457929753888511577763606569116308355448794497769466768173472578539616685280698031003418010148476880161427619267429813015137339760808656117387567970712979687291893099624896856357209722555817178843732280087717458505112447805244966481994686022997823273001918086245623799073978948506812035409764156239588650331110726219762780817154476842985572251291563554804142169900296195828384601870599570099801327957820120676414675676804197696820636079991679300579092244625938278649866356291673188117237802175482705300280153160010711897542596442686136663241645964299423478124053041501427552808110243184578415645102670968613565502262487513229136660459740302033777719336908306282222048615232786538675724393119592391764822680320004540651488715164261092708809717162658427826116666869537149722366672955796769844486497669618722904693728382597288247457207645182075412449294884477201625560333156715606110748073170651886558990380149612034356970771875383521595243421057072179888576547400428223032770831299730398910743410525259049263898021287239840734516494527530521651524097380021566064543092222818103257997118160140971048819564149336660070558473569234838870332423114748643939619073688639050316776380846872163147567057858362491020427243580846604449311590218367322060177060763804322936148121868975162472683011223715078822233517687220571671478750639010842480990571828411269742166089259186514296967811047695857493983144976814588584396626540368543015857904896605387326740824712145315496535692317721049600746963517410832394718374623753463592865473009605013014988384848973271409293336901052590867269962840747567133129075795123207881763651173463750707254312632095522862237135008467068279511567385219298829135253502093746916892236739055374722361707197757757198908181663893712299379621551990299420486619172188656454845679696127074708450406100366380686159922386155823452708080696037030752838049365212158958725673999732899641014053875883320248954110631584697486436671375230588994778182463351994161698626118413505247492683980819931445183185386236742089471102046614988090681579880784290969943546856575013532949088723554422194329402593608860646072518177916117949164100604818104924826751314452745227162022620009366852612466275582826632897205555128185462401077782319801380940443677823697214372423189539745362497802611046285028523282804943909290296261387016483232199447280803502297038278607495418288847613304372418409473063571476009195301518169607663791244375452781741323197690459842980047121563610169435962418105280031448708847514780702488037274976208459774040153923339132414344781467556198405147143208726015971188905169016773427327828563946408925386780287910068991937763373856797374434590878999553562068411210687753976123681635615377762277948773253866347252030829819751400002758220453782221071121279359859287910886956110113561992038756133345875051349340345842600727232319747013444271556230944276792477952400923380850535025605237470305991646372296179011410433304217029562147560164341177179169914761967624694679662735014036530975955982722580377856097402629656565283937763016379177242907212442915398139522575253522918082900853985954544755364115577050292573126288830845816521541742982250457589611106163848428196011266205239452904260824903594073137735789336240227819924021454510600403279974857594204410297974823036827820383840857540668414108906800915185984529709391208364368550466070065464197094135073950723307264521186905473656090241118646117167680398398792847748978355934488336875748497940917369821910176151701007393306774961276947790309595406518606757229357799635320137545388988255475863184985860318550047737424468252685407784191809090849032769480934641139955537309537648890009433783609951393991952906229140610112118256158087150655403265626516490479826946059594569792330017357010060154441392525489919064886350406066460823533898044161867162248859463234280349707492548332084760649417699743078764699322212996973980536211391094025193837223476289021279570331750053699672273403799036408879455597973029220058792681032271507051128102541787778777727348812583688815536400384337419095082911903807233425013727975028832431477152412546971527819709943903860147340738697549517923186225048535671938124951753421240609220443465176377314471018630423798300607419550730027605890499798611465957375438305931201949903474134596630506286925402567563251892492409670683500577106896280114001376982749867434698299757263845642377419533822205830581999914065295142290213822156430800203586440888770986511506862646072130728996969399429063433080188744470519805910372177534738314014040148191742233158284088771528387739790136382540210960896595332127109267046813543486554767814776368793955668150335767508469971386374723559452577552781726534580272202286126603819833081426775958014426006730534773207625062454944211650935443545641052039506668148837290473159677938039216971054742768721029622669646180493041032086983363888870897310264437400586615056904222613690582001607528912073139923578370953781765046723300625452782836355813762885767339650235815719349268398285863509248862241101187400457724588695896206345519518846499607608785013667820688522928197866058843724669833232368585662823861990979807587403666304763489552982514525188926041433905937274688624997411102729307837420772331756843822511942526451551112641971095695773169644925645856758227964605145413620879444544923572573762922055583820718905665575392318072353402418898091452536261235434339243627904310890003499045311594826208319092064852787485892391205182574118133267037558574778674176657654726764189774878175018586740283419033896076216457369096867893487541942062001540437839302795570115979048768241343247909627996348142445036810361969933998086975798265089801164262157735052246393764332173786789838389419222575543235796051530582154954023846213953830376610307888934578680569744974330113534339687282386829013127765129094964175421253472771414116634089642516281068100794014055307888200721084226649090014863620520509906508774704781134479753364915458535808903295800080041918556322678193790370031259828066558143847593299301676188618485490863900666649220991604208584531629298545165673346509384712157375408446474957534595960229120222842908385093397263704673055481103371419677371595150962166881621483221234603151618399202927990910923422213433629858258868299507750764082525463650102074581359159956551057846611579298787216255273495003710150478104749436265430282011098768132055931885253946884461602324886338524150415120807427630290802740995366155975226104382409735950811259063924274486043016514163988764662783256692555970725448694855038540509788384640686462230978876117138518816900638231245896506928752448462763567416126199289842695153449137306356590080689013853020468586257566010821625489657116928197989356707517648229102331120218583328734575535777689187724701788451462496980637373904713554969733204931727411981879060434648049747379390628127254166307407229888975869702056279232936467848525218460869280133569804534018467398117439804727858858679580083403346311210390534799063923800071348193209713193993409340413601755416053765399054396804586085114867534819536248628915149485642060735707131340552272158027459435460469932499360426990118548753054270228987908435400491188283535059842299766447261577725411566609253231324923973773019022732226827341694723746130956062423336303243615147611039026816360075268316664496143497711626336582312384964201121325093153437853513343136263055005895410613179816020942031627142814606669638187966852525646128502841412030626958781076153234189615303347295177109838655221994274920309377271741011191177403321801518766092103221740818827847641231094055325239774086968921768154069976312641442929368719931117143712692238460360692421653499610352105962140763644389409245156287331275781873489758076888050308075421969529246692636102498352036007035247767709372482003573874067378750239398208743133510969513282639948219450083619800554534793280026633885476154547442444603639948383658033276932245061163123119326394052188136275587043773595235615886895537664956271360370656558018689608623970056907830042176192164087626660680679747126498364871676591238035784621821569741823440137641342064451818453868111536588791974636624257779139538102426837685201597980457974383700395387132977010219195443927029152926518892534314250311541223904024954418663811470023426636272251766573191092688980738507009188610011334496378965933083790561523509712822761825212068318815191417878721797907766932935783288727080993210781851499192562710223391335368836545080750392423139802164739873559753543333409817127587706248750960728482164936666317648910348583122176661735635253527447833763408978611517043220051490874652206078587698160039579553656492168766659997557576557481774664078851291406872207218203853735448056587807712231507998183816841360887175970717921121169932070320882845587934419818999117726231734376724063715082654046562682971069908819307390851208479104093191195509561780634049638366439759881024637288122233516276655522378778449374934952686076531484964698684094274094748293898188984053307687361141979194390545502821214166347248505888277011171297572824993645823736010441422520733018779830389180616302926501458251851250994024198353049328781233126117904627588599595953863229439227347433334288427642381362636181958273058613542234515987387550207646124545285793754140513339995286981016442693434215072733344392358164729583029159176090004748863743210674182143360333497617552941894130780487694806280827557695961262552617465320053050170565391382562277675256686196881704418814565206382424995191830596954824027154887503602566588811167033085713531825677078439295565197627182056925122836111167510300501107921139871276444952678979592443511336705711984770319213651474343675089209808521553171351506134719523855382972232133436535911541316015160677135336484233252228639766232712209417233199364633338137351794724869224243384462806698782081062447031680671225643169946791712820123060731813848923985622785520782230167222535814888646690896469119144393383375812951324058389802970874582706887388469275896096353040399904386745764897001906351131885780374033978150482713192896840940651238955562466411107218661107421619928868118701782205705210948380969927897088657699062857112703526564630962723144381553786194495191416539304160825537642458549175235071785649741986791077857809819656345346687827485069399155372643644277946815125728338714344168829778981249228819233412461436725553184227791670541827300153153941168832919640573825630582814697713196279166051893999146878766871649473915083140192416155863090754398748246707642401906240790024672315586652677886797871819347843076790846780281262940470330569274550378013141553949957234251484836145779402265992242506575787132120394560663335183318963724400522124263831446436272163328459810862396866253366729600148058993615283108062370507233881851555314614794414389323575613522132548094739591128419374116013149598546605356572821805979823516986074375009092104049865396112254582528717008697062570359368887185578641808452317601611998942916305386019126143268532027925719920167735515772126851154435024998392955565974062136358912957694566817310016342436919914304431793021248405230021191229053559300757524467368148235378634185613694882582511281773813470448809878567586240229667522599901272825626743174947818554450001016882828590593508309023239140589146787092115745317746933778087458535529625512984175454461016747079851392911819518391083520447094557094947226412298450688897359704530410256652070421867047214343129068885615808665616126107898023057144043726145828908546479488856955824292639333020108275407579011704057142095364780753517330057330658069231153223688626538485275197814862951970667449892748708811779933784937727421988037713780269197417911242256218457923271199970728887584477317156801985634093933513422226259073556995081738024821827798533601609106168371846524880905183260338988367292516393880151816513217167216746606665948417579446932123063023069983725341606372464560571329354329539981756915292208604568276187415252683831478588123965320581989430505972714052626608741472553949829498519798307591261139899673792987105279181042952962199143250104522615078777249199835621209758266234409554184433359834542414858419247193017492661474290022260035280088369676450685411779745632477273358638112456140709289655892875786932397509452555185010339963198319750833311015758930924708447086995982311686878353532476400607456996539144171445400590091780311559620381688105525950831201141015074603733546043240750797986217373039611981440489833734121860227353258336392771937593981138752256183765491119708018371675902315236616637064881078330873299370062371663793359796163365857739595216820930738834563689976964815169791306523431815419107928410650451940255329358378132060126348170408785860525674795533309448581201914861629810610529805294176130109012395119737375466245752922552679056932825735107014138700568712569181205185403363583669410354010818977389393884853131023921757601149753566813187239846037264260680783869835262889092374518097595958831249007584713522384726398206214622993098467694151899808759502817150388943183377263664355020715821652384792461075798078420323501491718103679808257162353899994875392525804948010179531706336499347293179296588370917786005065579993711369330663355698704963406460605311477759055322568223967788801731793287348108893434807042365421083942163689992987987512267544222207638847573092646847233546054341972453277151163992906533328388281054946655768328137286679010924087233623595317534048403197392858499066237786419522425336205436426639866051036196779095555636975055459741416682292961136372312299781418679601632749809533674184029123996876425614041974249225493808447982807740995531834346844897495829287845263684991151128240030177452943195898206806367998910175197364587802304074914676621562468828872203803532375010173537118051708847390037629805026793260739770645703157072555637014438329389406889732462912462793041709653436310354050236174502166524239113795082419733455640203762962277463647987693897155725335813024532434148764538047484208019629582297004900052528807747846323073132384604411661674403144641221826093164564620113910440444642259058761445235228397934525463094645013538463283311513697765834193426360033361483188890404095742727100675560454110196670499278553611206560099386465524124666485912728507466898944492642682828348575230049955080601587376792038805429111836565775122076937373175264463381791144696990928937915808038661719060305174321432775215492299543642939775367682254360557479456574897402938616559277294266969200957947913383919025913890182538923730785235364636847728773901525749166693257501455559838710402037402439382614164283029113593308564019495232525869902357419946759553529331027757747791489154365749017884037708860521207965502517112045934260994008640647009329557922283285463156305386872951045790884333617131839956887212016909860685450779606655356662810764865078858849340417331188044541138331874383184183813023597971554456841708585930517840230701905506943894257588431263408744107031344814999744541552313793720397724592530803893504723046843137323519020423668721192289917441728380815061076135260188355093015587687272851128999301550206158742144359283649358903313959240590282841143302429067675822511560120680163639686075437204266404904796494676590297519656802523786741513290132376760925980232630853762142284029582901614891340964150861833587171562490955405770733597859406325382587992073743399033606897035062895304364007306985844942069058355447011400862319728888934375231754045455428454255493454715157034692353478366848929377489206648823677947754685619627706747443989479764698112781096536466162899352096259345437998426009608910850832007276849728351058990322140526704931224288515459552215373324365586289478909007683636429861965129070584021316888801544288146642040591230649017090428517220016466753060289623123450512908881254132126613573183729234847574566224765353922888149898443057958472700399101591863656092431339787970652588774246107586194436773283183157162314552847822078495760849939035615485095373165181064868378837072715854537196570068059545931709010115084045563298538562793442959418553763961271241994746110373326638782510710033203555618025994289992646841365383490523498018811871347335385189389298779013013206133721606180633511664016235915467588138613115265262525766139571380795049078457082118421039137903920468958868579849557674973273724984244396942780174122317016819992506802486523563413094444716776244729208739772674849956861426168978502224517364493807530764817953589898885045184707654712881661221366546444023868771941849990252895896129984675952311655588249070629262879385792267973424287764589931222785714534325770606438314880116682867527544015167873562754432888753726189933659904489310467085356487046407669703119608945225900408660661698467916146919230032353268601579729220565815302854387902151419396749170870698570666999238627354792747974290662661097529174739905670848825234744133075626522348548259950729491403779729501777409045067283889022352381792133124418556550029869629154546784579176367118875934119999593898950620598874407049380696202117529167265608824404766053583469125100560620776496101631073507474748734652501554290927116739183472659646563873958912582455096572723350558727043160472536924146813431737616223460831388961201443449643563319648149203993785066622941412926284867009066642359743098394646706105718807146518108545327950201748071230963248503931567735826297431183446246077855577151799719852557771221232244814453952418288944841672191701500284849315614000315216387395303283124642308546448713245633756244728800163686234888378755132773174159110463242294094540588564986531497995593122373876465539013984329105878721689376841149438460612040790982222902728670567804947338814595222088969903878697281253566974927212875126724688200051957223730121689831377649766106928850259847843932324815697114289260148931801130407340801671382971452071880597781823500129258682320713239452393416439208332686936302399501793211369811941568140953391019584346787846178375038140685222839541231872339121708378015680037724333676881061220846425170547458936810380491954596955791810469708781361036447462250715739209406105927509978429799522045338950473625363400698784602786581294692795535431367431926981390454530492087046963934654569737012400915137643777794975906349726216611984027847999613024029411480487616380826952877296505826090003936625165245793077004965742312626783939373485274806458753276604308150960543126113407000609534728992157445493640177136605601948998901005691755914565825974274023401704318118917171664234215757918219784281098000071938413573893716782294580335353912263301686026763934262325565668337429684543297011094927295505348711047048694586947870362771534355558666657828165329067414142781753510385210650936845009543665716620733970696842846723019691021261243636830476005679801389372427407396216075334962059475220006410615727177567344520845854439576710191029085630210168362705664389216464916622646210323441070902430731973916128938994308386114582281097700589275123955892475996002626193902571906730511994604785957852373072426254292812695693453780398490622658552358549202714259475849327276964263934105345493973671040495805615924325180960724741051179415857858994852973128897819856436064349821501967878525728994335949677752626557633910687072051311198767311562210737203900274269354551280103031074491487267992460741539851026143375048331086502959287803693750549586443208970704294154104055845502596386053829590292353265980466967868763721574848913210253004229610833046971557715270763524703914093343468827281044753497337955711972429713518079179397686478920337587140709042154774020618129477198472635734695318444530146758482961792491922853373304524526537528341669916309761879077436607413085901380050558303822746899636381908373475543457594345141552571004755995477832218539716084356305087653323349670688523176740404859484165261517668685980071138374673513100538900795946913872602494123910606744902446997492748156988780208777296996411792234809498989729518887801261713221302883237761483179466001974517788470028786405025090626282305391909846766508696584319991306483106984033144030708159846900098475674864395531920442535654643312897496444199524534738834868363345702740517047852647657720723925850872892853192896718376796179296381154937305433210686810985407616979414637857238707225686528965516654259314481603344832110708551719897564692748181374274802556968535794332192788236615293657588753625798782523081101191067126617074895095137299450201733855435518720072379883988981358034255851008341417794752349245379819237066512278121957481561419378101045915518428782859193145445507452532431282751628504949973226448035114453828189948853836268969316240208560150770512236243778680913809029159389421093111635240592308646069671710758415410082773403003802292674826760868716456841543162213313278296467156731653430362761259303457899393590664704723865230073386346066162159404550239819772849309831263038408444465217757017932307828231809740733941470123083919717687002234016673808397812296205856758366250395838061397110878066457036171259586787584699507705078938808234659679476505407470850986406143706357215625275087132939275277282101468794923108604318548385481802567441289825861306795898494685794455156396165413219718380686434437276695218619475213775645653410135733792348592130885801004056962124883695206604486680292023787486277883176881669162280584675583022037075550589316623928433032369525547388195654306139749680652870894656961045366407050873327119056078403927630697816904093345569490303552138064094463819214233020877101292623896336576028563423131492772091399399135019263108527307770183211607202764432610849862870702928521708193788486475929970309472307403638246877428620897363772968293082262597795513302430485480913933222094861230347108664598134304949081721720565243406027418471102006564752307564552568470998084189016141220991086306608306130423510214498932565117314565677883336932209800255283822536485718251096236423641631068745692719493873612462471147034430195874914637569752400397632751274519856704530301896079018372774481994206129619298268263080474987817073037404203694524162382245210674507153180683617379308837773401124826344133655049604705369694752588972944248946884481385149233104597801691839236483401942389435493792474486137548401235552611955911966366529384553571990209861274804280234628107245775729815014651066193200777863090065944847285488298322904862012300237591733308450120893510972544996759248614548171772496448325856304636781524517219312822539136134464455050484952448920807589017147632279298843920922586167446692153887876809338199010791118498270007805174075495212615048995063622298945560346738755895937877080025984140011713223845640817184675241372693226086055094976727651244744635666567186948502434293249905588682903621779985213901383067693284141757658223410006683690438559738926815267638435926100762216116160568098631687239117313088405971984049830123678980380591238432722936888344033654356439194319031029746337500050830514148493996964923242148072276582573218512765892807652986417306925420558808814523365717224170586761653989487098481030373936426495065740267107610812802477641224193678076393652500292347536107148002834107546699861064718479927293408909704245327481191879876135351723951191619685035787552852158714037515264218785444195218900821163275750853687989387973353177369455397860650573725994705247756680259165123639373060456980107253395465304863325504591463388311829578844998094884825623493133457348578365166746576493891048885475300429037300615021908248059366062615981618710259863714047709172385338138913482560437947431046351486579572473328655497079635454046938102082691717944588582748374675086966583327303907827179894938540337033758374473855893498643439454431114360819009624480774572238679266178251088555412301176162357207035903465587781944253570593715153179023384831517513057088172127637936627328877670952844507151411120860073386529442130754152741922992323971881861403371018399331199097012486158448346247581371238975520088936360452421548827470476183064143180699456464364415906513038473644819665296396560999585630891556268714640283449629895318501308061679784366794715963057336374197149362745871335301596830788631419545582019239660451990209966808685602885480588765142467494687335085463773789854419462208862942601385774880852743260412698493133040076449250796817237171609877010007838108309609074116478145584621889326472865684069951458144109083703286131827685994684922769017330863060168726347013215691107371518397734924273751170112769346240642503799851361207506777476999836843387531962601466132039965752992897928063467980564669310529491770892159158893314515292649442461637713805613699213972941030091697266526252817877111817023987894603001352196382027882825193299768430593578659606644416800773462485461500931796416357885489714072445978458831684915092785822334515846685735702860198700047939923652192140115597283615042082774764951748395819875363544347687402445090047304233109826843362056113926843884525518188934069048990056984372536315030730565149801361911095089893557086429395031641188682318324365486486543940290674346699933702420209962029163105797129643606307673636334344341809099885311945441168218673832912875052721405320611867311275246950508459631193857088924592043148993038453058855558692910439061062388431251459368200485618043025403356626381852655265907022274577556656438639495163277466576329298716977792095311943995572691311420955014449515415277051311083761818086876110144670010411925824464541154023187378909785296768161075305366118192016367786182954648570533460372791283668513923184441544517001671697159484981027047751587498709918168548299415630604947708999127611314894612798246997404638099329797396568606132330178831153378725250745156370233919147553514350892031382665541235983010108268061690680952433450160975524828466108539999064916496698330976478766917915203646532364659709861576264290576689873779322310507144251948868498171182335096750157262129785979100028817422244392313867496403434251446709962203533677586322899828394769515302023070613379331556852747535952657365023844830419902164273059352131854575041688704903082647857672364566717684028182291890707106400739854860685117343356709726367744200785543563837073086881396329655478400593461724304241485176668300723957601205089774833644725739404903194948702682293641125363448954609810906338821558953854149432387213811340504119675135980606980580433973262978626306695851269235157108275163115515035609605309869961683900699586801710813480134901788500534997100629139179699222918906857641481015803193770804003617696865362027685620812446198817515071495577156290095193458003071567278728761384545715552571347061792482989902106732466126879054239819177522374871077489648162354870040478945095283987488581747492949642833702534374577336500153364859899029371083101432116168380234246501629567924909370641919291714617520213891374739360648732047909801281846201983780855299901264161928415586998665877562171843497667909258348976787442622815523411194135692390922744354059605471462278787350077471051780499315006210322687002620771921908656295907213055586005734725393324486206190219475232429990361799422142614702464682933142406719765891033565549932448757785850016045992804904929297040671605480352999048293998227848153137666051592643072117977004747708416250307354805598064081895237805898741959071176221803832143455899415462725353588478798946459806945819803387347981714529130670921190485909415660979094580381248804142345748607808316240495641358887713973199241181267378671191544121928354452053254299267354748748256685742643204061549916732216979614142871720379971380826160931927307964717754946609419108388382291820402861744363976789701768754044893593625519387349216569734165008004441909262515373403328782127559445062170885376002779509143131584433798520751129711718407717100362479920060849854623466590126951153311709510751449935197863439861343339848751376858632434254893084975866643469233949966980030220407424813178581926519773949691449547364039360661993472996697786241414709924341425201098939233228099545819946136076759898948258674065616506290207146398884019782936468320205900183074265124026518407758593820209239655867236816067368762795953329961666111301355774400195300904839415025110937753645151202339578577860434556731354196209442698446550668663956403072785675601351355291808616747371564859111007176603164084071161918152544682530600257272484197542961575121367784086011182982910999338448267846934508336022091608712943032223414006471735118989171027626905121717530907263405604998412820838082692130454062172713106935387259770702889283730061820457977087962472467625404359942078374367661551265070474428848997582658444389644816808231095417723833739458656023686183543430129692702080788359708601485649057225194458677119265403458912823597557872597753934125144261737392985106204720212223628176058897540568065370848283088756348235196031239159317155838666390725855788260300116690559630766992301890440279619481034245710829885328695197229041699247110805867893204972980281334577538399272663759310671241627734054713149664552623448680707608457114709840873292566283666828778067766062414823155492405232907450284045439351821535369702724167640345086961237106867645611587639987785443277597934190387437717001420038600099237930281316368005989770444088963973102544121426118358638627160726240386694717666643284692261733074678185585585294744893299530961757165774968418939595915486582853116266221633145247044266417762767408300521444004450201037196433119038020950374555783369658195859630842597651307840989188276752866253251736778380338335021109374862202597493301358299470213624718119190420673320021229180038232891094000693775966065900239467640323006857910741687159223748820025675955287581550979173230363672611222174534930754969241714068723981797464609286779518202527355188009817634473668502390892494956338988862541469039159502435284453162339131926558268896542635753138394293932776030604389443873761570945459949910338598019931174313182782061409738086524397506188151905272654377655576017662800367849101254523562447069792893587754083580251503659722855520441786202342838202202499923016073769246714602744109592130574333487453792248364094472398680289391405481217107297368710707290117213031799618077935208586590854313273247389989731048477022156399188168201081445066717671048961281241459235976860728975883435803055305927350271132300873049976200438551008470800062672758957107762155485716698959282731753052018594057931224802737849927683189988009070242647827808702543961318201229185211225605157493957417769440802276958967725211185519968446704898894711738918935436280276658909835152539746689308213842391783336274156250747906776719502601692850215974327911021792255852021084264347838757585571884652686987382039577774188818808534597790534727059168572340044737687165748308897767539055301668051331044587701016875959528209199739877620209330637300401497034244657507668596790071480655757574790238429786923119215937890613616764736554991212362198043331047934146218363818161975143533365923588245165044114791662668574828950106553881207414313116156380150447994906019464879976776842187204766828531159362547284652764860398572926535327601199432135200004275910534809407887527705351521339626453310336993603804066753524256258150143452268826515363826721403315851091997728151253214431179260034448767174814291179391758388643083409338439798782248344587048682117156848990509205633583371642288423316312831066738659836900078541030979482234401034038735577921054287181995150002916478892177426763057290693291428152388526464372998648011807533887762686834787284670364069924358053601850836388069692902569232202754420689441999628943392020416938588616961121928350512280312280327955175605106967165299491810464547051386039219776991162795631919736041480415600026346969529937612399642072770687310548776931994801779868440730591409106768408027391669064830044574715533340771036712768557760302089410481822166455030653896900229366146749950781291342573937600795694049725089972741149334420656949034120966641143532990532679130499359531222663678007749367753984191930989100913538585820718675087629721124381986494876057594920453948356698161899742285012768344435369170004045498568485620555617003923806785617560414471512977090286475403095965793022492162596515543038361619513625411006177277610736943723202756988287129802061956464691272382668272830525229614932275172864089217046424660066801933988352663532441438192997828478977831700760778518700943955706275616387667219662585130736435236643776953115611045446992231149894999122629573574171612022021967919597218630533859806705712132719020464222831984706617872649259264537071738759778326738071738753857545388192325702872653895011761413383965220901472238923361802619836860569530115319394018673717691616352767904987976914609415912076647035509599058339817376166451110734499882260436522669542144673661423618131863216522867615020133513051958658387531399207023052150374859837539126960960180397035977067021729426685695483400190357345668859879405158894478008067086247203060633744211489984018440653827424289524032853517757641668891991708198182663469700585584778448133891237960508790013259790479895977593985219416806052140723534466090477365034591950766732224517369841526169432835878004606868812013250367464978501980339743377134044017927271482486659680343360543644776306841851872907217976216405362362702567440219105141364709969039978937769800163979360253272338929768796034321488047360029255110143824571880854011854067743983614229501655485959939498240863342366692740008081842985488475054438112885565103831049605406566713987121197213590392308394881990067292561780763491267014331645098842098395028651427357401297237468237709796556414869264928593680584945178920201039182287526295830525343160173706026022518735166790459879332649940639688316481869985392546007282303166919076698552617616909613577398859069374714584445111742337775750428391779318981600077425582356825727831599905204357897043947902804059094830919116531574171781115723569509518135996349257440966504021010520587957222797403074092333898771286668773772738182930803934088540455344013402182024180151187320861626354736122275256833278362923259092470061844091355106764278814655354966400252678297109436535485643763107596587978217742419190601807904412818463988088307794804081695868129041613986203560897275815906531491860315705610792710360674658355319849760750551565588739537656960683272588244823147856578376746615082798674887955992890050582289435321187388426795743893560411521826935707028680377598613254115782845185366423641644350693274325440585539053995661233880146112833809677555687757340976084459029676206075099818625208283761629502878246124783724485079857005068092585033806232868241269645375161708402774808295260099151054219244701560667707737948141493305195815697180277427163202225074332326767437395987440760130347308487277436389519600212280620162957703519151946917962223962401098640231337440895322618054385523706332457514513670989934391264181128712739864043061356372192099160984253343581230059157002631756339637604794138611479621667878242353380206518287321695040208184016129841555264474680692014555246088519639246580224408812752617971241441243500648222962516397693252769568826260324846529384001894951745558973557454916629412362522115685428558519434702542521053290474643481499334764500635365016250896939132641463409497988560459838168383497322433828102545501968296792170582101922668610659273886461151735001878508984281344699624016614688898126786459243549151316596837426250808707896357232400956324017368875979826344410896549705522928757137974810025267817492801481856597132465739381507670082328813896563070781758256796176509016347818688666138522323980807580865636798427988551959832112689452039004506841126781163471623163032253701572098635696633660384176502687069652493364801179750472053783241011696379898187210589063527073823087777064490202556437178969671472614051760559069923916084879932678644124569775370396108937181308174903253385445168875554909947076390097650830451848512516657496826010246253229334344470539515212471484540084409388101807167198120195687102198624433378988490828998855865779597716880595470509607760381285529770346659160947763325543410092277926157438721667841802612566687726650457075707937179036317525681754148254174635322826671041119278546887116489846143790783608566559397604018995005145959542444349580823605335250621753293245273251069069874972002623605946239330767554202430879949390323434739557882931937589608589613175431098174021983808694643099924479799932986538071843577996109822800287813299476958979816568182830081728833367107760199178421858663182485104339049367716967613196776660183656342214111761820931295140593628791266655383166385803977374728590258505375960334894945799074754907481720532783545520605055925555659169310444275869290674253129301534164884455025292130073030414019657639938681609052971919799541494693671445415192150320212770327434914824862352659285771097442068620182893446538121380733044457901291503784039918242864834140545508252184348940003267341141882469990594549098130030931245744044420427311039619731765930945456388606986340174927991572248337436007447135713366819290892815352344417789978099386052086119117898323344482936317259277076700984294878284408188535710926948985990731908014081651036880009610732697717880361032093154235706612457264645006647582526585352614953910317245396524662005315874630794952664304822016759289546916983748100991178827624330963511574965008997516640258830849717136805075046383902201170460907567904029677200945220361214516736404849135020558662257225037880257291247853670827255407337335662005879311370818978436266728883418855682173686933651959519306136919682706152616716551611386891970985356642193106764767692158857625059829919809231279490929556828177669008476266916096586130096064457239268427953363189027370327086039891646308259831585838262085554981957265528216019150331329759851611337781222345070984818859722957528915916474422256229554977412441604139049144290942266494350791025433817516488400637603522617139761571720626872070780040682141834514491557268753336713474380202408304948784480942981189257746371015521069313890555113494687311413097330997957831042287952312999269088461233234850697967308374337009071964073503581205840710561100836960420206401081398744636249694516492151070303610216024809651060973551907923588145680292806554013225402657150422875714844526346893033528026933478658418423266685206432736873283933459336930885154440023220532486227689466009276235164918862465593894913807052604865990421145311369790953651143146504804102091337180973768399825862591823081939989056324458159887646088213158059558670701265441848109579455196579471612598369473892966464491726423148457502245807951153830662498955545725478788745935118899073797706556416148169637513375701278514304614804489003343583900034714126808316769284238192671636160445671044061359097491785281185526548383135836723563546538941159689016210796256695910099053510588203960499204931766869906109900638119104301211567394520987195314972324078193383376640792958297768982219573769252509308897704862313175346955908820301628565702904554410084970219302755894474695590478347967800194445254775169794347620775429696131940954981962595008004554713299267271177806070750418823300263184652798193483427567497954040964823783061568287153101433372412717870262060869977836695115775604548137362659190874654056231890312887834165291777350784380629368674914026826358458462227853777559958393900302375860865577705249953669023039801883606363925736768861012606268344011280160333859512277184657418045771404123872119732733511669276477955769927461267048657921302322922609637472347151212438854060672980153142317237525350482416411703688596440137597621058581865600931938767567529774302862585339582619153931264087702103438973372863144662718511016650589317363065551498873909803324481531571769394678692986393457057207455548352148563190497094922716091298465350271870039140287090982518707313783049690198739048238573707010433876451333508269725086120629232333996200159243453864495331036364132909836724942633949729547671538969251062912032608942770744776404700784100140296633268138699582751927022651330906349554850256192641604420291123272378592965666283191317134892570605085294609782448132457928394343625722682881985195702331400375705480323300764624043652432290561799821385236098130848435062765358894005837150746669967741068960901569845765286345300117827614577165627826785953901992780352496852081966619760854477699048963245403168271400495491707594271299757196917730929511997776755335354319833938461510619938659119199190508198301878673990775357925331941131645587562869965624008470801795043911497288008177439226036927927170289588712660261009386286284377177584473293153793485253788870450699636778946729022458261873110115706113741236412299750847800149297297038679951140777509912109067406893288353023953855172960131907246324122161270128245817829370154203908281742488550315725867664986748471704911536708078871541174050464227346242484636471165498986811960928673373205565099161057824733242518197228378800511061011971408794950075279424488818590908392478655368009899389880134556372592398434593055658955776807893725904485439101314080047219438795275435908631417650438371896863307506498354119772354731381590737776892995490820794113686210010484365350643503433938237164678904077019054231960011685220785832439677643382288253437236832846087602171886405538097563266953222414376494696420711322559016998084948354850247236974620040662817799189904326269272853860575684014193213437820769833710757319993305547325496309611099961219515485429617941648731455073163922340869395756560002449742173370775556330829831809196885013731384954514961307293977123183309391813746968724225275852651388170463206673694007358479316093472271091453413276844417053805342452693748470777625174735709713194665664670070234983843691060006886978871174492371404992613228118007595947347855223032836909485758560747496744721211322748506604843815606083787508771462234289145973988994208945096633832949533702267342384321132332522686053949932692879446346039520230793714314870310348200439541544626514495138199303349518977931836312556020464874947810660233527137166245843890425444431585347667005575059830729016327281154039518523452050425520277456723341905386600961153572189766997424027870268878347428991251189757427593312477974051619314700898062102880188971296290192234652489458276557864347654592288482439991175739645834292013146098264579023354002688465094344629371530542715710766513191356825226413770782216274670880833095932768079465321472042935054920161634804530939687973338567246016556517670582783583566710547316044916191254177657438635868990863528853058328311993083891365283731555059670554433265179899438815474046690075626935172967245389167800023351626969683792870596213053536637275341396501625788936338820889008856074166676856436826013055794112568614291328459229289765854107914044227139355711167908922763788922618182420106483787902193311833502255422943152021719367170832926195530261162536361796027046901208431576232887451788046703145432970751566682125109013085193261719219747463460083826354627178180928034369758682411313934816036205351092912461381685641058145742228328769519579061488949712102008064300995887341484748796068941215691798574683988976926465344009678211023701778134511858121276257215582275097689312347507417783349509298305217582682379946895090513798214070307295055643108117673714791302301221060285414229307539956228235299670957518811132957362364000710255519305193191133550451252800797988878615256384220044629917222960502082145042719211573347634812870213268593800930913036803393457582514432728322628773550090260223316167233285253470367364729102203031734860910715244465588868519607856363971602024708329837690803733055092147514862894927967318216678361475169290890049016929820176568625506862213895391982001596095869379792334101457962748061477065156529075314872029317879252544517476697619748223401824102224230048070295190551276611025693525362903225666518740447895625380825686060494882090188409423679432962696795859733919922666000318835809164798330553193569032758925139412848667883899013323609361324522337621984425019472258865124667291679671969770138589254695635356149766659314803513198476596214780399420176648277000324991433630579502777997751903723492131647036277782091969881056851135034566104519661066075577687265476467544920218692689483273907211690867909689851082180395335719261195095231368560722674367408021198586874209854669463727305199981846373596686476454293762794834558665201314958965500484674171535594440731321175903015987757397570598350477337429585325936913036604102551054844398048379187459027088358140855756725639813078614649485872490232097674461611706075240852194537098992822637393787399408233934813675417092970751033063659569213470931653476210984472071946193157337763015068280668811290920586471619861735634531247719326211643661202154163409563687161303434549602495687876017242633496254065396999730452959024871655682150719847692378096189900174747342286741570334407193460914864059042866006333417486373887762728319882830221196910862919130915369795983693173900315342006732027448049139134533718454363290957839651157934734405163899223750031165304613135222506633981851016674508325508723436899286004034648713955274607736853759975181700702839754733138327971451306302759605514650656725616315036969123680310646181448145493784617903065458029540225902824082597814479816074816131480390725842971158812818173089119932181422001045756410640492864688295395952438596449284869022623370639103795941665069408929970385557486914396298755696341337173008304040426254752451327941350539169893761564574482176362378540423726126566568630166968866912454897982831039161308725332169946383149722234086627602838589572607064911523101208891713274521427284669828067098810819920889588669350312784246257199230432438633978907167129103794190362800026682812978545309685860992421024204114916203431429400842685817104913769660399436868659531370310501310649225957086032282384035546726224644572588931614312788057111023114074244681956376402195615588715284193135678209067278280523718288548657280252967697339052100615452012637163717810076512254564998991735932590101319935267657253135731394344634141098503969959618913638019615083041135475800764007539739879558044040204647446574210144929926665814746530841646240545893345625909133149404021265481419044811253537817870841854985604705724977667598427186071994971654186118004592615268192004579699868279955814404789019229192561736455613218922852751757750718847785706835009125283705355477198480964263049298218414456983339548088302570942753975786423608945468874012973942005992259859658780173707350418916555585516795833609118283642245671664949203620645296133134615329611166994272700402981366847144980380527415498089906638943869211270066206735992559260071604183484692185673462223531682243340375228186438581590851984182958925767419619404474889512478726558086998359316894628859709714690359297544545646298406322963124940401456496731468719091191939376646790045794766875204488954555948841286931582587864146930978853461564079853915495030566516503863451530120667612887129752145914071624045969590257625767070241828238097536226509286988363485571703799176282643659314120628347768384104053779174525058539119638354631037644364054913161231602092433524456383614355639686124288010900977406070671935760487261947081651046120305506852060836492159504178165133143486109868803271031410470069003402922915421546386338335204515987901862590562128576506034226981042356626741917938535797969846656627922262367115261029899353997038842678106730531999241071238775774118827127932664776474868960913816550815002472787125811906549211496739630660936118020509257494683277189580768798172690385799630533630092413575742684893163120855317774456166432462451162146849587066418201312331566878374989687665323236535206011646966518426485424738121140007098712201613702856736687974039598696431395594487821978803400891003765362600180161104804445757878371412645772416990948784579861592681349736312285726134769474335623155566832377510327639335087930427427536486223369609199938343308069438718141632374122229455155389925409441185678274835142479835973831615895452404414956257360118939749786315434275101553035580033512302498572331162429561035425143247147378087173130775611662965788611421910607111834087123008062568284030840279986565271920495896312286928292335676036022766641646905721886186083137289256693227680942008046874313253406103217256029921926072370684653080029412023659661998157520894713092294441557088412883160768356100625882915889864436576564919736280248836900140517396278782859799691522019624894881848377788680879734487923725104682691122653351758029133314759493927555251042941569675926933238469668699634124811495506521030393892181725009957858692270437233471725051239217361328343963942804574664536035680046535857468278929231398331458838371939716817028994410300797164898669782014989717874416906018555460506968549050631626913349972011649372065720159140908946612607302167810516428363022070632454073177239287924876264898221595409397598715065829501726046463314681982020578510703362086676387819629756862026867173300754028816192804127621612644144869520104678741521199702508751821922353788890449097597679859850132510877312266807336814222724074168914391844722702213479109845087054504159346033091741517832740189423359838284480961938803772590882122046959684510487229511940968190824005811407434022623287346641507313735195367536529155422646009910765970576239091378648406292439545004179770099017955538938180210679611089041165285730107063408152579910704607438444726172058887439672725126945225661799432229781946490670516406790919521364040515880116936078265450616435069734657904154770029764492921056216867826653594520078387397419877102764097680219771716932245539539415121467101099179295072881922788037778410221845537174954100829990886988753174681760426965468242893099184795486574250274568790751133620096093660753856130259510360010297359862109896152935136654224548712540089939890126673538457492498825195724175947987273852800192928727940132044984965549784786803336426083768340115021495739501781306857171310063118268108448561317979820693378941903960000152287753583435092006775373428755806555817441631597040854038276858249719389610424827608095863570671207524309183316251753900390310567700918248227518769649544677935720503032471936886222495306317682464070880442303667603117895503406784626868060399004563899874787187574156109736680540851717755986739455389855672518975562465651424022430055534506283261514855614330216308414427765222563530817985693949400941084874211289679478878758318334772355701997636273791614204468171554812980176886128519104638198430000541002994340916802786644967416529431616940187988786374919663692698446280927302844071468717294408979287604489394890365242162790877140141623909225873747081194251844091421444819313048656983041815376490570256548951677928866108482731132920770496691632547537805491480538107562971812133506734633791444373429490912592291296683196554718429188085085147084388287634777398626469346388448702692055294522314069441560286087051820484929902987818220029053810053343850518481334132868055339675013952662329968531596626127414876604316470947852807751708525256342862452315131097499538266045602709052012632050856193866833948846325627609114094959581219069174940160009653340460518668879513712650051514346540463342741983342150814440232475021380137084356225788177412485681793099665613100304536699471765686912435241848139432659991919170764044987315699875904945650619945404118155847744118939775281035229956951806175191313883262067036318445506495644504126807614216525205544975046505226840816152944706944244725062268964151194248161275125929299941811057751995899564683397162765221664812495793369278153474641184142466563812100544437739189350433199888224451757028416576404636971242936598424516226605630799071886237608855132180225362647121772296516162892392616522955933315025818274750647180008475323876832168466563465996040520121408170628927155117128008610567915776436195660232910113984253308993321413030040549763186097102444253540770118462032882025989426959435092638605414910243382292752886785935188616113641698329659616781610803464445886766617634390181865907085033128441462524777450394796953798754312764249679214485281969081562819983430026438925675481050786125070985832043305531244708929635742489881043861949733415392339541918148295458078923983337680208033501494650042148357384470155925304687757908576333308713207925731638183241157685781410496003692467330951100939582034933544205662056305000190876326445779351229804708209076771291023056397082541106704005661304163956641555796243994903920322169062728105784571562106280853207858132115265677427562006574707842860473788865265832811656063001413985371555074780252019865275229202942735067321435356370888605175305063820245985607719033579831816620445385320894761002758970947476200292167966806533554792205927882756582783993839949017347601297191418844228485151475448261918733166884461234461074964855514596720601907375714425485974781176959090997538584886071914619780108714770974680458252376315763225408597217905917048703974670696987047528645752066851748260290579966986071756837807468299362939576717249155335545006677347091307487786271019192692413174211328435431341728208033595653371565416268736692950815778236433532498659694146056465107831280351230327038560709845589241513199961010876708493200334608577547633795465474593262268992807627224456996046604472549689089801867572230040471877671070687380340509237821731837361680578304836294185918330090618285078575576374079377252314734850232862778152072767865417854286794333530775966790073735000820809973912375086606352451576647781243380750050734327146029523940968188445142265346203545122180496888169089582458000439668182963766799137807137088944018657679156820608845095384505577658599598831109393812177193086646228437740719556650143361931125429003041551130875442011152522338219814894105284075945565989277708891761650710153771293825565607076756030059467331028021604391292859962748108048698119221015942948653593264894216377931752711141891856736740058682874717933464786911240059664950960087541472533504563388040470944779080065982570150997727031660302619603260881995682351930201946364183753016022883285235381223608048237734942204689246711400943328075054482233396491008328465628101641609601026528331481565734063403924514333424196989424821026111543132406602983559445568730609494192959696114005946348921047552074287733717156272915189222753173611097600487472169202206630633172876426358729208418014122468320747193929165948466375173686066086676900090419364946384538916398621236575592485763894883583693726453825208290727261549185703177735147626648087609756006617079259122098798950737118292912085368254626103590241273684884192361808415816680655717299278404757951256578761453423088982091112620849218062667413346187243704763372348903857941744401030317238766989855815946910745218374928602009526955818355554887934141345996805815039072238191756703582374208380387246143756913971458761322877480010484077114877616098203535204450157873672904092216021016527363325346512609936037364688629786678377896791164781309439251838379416239147289541448207173617871528308083864436693389132083452155095939828592640394392351357909160736676713612877097078762353382320146731521778196429642298903821372313482219439808628249556505244389405665522371478039694754132554415837105480279153187996469482541338385182216784924712954907570637905041214890716085064378681508046266303834305577759642696258616127551329280785993765213986706443184815251161302581087309602367469639105776742004800992501675892779269945837769351332276772005510945651268394105424407896842316820772163911640481891136173289649468921239982051528999322192837355622593964909318886870912233450753916432774674818420675955061012396066271671193836297397068973936638994342256999609055685932480098491161052691809898860557875783970187962865477273261359221486936461672655700170834344156327752981613843717228494677775673973939310965393456601233477479253392387948184212266277690288202191629338981376770859624320657754718600310822457206591416573502923794508339752311597946704112500744243610859739112798607938774088019140058539390237514054198994576892283286093131755586091149266508604541933633419551178680943679166655915754377657926007650962421113836245338090300197514133568623669800505159791819532686993925041699676475750988555512322018499969586419243822043895409358311350255166989329011541287451825565242082802641336043586766457860996444142311612395052870029629038492738139305118238326678630473993261338106376130316474119437660132827028462320275370339985444370616461822952934052228868444951910688952984441837021937124646765735268067437166944857247385891071154763961449009579959993487414111660190233021750523399379898963625833455191834971205634040316174012958925156838392033064267323215927349953256691328129737672329023442557012303940947216998208406674464402841984672153733095087385818397231523455009439964028972584346077510417874383054381332024458217568717676773994597219504803173425971801561248083402765550940295286809227829785944368149098753702317967551372975127232411630355400405315695887659358481383129799501461877276433516003129342855307527502839287138827624452666675308426670839276494887650473689001106074569188841211147409281935364161427815588743752635707122851508763850796482619382142789159237506790975047291811712670344504613953503228115092762523026260831067404342074158642813457207342760328791192540491377725016065279156079191183996524158477866095979144061410319510983950620199625476683139564415711513436473950327565054416810603075301987592882272206605268280965901181165985119084949064888012528343104422957193614144304036496547112928967389200373964723018515846848625453395483791516618948282941823742454519824017921087419871221145522201648315288597439275284169978059787204029516449693455345823881219212410200268591161206898195999377865593088808109382099320455072589083378205455466798773234375412937454747449279651353095153690259612988059926625731140519451010521819811525073292717135315712856233606189576869617909037582074164307512706038117083800990417592127376738409638555069103788728138328362908227677532184543609051015037481062742113509840155053503839531702001093969491144869172043141490187107404632147853506062109147022640539434619068925632824261316560193630141156730209800239434948095731746048293907778568884289342465938506652615216661121294629548880466022773742988151553180619395520126233027925556575639045413211315629416515050154164075322018767484384316264298278597330803388714518827561557799129693551176987049416023896753428510034192399906970825546781020193645488455284753219108961875549013457859228964691981685745696477616302139101100078872844525888873289663403241017618775270397193858471609784251210012358653164307186445603928155232068341238863681480842952860192586978092291560318196919072408338421414298740995573523877622223771922547897769815736926877995656915563841698892028136846191131408686139714652741594251877775515298887708496025270904923699549181494204062752921151869333093222553577806765471094123672422427507927333702870012339689421642117858350246757048896833360129384341688658570341225481771453457527596689279683236417565604972339062836134678597409957977141845785767138441974338710753763987920984068418754534372839308873883718898746782748987601456341273500760206833689407943066329534876840786214519338921860162743634571157546034575212894378350603936196758216379955261096005171056472921580487426188811927540247785418303307250738980700484668446906820742932115915601509324027808737265004544163027095439635840243681965644241919554032211563237647049485140424318234154793339326058344818882675564987946127362505488446532500723279699007252624277639949416987170884334594308838678211543863415571885509322927357600745473343478181036908226980483630964563106982083487697793043107076289940954198472725853063619925634200758303112329836461813372229069640619262743062825502726512567401089424178907291807494273991437448320172252880519259945662051704219889894373323227566609011641337074280413186472311221009021671122287513995105681502540295779313434788090176132443804542707297491826888678722808889604884923187140720063734147953825412619194289509038715531462066256032952035688313192368130724149867213668437962265908750641490530367781210422930378625831170444343894766433549004086661538491303794079296645414170291684373152195976802510849836111784348359163811044277740732914064888868601203530811958863936028474368174729049350734432495348284913084321443415491205272615246263073781766571170420151272109325416660964143698217609181330712246189779103293868263719161363908028443177280281304978837360849468600877789168600138030489666755290259062177245526245535411939755514369708158433482040459896544527458119879492446778607679930445909193937525582188873568105684108490084883991463794358037623742151664863544380045547173246591507239863457810887651867879220573365329182338099136646183434926850621020869369696658079108029488549968243279335931195519394675060241374162925498556672566754058644436364761853951388659749116600017611753813306038894685624883688130979268605945751762320055321886380945248387964412066997577381116551706742536195939718456428591636054771228215078872814389322670408199654632401511413551729848812181330466854133212821620383737043992632291621251140190015356195075438239689169349817647645927417559868700490279043825134300271891880592052135630234661332430221060499958031739594883130973120707155027014475049387905502994945841073229524696798078254755297760300917607651285047005813095665120622603685771709150356951470259834038029917409718469288282751202909466416877346931176152952107048900645477281494854423519729444416632437829365362807732440714885879837527128020574569332678625038742325011848221666405141462252742487506608931446407885192560650069464503516508589043377292213818376328533313377032848568804287216517079469545797222398624690241192400454168254656228457730938685306556988922243373871403609946660201968286016011739171217632565270546048867611684402493412986735445723357566014959722249958834449972266885143604082041066433162234029783435559497175663060835383397434569990329381441639206470642794994890301705757539471663262843807038840541193963686524011578058640367979248448615480490153025388614916206900654193515032248105750233599597518434199080078421327191122421784800095311609559486029466520415275055041876587495447189624944361338399097804009207071020357280399371277793298698751577064544815692566722610344283320212025700864028589503363847575373845362289480796824865004542411914506515619487206084451319823790709588219967790698729908750460913466390225340229094407839291943589056844276282726065533371100558024094873422546988708283182343860266380021361163098139118813241672689231583114746851821569930725582549937304617441007530039381204565843997159660904232043963389342988594499097041270117554082673556737116945521998682629612395746971693761221760602600494389666877908639457010134886346137400246671530324727498159456369758803869460556458619115235598885829314007987362326838722080978367254442510739063884524801184912885473055432521351437839755810692437922983605600641207313607121996976598507289971621198730165059597559007053972149591721690804658904782987638680187058451578794469923712524232892573524403853992689529513950364913575928660606185967359093445557140520055151681678660422777646455544625375028873020906388350170031318304814578968093559794692867510933642306698137545233005160612330886080536876721213124599753731237371941751024872399238864471862859092657818419001752201019720815032623250325696764738619117889139548476191891604404520767511051411056188476006741562313555715014745573404321284341838562385091342541595207212388468177636318196500546088591988462071920796433668445665770558777600914575216691878009590020056161962096193610307718805654945011223658357613265734176077623153700927071119723404413335469246899960232005071437119754753740646127529001082782424035344966991641541400787695603809352981300663768220051460836224172226054146357420033983725595893103292244399776066855293878375625656613628872354697710130648779708575400377564762980521652958834692792349552738093141667208059166582579315752555961580370376781760628947032975062063065204150644114566349987797884365583087274164565327431182829238722249019054560446773284608029945235148240973059490362861585309691489028727730201372145069743133980325104270354852149624236099530488790267647788465673779824282986474256764949059389457932988040850090989399687481258236752615114407794037444042424658957405797509571620199418077673836805579644842084572133952759968352271670350631448135068474465829699217786798637101672884127976984999782462087698650124131669019396720656067125619848183674480381112560053441829988252197790609696979579609071122919271271023085469797460623997227787493782015969741145370928133485303414755296865416979042666057636663392908834116216257714927393084530371778268031096332339705302766860325341685766596009371298079342344004437335053432896704072635575361562796401650523738697985451402975496868311352094311497407609205470980956804338598700197001296115208170139682439334763466118530352514769163858088068446149650824857026232638007368949536917476607045021714153673917726118851301003149415976733313638388811922398515615204679807553501811447655744200616247346473744908202316743229300021894545563666875750401271977167731073934220928843584501881135777945217739105385005797121333261852213086577867577793866031822039864511387997421391659570475285774889581164566476009455354288344321437469189129514837044593244010652755997503366621005425789209280268282027348998628204594478124423002223121834209437238969401098686037540848730873418911849381938034988454816308465999427423342741159160327410863150250680563047383683663273784640282487443939707341166372436962434056243479573088510853094902969011405418584219379359884626830781388492290309659788124860727688520474066812747309124588925376417082935097981454907642219003723626789148970768321135097849341642146490830704889356892456618642057073862934191408423654181099684121911381927767590701415662860343691481614911201705615271437478739107314891453993951309872820631920810134472033346002165931234964433317259271333900170475054662265588581267377395163645300601129210571925622053165159774730920460795824417984719413914463315536544216235501713672929481616964932669932853836782588724423846997154855307146437742131600685763401152057709587689101197695631235043233041998231388968103784897179694165065944394444726038719625523875739346173469041299585806609527296891705978111228230109297750817333254268189928773617781713064676913257666502930790068076136901346244693275647041763929974289999804819719628809323569188508323933948701111682397778688614706726080560767026579974031230759284519816837830842094361236211082351364780748664130501340845401507226871164399574766996429831836948367797500535893869493577006927176422838214811244688089822712543774140727357867695849435555604683967523791960473565248185082539135937121131194192424139057889734704890815904483619569746240055830460305407699879574007914729263120858815671061655311745762644111747618491470291242017577517606929252717456021606204292432446336460357002953439442784987842939587629782204910706879164198700161511800127103033327412423340380354800674079773658665845178702174747251438498117363608425433502388253626316145181022860672531247947328687589810711585896080677778592125606595882829231591912369230137054015609782119584005672649716013655171259110007768667920797904093167242426504101300724644227523573620897043207721316838221023218666498591700017740590721306825777374232666862373882712778051003939432000334677727126446958981388087233666364139889606057800026863065399623925319093129332863420335135668197144928942152198350917177012579343697370274854190688275180001152040478516013389712946192778213925620076272545944922348807732474569787043287961194080451178549463368974162083660693111283367768043300915091685078405385845153908251979957934133419492821515658377458286202160074766043663505703198309632863566576462511402192161129026043185844237106758898991156398021437082482984200630411849744829029320096244148697091132339582550472074491313134744665385382935012991352625230663685165018656956327530888771309595388626378817637271015448547193677259311359818570208245352092871179268294729218441204959040858867672133768022085462933685844114532976812076858624205464074800110959325120518025636921715356699303210647662825757531446672449799339579138711050971797831361867366310525030285068011147737360513531989980166558659446448773013451800168054870873156162528608692504032136652398471785050419607778490734297550943799621769677999628900490653974836137586366992763150146904513042456908195628417704015593597795014175851215290234366090532975579299104617311537550820791269485574578599819732261114437753080392929941630654180588715958655685334890030261832923087325855350870459163652723156010790849321938663648458608867013387970937876252166468367721804995975088473611330654317521392051138419446385307727601189822324263844227923484958927119829290380862392668248820228877853469299271305943835139441092666826266032843431366311663186805393046556611608850495322495833704754851574771922219224446144724375411019961882775598222095211042013007355154307813236774841492516428371739910344368130379047017214940967541157116671791080063032694471128979885582964989544631675635908007746262720448104162985775308260186036154151956438186824237578516366018461096866335565410905346346076157593573884561491262594143122890337564242673569646806079918680340316417466563421494521465822509839444349593181652539930827021167657021038131820707727602973694423561239556505536830956695895475283240007091438572157832696876238502097075883281418730140668005349831067278604204756416640028459189565870448267930055091918894714365976593701079189217244671650342143842007086758556641880153361458653635118726508250469186642523641429779054363222250138280603420719557042880128937569910884296171029911486350988937852165599288305198073218614939011594241243120759921913562359450527275366613093743462533013046422621003642826216716688672345766805879642333907719476078349078553550508637691183447123554883402330528124972982938978872259322409412058860033962736220506002489270449775681272524136488161148993088533061275752465394071782521358303694046318212815916359595904875711365886683880864655328342123393734845632530545629268150791403250083831902381908326455441936438635302481258278389386085712895193048259692662044061665431297704852230039809215852923289828641028784238355793973452248880339442972106644329225897242909901048908878058311266374889292208432337261112513369937546957128993543640314281510345339323345737487477829494567059525617175178686233968773318634690192117859689146266052613353351363970073529513508983671882493138374558421564348510157815949172003172586551102093936093307134827377373066253351086917279071620027701024842462018522619799087105208423966004098419243945691622360152653458391248384460650642858672047710062431593319760603489311458311806488154268117922332732132646885694670571312771415519366586510477304088950793790555426967840420889094363193100964725690836609205034718835244822154554321323532719331450540310670786820833408058404816318315187743153986877849352483067328109674825784844470136405000266845072883241723448122403289967877500021972389581154036100561476701871457584910175677579077290049746195710049946746290693154417089858363288197158746193311949712198018030114919482384058851108438491012335805393394433850415654163173502581862396064352941844368375321625507337054780458011069694683910501162130853169976649678773848984582734889087327453963454287460144899784306259727826407571223032977499660800451044834492445554000325454476851892161629173192822706700037618248819975744707004128033800620542063441292882243908313753959056934493422401852864891384539217968311845987054379351448662353032392548071813740079761434296535893309938542812064631084503986087464503722589124884817839280333141004757794864059277504352154834850494427373108777365602233711603114231698047386340963683813102593972192608115495504959814422317769309677503496312415603829885604380534563872785269933501194900919282816756563592399497898827342257073642001617450140470060004418659823481286278511107238887260624008959260316421576327529186789372984896583922591414549593003914313890128583102784685365979909931815167176315898284477720577390497186769996905812525124436141363980140413709897239331543950418703438718231292622297309608507214143561341311472601646154045026981793778947655818009755509948393252875614391269790788256490556998822770713171234732050801130785827080212558642734045205148167165789985342260884020405959104066489388913882572405218503205643234614117337181589431059666655556317434271954329047722654840300026484611291201824789452695060774196627122519027338560390297396180167631794715253346348131551696467881291082542683208458546144804634388823306042334020659742334414247839753318769547680357081570511841176008186705142830920138805444922957595032597850540221024172872168278611893976380131462882130506989499416129237391080917180737116253612549514911800609353602722617317875349900439146235928652020036095032194775222127145427706809785744981059167336809044451898318691501386284328593461940520205490100987771299821210967279983270596243539218972637322623611252908551687601820820483978822047500822575191467278494232447546873890048548019110267844258790963741112224008608252216617355255836611532434106571642644110572335164195308559755947247297490251266461050586353387201968421401967009312861638930223552717883719332041944356991431513420835255846021479357779926745516238754065234392910583375819568131050908388999293461722159752378903228937122465615747480512083600485942379338246549064495855767820963397457805782733656364901503631190003581634834174153375825597683369618916469230679697232031835170345380799309298844945942285263729053412085126162988849495742830088161547677045995416331141267824789753138356829871241304284747231124036930697697052783202837639019539297018357499431314614943774419919637131451927445056141931639112219535405644912021783377620335183421418961473606295854028058542735591447800122996583078117112763946622944107610019099440581479923566719608545248417657890466070656192632743351712185676356736084114320225853471028250327725913101248630426613209211289055688318410195448631736406220773384028332062667426113124825296913311097400247832375008454074104943799104190993077494297731446351443541989830988634004299158862490205115523181727305564570790951326841487914206935665195034742188697914129177501868045831265137753560988315859497634983057572968860610901136163724965380371205013007669918126522360430347573574325113423846076384788629850194539450068908104003163627406335083500638537931236528740709937814073754885911326008044107060904572441704625876773719688090355264690121203254660954044796641622789229662379656460231668819987030204467971118440613030660556082456441918178816378149025750721259048917955922120285147433758474641100604349704922920614241860342212629105039022728863797659513856478883970698378470467889551751629475313350999681446242002412756869950362680464637309768213331016101321770316813520757925946963707475112956771676198114262313435079866481445319499206982789080026851995464052507890176732609930516298643449371987348521278930866589189648992782858376579450128402258288673576752350879981735945260814646520592217067259693945880439236507927901687710519384171497579441639835231313421333819443163906242914707917157895793133637071273143328963998966718839282863645528611923950736342546575661595234774107652691032857316674098857642204494705572743904362618355632525780921986302107431114575486456343848431952099506370693026150138042641660552883543612251564551130476981594906494483438386390156009402289678547462964262217152241281850892226835289935213166326504252367219821153252895834036972373557647357142959916879741444806704447558571948089425867814980497502481714235774830639223985735754022900475027759781897090376450012987330654625431879176363768990285129647856161571030904755698314038454021517276367782895179669935440206943768371587464631067829691259969089575948449270063746605726015602448211471171966670504045609934730671878103928603357510153539657391198444815862420785805417100493267636793896203090776508869395381530853063651199926299070833520003319940519090994216768183929259539322013902946379807855112881692363629452545086074020496060920991568942212448214187260092018862528893505567907781710132664866026521398019611726145588129946767778957433937064985902324148640172565976586862299065747461183155396537223494971697612998664358430521232643027875687535982006463835885886647886661370825636857290326746331582043142425966680133675631847212552704105394733574738245317463595647191284535264271129840458237727573331637743092857446492350978908910404873023565982268105680086777182360116617041356843286457953530761233948838198612892134136226284445463246299562242320264165506628723796858867916402094095690171759527099207119549346513962682453388115138227866371570883794813483796565306079721317709068369619659128918107710437416923931742112331843003900113833990008347848280629037341484157408427680819433349557800753178001209682070649095885012001954982703151453296218576724402612808987459728468438042425517847030410467519460904131328982300481737335944720419563701923979947063182473662075349608112869491860417730632770711704067200770855954205472877550755398926905936930990981169899783608695139341986440008729258327399280896031456874576338666729484612596156637917507203419810285384428859179546992386759927594924301216842179034755930328009891084570893528106199668068539431381797771981095797575702786970868579110240492059660823986472419267259038655074588078920386900766714006553775319681293059320524578377920264415354528541473433831459268626451733031807580942726821054952626097684312477997384349928793102309592969060872086640687611529150665768712192847924337750498924057307475074435900083218513870803998792614315544417222190224085156534304144563350774501900652402757020700465906375857047564666244147229246427708838961588310938698276210633385720552410407376922499015083141324323515790039031330889067836004909736631230764776588221162503861343514902704873050392125780901421100100897167901415533245967700416242925417346116745251576914094169932905254860685575100370000028421420087267851810260602753024646811293766888418811374066169692274105121483931410134626926936653969277945750900527853065494861030330964520083460372865794995335124898482122748947151830153869334776804643334290835465630553893965296231172709744291712568844167923267090435515786134744342165415858194351889164750192214769187305350033653247480915538466695765098278839940846575041440647609650328944015450984265097078925945226983892732489707529551920390076059084809680777636084031067559458690525332156207262132091875100329303311045286191184338097038976709949940363693253739458075592177674109839972314038422366446347115282356978369425140968697320728910322060589788799720489359855970475977371089049935583388335126904000381726912765749625534324499984758226571796726564901208440609418915454609731225793107752245883357049179471355718266532109320278733562041596772892827977236300269435839871773600839164447990744440112923264955163125170501970609202763446989340598020275725219682917156761043359514072035648133787274903071861815300514812263179574422390847961531779895623448394195328147403397260758232275419091261659901188007598863560185043031702519280556039370730031941424611258898295763158592484663848461511353463956059429296742146724857911229175140616053912074718169347683184095827711620083139888368307780453664923706688807077319982423590406729469815148409499834151410369896196733684605494929833818594166598088942365784932092489307904024193675901885116773911781650155167599271668961254790684674950807603728585521475398939396781705395455766774439379675314599168252984550747373316734372901177932484117392642676353847078686678182858485492035778714105017735063399304230597275628120343867249354568848177292427331449240030484941275396070747361778795841809342121832372819105998816319258433117720070538344412049857233651428137537874952360458885981371246416965389549979613458335737166149594133636250040202260226376570636916475036543079453619730046998965348921387309335083613973887754066305629575556895900739583706286803995442367757043804303500544756182183324794224984705319457730591616559749560328237543572570422272425616490346926868393406970546435925991402489221338551305012151068122017855956847464173438883473874852747746768649368604832602435943796534037768387732820925640023173696354016928313240284167506452836588404746456256259383356358817734936460175389376475509718693720752197059074720809417347029886960835895459683470775316096741477895081191870568999188638641691419300965457408559051029813565874806516410565629083665231737383090848689525669011040407350174984913672590248562458188189824009743089967270171029914483061182238972469480018487878685653383731945895948887683019277289249904856040668521172749816367057646799443557702349964329196599297076750279676156025865892026712692529094824362144335086062694153620233269412337630826386520755745769330159424961282410110495672058145145756704576016529623582529181030250485437615110529616192736557262968115408021931834117489251792878301219447227019690003193975452659455322356081884387424436021081508495768937383578889934299506966295954065221188417091267198381856161835799581846439560909466377529500147768076033645252448148359378900774374804020951442129216748710126621881732894756414748945484477474872673172373887933220588321650734331818808881028414391610365369074252722464733923914844520800401921477926985511975683126425386347427714432316692706321379732024079553405074193904214109849801694703856920411783112792750425408229773932444319590803053087744961573574098605306539012853342398382021678717753216088266324044930587658047538686905571668569765065669227628187301020542588123649022604722131306515349509693604830015019358559556706778537394273559065163548855340540268970422652358558720847179829253369304631955997811342122008192549292075672052559138689126038375804209231426522026045704915495026521947156300041992454745821343817296853244703401400544340594553238040750713474634982744925594206805833688737076798778204935707052138687395161134339723897080538598927808694594888335033817122938761915883595734194344790739449790598040631510860050384775685408041279768021913623672181289587771191550480847101752846600494281926899857855323662021183089030082793607863519378743204310448804724955014357383989848072769641612238023593791519370067224010311700284027126901137760054584842327544468174557635166502369541584623718758313882382336721470453329087188465760296602580018836072170172043070698202497140088208863979310605114400551559368876396734039050600234046916690490726390372688651086731867702623164816927089900393602815125247210407439981169583916622174314301518371847674388215089920291571084764581050176796331279598021061313332937583039964043127489430016026933727193479635053441762031448745612822644864610622233470895573331059462234467287986978922617365509356160530713832135155853538432215183563690822957602700913662520291410755417807113207779699010987236512326445673274435010850038025069099923914660228754759096750037877722441942503852128215141748559997064270186851168217277437608778501774330229971167817492048878830209518101072671613158777076945880091526095580736167782029158791172932648544068647573470184079058471961974681395778158589340856265185321932996671504143424753415301674644511426371223370711062681197369777696097936976811309214250504613341186710681569939875480238513898995002912521479319590618590317823121037610523831801403379139536256191518313010628279261751498201107245435134788019746588697532374806140782263359078726261132456414571187751399436345515358816804117684271188445160652165749267140971476128070419768925991389306066469146385980288771759755896734433137200075731384479447784128236082007047753461044304675684096866567859031212621191779564713511984307238807522863594863240410237145877535365098880570280605776535686213918738472291005440872017804734286380942373965209086843333485733812876093855443452056366057375400598108064591525843619617726425935979021076041717800460200686524564520677978947296233971080420209854312130235501425300752467615231803795791171995621059707431578685432117826824762656461879512052099819972983086762382464932271793793854380453427049241088726118564026888400574927763052112902979967764850970237510097996802939861017376065946624400662650158396625130712423576319833764327946273145773529998914126184634494686768125834545920390010532569470890962477342149278844193841430372384084053456673336562064673612095566373845673351679867622434002967331107591630662657894348577982636840472330488738925955926522289885642512360713486070643878828386293335973131536927575146460020560542930402700858915792253426065970610529696789875146797882677504787940019209728460365634930571637953633646003033561299315999719418778210417263109423659929691067540017019595958042587653639413821234058248650424689590398948673030657496077623114245602175720547738031498803275047975137070333932426321537180160782121005844164434543931348629031556038528195459996677382468334361765615987898878669382246978149976922087690250900957273211882346692637379420067659454999584945914069691109794727845149123558473413604823797911953789699987393825797115186480324002855260599221685120735388994692865042011468352819442390138473726611912088270016300956534642306175784420773599718940122152908504671729484720529291554610124565239222864030972843995258965768224702535509692397805436903381440810226668407191479407590647243920370796429293228641514300390146935242549058032528599546869954129362207570787416697863980469009153325914629366601077198413987759687711916065082781222245933813715854825367414765451787344548425162795804822383795524546297018588715016092821010958762977665688272861188026150049465953072337113408211107232464739486715242326608413081384476219831653073564450338132117761612689421187056588431176295646461007788195600094710447677070216827746694620664107464448707877475006696067988941339186414520837663179049915563411881957885511209158366954798798049161918237354475752482625084249939439755428706470879647826493048827730854641792366546109607861688781231995075263539759746118524061473548822673889478748322751355526959178315339605962920640187502268490901813449345489919584882559032622451415930136455117437650556311698854750053074073667713988192669799912375812137155873754126349735074596495064770836634593347856590683725048760339911694405090303499126091492128669598648812622672683938839504489003015013952643575916760793220760996363605798659959139492185570753433874257420722117086397332236345071863045491821549802854525320875399551716975410957784058437832462431784870028392203979423393495253260150372201703588493037650649386901876757143071262651208918733709116123258728742942974009960095770430786819040498785376859699601762136011714638215623242334483895076608768710683102525336843090261827586809490916273410533304063149039593413322678459318830180808886276887691916316020238820183896918605552714867288594130946186099505326675808038503913690774339827149387115295552170968176720282634063287567903042207751710152863741363289940235001828041018833165682179248960546432062321314843615420120851389735526832037017120667089803075274942524095223010187874578067674526604890856940806312940294057807975713605228536705290235711252823202848562168256774265888991297521483714749423850216195067973696011672886101762504786716908774373932068988398149908399637156202820017692026090260358356699702526486338163916442872353495162573108333624806843762222870120810525268774995456327843328568300458986457323631600622583537144681922326440990401922033294028429736543450497169614272794097205047327148815153506581495112311633916111335655271847035527134942289469496691644781578520576685514783602887645977194079477655983910247969273760949565632013397707524037637883191304468718442496205629829477327799583158666627188624427234910795749334939311653194805853879903044061851879180680190990384751648837892745897782916510281392024492758876895167465835155402806257883202312859547890802648608626436575838977958425592223451810289594561599187096846101300141940810586639150021461481389167855666755986825730318284510694825687696302271942255794066346637744081967073307811273737282728310430769258750204798480922068977178647334417589046951382481290530716835291557147488064879261163874489531766939907299174317285412289207617391987742001970733162203226290599965095242884943223185123997729840039050310530987307103640881335637233469253267378128447477977823910155142497339758402381710664010241078958690501981093644887466999221056450475431091392857279069618710657526681982695176273748806248214052739979578739948196741219757472089071633547555529416080731858327741160986610819993988646664951576880037776601557016207727127252326280635740839589054591465861758176264165406010048691065327008168813470028779677714791612607199472981655491894828025723260060185576476382094883651196840831512855119518488333324485762591906738486412330407778948240911838737912887342375662979166008891318972153720364035055713284885475585209837867438600052442348242127846661704456591466320496568316823517649720423667782505462431217082905823378433941608613301004901834902240480514506185185086720605797466270436903393224481786877446705358120235970732444355532555866164839925522364526314514284833082614282005171718715248624119276667644819847107318346351627944278783786949185862552802306011724049190345647321403733528988720573325234052486995437389939285640069173962244135159987811997677430075167168105211109949810891780014058926462564296047281527527399678638956267479205965982364666509729200214873486448916618659854291317242437774409970415015434427175666354074239763682836317434779959648347923991459749168518454859590659456416388217638246071722943450843834604649402860297530812505931849333762022264917611488293751179637197183473368577026165535269753836767206542711810917180406743233190193898283084936401046217372542493578372452859706392981192057204556715044408880719947064184076952164909727006938929048571450302364162851636089191081013313547915299366787701814637570132863677616628597555772649187440114458968800494528404701069023020913346531936725939506251397306840435511506112563471068996305505740338536850118717837857169940469721699511626897498624218951596895896895950305487322354984483688956499487096851256931930716671092497732438129979946474462773049141722014977049070131870801108156932049178236583844536515266525524018852193397240885006380538563384985234912262150200456970306091777392537744023954657688368221325886398450159262222402873810611083247045690858812483609552626046528477808959850654234954820725498056902465659510115144636875243258152863685262213693424483466406516117629596021097358989921047201942581314946488194814854621833794258413188985196554331066722648003861268634276419862419217322812782319309372727153299855404176206384020687255346642352661065835219137961259452662867693488561646898806342336142647615106519430393940074303047215546085231699531602815414889030240880102385253133223471601089154826270413637832097200467350688068652172424051662190294878644682088298403956708141966395293014446469350586329246247161681813956215332049793292342844184686338765615186397532473021032686087740990124446566130791741603298330729079227726253944483283448270316562604040403012342792229345017427203603722976389792742967055744144021380811379786466317169327915948180988132915058912322457229699519745987333827940604988407887795613780476234659459660122186319694433740109176058170500048708041076448325264815879721109520087240202370313530943864601412700189211584143956914067297629437077724409825021643900512900495691704218187560240223900259538583497407635578333865251730654672050901086587308819872257085797309113232794918604881558276845703954518277927714849030964399305070229805736976659040307799994291291235471436853670615853737952516481782079826026455999487709288496532298901852394519609730406024453104089758995890878734642279566011891632195758090039323281582506572787300917460917015763124029165092534515187342671845792013752970648362862236890384005132883409487803558025179526231663411935611235475777343407416810294779663062327131927332140323645780008506244563713545833817740173808615323324500066118181984935957810340172023833365579993067222982326061322165937524513423722804036368681143555936624391960835065661315937737175849086296931955848344963652997928143294253406872746730293177732851803449569672476199704598004711785791323774046613480524710056228236912317464538028419812775396107271673023285802242989075027246126480548382573509413403168249761228328616432224609339188013084313202058945430861524941245973095800632575950401353821460669862859581722474183151741465682868517666219479831504017636248006693736960402338986891837442582960199237644257361545109721605031453053704121030198712729661960125889424298174352662805209556122870685492257223157982680508214530213252306221506058444092883146842264114040442385393771457972139592895819752696833155752982349808811592976479039736266671198711125654340596632518745523806511569998917240398281770262881605550731273415746399697388363741920744076656216945944084685090270305043761587008756573601415446490700351536459732644592988305827809924112785377474168239318268354757465424890565463907831375167336221386730572173819883953804849581171731502809072869859358601855342446546418288016746745917712190923826994027468755828591071577867416763210065627890664599295571021474764778582670766556925094221205626426148007183476406891859990106330367797396483011857244499591608311789298744764965484748163148779733887908368743888724297495738262021483561333338985666708667824994097043250133414828767925965829608895410726145588905303210870323248042500499922582389694651029296273587686010979438426644686780649524563713131421131067659523496990958187031126973307194677743418228442648503534195898871291161523576770453297643220616295618240644600912324867787207722267209543880731892371134388154629033395803203947799607937580534073735133226782077184648797971132366100732999882529704645525928472411335573167807920032367939172212548390519390652873187189905833587168037550194337133103599296871620514568348759818266622906423662085985970538961172270213771016629424660789661230918125764303371707271944054214337628785919333973790654894027022212289693726288346654681490945070033815319877230738021847955273192868623120944726922508878792342661771111702993672463364722239536526204979642666480208711018561776678726666030542056969504660723020405076516513415891490869781480651861271585061803736290591201688986807338677910682198393809521369839851965316194276996059425748224218453471789601471060954597988040108326484062590099943590754926030343181064036825383829723585076992289402135889907717320828241375498602453925449483485082505224398963551990805953928645888936160365150751270016205322929250257672937501519666511067300528129611651169041419184597740052724585393785382774144403286279815585495080242581261692471545434454624968308101542658631183670601867819880383420529886622661326140946820011063540978609726523954225019005268856791528910657854820588659235567694114007190586358569688689781583031385074282114048412806994809886771566909288955608658171184237415198797977783824996938193895114199868287565034651782059689974811784882289530102718065433672256342594054520914500655089449871359457484536953588112633830592185471074733520712447839538560264129075331517896206077600063443104550001870990417370004870224718242954347514142750305471157660730379526499119057338886595298228307680503928507846680495015282648827293102058416552601809186756362125523895879237686163210227317334371777588147413407390483086129948690649253092962227443333052422872290704097160767465018523664906171966313692492037228075562848079480519127185431230887395318497790834531694715713199730373118285699402732309289190872669973077423320147493834639117414847520268711072802036508525602172942365661419799307356055542751396927714446561153246341412975017705228224760380790222748960279707420406617089330416888084023082841000629004962119458895338980129918593406919025106970586315018380235146014502632155701037069680578570429772293648857043145673477298114666305398185512973528631422295987150179957469996695701542501306894016552932940860686798546227777702472382588811220058389637046560524264750088677472412524250642656763613356864306055255265839241612026678514324907537176553807577268420627520694571448433729251038169706627665687961650196045070429228420525567260034840319313783867001478646355372135365874639363435225358886135575007592062293529709469391891786360470195068273708021314569893081456503860108685690841965009046198966060355720512713086498563554404713000579608117825933906093144173560500651502118028077277094140011285018897895379158470640282005721701676489924782750504906279847944529792062434996120763418963579055783880493866787677020423924037648713635170832784892345887698961705396160079821421941987214654362596691184938446872706012717929034719227342762062726369242723663755344578966952380978914270115411134394495377769314126142926573882278294872426069496800938269777065565143700947263900203463901531334212653871534287702779975916898733794752023361516475403178948672418413445877548944509344121368584771267917322580714002745662330582200741403777708129980215159478390995797353222102804140605676737750253147542482657284486024570999050542371410434897475910408324386583344240013424181987669986407068060603683269000327673107144849366488945912380942185698621296976755871543362195466339776583001699937362488831568646813900771467014307234534335372939418175838320272214494186496435116820314714476133625385418926989180326204136894719522461589067326028717282536558101493704469176177724030983750003584367380137308583936756469773048095557404372558525424579450719338583059261087487048787374754843165404887109346029007398170272269498618004163242198619826184436555950734195562737386672500257262205953387458784693982850586198864883033228464099351088434549810803632890946648138721035207647257612401321730117600383102632553976240384188962850196307671334429453156192992421499889542348609888665802702508904284430324208646386242700367366772844051350149934523889298406197130841833633844434669820514932113529897414514298651619614089834094116759991475361050535330012869068954461996853552225889750609518208509694340302996168332560421997942197759640881157469981888821308933802017981940339333771274052930551618046455866037339365806389686715846374915249220563795111181276534191667425426699129484679043968722955958698909404424982753184561710538557064140510181751900151809760233938007340483010111868394718875005804320795439795161140912547247109734029183645254029737646213458375395049055675902496615431402308954223828473831187400744794677503670175393533144670876757820167931225793768338196665647130722515197760512834621102226643601240570753732562890073907803538473688415223514510393080058895195225277096723189370262968053927338609118200462569621305442086863818746695463992082977829590998326967848040881744629847022173406699836829739826347021925624685803012525377764621830366569098914101745578607235724689832514598974730720767406058045551886155686919333367072879410840725161922225270507572500759158651445365134927326122705416295788358926670121131508916075106720119371659441074841089085236770844341750856110114113022108198235062864080165227884776110727652945878775752553465764304774997223566170708776779111156408972808081140965973255689614494756329075083570815592391208894721863913810292099022480750798534808562465534842937593011614926620663592509733699032590300926359257446230661732960058239887792578615993620525907016574063561296146708002578481728455481326133902771007017189651375266829630245961346118078238600973038244852792360735674227955772339062206932261019075926187618162295181546720017999999442226957904649820509339308039523234008088418545465968150708553361602639015086096702084980646474639648126574973324506484680482887898864818525756935236010328850986717082151079097761759372372340671893855862376970916005538827454204735424071878016327574539068383656313079780641849949322319926129935419987983010540775013347038079145321745092458537351793895718708689004538648070234912947546644403156306934651467336676649794628335731967248997497135987104250455788224269206436266218367613364262744970421482994889196779404545449792169095958817593330241938929454118489261377275473088296075587618620301948810954595059790857280897014951651323073674538309792797451048578201646171742821146566349923152881625780314009908990482769957795699367150288541143065044295619978646784750268642803309300310229958864552866183642755431302483252629899515453810017848633661235815752475000254593688975329152021345645560816048271842597666511391560049080732332691411790277204608467996301844579621396006064935779355186549206337735204176728367186653638834174730370213028164254193697443852358571511894770348110607446090440573527729414820699457640146834773948119644520528084705891043168264229985632242422449194909925221194704541540932421129948807612780965912513427813604007144561197133964464853619084204225885724110983486584753857536755451346172888821385761260942697223395048672238743111676497944831199644037218029166055733575950374303294694437296097577726696306982485376637982916857525322805620971481092168046064084028350789013625705753858281984559197124507444666233873960089331908151889193874153543478307606425155345059941868683091904305800303371122999014278218877859374291136808122791216851374042257053916844949972474463019587745482283693992773988988471212027913831902611735318248163227936086961903285176791734500264612838642186476326953919513053341593079700275720353201696843508327877943587638624037247419760726382594029005368414661396546480217870713729620585429157832213038999443770876938013248232253487577908219178581441226223681694035810526093281134005956939836524688617841468964408834836477647675377377122146122613806977264905350191677597893924080758615554068371976007062209811735867103177040550161803836160101366202154447359247272816911637642841297139205660906716915063112523000737483373838910334927168182364697996432599471561136552847172256674078276481749800505640953628002387501261258217613447523453557405665095513708538402691970598635273864299981814614596628140213975943331623709260783741370668876734735567180334185515127750051590308741916606631722471774670148832607720219955418508997609714167864721630635445394119807685113921975259489464536189278021177127141909580185939260181674007054065853463494450870045534610781965509739221317524502044164651202331541724266432352787570988799551680031417641430509162962163858990160912077142142347818557143134243883106148974224998463115239004161664465816197007518687080134176157026065367146501808085826464362529039359007052640424028361075609814974906761347934287032975917938170147478518489658676485155189322977317456116172230927631994946169024210579974571659555487890424350613231592515937472735392669411339486493594332473523333144300720352114803862686819159595803010255520423482118786392669639550294882590394579799461611110240311423843391575125143210500536387887831809536148365151043852651782254290686867915580277880416271300416869846499835970531380594639632301851517585175282261786549505648932305955435639999796895397397534174657973198874961763368923217022745443890203736055713875266998638719152884144987154818744388067627519427370740105388323291770146045592178699275073495261537520184667310610705685653324489716940997857141850093335383345200338232252145004718223010278691342564754450820731952734822110829749913034095607393119948841941324119481678012374651395997796221290150176715488206009537016590814200801938345561339543606822565945945888848493819751261865402375158537682176101345558752214308777013242512031099831352025865022959424091910564287373172860738864886816408152126130791988658852238407900161662606478438771504347561286891895018681910656533981130558801140380111120264692569934311116205737910560568528953745691714338693076705456259554256700075802229487520928378237233536834666356272349726764277700099648257738079558380918730870281987203148135949672185701180321094500624971857601807503664413724651861775882243243138121624983548904558495605074845977192925710268580858750935619378754955728163667273941057716180898545166072005624541253319664643543743581346329883526045554208180134107849999653076867896097313785195043448175346109111843299837002183308259073341455860314141104200907462132609407372915598245954043576685667036581604840968543666838616760431433273308282843869664939133379985596840696337662253200141624801951020217373120575387206511893483524271618193154468759302951219996319318000928146929569765579533416853708359854539765545578174971811933124435190556581109751993886672557066298902759734412629790042518903140441622630779865815485372784126151772054520682352887317060493123830671733147790441154308493948336091384651661757009071305524576900090304339523188919997254422355048468546180067296449129794657637404822481966005435059916414728420505832830612144111080740423319480352995885989997112180592358829066409017363729976355715298067344367502923456334889642907347930277615197051856377802251206202434619753968436721954222051713059589594010854055839273077862165554118349636779362125174223162257945093665258340165000123548785744485720612508439509498205590816301667277280623239217872778190287616875201272175426591408501188818165600143987768213612331222552557080080473176414143775053703387087011251049914270827226131062276762257535833318958130483092402244185994345297807959735773989466110848841505047095146193595532326484688876531240460132494957006724475406506536681931870096089198729683616191040664338857211894430441519373637592665267656573757391450208706026687379420249902742610201666796204278035832485236821263212799816374863097479024496366696512811761221679038708850477229777457702686471880293235953432755448833999798087929325928805748788459707544584291581790835274403011766826710683535138847463493430056549364513420928133619836742056417349413008037123695873643685394378425936403967162997924797237486175947483904221010681507843324604566440717516747758826399907126894696791656880747420385275102910099578555099787068928547085508656343797363665796615776997825994446515595217600679217727174236063247448564557380300147345941798694759408237269756052272786169121581898872604091944364440893687912596630840438439958448517566380214647943506743571124978567856011859714143843936330663129169037116622610089468448133466502303316010182471446826916459732201080590178366188398062812615082067835543767314312236438661973911703602320158430833769446504380767571908938834137882257114543059780600290232593548853430121615862986166215444512547553412450985551328164816205681118771973799292966219110280114220587737447535519966220261278030342311184948541868229891086684387593173038957279509160924288157764948073948912579667405710005744004509135525805893864905486284309161481168653762439942791284912923613278385947079039412694653063081193486604147050044866260569165876078405658008826685691176639299624652688489062332160146019336055231768781783020203713654772005033200158423508513468042044759010424022058132310707259795889262963380080045132826336369754113901128070517677881707322243298224254906642318632705280729733185165359075508372627183632744727127250633472398127974192151091250486723603694195486794311696064095267426993586958033376204707144831189559794896552922715170697258724112316850076437793674969862395469012276175274090465041891763578059108237396650149762241866555628921483713262110439335017911823901963104336085540692340634511587158469616901818593546354661164174838794613866999032923548060129944236234584350310802456365710512804217481066862292272500662704243950899663284902798614651087435788869563966742684647590355137946010315885980457410365793308635742581810991446198601740560730518672355044072996807367435877225234055009246471816628311735446309320859354973029587093342466284624879399611395647895740750386239618742822826751241334010587203503074741759273471222559741784797285586865304961772107328780795803501014660904562820045145301001891093433649328387721031774359056283525295459396842926461434979315451348949985704242310429449978026766894761933531634728578488604767050827853990172162175736220315761627292356152352593298799669686651286310502124227272854046945127207118952337825283261655792694815506690899727845778983714303759251052595702450016343822623742423734846701855103582469173518648444356905171221129275838126395968741640939279601688106789530411017785517133565550564504398165346360076628355059779847530861708621873259044731188911615337854203268242824679890310269775020603054331822273976496425502417207129760543313540852506002984047180365628464158660659350645335462439043057429044205351181424926537596049822350508187973667116479199998893765852830927148287719266578958940932180395274305734330807481792020147247213893169899551125615951726015538439093883614622605271604938460011020797658292780593616019326757656784068568087633243173975874005859696121864634479945517710049277963404084395204076260014529727734966490072142861145851680558856086883435206158809454249570352873034843290187175367701295957405127921347245046068360026006735979136108143027843316269451578859433231429967119664202532846789415159016580338079573323315043849013175687208368093579059377188650265884244785980738556322661101346476636140943920492344369506260511457544581262026269145359376624047901767425898434197901160986515545226305379759690781911831550645818977602018418919311222575401111623448121370170848979803352833798206613706335506731324131373661090546240255653261403395959322801041850256295025803782646379784259783559026405245328133723868831840146989236089440917068717929475123907759039624305229309975843846670934939843390819421858321320630507302272373544816626387138146548946345307860318048076634389426907254131327191912148538094322689707690564478442413893159570358248768175651394010291247142619578200045509665856734635580737025717680401736197715581892869789497353823131240143219351841650912534458325582689167879756790957428821541936753900411723623076462334424903704889587974893069120080751150309651982965568628556611775784576759186148169588234006838771567758812966271899882791822738417521710083558853543193051175356519246913163619560557509437732383670106382123283192655607910816051390608373589438506078077649240040185408207453666910301369902758648065298756644969685158822753825734166104462020291535895553598224098507601651995937844035407381708619517335513260682034295966512571668682387045203016824236014382139980609934006874372697773339800493217956976454225866364566753363475983117601525556696271980555316437279650049406611851222999059737780075814320242826127797686351812621347275441083095735817088807875257498046873497197032767622080951625650665304996433304565814668195591457899823064259284127997991403951170156141204958686147615358793400692739910908023315460304943858886858833419738730901779878326639231945007400181395636791906441185993270202824896361071763508452584412053727858532003172603200138050949822021078450956098645781511059108414991854605601338168873532902508666923820614044063289430893117951150547193162490082568160726444307714538851680690295294555655955572287123685167678372003245722746593733527289186105237914737299513707063884209007989947140177773805683085987691715278913081959456791035772000493538058060056063074810415140525163335639100395545702439757435322504409354368861724443033108533385339778333508805145825493760505847258656669825543260103986733629972432624254014865495763650691314693227534426422655836669222882748500697860858102167032934074632915315863583990774650382279281416386813715144332199984157970251737845167594096020803809735468580240664970625129840898426872262099639398591057010431255778563116860800866559226039633012661608041114839087254490109660334971717925914443653332116135490362974535400290754900916102625997290438710798986802779765715568716238578544748063483915698362898434522426041187771906668216191737118925473040963903676414709011431914611046469415852805442853742281777153291583404509361644530524941463755674772920836176387149108721952694890501939591505183163328975346156451674099327250894412789702819247056138789307835835517839614546083409965211100842356229933305844728203392790731266642150810689991467336902634229435640477210722304713652764916981876268159871715043547008241513239019864577978740921058974698636917127888420626156867148835290703419926037751537259073796614578796312973023414739276526643403393169628304524781631819554637276233654877074352718347440772437728333825552826737024746393532313248835122151647658048640500312339868242900475881551923550724569927549262090398101355786042286308370724436160230562502919889604703231426337506472730098853156230544855556636472505833757452955161711871242496972624553109111910399318583725147566014907178262543000595209817803243639712634323553220418028783890184460067748145330721583910602016994994043019188417759288583428165992013353999661066091967088013159415241135266956465588174182055686694190707989221085877705665980989487180643198709365584855486663958150235489937530389074688757294890950420847210972139982903039207343766864011564453607126484559655800274646075025275942435172503714066165095370878938384376948054025433177413756386944555108309350322011895403863595641822111309855535871574708943589603208374390195938889020671073122511280499691103179001477223439549412175282438026608656148335135714614714092534158948954453731151747694134093544258500979602477988309438299860788317805697116678522734220047829927451762957478584396235841227715650422936537760457748778344475015768269609675333539689654058820436518192140944247099550743741942031162107827646526377240493937729442549219858934876429014320706905264517110895284491440155391263301267501195076350496152670316797141170325502877526610701055439724993078880548829539226206270844276456866666356278993260873418100341934767674304523201557272958391012055320329895019335680524897774775046951432001899870363123229524077318582656056009097917041350341704008531558144745550576552770886333270938533513681682870526929634672507060827063793131052162918608671315224418668045335685424816596243863566746513221013080709671055410119966804518607646127586826080064956754860366482033553459628499551770709367672239347774685408374369758060066368224246038456147312527126880660148201328889951405001452352403899394722709485377720493572209536499685903254869116940251941359890095935095930740022593473080235814431285311719508903817271279547097258779996978978865165924409324038146656914267908701360925819774042681187346938107824156798930576929328285454483879702809536157936687365348808204987054816656318342807678793970627138625692770608935661272751252331654187820756824224588896207509424556410657058309823552103262788450822708138450380546113701169234753680531266762028703487737731762768929193502390623756952276217004224996395421309398916088265014610114671077647808207799633656981988734590633362741604359617286533517343520401128921622310347621353393428153716467551051800014747962281729217751881450360001368954113921240953371318762875642882352178244008655043406252132216939858296342026318672878054581999336527384493259229894979460484526670733589817648556786252766102115147579602550480984147803378637957714676950417871839521091291739614369910386935562305160834046938886058276923513515081229809180147561594645216676329939868321571500056356584560424460091417832823583721707402415554411998218872215154302903374358993413543957396509868511025840610516486894217971934568764077712156884904619227480969439715862110809563254897165450296629590655133360992512184384671087899543456166302470514430228657425463401313933031566020633259200936449939618589182804759497340560826846907682363119331659992807632722910490482343962118070345463796047284782297634875994208251122232636860742312107400492015446656466205208281008993206402493108349588118721951859021430639878570236247060031200070415496971398041025051381170438310502412440306596496506293608406685636951211375686804745477410907429430611371461284759490048732770909854647256810894137992557790068415458949151916143479432693687021954625026422220617159167047425911226552000181452313256778009739071551578293300274048934105579700828924319629710736600116039955878770251499005556739141241809034998956977391250092373158583210305639128813705207972336884136730472529939273743202624060547670469719158882666327629090306413032352337701390493988800644644429641816211059202672073803739519426075020605006874702291091552144268403803656082012707358953882124136044906199715115252423778833871339260035430550748418340767898029344847372895884473710089701933118677848204749501459251803601710974918467715998483052537753194813729480811571739828677857894525579228453969597328282993275378688456124579752723715281910095761601971648063298563912489856864764726013290322611767953034926916594449627984748210939631356045897313678840402734457552550844124275697454844401329265352093400384959703041207607928102444716266845187112708279733012182631348444917681015004613892535916153709537224357706897393147163939100046787555726974990294936233298562688219666415809794518424693234210294535937990175056951477485664149680885792931983212250627198708218868394236634343956230684535492649631371835322032203044574531177234923345079383930936052065241627130982640507313407782554524714997101009602477642084561028458480557476831457744974689585830942997700816604181242141270921190819501147801830035968277503235273534113018473899912416457916572750111122719662522112230015858681950974359861367826337120652302971907821974541630111051583324014129181926320277256408195294020589869131541763279409898157569847700331676146109469111842000091739414031974480668067829572609594933290480056386662984129433994399836402831423942538215941002565745922137992310870287660008487171813413539177354767523761662979032121504117667343501630412938781484168725173925468330395597525723179801299257941199879367531108293002378486565111190666069780780699744102646910673058369671824290154597729969796027523694921042075617805623128314896873457209507187625858501678815330301323607576213281206744129902120855689243329279418706390276493386629229967265495302183498316908685821038679983415133780054791152176211907936599181704244543900195002248463570826084386142828502528151353798605525296901397624585702411713079365678350152256117598869906819671375150688719406984171266893235113935590095513572828933393747252476452938569707892609737924901128776239965230366343080529650847665218567358114394134862737915629112658908407646306578560962104606508073884511025226253950665767158393048887786568955639639022794644796785022214643898988938366917586663576272303505801652250055087554569715742622841506171623656894001287552476851330159410935107499556079491345312916049863812812617648555446917775526642512220546676961756321281609616557955180583172650340769243783622977728548705933623440248656020299624194389241878315051926771661847915646374214238051066154775553160482057912935390437571125480682860646302833440072119330142862067087939942244934524296928854209474389986277030330278015646792979294766987227963996724455074031610958173060757881125932381914031214153788463692751691217049237175105609235100739826279205670330087527133039674211726191744188409083246886110939691740170046100398705707325687977239554944740121032763183390850834031190307682949555046299650894826923933223200582347666207407629917237375870870380717572250243011193120717687540302251381640177797575325687738756598282961653043748764945223404105819860838867504873557475088459537040982444364214368253454791565183834562893754319685502118414526914146190503177593706728349944315025309411252264074122022778247499001065489676875525878980237307944072727634130371730831485960646638946961877614321833993732292193077454074737198236192996745209258883066932116239138199543406615186841263088743480718769578253294771612598303047337883231820572043080588978897482633362509248796825410910695323114126301319594334129502900107725983272939277711265861704625048100278862576843671106044408208008825015903079504657869061423195676011848081576770086735720048629128389577151164442257170115537665241563312366260332086799945951261955902582915796458417546508485031326091111904226250561435472081609057812852950822897173985026121687566632429574497676847306165774821336501144269173477217530337829515349625826878704602189111254741881316248622014661799265840083759021524386232557556451500884613620587379952719894666440911457932208016753269468586422051086307949723953247262721470658828097187955538863757177879290605344776177694395161290275926889999386432932947823737973860677782434148760744394015200130154925462765193317181535903887275728265942918073735018635472884575746877951519167308091278543885074758316811631049333322052450590728292702842264884691735858990634837472530695014980766854098528822179032624713330785472630832194223794924631354885762070698120331313453765775486214611924711536471036084405251976147303793734497760553019746990280494725376667659962150780602846797929726958878673409761831288549044118467036441568452730971788226466527020301430994217152517545678984770817249868102241710861138557653744596237621032013839140161827747041728051692808126189178145422003923123026013905180158454556851414026257410349724133321090069091217483054450284747981079043692784964164777057269892303372683094286379666251052895615529875474336959303318733828330936142552200746770177610209330798440058757156087461845755994415043842538735960553509159800710672952625556965729210880718286836050983123220599462430597642869260108279462584342898423327779948682425491130490106445693000315753261622030253926248695599810767097141781078984416894523654102717790919149153492293484474513631647548328772214930707477844938075754176488359133083421333073566261797819526545926032229197495843638244441277391485244304852783947287505330401169987536917429324400214576950854228655384980029690715356492808701046823090686255461830471176846970939110483914939361296486135308529357454089027095729002646725597663119801765121234884791399187724097436987567299662399575111603747357706179098416693579752617470593154539128092951131012655682061765347637808941692051012060750769633638020495652198408146967539025108562588110062675921336775599104072473140213350438084363120046510868217104860259632664527766334003139012029442562713803927849360080797060079730660625132263938161885072957459579300477394322495909163891636167793426150944450789895720080684858362759789732116949866363857465498709940030072393631309394384639507043452949830656881581280389367650231489444138728913257053949665769745019468259968861528085472956226554029969037077766470913803860080836167131061419653581242269326135631403139051024755577870247109862973163153499882167324430247149454210012317804635485892513956781586350321966035030097105718360638820620925743068150505942393334564639434476563173154643240560236602535864077066777286520601642710237668720699894534238301337567773621913908296201300784504755571886739368480082783896133502788164488008368086190286027410381397478728206868725853517960120967476343335825673284675577198508650697907345552451141379453309414495760317700324566858087121203354054030251068301682827282675698680873799132600756398209288169255483981759617368137815540911501555043790038016723621167107041793185056311457542356756669497532594042070293850738034616694925049213081268034294384636843335352966109255425160092579321559414849889695239267575994357539752914271496172354373727492957177443813274260187672885348083300812827484120841691585524871592473940254582385441643120140542663306565317856546979275158699915650536216804721791525838461797838506712398454394315996319230098825257480450840335849943889752364882698127844150711437268580131178674137132200653026061757158163694192519863436270704131731651692479709134361606208074628475283052726374451228367132423691575888221070550497887801476521120067510696556618070965350909984154336930866865561298952175650982739298939727917929259299667974455989407433975247633516513133370695678449952761585831100635733327181500325724017964687921907463149497541144960208586378843038428035747970852038539013658703517623519479781830758102350744891810276939284145030054438778877596975359600723756899210870272007384522012446730308534349410138912287187784445836092132268258280901124848424942959172521679358613875814039359791285023388148104029829598880679678299943218008277628844861653360217119121119804723608769649427960945171977975677267656919452571868980622689455287302161967767993734472433045724847721499301136943707996185340365599817690346963206200480803002490500476904348109410556377541329314642904342423653432037029910701545613969501130472887969376288382990408594621844037129422048631691891958209681032717260176749697088612635028624344652802838744743469832513187719733531878618054708158782386069213996759856091330399288471184112412338536082320052571643635703344313395892666375697363215599035837409659812371297842271740542999355647767581976379336552051730438488322755622043309457214671455106387768222590251577890344101933689626084443308566640845018276476073972137936018826004308715153853502201708034886351312770628535747493466078702552035606192839442201992430960759083067956936276652219232545420580845071835100238186828468688657185378543214528455982373965922857900737650486492233177113778815330394828249674243508572403091951969175193946911680664641901326074846220347731927246901600933724481863758767095512485411557897301279463672066750630896177757527704488573816436792104885643955257366301858196866162345788734090802064945825256333589069439450212572710509783688007287861321524895053738857698660972694626678510588911541570356269505191205049163220837915293813115204929067384036639481212896606100747213932967962895950776933482979012872931954490816826956574525861836856251993503879752606337979699293715983819508847669483779267176189129789501554378135726891677975469139820876153687956636619927530543566267588684814575814474236583392039129190529166379578252557467641225512887274248505548533157521547912026759184629157078504647087512611481104710778910690823888396147351348275784644981398519030712427341160892129407040240741841351131772246020100831374424056335632440016185071224254220328704529676339837526259503896639072603427871389634781124896453250786630269601289714785790488338250801176444859861812392230091767833155590610428366767119180715639550206447930800104269316740529107070165607840240499697353887441479285445259071658807955936819494584042830817660517419101425743713276341689819957339907831199174150298225253152497749487298243032926507148217323636416150227890879124157127035535182344266191064310579084562502086258591369371691306270273286208461931214386939709286033516450184564985334868029933706206310996766449754412609130205430524463652577536436047246279879198789318051894609830631885500216021760518975086377814028625662677976869357201648573139491470710011979241513913309812496960631723049706990719415100928975934497475487034813772576564999327103165903404698058805755261494807866271503927648286900055065686082864039796548918421500423334405011681736149366597477648336580352101098628367853516446564421538658417844740810760976038956240899002611041358688503830712178229700227131878610292197400254633834594359935889851283022884224456099077619650220545545232108091041131169868661855732405303483277769760537822984233711695338906946095909178262758286272353334896804857682757378418033450090754426548136679613954920147496053552410467155743047149859606760150501869048781492406550742480056838897578633601139342391977887922030099357806719910689839831489637247579863774201473790060458321189402308523147795021182541228955898149256483956558377439982659592935392317430068367613499044174855365612958962449279858952304234369401613490734484927302792978257897884637873992242038382750770172724647054919476417665523059971456929108857130256557750909007969291873356536699590047826491429831597047791657916603721882928104670696343516234857597930704441194131045076950740403998375733330398320228061977496059347740741646700162412689770289405925579306365628403241979529181570265122146423717439808379294850198477470791227446987061730107827033652107206879909421294654419531129733348320932643545264414452592062336594788182347961820823299685967085172732516430329495872034628431954908671396613196902365510315617440665455566886366747463461651685540048220044315825435384301421553164664024764984227984291085584700193117984200183664028897084762135126862693219007482351572485117674825104325392940542392298267576452698404739982519388619283672147661617934543571191749603193091669204536376073416099366131892834268032087618021188767727590544163235393598892486608026252432352597324020439989785500469851303348752929322419562911019686114904480510304327072710090390837236670752459521589435293932347387143694074039438954962829807750229037767566796042147974756519720328045511190481263378461347774628986394114238891752798726519312241067620669459613583411682311181501577870164532474630559641079903115285446653375399481984149327215280929111202942766425252787786345981038809624140035871239369834414529606026884083547276361815000294803998311724142204081502093761803536112879068123255921130439102365634582738737034010187381363923535227561418712021733483360443913875392320022699009354511755387450283513987990228506321317619682306509720517738093971584395920111114339282062075477175463746680951449892722204915868641644886959351187914977521062234310214397108249610043096361651242399078021515402954566019069656475722038205282658703341718594928814214868161091662538949805081692064616939718265533296447451786271181045857050197678037515819541215767401627283906214527579539946051681633429969442566121262422956350712700471060355972415766831982947347132479571110333590370613003688844169246811500792092736059084711121816222409752975341356224401563793385283632979668208321431366128670439099646909131522392995999087839570093938869694273023257211511859701546767250511082850186845403917536916662464490059354261902228004183803367426205126909284447980269932873071421549893922523132814474807707572613997602928448259747321377959762223107618313980147253568870518295334612833158764351567482799612462196130684919018639331698154414133669764869510545327724869452309362703400130459592622454066316985913029425127153605998979747689092510743615085737170652457169090232825458104576383360657800665482566930818347512244359653998734575989833274334222192325265234657026127979765101471297599388601988467318120544292792305216915399443413909839087232094274505666844061084958754512500219879026759852688099565532294735204438556902515742645874192348395511839371505630424795062434328204007966737300217735050031684293028405308374151426962986438812824846828220335555295076033603536979812666502953993757155974195661213082591236708674182018417889133299932316952437815799240712811777445197737938719028441666409967559186211110625498384133711620811744059660343150280451429349665784015268298653683775578691335336368651692018326279334082888584956920490007157290261791118698156741166948520673546229092356639643603561796696052187308313160713219367322237348599456505548697261515543506400762081334476605029497207770045625857945212597656398147707118341353946891879781701715912321088726852142526535789074795027004699347266437021558083081567680884426643283460372155870850089511464465443178733785591111878714108883766772753458477430194757449007109975158855938942600586990487586053193524627743854764419188080458055859471850640144790272184188227787709162902288436874332150621878122479115323780168921815125450335184763303182488238528599150900272901265294981377877673687072021036161429806111136745896256511269013589636858942625525234626897473063505782090403846822524675223753151603760748260552009002689888549734880615046465203948953613251488532289395749797494399794277006282821710176606146498040562100054389391040135053484116896053298941567205338061357220145312693236084033198675000625394087791774619852441087980211346848070438626279696340653622408832889236222894189218159467807358070765881086763878348147404780526661869778027054047626912853367612588324785819249285414630248688608747553750042349930006502446979003935375401131695597280481161119362014012346580306226267739001634920547054333280070994831950046642299144996904367602225626166662128606149886979493768998703880778759145660038128520110257047037998332241023840062909513054497054936211489890543372113225375966441076290903431016663430492650025243406838551051331241689230757169527442285504196881856351315862618269641885971556437866264664618901330515609061531333372936214852111857101193757961881216939790450794427370750977787682193605447750906967448292024006941044414628183743802054473376219254016404788508102657280420565069985630486524521366849811346925298315241514631123117803926481175572125393323064831885292074153478262878894304638733790058872090131555271300428275522299448345825359491808710654783346889719506744412879913581740970481187623147278368625675644869848177753835369289523754297797416567155636849089474855463314703831953842817660552011332279431809858172927479638404800605649033058001780508221753183304808188529585267291299669453601948481686166746505438191422178612945296609181823455333005707453085100894869156029249007942715149438982387142647991880222314807195999077250775890650986260856766175724017194377925681323542893551121500624401706165522312311390772666893956022706078459953123595085071639216524623517105626674961789088867152154341494862808630030133178808059753812676483128178110431950792332135329093915619787003715810672432536453359158597727321989765205571426520887513100091037199248929498848088617670264210035551503874609193249895791709211445805866634856747023550294460057025214142848544596134118205546859732290014796380801381482113350583676421399134918283416998277961120596039976700903185674937377560126121907663585335585323130654636754806152801123235341144007827845618458286904331606815852652929451331356388168361120661800173372156616509099207196237657049821841965609961755990106717375010117928859819568828716175613429587209827318737143014209929608965228337477784453898779723026573381372337092085754719594380423874938955940847457539269133672591252859495334188317116912655713704731138565429418485040817710237639656340904461292857639837247310672611418200721745005789789451697333822959679201178428962435922785774415895856371667587150662792765773967663512755616046602232578952276618605706809180523307967912912637733393336859342895874452565061253500562869954234063314767477978389401028087402843055512731020228407792464338544116891570951053603039235062010988214147001127997993268381872044736255115697483369613651420678087262096110725576486387749535968627835914089879786878497615183620708502963450005988712295552483213185987674760010179504181287857742174276116942689845475420971440490553840667316155113166092168902635163871911813942199943927254089399719689708469853101208605069095203823957737406800114175918203800002853502872575376131411982520242630090379790552468232278852310293207336895538552037361722212484689390564539865855002517571745167150428098761056347636719268748392886536560644404814289768218645159314424745429001865349377939429270537473441212580417028337281486483406974515637285707598835811486749242773696851346156131365649886869108514800802639691389031355484433360010126744489486881303779163269199861573331510474707320814804900280828359274916025171011776802500906797292374963025914570986665385355320359336710500630618849808187910762097229998484277440772219999664821185149646646757680938820937984431917544064093364028815829159048878577941829846946577858436638105519524685854226474157176711457275145296643846635236256929966682992255804139133870358406860878595726297715791409287503802177657318152396452720862453688243306310340473804068798988761530751074124125852471993153223639505943439826817656911036309285819162620726063962495271430553934896571246643212749322878775894462921548122660645945038989850170142344995532949193485532210411912169920428300392542669610332805470451187437216010574101510974489920044906969054865383264828732724286440876001515984669327419093556795005518982351245305613761240221925995349590056432022763180021652774099180197401012511017839829112561681856197343987523357958908139679656014702114752870185156652517015343905809775504182328300602100821701023888462967182210376899776030494618360645834361559942261959589968228373476256927063799317857166881147462281877285090262106729855131325032469936783729675450813540553499479953231806261934723658045722899772951965711298340652305203612949259272811146248256222753362767100222432670228010306756095923367158410745300059551581012648901956657522384666695995906770683757171985493850744923299648031605404922145097134580067574887525343362867099938644203636299103473952850839161064175410643460492575735842922463868195571429887562996736421794546275665359314222221888187435634720288432980574679636270297802135384263363653272127724151772805077718922358158456146246981749583549215121288862886617885761036098848050281588518366010500137959793420186595426253650908023867823444147836366462831251641870376204995033763975660682140820166927174465414373349076463536855306721525749184866191953500176291704780218533720279916520108666606518025586528473369818650132585646279585052091751698937912078094219848556359992141355825368630449002313822398454989760889507469086981219955511034472859513997468490181968165905052698780036758753639247188585776686492854816552023788562462002638990119859496754705042544228596498138787492588618525075922535864393255472209240925975573823519603960375885194226159339628862794969415933523110302852748119492053887803274023849182588210804985012417652513018656360771926656437397863624355500059426030605215393899676811190956396298358149806672699073803735916294753539767507197206394085510090400116561186528568863077279393753869821246482121795477465541725383811673157437228635755966632546510443786653994800888914248500546113178048803063914188164351786162751502024219213885317205108664592911976382958701480777025559302924886316665960021841986014995181447777083200281507581498079391035943514584725209157400806885274203135678849652403561165006984627409091470728982488387447299939954471761658445800772623018428757749894611521081572373980817673767494194277156763457627388957121651591282320991774548547375926628936514596692534185676227141108408653358748070881509804647162327478932141510994498325286259256928447003762008706070919834289247950463359051437713118273134322826320729523169927808287893386585354125919656322579428185499955338682699011364100825374240034970102888434701736310318295982573697016670181086263345268792585232114149056156845686244326912974260011451279889049305487549502534520379621648008262903402266977330016839186659820965310877913863644301163583211969622595424076247562827802104070182584563282499209946730470262838407301437893667486527066854339702856484476098768108334758579292248789908573468196579677193762620506237464085909578942408477748386595386730600687258264891802100064629155417261355963430682257381257604799438245276467827366481717924171104307356977103584503672562580822108385537141409954726383611959059381539926793433176784021209443921092279477087437554947463184717820663814695334026951432716925278380602218993109899528213168997262113864453401444687293459885560211972650624674058989071232548748627073988448922644139608865348832505043184736530038943021790000511769847728768477734148358503104779237474885756683763069850618462221976864974608381378068613319012825223914118636148971691165668886441891322014739034739134000434309251118518322494788573315052397669440985771473457102117745575332799847317730490641120150454665897182373515630803051681418184679212556316191916687018938659785587225195712545653377013763390752256767088739761933795770444753543028458100973316679388999140635786069868051972186824796841979094622836907660048830177033434372064646147281275486834684988403187376624460869258866585919210549412274585097226407124735724268309449062399220509589891547526826629079542972604034196930284127617092582195132936166311227654828830134976693601112968595779282351038720412719186685205124323259766588380701541606303827856131043708820447388151427090718955691064771150093422408203274897958230563670932576513003557144044494320373163099273027068362815263311138111683797941002871678552149319574266689818682061779959526213581737608141052292046528205098926583978374773202691122019253426079235408605647139075565845582123827986522422630946549383854653389608602684743447285721508010262135835412411297186858815158251179201536584861687834522200339805915677464739624547906306580216880054515107308380314385946220693912542856631549775906282687142710635637241754620745611518502714944873725441975361320213249434576408370668338458656764648471709947018689137003300203207819925711633721247382648446780384446416209131534256835158276720561319135373248008124291282160325065663794453471656516871431691823720598522394090453902394599489708090789454791993515832873536745820899604262635223701448569747533936220240934102324073350968808052625622830077446990190710083535472668034267851287105005433907266432377623694955323559970020556187636287269499437321678466213471261521461636400734826668473722364863966385346220351360240381949884618607811765052825329427648310151311847567596579255028018001073878633789546208673932921703926350041543050776834619258513095964209734692369078451278059854986445910253645046596303122315801444868900644535151578408224866879208751866468215139384578010534932803164776626690469981500039240815486707895957721232713026264016327579152622610529050156031071559145930774439321341477639221993020497672624921288552196327491083191364068449241229106715386580340347279109910236000607258933511084435146799684653590200934175373959218114703352573381520723683917707534416215734414484156658890253240036332361083708209258727132755741568334361497846193511569840597568325364782426519315448035502358103217647724877840456421186995336106826944087283798443291697038986121463440230287135321817646359266414864638833292782915260090336165127464920904254049649714744540984928938575279464758967377336661770062837495000765571927445373010196160580236350015067429642847555051145889665303719768410169803885806154412141551706144097077252106531792785776352233539011642704147722464533898026168480741784472771917754688581736322631729079961602103452193130466003824562668532218040514412866486980273539128343366604706918080558543314583946676245510487222280650277978683758836791429659055720257942805260159857527980560956873794575257528931445753028248434805633803530069880696223957417111624036546571372029487295963697967030490263157214225219445854409998099361460841174667597220233421987593381551435035318445440071643112036976615447380410606117893331509130376473120127342175632899466349517794091965630675251264265839219412829532888399377525149475387946787743038106370841074966729406987412100950313917769208218231809052535696387630791491261208857262385180467164890680209319525601512169469864562007458849168412630791645940392332052194442336437955782371260745683689382139986531666388040579920260402478203531104170960171647102272349448787662957742641156632430795450761405050257213370458882218239292197014534732386360035007046969071517382412921418484194787681032517531882806289337142595220535287491095748487874061426931414536005284927506697307870844299105248672182912943493566947481880756959716896110263583497585304643990369475826507339622568622568605273335310294948457964632769998919365858178122249550390511680575520415199226557129579868758319587722210498388431784785808427624387640908929972844623704980738642260303193569197512379151264415283489857982662843644533009494134560548924353072142847648476057439079512052753392502759904140354206995065677111892408363334794220415834637553836981866130187481774777926865776023697066338432736504182631141024719293181232224347013993298024783891106477904730939334219125471473102027539336608094024455372312702559028402909788110112723593467738581979085208431400352302058690450134287767520802025200569672618793050667285161307604645279748554713032585428262691660381376584064571403486826788510365066943483048726382871179396740161542939263895685506068736795638657589368768529343215674153125709372195772455772305557488960753153876177057568671523339164939290723454537458340440066222593437606302049623973665586869775948252170018468251012829210503206343075416880795134940063470203288012873230776999416881092885678716205334951322756618163094139714263365215341877506437668936791224990325359300166951477857693561022817205281928876255837951060670987460537801543466783601359285364449158088488761572428518216393726008767112639786791205130319820305398816619829679700193231848439196295987617847402783733903993581001769569559354867209680259525747589085748505324931915082966478251283375067692305989284333040831631503586480955143648322102650515750439304804916888283992437405499143778358441766874781324910210905628610898212486927167725206614032542803522355429577288939079039429982567062628023702541688497788913772159413824804619549754190993263300597775792741258412182181327076237497167617660709544371370195160751613595983309006343372049647970126831384965682654697361564832393142268734927151292320606589187697481256215841753632765230679966071232983701681696515640569035159342280768444133824290701688349220974634035431943570285228743514861902834296633496808600745356630898967656953558347447472336890762533538800369111667033555342380295989226178485154304236833462447738840801655088449096748920501014840900454939595330811514804799647152606094356383080349621369380853719507760535597842558249996166377037311015174747123616683143535008006393710607963995702125962998807613862595040775738668143300693714437642190414752936936581652921644114115570986370007439891823088348677224723282999080717422955260325822238617602664298916071167412958954161656877024656089505910337831015708208708557120789419093794761608226737899013408150005971391874189523581784051776513476209365876636864361517640331179902974324791387348102264987415123242653678036376246366993869984216062892832001344102733396049754398891928192177734344366158882761575390590026468141127458433769141286940485881590772855885479975741530621007050453084087157699081303801724833037362546117830056528627413529507260841487674193685632108732750168105090153685837319446910741927702111815314576995559424337626389016827829089078618354706718876037502790328878117574195010918493644305426819808663014197526759960116569269273103320413535526837549000615627342594610760919384179515058257157087724085243161025257257333511909299343997515805249302527536355307369637990158490563012733790754389082115016594150474977497025831771726847551605749352545308055117959326131537826547948388966352459732900105155164689470645701973842037229589713483413975523742882758347386813282645099292012992779426175048007436726298959925934285966242876422747317893965652279169229193600758233507073702259323292812796401304062627417893610355938491202798161599843126003979717627321371779106913695772691777641995507555268928708185381519610528667131952141367963640917447710379739285654547700639410698820769338191615466088214743521771211478664557677665413389632348508890697025485588909063458203318220080469829093734519444085696995624329443936668552356701862972704479151692017309222309022758237674570282403042368818340986847144785131572748468761479472460645390146293379759076913366619899323881296841581662060936034701400714197212399175611254492581851322302923425925541053968287703019857149104714829061409167992162926133431705915811710025557506224796448087849070267297723458003751573449700935924228573161793074574080816942094180276642726991773007530457494803248716585125196576320971766082894910745877309752923860647288973431843983659022779756610363196608276424108136129907673175302665177651392004580526369370814046259440342915707602463047608618036275470990350823161765576393465775078655489680347363812694579020706318625196430136317495070558019506221579888189569329429677503835263390862381701612332802368918242944052725382918912850799515803756445333438139507851627558567402171147191867119946245294158705468677810051892252016711793864650986977157765389561964459473706329564176140920582452051724783700798231055626706032873369911246232520879672671982935085649627371076678556737806596519474240146406343071097898866326562014664947584676595368615145820571661068665451509425140820480608271802874677780216471541778194917317084169556005172341893797879827163213409432323381824983064859826861819706192702570047116384786886704817175972290802706808674150223908991028217901124877516793766850461757646174466662602284164937845100916930478486717825284767644837644208742326814352704645708400605851690536990062221464460299514552386259194985323298717092095021345760017880781788050112104690093470444461282026854383305173397173782006420839571633598336186308651797982320172734817897005807593444102531368031824458613382329051686515615592539339748770792361964877962655697856841384910651148970943105682719805798248294771243334442168750834100678393872927854655112759272314357357236251872286593286550468112778015059565496269902861394662032431924456562784400002201399555356546104777944294150564742502513574752794222803696152658728605317526455705817945617648803551669802411911900045540487334441693582601201774774192393088282349204341803021682277312312977241784697682828516817030036714860347911450091702417021941938916794743333134365825590661542450778807561386830287628170682291527660170831455696732061764496110252067933776939733297940387647112881015044280840107354076368261855123254128539771019256895013925116657588765677769947739682816834389008223641763861210925253961507717441270571347230109008760185166260990338018300199051902446470988561655149146921556732508631305341059861734809430346568578262899523433235938039698001592555073955156845675950499760764763969610903056503153809788893688257903398498515272682362647020459755458118908271369486940847092934631674513398096804024463774178411077929761138885325717679467754697669886735433565127002096239098167499342213500101300765088406145711421564753499165100764450577845089448194405516477800490240343561328473126833714810245144880233603581459232929278388906752572720465928652777623875618070120546721293160041627459653532346498181684924867037618830916427567727014243879504860010838110648170352849068880357127797155190523679070799566334870758781663294936697436110251951062154739732215568808865315089733636920284348497089189567547445378780854108155669575449844550519712939737162323536403287040461531578135625869805088834914373215965187958863468734020835015853511150000845267360247331967146635146746094047245951287504450998516527122440363979891467259467486791451302522772717475274239156903133586827497727402602975781703461855774549112722184547644577312831966909376407973403109580500135964319130162026079858276974867363815712151009948571590657512867784116488320320518907801402169246409113915688045584288042054326485072009260772693728389005812302063382551147923772935079067070676203531657975699166855391130861412621703251460094172643419586831800670715279530808975973001523299767232928067483413119887805695679468027679098202981184002348064555281861051477278820383753248108880969662312528242613315665532827213655433465554354837651414004291899856389527998957686144987045242502835897189804730475574710570539954688908631710020082148452695744536676591257332125631392438384162086123060136885289383642493593354164379964536728051041685239735149302424185416508553358290706549387728912529564379045472630526545184479094585083275105305883603398405078968727505221286298397154455822316148893675691145726454028479298587476198209066683392985982910234179558419444248398584244985921240415230694774890898216217697685388377782490200828372688365008868142955514835610220496778578746619303292398073534463576927201705153402847711115544883565158557957981874953899893745258928969793804724143530500709754735845373045556695129797828906657007838451101562045614809152109198503371261333961381273038852329567364610585328658651922992704598039280356557157169983610891724560993014138416922579937389049990545861427585092535275703399885469962735087214659090047870385652164285358518101715279011404352289972479923785586375423793124585355452263677088448918181397623450155493690954531682924366617777250076319420130851037932890557110876090559438853743344436477611057308812557321669663536922011932414347913001977069609792486383727635669979877010018613960329271176657731304202346878135581084064187119859523771390035105100506852447947713597368264601515353323886450296076013904690421133410296116987205804392763624888855218718870195068387175392001504971180445104490022488787647930630086200751275798942165956686679347757610507353604050204460584709413825299181321359019650107909192753592079709295778149263051894890697193366850775143980218611008438033195459566256141447805566984446334400796736375546426285970729693827785612927223509420882917596935413403099145310267170266799811489586747168017961210384595561448077682475635157024911108891366546330006242228161270998460535101771687990166619702132651460719101835431177290799245528702132374919798617745308236160146606799303917717282541682031028258101913085440373559914760843241154275237494862654709306062062444427344323953512482314338149182736147605591720801907267229781326845827727966078340572660256808883084593366880106758060492393833120880070586559201963255458516505438543926552751984706927195641379521283685300771678909949132294493968430188807880274750345914108058919770891984579129909959831690439794586803068065510874199300056672898217733649649084214027368502252384403744444624820327436938117587906329952144515200071959258841760940928652971300230421999322115679515973938367693468387756847023157452442746987122860808543957147314047568553120301523156813155304682948188717922387594816969182349811238617711033096759511482836281908845071814548175099448733507510787485212797230518549116568323271562401355784659537629051078070050700487510409476370651601331525426584331225244139574908920466204499357186903541358529488786938318378383235976071011134810278748250648984818085243864370367817563198842169425958082172765389594811135204992089646610815302553321271930664293386558644673936722133941513951361012927669508050068639484231078539053287311094531298217360253772762827925863837066066510197371797263331303686091586292903642602101711219782703164612415039044674512600550952534791091993865711612868829248840841691031469918545551722287762381065824844234861680376538926958856850002730196332596738337758478109051081314933037162042504035678495857232156249612364409289488593295268155156227977052017694389770856962246545298748709765727463283730680909841285541269881958601101829104362123179316959759289601844582427791781508433839113553683153264884637676009251352454649074518330715765928825619591255815800472406343212830869068858240502567672490904307381744000610950151361521885549811811164065404021834937632182548826895827213573591094654059149594597358082417940732938116187785838979353679360949827869122095822026085416570554523475449566277572229610904246301965290269357093301916008833508330784768665928112673885084137897670403659050109928621546504219138016860734231833665737608490703398911075450848853500842784188321876138582643062981576687358598474246712861922304600189714059088716778717306667255701809568574120608243104161122794916626651554543271399858672728409594490434922050175444493317578052965952265129247055245356840636487446728913465808957379580478848829516643414717635236613459519647595430876709246819996653764501539853427118709545944896837853043450375548251146714426325100741012370569957594079530529113332897626352309962975743838238737372572561557785809466948672212675885917190643428139405139028550987096355629121568926818809707753808871290381834572557128062163355673783446295110432440702034123926292340015873078508241945317518460666957555471533618816390292832527008394592485261737182405713595074321233254969189751694249669498515836412926306747930000812509276762956969324391372873569140355799800174580527545617945420804817799376844645929386129847115784240166607347728813453463949924707354003765075416709495300408972149771638179824822066942943091600846494340411096266748098177057634358189224168729418233872826118834086061700682738751506643795539372166533750152522047469100036142618158819558447129677399593382209949017229685609142831896365018736489569484564417488583547678567164209992665936500640480467075426763842860034413407273581295876389199891062019349965690376665694596526196836126686556041457613255268032081933708061679369283710502979693893699226270782192954100560324991098460962743090926831254305003965119723730660926079779289244340597694624390464000014646811880663689750046113036367977998588794947212857888654482288113377680008915018780896927581100640285274633202406079243303421690127446794225606307384374661955114775807355160772832635203562476602004197261142517187865648781726383578594122944791580791619908296543885020786399851611104495417837028662842071744755516069459461730866060845310454264070992059278043919550312985615012769368792836235199677957067956669256565657016374223089652079776868919147440089644089343200505141864073342291637621172265595713743009209147418544078206161866098836668111486454172858903058484344150429378365960658948693224767794597168256072058535346759263779472408511501304012527796627246515760430885044269337128913437995740607069053629577229872152377555724403308868402484902702284554008312826312388565882162853395356047194851230212375953187129084992646013738147375963589853163261426107684303144073320236123676868654664242668292893389819701625458408215340700913128728545849743830204517150923248927071190357071131279000392883025557201925347183786202594021124502093337767915438543320207012570798286487764546356182164384643272148005986867155359003951677677053204301393328565885499999803273924751286236407149311103828591715773457724779331987140436918286261547220462842585241106536434694892811611852172206752288329318261496378741061988595227853631362123617736134089752239784633097547796432755089510829985372373105695701510407136202988840687450995382805202126697140718133076254575051457839690689270093343699499291845701064108474341830278429246378660662790255958619937103738167244597265022837075196001951510278729184965445789280258019418835719787573261243436161271112916635668745867038958760868478484178433250193324223660436718896979512849947065435032240078793429318680033711843321807756338411724325575052224252563748323111795985036953004426970641811977748452998978868511623641239876283532277304052665409984624432266924904226734698024803658618724082681389823026118823446575811579567134471764499111201677940431707330174506977128575267630409665518052544928573415015929137495019998537448336280598844765336720471773513331860551203298306357721048220908536773519563457900811012611790220520634990569141790971467563146836206329159742660407125012080481248365869858757127675635381365455396505044770689819313859866256184212121575420288063564165088688374393291137369680005698472682509110981418380482968236819582083064061756315816389052791425181890305014378458963742638211075715587135848018284525475333400472848769375615154760599183391816232900945830498206480844838164567342428185502462895951863407052241583721572231170216771401314244221872400631090535755070177615322899411010591961747898241846278270468485920086858023238039061494360803189367883984793454095762590253670819221681507295057462408541448660480374852046735434679771700077713940223794882014140871289126356999495875827644288699377174666280185182723084362815216461819971374342319531417843714711140000875145293527674744847256252339234855250151375258389692574815810954619388649021706912683209857988470616263680775931321402237844892061632684443893800042374177575353627752551979911023237411216877016198357571495590557166512912853370718282567568132887301301128058177796002121368361949507253960633237471403907421349130098832687454129883178132838624586743388819221952648086565008988559548118202414125367175399731386090754074231350014566120127848232572185306650349808875849860662255880356394801948434837919602928114627596358190893924503474484694719910489615081344834184711910363112209425364916980947120723911216001243850519985280862792198050925772603299705108527163746487876873425961747697880839478761611275640449892970728386130688855085924282394881535552648398724215008813100717277622742746179780543230944846987986339023985286726290975535637779196858364210006990626031503392017579262747381575442413165612833213262700469251641983513361553784384632712037519751525110151686189730906433692465615168991245949869340574471989711827066106798680884245271576157780679458166370557935489298198231444045541943979318189041330323682474219369484241542358979264773800150752626202739951183257307003201115503944689854269509599013848107336152609238908937206229052228326598710409098941738117796701645595867595127583327236165032055979981828625185625882677924104715485700246999733902266201688363484857005813966752593893346212826769122347892507415102344739983761430824726723667479621811649821291498003279436196177084695448435666474361481840102683148043649991574334425397481892846880709128092244329670279209105318719609541484512839080183870891507498021650037454247840966584616355417205444262682116290562678227889787262355989706153139375085222613145534018536953970518320308977104609752545134916566145114172150037181431504449578249952491445202030321889003105939700689887101109733658752086581562465033295491268013894260072587363871994783801018776237747008255061090599165300042546891095853812231761160595243957245824752637701867169160830285324724335742769218223182639023649093503216127617989906051948715464301176059055942076108456778546944282372085189403197792145510611159316667358702678074165675249800061817547183775164166230800277537328862523600672351216109509003787228326529825984317643309463171896733080987524560748641981491927965861222094993385754959041689349922595605108847376920902563060498910253391773842355208849034572973000110864355292051909556288963801087275121402599386410099563881726784213953176253148605389742093477932746190764773994085786461639992483690082386276992174891420029975399786395497738369338002044511504316095454921846014888255585813071552925611418383725855319279098883889299586501937191663447603337256227161369132360043890097714868197350175704612891912930294193449901028495468171847964186219277146742139885021987110971757938047319419060644263089825664628713961865586779123389611542698938576816744568034244791549498315914827863704017204173759911948740272316001600200824145536865151982583431030710144441785657615313149591830346491211971825465763202939815930726014119919888151334442129416396741992923268080888120961674012592561547048519930791950304006252270628599838325751195416698076860241533774744246764604339444620406356145949250582905107788020187291567880130841779617784172268958303121576290836610445651178085720907274690553136106488552351878115681513976632499451391742309143087787907800082453760797952042326117204563550947352039658226363874056374358315597056148277160340848602971953371428253772360182869986635019872723744729397101152174644213411298026379758402986091304671105300458907120478921703947138989136457210532361905159373334712166432680326190576703755223183298384121982592146224778574289205894399054734104497150497860385015794207811940951208597955839801169214742279371326649643266297012955109161904137665947792699496839973026512171769331775452469410039074539855809708948199685117058977811289634992291486125197422948663112282947507270163988589803410051261479797951714804692991196669813095316687595477215798530962656721406921153883310450190234258129157809295653138439645115596555286048851503399960832221956727903082521078853084489509802897410178622628103965009164930880387079786126710938808944059546662309018007532707265931603289746468382066951215272329271003714499878101781239620911784891261814799548625653020683206881931091470777253241436440279198179029203831656648811669655387549832777045477762314132356696542200376771227429137062162888154979807063596870716241247749622297987826702385928895916027830297283955972795889005382133808681987720801891042330618372869604031726003646130078952064526275435091453781414010948112431151807865491792432233273010293082478445900646605995085536818630459835058634464715646381553980720905685810299546693527722042483527333788621219533167458636003076492985439728835370491944130369843325887474130969931052724927579163994033767129544312919979949708902972005895413067860471994539528988751016633104163834284885880040477605006977564715267990693092079773759676346607998902565515802614313390284370435665705564249986598126162915553982213468101421722385598458952580954149567768296520755840970461816727245429855102197440833174365936649695426592262232568609010935031062759836216756163370964396124408628354230630945774750702194399694484716200075277937047464239190192135043814464649941798518643114328609867523843792129535653215515505965468088410041245945867680971401783921243951557403990082486744328125974890680057883179100764263347396459448074066649658502006173551110615390961524906721857971649743084488441027910154523024413078711073527651113657922270858868335236819326263649715515031704852934794832473609582540952827189405669042370853943818931133373908215817786363221025141600618384065105988583022332186157855563906320724023024509124979574351137264435200204554522097574449524512474284796299974200162240449833975753486672905167243837514380203424921433601140424768631190287437482155358005717705347790770883244598614057199895779354703302309254032164143548125824893786157809111682715385912324048738041268682420092312526020339428358952319219345109759565826759729341817984454440782696737359476252691802543302911467526969582721272682795614771781561305699097809580871449406390370462242748077888698332959610909223808702786896298738499870453803511353998829924977898512467688583386810479832464129293363140137973453468472459016443038445991521684752747322354238862320625470766977128067863021941051743569310048260985227609714392920155961672695750141863399812263448833684089633163880656736727346712110096741123005896882200770957398167956065163343357595591904000662813112800670164194465967066693677212153741876018513120264384767157203275338718758551457677643924124503571210062764605540115797370830813753818198682244442801583151379241176829163837452824791831362727817871401489470142057564545673343520079279747586006456057525838492848112116017471918056014120434851253618116994757934349528944807616993616335348151134654688962265653418553015183472450778203907242195180118538016085141670499195114872108119011452364017190819125595026826868738503233529382467913465540365653273801445513130996447929042576046834302728459178434771624475269543405100185304322271837595716345423453175406273450748362530122976549165248685207165663668747324685409672089684583727946227871200728027426896515058361434830571979442890890079424237085065306268450299978195697967190086845811494462723367349233474606609780951490039777680207412979219630892725979150609302712137623851677881839271718796726414614050814155345406354367551009302352518772088736546904571904803394296066187354615760795945138370412810818385299926352440324264094092722827842668692411304883283290637962890625163555763706534889525928302606415182843373328363581541165383315298551874609373591801251397250850507358902422139964276326826241290718862983547086964566615138762556111235480972639859489796798865287872221620840205990365315142013453613907614849140390706401918913899737281819366346927920970407787327771042297825265159437976545599545681447743541259868400059230002699162831310914652367966128242392133719379668988276804639255807934653588495633393747379030650515860955938557195754439295112336145041164034293069718917426892189404214034487930673301655377561494500178213200225458861947707960080599910857828183752413509596730955092759790606954071271981946311041586852741227451856780589213930653925895294464509689776874936813869221396399708897812696386174809315077757558116080975856580266333710325771691206469610523017432431111421605464467211725339637246738959832352697471605958733335732859018080046320020834197433895294034164759513173202795208869980503139497709165565598007474423089909030840759090445977156528926917107541819154629264491150793829301588371316201507019685779875887588897956867919808309097483198108609035399857604657588730734015537155289416364031900118000535077101426362797638258430731595573483841871510937639312347387576795123255156276851306717653216937766042744568323745145783469395187744804090732384165728542116307111087517747380022641331263290914184803121667814754897282465665796698950825422253016703087216137917455648231658179144117799297993778528614325913067733148253028395837402886046318907012519802026526956922418573586073425387586147836051418085145892896497114874430814880191042019249943606371808051515721289563525695797026378462622161911576499932982775031043303863996413121137256952785203865462566446235129939520561821736163240260806036801573363378785422981103615814419553092790685103088777723020159349147173467407432711840019401157169975103632348551834958968906815914366099603539055323826285390117697857326302187786397028945664174065866868021558631445889581491832004973030764498305069107817744114855965598227363639671121974664298679604452442352010990733408719039040996817731243948786426329813667119145404380873644173086743678326090141306744273898883327382957444903569682154194213442782353324128394195406635232476079351921140906551137579421959168102604350815354632356808404346889681786113956588841289804020310146986008569641900919827733285391980046330308622299268418178137238152415792270075759426003070341984213700867323316510706211863434234931152932596151277732661670373896704747520052863749270209621978790754985692108200645619055638687099845336560416698004963166088301194739058972234801027268225085567162354659069515080607435646640654993422486609649655794533987134234659352895070829375075086835934247851467780170564841241374099296406822403373271019226190208908282972592359465735314096531640811801316555462650954083169233740491609047573859209702700848427996557777821718806113390636174261042552363637351173450700590811391730419517405699482287178423154257535947930120056208428006121948273642025657144814511624864081718051285457513381619580050659360261524169975792882775916183695510788015177481637947690801155243350829200299357327981530201316545948236487703092574759656206995998940655810725311607908784827445256484909495765456325992845822457716798199639706633129667616098172935259715961141648264738849485169996942562252477588839203181562212911227934017287127933092596450913006007548092088158857878713430088094165505678886286253935277489183322881911240217465406184088755492242229374377048919254617529937113404074256062203899634276641066297149050212384414047774850083194975943836351169840126207892242598672816239501478293417147856364627978836402235214052124710628819512024083338356460137718579421388078873279175850928671580995857486501080817266144394173399705305856564387290523523617684084657113989462559776708897978412315161781455434892464232870020819309754260397525457743486735189928915443144501027736943774687913379061188355192547609385775687819120239765438617552485208901219939986686001977893189675500808078564919453403663953534546852459028382658918751853019603682128214961376259626632327442133119139157420074474621642619781052558178623624443428736981308387922649782313587833416448327409530829163304516572718592907767706929507657916013809258645665032654254580696747829837719532200816701407776361334195022629363894145588665322651873773437020557771474093718049818320592666594186319823727824663996628995515877990062853581430379841759487371970016732321704635535453640932456251379493034301525657887801054757190065487973089837827824425076518292445119804886147730878540723048607517081971240475446344364784985734347455621657457568119902865846833315604964712062936383329538083525125242034841974758783307570558058396305807343935716581495000135981132624109441754326137160602246314051871708391372417916117358586777429740046689133771367849731280831562683238268852928022158522837344292235975889611219666621366703342810101728267068551164281470192630871533315680768234520316738680897091075753119203449904862013680593413972050394560798414813198073343953319742786037318158575108595328045042239834909828831158627873275998492221142561053122970780469133916996636178672800796777578298403677989257399759739108116089451681011844108600679973046501697878500766305108071496673691777687026536741828823942500284071632369819771993187163268855075781278149459020458262407139307972040873631644834184621146647131549864821561969151864049517806453640846253641074629408303191405347130885802749761007858237201387752925250360727755939370843384142941137383374347261130249902178588368822090975140851546082064689740047595012730285037516912181756512100807977796334077437352458578111378466373845953293630713720591734823816347493942335409154726644030933237850758715291512055382103703674887992005760167650859211723895807764105098599274235288968117455437972962269743504431983090377408659306649646475287422950800388539047010051110939547376456884603503126849075208583224932773516810551698455576678561141692522902296649378996499846108582199812616956234535216493618059930426228376184585342154616270377959027933857861573177206782916382031225169041059233001891554468778904436391925769395217580268421103393230673608973841827633955901076202481430751969595300296021043840073988140547431592898825645115636759674406397383649495503636186850326539094014502942160391196470225733796048411294751196611046482664744947246956569390169284445203125930897850209156582518662582663654062077871398369812164698123370334714971875862039613949675532031208880276941195201453850715995867887520814901698943205400919930050156611077286368148797258855409074032669618906770874361462261793623509037497146276057868823637688203838229455068567060742248655313075627602915892224804770923523282015677516101683289228546431547627827766334438960233989952198829704064514387893497106468404256476920326971583296674267839128036114001883350262013292281422648432157369066271875790670348372563000108694720642005155912540372738415277226264060784908634743975381328821304395529712681057753216393479620825886553273416905128543275569242842338564527543894293386991872358472926631491413459509154218126124794298892716598847540005418006321770937031727719365803086218216085458325317551953259144833006730736900065957678925661709405134187935567678065576538813288223558108209785676398718325743102534122514919019640115963040696235338089005446241940243297650401080293217145996251656434653675489058322172175631141014668514251582943828235347050111632841586333209247630792981145419588312936993176424663436213170402922130742537517102451724314261599231009520950558708272714932316519728794053860945467046153630423853119643674668829411984474946693179796239790619271656879543206797632953451435509859736914973085213842641647162686740854127254467637677882674959339391758912646729697329373432585782510632847204930831166178085658307481866244323093239276174029507068737281332246558620319599027657744116295481264529211148517558795297929429692979864499574553612397969314021803011704370886703026674150593641542440819813687231522810870932819118241572326795871593435821106073411808481587501261480430681441000258903091787760607701441797907715834227791698823537075985626523246321372252487135024527019780821834950347328588100570685455614478258412762070302912586777831406438150685084283529015686681071030069296121976987713603500641837513909795307045305959109528493606225011823364491999548160976990139010881132872894079402206116033336268951410331399466122296415757926384474555352374123818812119381977421383189413572571071151305595390857216998478214234533356888226039157291932170489710461522888958169460748653647928590448354949064461503969553046848240176811036730721349993183274300356648823136478523428998944630229754202926157270707011091319052629790835154067909545092331061386966357590452243272175119215758598772720755621840144185729798666500911845219460078333453185360631076327651258392884731294910071973659078971747518116402489575956471920846860340616576326383005482242990085905072393111778115582154531742388531204401727894186446011833953344663199686530667841431932638086736763796569458965676089503338364929745236679355147152650311027263265759831325970480033958550770816775732393084169973050610749023793451201410992193206601928480223570831760730880817513447935647383532714479320550793166407276624386309421696101865722594356504281268085016315204427893805989632847127982078336456267489429897452054989854065286285791971781533497727398959385207236319428377167549209470446993275443357801706165371881426836605606828363786703864751559565999262380606074236371566459169914475603090283749087774903278141208783330691844997758675312183124415544423903549118693851618707963457196366509188076723582895517123436827870505685237162089416970010390372924368257152567519487692208266660556410304152383146832559793562659962037130801736625698358391596499914027255302630465373096790149880929828698507654978579966954999452163386106059541047500698578879125341524929892533318454932971826233888525592795938756789096736518532044965365612130461800231356294571379830642630253312175018765436244034286913241079019174351675835370771136949560326021533088917989544968862049041754298188769370138507811211157402918326174941178027662650005872715767169691813547458573634247203896607611466069290883826169030043670959633054586971529006820545154647987174910320119559413211513433770985413814532199869958931466656172304602722784756699105032896989596126820278160875562218891432424718700591564129825140350669263939144625970249484685798094407895448305374110128199126409566516673920580155063955528521416216159732791586083454485870807226152492153447969047506419084438097485640443983628317170833457583475466893517948141168848530453753310679881165216608459662045371402432252169480360710759825377534116930723276876116621985675962705086044233055689964039831983208702881288237313911216742684048583820371578667825659815977083181020282177363164290702512783672271259676381639477277498423901951298358435219348626322624604033892552705478567277436740597415869291540878909999651267004261354695142643806596630876927288698914681461274312078785984738919044570981868982386199496008132858795864377199846637691996737480335694935931001992955014697604365893654760421382699432276538791048708575011646322527136503334290181717623037791083672392829728618626277047355435891685760554940297287986396086286712065148470503025725796523581528338647972110106133103144031363838282465960898604733191625417931006069650528867569371730139329107752156055007926996165722004057973450587122706456103256151767904145577026907762147971232464145211267894826735979424487086398385502798216467109959476906416278647751091549307242389725129167699734690346467094985347981217364787392856968789495939746514076510832811815253471965543849417347846681544633889506172141492620885712528018396178730064085357120457672369157873413760375489627592359255084635515304980406657491679582239658613243269499155485478838018822880430507101315410254047927684975434443238819281060902260696522956669489802775227601066655779683554755269155761030982303897689439977329641161238439144045734249542370832589869204687268252742233332020669213699737157836112594527521935846903451007336151674746282378133020039016593484298338487978528558965305043870359734057842742922922189241801790834329388851160479382771218530261383486484092220841519486944192799410936550022876253416928108968322227770102916974542259110277049713798123309198180595351208921112182633024726915973358005711799582561156579525317539442438455319315088336928619386926968953275213359102176696776598254168567975368520260403062035438786359794144119364837492550946154160735828166200701666965994935357801120367324746524789351842376656266741270226114562036948747323766068559509288983200196863983549811335412087677493164748608344596836095152078483978340251798261735973141530318978109437547592779681726931175849843084779116864712323344382234809990487875138917182052681647822284472976118419886303989291506018097311694429008354430188511102694601570478065640481979794215631255746411672057283236465633308051433167506422131838654014374548833885931980975310428366983501595921261040738623371992845062059828184080130313133107296924552397622657755430631699374377619896293071585120130108937080101356220803681190905669736975748823630364653836065855070838064743339801450425233415035807390552772043734672873595433677110696087056435372148937101899663336560835542986199637606993433682037435435890633474805187067611357556716944567090849119826682978510995328437149300970362588679629539082227927875047805339384772490198922170833568263847914297774477002238047240415840082734133470881799753235469245489237715051838246916190714501763359492016083814490528103584945419658277461358441242219509238827844351533878237571454312441354397475894043536444386068527156699791258248715910803650873638145284981695477957937504505490343964890450662623278780162339501237089840418041141656524754602037621969773309183692532750740869905905422725507993124629930611475009140311436716505964857548017376456468331265631724237825843986297930171226480836153899313543589412068752365498178405021734701768572474919473432513577717979332941987375583726324287514334148065568687898706469977683626285477001327584009895910230538819129676917894385944996127664088871094729603236240698979158363987786264228440541012953649504251127924910647777517206634959057338435827956199648065997638320281382251984593098375840806128939180934522290774972798835719458538879240925039087667455517144492524368985165069556902405919941537765954419494551182941380377830161585797295163074870046396561287125037618984496738894334148018490350950393388747039142645288602776323651743409097757067484157316210640353198479212099119567017756541087882919060113794481718200107246510635776845916880932207191155844782693127235242867385505571138358449257892315532700186108271713565557967508901209015018621225013759518822398212862031660252793061184937629044126655737928440039052938265462409207432543256105344538642784778785767102506470261893151022565353518421569013454274259594418398129034337548131014960491961805019611111831772808172888889559628971098509511887222690374740835993528225659010680835779231105086861524815645245741319288744970132136136679757806084117171271477117518773649090845480568160941446226352723754180513935394792974606542435281613149621571298350995219430797823546178613643878001612783656651752876265165105179180451252275228047496110750256628696071637161448661546894189756832413424164463578726581773791642855102876115982632791791005111780215131924902270694413746086861349610333334240946453327379258391481071510000987030935143899271592959007156445152736399456709641882398005645067013262282962553055524516913004859172172960378129904192809884817216383666029651721727423762236156209069173407137602093352446262205809424321758525505364296177390311903119235511167574355257125019168000552391912476470881756335776746238041656146793742969137342476476944986438796099975346338569574002722717777991533585588705410767052886000008484769131914836108022895730259483203676058345777006356424348694673162346561085935742387296651999358653020005947092238379118128449783730256504632468894741287620505889111762344219984346156620119535731923794567670163616434704676465194024727151122935127591747712973271397007845233284436535078289384872161079714938783979822341185364293586012874120076446826665447546400269416375877356394292265442553309333563121352333109628700563478516342700682609572738412776675267085489035206911420431588770461673977826564077457311675011881723880738457288718369115827293302765607739517336030003856179002842851497541297335876185818789992326764088657013670053469426206745324306764764055885469602719026769361919094649987194403924286624017662229962796576848402340521071395685259410691631753928116930312236651055984227096015522711345082042839483917860171862867730980775217144562654227519614944313354769740848603407316012468763635703824318017421123810566191846602137099887375912883802730201804814822089154795958709375900898803666688542406308358106849117675458974599250351243739319895679344713897715489229923687722074406148325094503060930800309017545083137829245570088175191889626815436415232691086743910442211861009044609620515312755906394991960025663585645163335079757674225897834142450310181893566292186772672386649956101638802702750813860080070578876108692056622877822321647979381598341451744938320317323861113241766960399228812153754990920545458633548113545394858418407182186759859372271465754632670641663578513153957152961799781380254871974709705238639082140486717805053665269127397613762646743934196292050120397097848582206716929127742380431821195600979069176647660979950156813399932286417515268134604493346334304315119853281815112747385581363930946522441219951185336597305897277828766139749175590016329249294066822147617010579450526744993829741267488684717673118688062252319248354547464577370918785857455705414797170114778908773508775201438592915040173125540014507137997645716899658658616365177900793638993497538197325600244939922333695508854355227696913420416855910298151235080606328361901454072743344980541318168463144445376236643394364961243506807015267964353988856237874680509401802209726990699866134955848978896017034930518490391089398849277182388261629514257525763501908033260459958724257199459235894068028486147703655609067026222025520248292051427928998711738659232913633788063634185748852906748340600656370757236527411498943794166209323317989818319486145272723831432319560621976947165160006226494500976957815325750395981234100014252280869899961042942937031442043117270352113655253396568226291196566549526999218108490359637913791740011660426275145035119250509614168680365694630630032747771060642218086269206064545811134696848722536221370915373201124952855421329404642390142648766744926035082946182695743212348400563784030081693424095199727058804265315911455294393520648852891542026531083017833211687283160190970735089202373388403051766651070354386123510860962427407806703502045150833451939404141451212087155644639296157241262627321142363570355816426982133047546073274585170897033703498543126657744586774701387082993701684973082948097057476985940429800473834337806003710342157194590920967683922431912488401898606006191539536356627142720991055905052756591628248831466190258981717055086856691975986886830731796510347612823889400720021883944183939987036673635126571210185077225633099723686964765780923711180180634796571203344972109228187829333580964880011759139046808507851670632181062054448576254879948877735285242718624778481632711575517197947178512005108638117723344490298039485482267469572590081816841665414112904484449270218033698782998393602349676432637215030260381590717323386961818499015297316072749920567587056170231638990182151961624610862650394972570951963157394147990473674155737645502883454538433182614603527644770282091913976164250072073980244156060859753681109958914634441938906848345897479895689628258457254442063895821532878575080281048845733288189730173495830165931261505845063798803024069254914525836131263913111235756392676325558323496295176300057426191949646253002175493185615604191989901733877582532017294650482179775054613250544135633564131084758218171609420099543055650609131079429320680403188832453677382744488741576472309060993414735927904108393146988200771738665257911239351673994968426616504487675062138379889811614354315307760797649200490933868290452633640169368547709860335875113612803530008011411723779043189813852746005577819438670822074552203459514607902485572414690374770278892675495901743204199734091119076421854854788011139259339756045810257664260647097485355205501246056629112275801633764425847919987995912416298177856690942592617039593111659525071735840114962443708520013741845647101357994796651772906796188712584846667614517749718100826325984134333225607552889127222054177866409398862527249979735089649771530784348187125711226290604929944669816109125304395105429087615461611346036009184706440215451685623663974183011389206366200475262921709415244418856033368700345119290261292579698422065913047522319184340803104450584114882620753621519223628571180594992856599360008944805541128576562137593789053206344520354149597885404305486030472423148512130012230891893559740698923063662988593886951675340818362377371390340899986818626709835422431228789466899004182628630192611491519359204000154417087266059296858837605626303241502475490215835797235080299954147374597192819845289195440239982324730639340584946527870101995600262306075017342897058775776927314754424924306629619050346337674238160343515174503252222205849178432385381346582408930298689823008706967605336701996016549962361829785087694173996502914225489148637753946936695810098557213890504433962723659090226427640136051614986627169179395229210858955830012903828893804435192515399160846330431233811784454013527555613242007499485402731468245317284174739242558486186784579378466881977010430480143649468003161606947013802747469072322989292979193629167158345827614343916535761861764710826465251460610262338384286607025299265446635815316650425065831969734219988265991565398004377582637754801181289808003077616215041443353823488916521085302143441691460748775144237580146231559505691338681091742899847415856800969880943279929541159106361663999757079812445507155671298905252335921297790592177738246784802709213722778651297860601388054439765374759203219775590185210524408929402843727191085598413161245230717483363130861636566954756383438970272652199634647373593410094309508878127810470711967020660906834506090511832206272576137990120718606231233058269874653943622757796255276530346763889480977156816829586240322374351668722282139951103152555797706430530237984302915946325586419208497502764643783926683557808397669697758141109268444426966037314611317611294460610112644339764875861119387450676575588928654711078830765595259354589470505953410131607411081172489819999407458447185156136925533372826308667227536208338679073918383744221780234015712782418221983383930701907544195204916628917270357673834266494366879888954140328541732833054421939604438165981792587023942924002656485301210683510378108072552538642273990716714913463267628590393194152664654045747121926630801148668339666002093257128907794293095441452800740795315899827284630420661909188629680150833173159888836118904768237551873631013117687151765366356452828901166196732925725692936583859082473502482816087674095226417358619061108926402311436092621321208245064660103416901840125144988111796709622804308490732634159728725858347988223349675428167812693804772579332233635604926591056350772881334599412726184392685336355905229237485083319829695328418193547021200729026716184395829553216836511203263732866607229560624019699983654032867386316623694352730276573066359382312776661931106882785785598714578150722474662552328605856605024452543482036987712756010666199724616983814868981076025478151764458608709488727443067184599293828673150174075908636233818302990284870901895142851147392172854307806346381460855789429099096902345796386912169052241488783574954334752561835579125349940298901139253837093500481610442687764387403290453549730644565555194846620332738485559312386061506358965885772756191932616297164812729071441796429798333819653930915657723948450721513081194634420194140563203505829995736666069708340633312047727855735650498203867231648812654483678161713396143909016786004586927889126765753897115819313991927885051617015038598371210226918900111166707508488747559249107787233281254193461447357719179646351550152261653052727460336076640163932111998433196392973292552525424801883887612689744708161698298337343176897066331487689475901138031546353521279788265637812228591484194882413972544823321556634094687296160468896414162808326363151162307290234859030779600427025476138552475593467163403021016993344160551949229293362667926988892207251887130447181541039751112947110451721702557532139253780867303152586040758371441046218285901128803376015420862124168030880198870964905706895748566165701072934970104052924303195195236289209403284699320535629863932639471175887144586049554896308209956761857684790016042364385757987656143833148211984055027322533859065750546787704139659047029773785933197662080577771147655235763401320339030915955320381136529652081529257246828939441883974232130867120045650087685072632149462899686369158545154814170194664978158112712272893531615744338418547633726746846594102456349312042007432748336977653617467458539034600735017879022401314415754500526483251031873107910920978370621371035103548701621682878909201485028258697812500025093922000757370074136497715582731977677103102317431297668110719766640871235004985107888743284047979112890441544175704028126568317598178997898613253034595447248419062052406693737327412890335034996418995915414036971927389919728780203941773992062832586558271167250783591288426347264182802799470166660709876622693311101925760871444824177390239253008581422382461576090829439024309213640376639426524873711941506262747344824152753658041543942287148101009355506784496944195153232971736687770062811675088348077638445552910429093132722559376532350611716692999358285324707036286641936886703916335682018930085455159720524162253410083292377014609024898303880850021491059808800767943653920389213959054737370645191677341874963554342912988818476947314234819190139692284562064634300586281819263148179017092544017165788750954395393979609778097982088870105713145114359704450277452635685598122645346874024124916550484251485303528319428479828041341212147403731456165008711190485138969489921649409628947538028766476256423157892469987859159346390992091445960129250195673554776715353369201756169584821785624021360705705409050523146465917913994134949131356878752088063800675966798734277979620565684931088945907483735466335817772413322421402253217939140605044201345783024658649194191461952487634325525773691338707883149399749297193524021378301479664579968861266896105188079794918734014638945130214421739445918189103106110339601428611476936106568435310216132689416278238698025168095696930018956248022352510213696891275137324260077584646121201797484917139718010605497276476628167998792669404355407381012418232733946939357228153909077356334088658473003986919910248210453069085526622425794008018845973528897265594258846414086729004332998065369343971391549204744693567972911009829480316737586611083376312158422819038247008292667075995171869260676872237279362235327561975607138601523225454740225088439990418322354540495112271204866999566314503899524878103134985594323336612134428276209882171361681902159624280229496926898403037900491074483230672702477316382076421744396282862269011068045154599053183648294938687929253305654756815960381188967495906140185884365262266574199986707345833103369864835557269854328248257882564451403223086118107846605977201526495321266966509617497363578983999002724180382130953623805460152146938311919085564052382460983485348499105966457290360064055207432434838319497175636664653401357556908031621466247195328084093514791036347193136655122052761405849070875045370383187620257054243758393000917142505072751594686658740954786548478721382804943127297933660951494675791577934060724089810722745725882108173003443610742148518215797593173182593630060751372430282873858102752461220665417836177770024784522720477955659274270924235723678483589007911510498542747472820117646635203212503844618321600229495289955032771742248573716959973695373284066164487237026794023383633015178034258556677341668788486058990045426517300490488744725986986607102238655879246175348536856423904524797892908992757573687909614251086419485915198593594583888137400466545726473975334608327440466535932328930397070712984437902330645577846168955904766738801447077515272015011727569465410914004476177096561704367869908850827181358493832753679533794746448140019278066127563965684086840939007698486589210916730054937970329937414899604173471175224869209616897505586642058848426884637595843966895200999318465783639491358428557041428114447693509364534264681168692536383020376336768115927887781467230189733230172066095759311429022352288276147917127640833700965903856325458743767541873776866717861400143969998344696351965338338106555138952502498854573383170584237006475863128476132770658670562024869175413756791198414083944535531054770116760183348003233002241542822275961327465005897013001628289879066237586987191895508826401353625885749035663345424692304954184238588848136673883148719598216029308535779189207724473372335135419197260443931198542606633033321879625614204975479529905025625494262315084293453915763469044451179541711649623096102153762928884484007261668901323029699257843000864513527658108445002029153853032656248396041769155127999829012745904613349088215844253035256361446934247307177518727749325075398338742146738286666527056304084218787823216716086015728884281888038776281636729468743256270204110189726222279535795932994356737534456330995500581998680175523499006181412318904788265750487927859784967782418528965633946967597987337211754624695528844881893760762866245637205434251791605346493450257329132529415187148619212752955928050582621339274343449520123964184731707778639016079814280353919215380053053746494186670278565045432433483971961817056066983496283255157928134563830226420682793807563937159916952700138587020281891702079487367127437299010708798008645518839107658040876638805657854306398984283185595503715033669414714124862710294756304722983265164483994135878381789255797118290048631603406420335417946260525728503588612253270639799305000456509351183504411611115287471104310126426509953439313822080233306650665173774037364732320571906555448542951308275238364791106476287222028501388575910558445510478992101837106335157971205810396763696393857248471790393504902012849474112430753925870148855140038013759409633565461383501062240146264989292130141796543157080711809246288612767887124813019562032974773836206640401417708266187659091896760801131130669857612671339816036860045819126463687042322029797333931636568133535551311142054301753805241050327274179746127573750291005840304205954039175965465398649531666402724106930900063909442712567147476826623435100227839386764601920119676221400872511191575705542517718305527526738306598791698612658324493319597122762484160411153719153780840909218389763211178480864638930549022722896264378706740421784481745666536774753667799201637086722660459832985175302643603946530245900413109138022153969853300247006368536084650221233506828733386351434495528035237281097226529852081085392630183267638965848729853972037080314872763914592844810372543177345274377019814602807402989381537360201794795433837480423525400531201402780384990284534176461266113733290029822177318841560080905515137756076271087908542349560258571718099778875091089198062054209241579022318370664374651902663756101725887196854232457639386706936162928496485306691055865009332401015488239939853067591374595579814477285110594508289351205836875655483398056955884211026051048251606339169919573178466553926995431187436937848840755844594758635630682100766800589545210037836613958747920389974496580172567254693500652011813321085953683199418713510770394981611644720456759136096812304608924032087588075641349797124266986394569137624348070977532316004593373532318646869387739429967095858117359794829012854316422715443999735215867570047881368721057453271150822165882272049895427023420850118164331252473634924099337148818999010204660835088460137432231861064212804177927220985131097843145334398121338513626179573757173356570571615548901742094709413385195245684896879728977946363375879703215050449050362258508742679665213613499317155234628954095455827813055665671184469135651877532923583985285029347883067950526126259914037639489561489006813880703161565597399961906130602110300426817861242431776597327902028702626939866374421208664994514915305252150386947991157496244392194653249293997864383320360798675655986983480687105949302134833290674423960539416275937727684318757698203370637506259490819192704593596432583473258800442819575134552010074250364360147048629876486349528383023473430080559963809995131982738031116799019803775459842429670129601863494100893806037899122401644366885961928386400874429472582810616100276982388494092454371379562459229507808422493267129837426185613398666009470949326217652852971577108917949331782295485250709185703787021459662934123506591575662028825171029212086399978919671887854153477558746994859962478442876847487380047570793230106422392908240858435540684343344559843595332254800086585929776043290790616725473379468929799051962091767549169386882171311100302089226130273984312200774933119822509810619846432503849676477346648266411045280496692805536429396711689215152820961267407556425116452836246001271381007730434141416233969914566137852909517110388780253127442852428266297583830991591172364625358195142137179714928107387209515652387715601091765294442266303819280897307959168751691023053001121413912113923208452829768995418213237958526394666469431799796300968959249189529325965125554009265382519680421149639851374574266809628606013263622660560565139208043633673730102218101539152124594340127152955977770330388543953198586450919152134361473583408767039456509629926588688847758333697554230367451043095062247641011867210470507688484063363641803108463375522296781297222525155460739034953974728738764749514167496329204268308932139780121249236586102471507355854681907753211110621362028007800335596346845204190620293543544096971948684710035105165062704998122571109108683975502922685877150158496247223063329517794060540143456562840753002049758354425739394655644531120702403235812790284937280598295819746896263410062827019561484862943156183106485045174577757480693961092452716942460503510464176217371492850754147635261116180337075192122309925544755315008709837967280467221647931170883658010376795110791890917985042038800540640298071356426583380824126411220389770737423258066780853758559521022504850065631305113208065937417032908027188158480899600741328139362183532146799928797704462948642706189824159882869908502921280778561244284319010053093990486287219772855384459452300490924317825825162144005009357026847696325210415190179843002521116472864038641482253176648299300887286090328683020118541812563101449623429785347777340338752544691231880619781423610226327696986284515445515320770437966038116023621310139139182327541821754959697626889507396454638204676460248993036773740653912838606993299941944209261452983593459260452315109885778575340838768327185165967315812979872441452347708587859393888906331944281037309857981031894382165300063117688315536161886530662743069219819827907907022627292797510332498937020672023417035340397569010819120883093764998553406324028881031383303712926064363428824475794635048600575926051582463469238135579966767186209021024851435211000472068440923711749006683952894549912705592711923927950451118483156573580859801265909563292840286663576104608450746763673724556537295717620805363703621303607544384568057231822071270589058631484863742990185817153981228924622071084104774354900675306642998487979324603565585298741184100228233373163171729308889906704211869773936009110160972740069903198476693767047897242145701133811516931415215811946252880372852899037337048839314750150399666115315422794499560110235519775270579358048699812681659209204255616475681811724977182994686689913321174107057869038675679874061716710453357445399903959228298090795236604210948949526764268741514399922043107495437439489614649476786056256025339229448594408533425046351976018671971862580739903391949315763047082950349764114747922892872529013406410469407215072409666921136894528610409261435380295837183656242163456883871885826812782511766965388171049331266890061281989382770496827079726495879983457831312597023354044175882676160489174380435517767134138036776873508972855747598814400462892511897042650568257138918457026161489777192252066451944945732810689482094900584046216841665560141257695880021635306968158193017205576828093673060880091476046891159980375774937882117510505054550963779225415186424926999952396417746360564463702267761849743848466658020587843953116731101045077708327345311005773058685985557980366371012785541307912388302284667641429168156423130495618542351371013719742895977580146398175661503274982029866854544130394486994527698161955507204408059734696117380387724654698483358571293912539841962949100920291080232774054794025169123128179069766906385300615277512489070106681076171091540946657739705475344868861704360166773925837130863749748726547304331235291967911801820394923946442205001279307919815615459280161285398409427242428355369636968822465681997271088480271079369025049908412815292024080335967945516936574483823205413541969628875747089777465821563650169284771584922734315924233127297908197740448809060059779454236776183935154031169293879511945239735732163971658878009308207509035592461812133787419546617083616997466890495221794461857112555050755936186923851859251089739121863617190519564229387974256719345764619437943048786798304433949897146299710013615290250134930508132122677123434789782372319294875915645676858417965208920412790676025418709214631787912011414112180134003691312819060845937928387012722030767945822027886301819990349642620256944122653779225415182319681957337253075514100519194547989964833412715728462297122305378250620177296545412488058549392368563725617420980653405542151848706257651670263184197400760195402468146591420089872740305396321649615716870660761669334059446178294369651649276677470138197738224941112638443035544149805274661797514680805095050711251851105361801103757628644573406606054828128822286091909856170652530845966798077714670272679603740290355809220396924117473267470798699592257942763959661467796187164047389159299367606313769715359136195083033734946216092189463622284067630730262753865751146381349349913883915066781357502532276290182337697321431060794420014141503508842815076455961042536960503947229728977115928377333328616245872200356529077392771262900458284212617821802979774540597613507562741684747180250532158427833470941513363407866669175896547803513759979547432541159789732033535269575785928686910155566162664964112889920109205905510780835915133766976947699322380472946134024999892063133212452729851086078936715215551445629709120646223008170978892326424379886750000672316479581117500538540283140682138559319049948500186081603380878318940894370649794446873577701932806826086808205057726458331485725298007092555621184307764724317453008334630740367174979662625976260580834454241252202488530855422339981153933778240829866647230942477414643897680021133041561399578884183464704386871720127315993878527559793230504692256999998584069103016460333098378818918053782853044648110124707124117342019828623688696851304437274382354358645156814340493943355146631974015852466489070862721996920770531530410280892085122279850038509687519768697812009251108937631219920250003185216262140287834703788761113147261952962667322118675875356597327024567069937474197548684996933871795565996671936841122506986858622039027134658407185800649855293280425523005768973079266281634067005048174886667588106146921908015766772565613202335032931209385510534764228019637859299619619868108858409221376993757088242835756112331891286718064888659365547045567017353310449295578525291392814797580364167896842407242418164753996173851747118113907645085229793934555122184723840482832131112978470093799537061141066553176773184692420652515603381880645752994030181578318115139808619571143027397200042645507740292656934819720968188974621545074975780689013952507792980772334130448613060407781368321323618550882790394343322072303579050485341274047009294432990338476861124909219965092240068795245680245151908214891262495834499106811943949958931805374403290581420643317349276480282908859123098883708916512014872656129443336172636829250621857473322657281063224550156370900587108091752224764495168509360966138043006189821479274908559087347355263263318139105770782039787742103843457961236968790379216539896612705890693254538263078026457734338240827860184755700270632268779319549641093893190270573737753549859348223774249373793404648217174942560717538800787139614337293463562476819374725742384032680857367110999379359385106871305017092045246040170237075888577700693398537609551345673764629166230297607201874377197911652528052908602301178282589324033758939083538472049219057126738166540949531850912621622813742171188707253258237657202152281633046547265059654934759180852054644079614954476668139972115649477558574511394285119644516263521521918042609459319966548465111941812861343109744769704882673945027971155884676695987831224107749561990721849342246597550812181576930767488113336435992687409850303847279352098880021297188916545628052383805046666746210217733982334005140574736396753978756607258256499208780685689347532780883931687033686244904674864096459377523206952022753139238640799042654560193779295051505023058379333871732024911418619265728048417523942808637536365984034718299731673733035804909423740546383650621931074540768013031007606321240782563885837104909299390027276103565726627417701533558086212990882735820626155712220198869982262684821789616170468358568036377325924982420059466531240165776733348811770683997963533532312549033223882253485296347135340345027694547221229157130322941033541751168272480259513829454892311700511739049710848291928994922663101175494838110333818883781503174689919012214131839294554795355970783094733615687501177390576041097133737371367724171855192154353170205567176644858876106919504339671322242069535086253397630309800412841828497481770994744918023225939136694311315060546198627624448647994186184569300102022560600861198711446255451621839741479291640177720976656460613289694927935547224790822544354186873006064514241140049000803676908523912120756513887076190043555983971837546571656821622926594160859691184790719776028433380896247650942559325741277817153728155695622943590201056623868769417415756999325490329808970202268238918938219085149901441811763239785819686956257666125523271366608439557744651978663786583154689369503854776966027461589671393363700520819645940925483122066427490552009764774088397661719935748623410427048524190504917599282607349757147966627147412737614251220788330943031337553609854712379306463349840753019350361547978338891463765410189302595061835403289712625919857134151739079293416376014546491904802943863544937526640685086297156853097123052205155845387629975571063758010219419027402307548734970548142293150907131058495005771273943060418229500187656530578673007457416109442246911415303399858066395349682373225811569649510584953196596312910933593667392564940204491609185119734856352833561114707308954845013941966109059086127784324825680006431356224704968247733000467576457681826587941611736584945073441037588066927462556061854773382662974370952980636806273054588910357277389091922051341140614868580497034224430769339294480015193820637363287877172668942224960559081360166304546181256939448451448677227208317381445818064996067953909558837449247172028510749602809266676586117102048259189715258245604457696987546413199013325509470403081093421606376070488208159961369793623040173090134852368268699742667946481294617960498148437830092281350709255527175255099553012980219404001279604272831613424563202362832438854547472336624784474268599262813963295978068987750850196445605931653069462167555477971926535214853578223773226222384335459297974439620721250790901243734496091122835490898606985872613192704547343614226372795100820150712667791953013816650959203598931849906031675543442362852676541807707795695931694855903028573710751508603355636929951217239150441200335406796449782264223510607610441670427704116150453476615541679063376122452527846952030557446957498889874428102368511991371957753489538509100194679951125453749171311410178139611357005254451055422522522217650311607654302120670291624191092178546426718966432906088249804745349987453713188256376680828977812155667885150102052602458508516221120040956301638297502282009854525861435698819285791533289928464943103740757351105046371280392393441495504442940060852802723132840480026197269380979805888571253792910981788789713668834841493082810345420287035755721834668001317773044314836413927831660805795075230826141508409141702116238494674441534742767499670469309258087938590379992693361257985253560620693379025467945275364042416157483284324479943158712882794047406336358254385859789406272521875371507402313151006784775915063898051567532917200722830358678322203412696409201721785032514577455614867508126466496515444729822709600558336681107399618225032359920995962137306645060038417210133505900927936652406983449410385538017928725094149110086752912827476061247307208938617356094910671623881015982511724095644583178352494869157803951294741789481588052007999534349890008216668925046719199291033922346805432354376694873405684454832491191721469983819931608952210968285585529426801522828355135003182039235529424029148893439127530562460983147334865796745017648700849858364723914385573849981247112941426816776776363242711169808301086600665588948619404237074044021615384222700915725270544048691301688840549385820845922668843784454672842726823984442992267745846554224038078324313275880175622282147300389763454840472093457424845289268034441620779757416951087864872926154377706871486179298244362183233823577089816910820680471237234243192070690078952466957886716158194355593861985677862883977168747725389090222380834371618241173235523492269080300465531759159136979811467864764631694050663236710101271906315975201525725405706877432119126402591084324719114524745107154668069625951355893768475357871593556669699883487332772803920447387492259117001674571241293099834859557477014046867193127592535929074563805235008394888115215975040082609360506938551893473972469343081731114267576494828381046605469992885628192358259693834217000195747757368061539766902443660622960126876479234972860995661482550709836039695140749722623210655452939203847074018644812096831985076090047687272129836892266776341841146897973978054798540118192627836087105771367178028062322960633732433954991939249178734107977194024993436251426619165246413085262390721012078640469101415284378847496630664810651999296353684060032557152747195013454533525624724890047122104236345081198451422924048788879875922504511723566103094207291897519145191879269885547705450698173549768846910225650772802801202947174174717340028925017630856795223969477721582352686556329606096209492324317267002833292963299634987760974318430824209827272936235414232535845640309544341061757145299206054198837089861933902950392226263207638507163191150890091753478658305286662175342269113734749260712884104570574118407520798987671394027002926186299578464364819828244075278663519647777229774754818486612777810092002404193076798855073166607147975146344811840092126875305329579083618178054133103619863266874910202201844306235066565076764758081320710221567810426555436930323111240131678051819729267186101308475573008584259868368148279321342727719220491819736477571465843288420475782606018595317568739633020240259391812656517881900326924368058069075932322154531844872116557862978238179962495538706657157974973587039994390047137082322666501934315235396588973717453845544519851039870942996309463764175137681283228183033309246365449685774315277081545452092803639257673987856914033971243111212174415767854913263015501299890104671973776019646534206573713647257582241550960854111269004313581233977789677588271121421834840581720584258010582577550006176781311350420476213475654482126663789901996221431453978167552439782219566306669301782452169707264920120526495405236486586424032404967812198818924660663119015254439711951401631167228280236096428256994315464905531474472997174185105219149911951656662942108034429183567744844110836971992749570768648758926997744190073556921456136190913751827356717179017991357095803429279808760173726209764328572735271367637234804434685897442867230747515099130489847975226695468776442243792730436969472367929770149660237421171610523684532292471513221798631958447343023587371594174537570635831166682139190721277429732170732398852437679534596663492174231759940252793961100824887853427401639173397243102621889391243608544494960242016920252686421103151736116257570564535760768394651575445190308761600674538939728500081816657733353386972339736343262148507456638602942557414438887894059198336948867236317297633375987681255941212516339004713672250088118600339185886914364887671502284778273386839535160987806944996233234637729937553738729392357067470257968294398942508898975179430617385276566140906446643699786907312666269951244297076137043368168191223100357613305001472815002120193920822744330214066101274722427261045666951498008962191755250363012719841418731278776289605051921098078002140246926868498219749900882152510842250058423144775148514045302516403435334021635130541399163025118474237280155636920584952192025421652495006746689228533093044434224670743408885311348177907876215129378749260438413243056554670623781157054525279334517978566198443605950591784781574873539090687228185803002689846735743470923780956964885175185587170069075075113854553237973193714858718353883935753419071885302361306331793726279679418529302420028744053304611568646303568076457233014842826359590939302454190385492820864978973333817619759039244725167346826079967033870521413909842368476282109203958203788948974703820887716083848756068296898285895949394820358298717771715257099597435105366517687692068303738834449644251969103133006009535738682466579501040116362192525172628305174488667988986425229126470417241293354479594840739515149650772820371104149206688100743680548561048775279140625821054331106793615823302637591835359872684943930093002906852500002705873365839577121145450473007237544635241735119505501656518624065799268575718672459234398040500418508603211523456560318445958263913698778637113363235585423012286466728324211730806767547797715283841158683730075678035875387276264393550000317394953021112724482875962314439624954817022434417297804780506731931008384201628458956711020986638445055841014177237529974674854410691355501691637524148939181711807155300215771507805803438744262338112310630257155160054391703627971427266778782645056785165009146024706874819060232767627381120848876798383278020641171304303659064764274238583885220929766159790808179058665389334462075554550713438294147201379910189746608431043675185429318973234036840233152141248673388763725760359450457390714764740351831629398788022408377214484491728084154808973533701516880455324831525137656451698014115961442458035641098954278551546467536761481058156097114592312239313780011352793586005199452341791936296926066400091407454189376701237416408375854963384805702770072752794882487948062185738660989002127149616915451786866001538824290769767096529727193643826896286535679879676243577201485292485158724311490786060272732822918331191232529853882124893452547528488344118485955161664577859799304259446762177459938662244544938463929401547167820234828023879194174800155317664094135994861157893470808498302372854417957194301797321248625590196129339146705289426536572498217848695896222266581241056106107450102826177893525368371150474578233187759242649389949741374646822580587547750761299472137933254533536148581841632295753265682251731423055969866639882069404254130590799307521351041887195525303247671246874618036743663322764701170174790254961354382678817271655186500104007685579454172907874413321289978832673069604287695263197192765944682285068531836597197321338359456177953022907750540105977662623295305221205506975993983170100923872592302113360425897243573059515998517743357696787363160070276742173117328085165526847284257840387407862751843623507773596346377680546495883885784428228628631101798978782963360119325085034842196083208621535987356714743841237306281716366655086586025907263543434071002661427049629561178735415140401796652799790327922683148748445025304254296844506421129267467279026702184922278966998037615693809239394707192489731089273538981855086667654360732167340563026712111063758524875919956754749336716882876049166111894799432121418485326089327945823477220983147986955297661412873047707596022727620953427715947710118114800795409911302463758185696995605507337917941384864595896651401163895677130715835541007470998384175798356371594221904491515438875855186225000580666606092947865240644183873103432810569833703370624729563591516420588198402691358747397516473495625982365613682595197802380109208488893635947570425034989472817616957958003257490873821127292799926747360922494895998739304240629208904986321681932922044785081050133007152499152506973097434733056139007648994896867956986844350129852756412705137123117614222097239776193674972851791977401179552410169827825994345236783014976138146793214493569729500344196787710276465680457268811336294685295061828595628887926885557489484391023971407122093775059121529052374422116830678535482142044071956499287485275476020360405830137087388853223559467966308321575126650923088215191573371960790345751982100323455822276474419088562398247142259597919143170385390178825209693301962704643739464162459757914984982376414557735269793271459200453331986738596701556357515787991147098475475892097883127199815665164649422966902875497829955422617113322872152551662446596404643734986990970540624249627626691153278491862592742651658978858577030617244589441846120785153277845258442060773712577071256173181959961476232922941259039642596245898461196695898589667359755427477359947563773466545595558622927587310542757371007962364586448894451412667668171020802248632593793521928925301906002069324525015781851379586693587434066427123855809741353591643832273789425286220346648512631258524722588249757781036789730141206502572802857610927461056162054129672536605226540437147416799568529067839056579456511453441293877124583104394369706791559990511241727544058595913122034323104768528767464701832194848700919672981152524003406292508153452379537013697064234925235612506771270230064883869526805803891779623581398782784119305628692408815638768657237956943894603596919414258632391561153030112407857244539219442385343228308876724335623274857584972926350525310469481771275226913493807761827800409499044890193862783671306706957508375456994896851327354912316887087258629171026347454327163301911960822505037593419379107316403576571845853826001872240220156256416620407172908581498099562704539567098490456278512824696132058276296371692075875616968735881775343856032582939981820911514014340883318083299756318797224564024326470962362653691238082516094761386461963443475960398953011583180415032188193006405236831698050310239017238610424528979781154063952878999405180266709991545272118022016913634320343669818398800975818665982694598360733167629665753851701009859513503000104153405652576249357619505338202156881233041930564923239054443498543286579469678566042422304118686520818383383341333015869579203528251440469448335783622953960941213284248261415579614791574815224325618367759075799689856964844820126356108114444686819261601287129448432872884226730247377492856990091896676139068159357367570214816164130599505599481883122263005682182718278470574197769554353586602485816380047193927344104928505741564933088112160534113712934050178726267070580980606605980616349234104002967121530698565208667725505011639398933072499925733456221833582680237167621767718613122526095049744717162936726682537780535531811967354676861363812458521172005364345092628919365515944927056050882006361023868992907745019709711881921787911211131515760732688929605199779392118793396120576149795960898702296602222262872511231079354601830571418183766017013760951751025692813397873311245485971469881922044096907123692397577135027062687149119522407790069994575066723831210637285784446533851512140746971199056180895679515204834211150402703790004926752024806417600170678902092623173547371284461995893931736924171542185382757347948430874260558229280235148757994735508039905581174591467408193965248396258406700695731890787257918789538347540130412829594862674269123913822765783705100394713215355301793247847842639350181124996959158093937821625595330417762045597223990567201222432161529087822525356721998794581402089248637500078055030041219356344533165173198908874293435507101419381603020421717668347254994373109278786961942670623626185051471207358984143543339135883318289533723230916955998528429473036008508619389273627684098593268199901385041293391971947522411009089637870076370851824528569055667950105623435604249633408714614569034065100867485503161073425179913938497936109289315023516216426759873257139316656736680077814262783228881123197343323314726089472691797271739332697617136322543368379955580766286000922400287932311029721090425756819881260718391072964716325630463800926580873408739651429633448449824838912016200373179718272215621693924201926230670368746561675724747643503397274924632409351691143929956229414042710221720357157555808952516532816504895336017536166690572938292388022152338878501668614674845429154504743178250770508870160820982141514020173724587917795421337649462596185970819125751830849496024710341485373564093645969191417566911152836467399188254558198942396793363996864448710724566932714867896121285103088459088752321157772753278657020627382157919730661971010598482482631748184920864456416726491003313902583467318693568346283748975940181301570183672040292873406470753016236932925780590757034370714384049045115900901152042055647889167287813190978014185949370686121008960073832992466275360162531501306818937086996547180273661937624238329475845162771607745146006501166436994641649150372106756089054311810928735770486673812045363933434718601563777301839165791010421914744721803659165038406890853946687994128369593924563122549808873665673034900431079588817108377071506510448781549048143033609525168176757505254096944973854650454996904164157396398303227004678895093760842245193280678614830642201104671262821606098987080237409953177134946779034129417257381970861776314138890995910713259834968146026184932803578439596470461258614546947419286455660430584709971713721431764292364285220475597392717213050053224837028964830245261096540270204010021934506721849495395433818427654159923531824184316780107672571846311115189569794720458216361398028032748603143947145917705521470246479318529215800152701433420686171345736613167102590917776487587329315152169380791348517193340805229082279930235708945708414739005730554911814635125998480134645110722863653580590618264135866292300919673842213404100735955684704969294528809653780209594736133408076807222458868128082156473811434731558837978250471951338408958882895656115498042197486647539864906450556441779351425794761468639667813304477821431445068600812778386541383745991324288916879620720977534128155862109599900039325619981652452815688788779321722225690158759966444519248788858875877425178352978798247430149350098563011765480388618254359018753580650315167697301384922672053815405972565929688501028018579521371139690510170378809743294757120960408212054137807510226890462187170618042468862728931374023704406997376961010474387493876249647674245930871103961760982284326807350144275488185965730721092634671772005691820220945430190444642957128747321422595776781724018902711990257393132291102649912037637074074665138195201927593842639835135553185677610833495737357013966448519080178705432968889927839225500995383208875228957321658963879736813952172778629820497919037881822390389949375634779850057368080987033028575586373159545980378231212405803079269399291178727725065153700503261941627019912985548390296417881352796049272387483046900456727015849543994307982033458692039320206173618046027821346160426137815706361844503004968144902507267443450430987593658075921922005611209824892663161074208739167726014233066703612864848854035357567263800057874470102130480443646110096930933007963926007591688356181968324851016885989060047271648214588551643724314864848495616264517639953828865452947480797154680314591861970318621921269945201017825326892449273835072766667811527739830580462990158198239054988392039827286486287860533346313152099937922814228083684638949098511640344595454648764853352920975020447755326769521005647974743573318019719786223560057778292263178406006543859309700700845425981797571658153696670213980833908594462531149292803243347772510017280643311047046404029464247811937572641417888635321212477542518821107507564112976169494258870841522240200252053085097663866235222508276802048878680337204581542628607718432970144618945182518992242142188286982589103939318637891867122676919282420771818170769418677007326378051040168732190342027752937383488157284028188897135152692832617301442767297365879423165552261371965031520048030502687988079276413086462649551060280992525132766267774641104900499583233880893723696012546974842161612877009977207283878755623324850815449948523065990574095849286425584215679423974154317501721739645931271749091373745484506898936515464372223097163254308636131674522221970557428590190745341299231771564413627302519821956108488008317753094322459496766671357080075648070351740627651062953158642379960509309041401871375370694820306798264002594863415259378665041168965059710321713478629435993619329946433524256219833520743083533850694658027230010238305986261402428314436532870101410876348745916148487262313520058369810274853014514333446110878244324289437052498856848301152890805551203356815563720560218548685343774123179753492484295633550648562599172120141135680533138052824259851413338988653732669120543551653644772265228945766057299360291250082204179245489049504743951452793647255233968909810572096597493537158713543636203317313437073887712962548960923617445149680505024706346705857851940229633282930543255425674891926412413852650381210834196408208776648440732569170234316868104096086777464526953444813938462123870765923242289970563969639392033873977319744532200619949365518338356453615994088124990312694019110430162688036624663714858188189105617497864089657413317357787872755164084201701432616655663402720472726485606975607785679956694918577302245548295782894371032074927237416840977213731152012883556478886415833794156563241275817513182233844113945258918664924570612322100056471338032783345286420910988413771387896978135597340078459059650795724795864949767016966747517397132110017127906551111379224622208131688533802792084609796457154038084469943487094730605312715733325649994518217153224137297917241491713839194403545757461647808988474491692439544281811395339465569022214883358168386502049820947015681293018728671574159265727111405419549161856635760723842114449174633070769250613842141501947973181197756195544506290496051347064811687605368249595957504673995075082947787631792673463880082475575656890204471896064872083567548033464162281597327525821545661407140883961186985006958569571963610966643014888411207357266102423163741530419408308616652337442563951047847351038587793121621266402364445309589307506506884378771104978352625529377789495487882743237132859410277867654316860503638534996195052949347081930746627161883940550120936592103202135598236190043194166578652035943622460379554675261327864486819133088343118359945983697364376796561131933413944377567946452575822028769849308726969267537988668131366119651345989765445242881608736179359741391121456266677028786381239345216712980170108760394719277525725847432407014017739647656673765198794059821996400516929580668296736274939925350225932881187924769332989304187751599343848785281274650977409720727250996430777791936899234199676667987651495661160410520681419704793218528730479918008127713325928370144673306797983117880012184234527795378226342958735807274090059436667589884651994200628975165094024895902344762338770045919609020334671319147741326833279965201337870880087534756057683388918471766789940671911460766587297351694097146601970582261049029214586671118825220628860737207467936034140996641940209037734372221519163347834506550919846918442362098395780952897470509156981087901907780229401130825156780074837618279061544985179452320534525120317445123110323368787513993660440674824996167850408676600725093342184397477916110823769840612049712859806597828311177146101440425251813752216469067062767301148625747720608128630273476296630885819575771674683865946745251466171446068257764673848131586944498406166389889330605822019351538174513153075272603786677891684101000723957219885181799800806976523349457972241798239313956167173979242491772622482988808889218027657278566471776278539757953017182758741831037921209899990280892402650057693540847095142793755250484003872574429752977735988958478712412154595317148186810918524286368880799714948400080685197449328333819035770315908420618288285459655895728758222583871519313982965049889584689612892607218768870737190512279218918837808733542494192373636568037718874535118630260522780665631668734326611706664552136931787200567675350604077546745662037513453875869387900244224486163909007585290576224383198011539416996916470832739979857670456698888746208502321207538610951494902265507004901557217483397917671618333512672201223946285430484332080566956117549965578540891982944927475418015710062476350506778486039034839884588814914495678335834906981809512555836334666877323853074438296274703460509875985192265070842684273380071941234591901431515547286576285419357552848597086089727398870997801917818556053468112951776446802687405306495997815489847293241816191682613270921722176086288514895470702183396192004962812695703054125109261562914657017882078082877283475095229083401562347011028828114028935208678991937832038919608237123091153392848316537439606267982080229091237045317113444259286466067370785660736671340523044253668263252472923112654683246614501250767475172285391665756303824951012620943556680302238080518341892763159696973300121728243329830860047136466626356120353289193906458515155241459877052399553665670295059496426217630754438146509649091891415945649909042189767276253562036673514272252159636433519002181334788329225867331413645642851592064549010640726278355715927142237473697506146667608963808563045959931797993819556089144563223804985732825520439696570208920267205854054679198451330640200241824555820266725407010104701033211578601091973272304825753748593336679480291679847886221322478670831123676351255890124476593178790898423123463130684739849127479927188094886324349582732195830132587850300722795795428574909312069442505961001121407767895162507742544674600625084570363904772552935650066446182439426436778345184504759216842701221381956738805778919483765905021384476472773950902657050227575208878400375405492271202215209560188294871131030495803590787684823457961607513105418900808930422459616489634442961415725212697175711112149743680074126240676304779107502047493262964523039601778483026945767258377852383193978054332771553378078117016464871912618192770639042782344437591890333231739521777807124813664347790372862150815838791470267358502476462772344693852320933370179518261871382704851291359085818188207618953991620533417659062836558653818908257871996630441583821127720179926417037160407930478636735880248729563268179643968743264520291768986134255235872925387498474984758458106884937400537916098143079968540017510391990949257163609671214441931237068992427237007019319226552561078970381206075913610969249251056130295325869476627297356286716103226767926510546517279825203269787783977727893539906232809095519188359323177176816088687122115599590192473331604068986395021985355052328605056627058521000197713297739982571352598997844257685610973874261527440183138811527758223704569139243438157428083052019851542253490402927332527343285499264065438892578120347306899490894396343490035076237055421769354839269747492133717540928692474313575530144468386239610489579682672177433346647400038322742508576953706363815985690766340790278583153369585324844926368161717354029280222087350696622494159670624019668554985221984914088955486709484808474534413480780884726233486655767100322658301568375261086932388052904817065209970870879844024084770148657572246776243176137251123201772723347556702765812660687005946093100722861624762974455582121835393921784171550256525749006248227956550432102611859370802026554655156227350589904088354941759157469882786676106855697791740293833949344280767137854915034794379188168909103926692839917168519785475322707310804322425385492719243796874125453608987199995705533971950449349018135425343761453749321167901869157806143612310499897358509815162568422165495609363950125033487107828845627156026354312125701416177434709438658514478024412987103883114659662953381833675005484532389373311970340646099700124785385866647284764647449444061517395324343713585628283701405580366435097742323467932017782273594893253876149021605998658706859236180196308494279014189472247823082363671191116881831207385890412142425205408600175750824609743165474745667959150956869652823716709205393027595759584801410424280697368301408422580575562473819561375195876529686657433171535094240687226691486931389518696273811473553092642869576039612942675401294571369325167383561573192463123559382094731411313786071131278714001216096167756705377695883847802976306554898707699572756302227867245442466922885551339697162954832491044619439716613683230557062707303794361337256713419916802349437367222230182956036519029951901033590324633903053442307005581265551068338891673445862673438557451100254593116977796599218467272370666580404202708525866243994170051068405566433539627373679375358483682503279621752280259881653281243234267451615858740966582878356315141065627079114779891535478605453306292299271165583024116471069389283872674373034982675401838325054137448691385152175281896940850351926169605666858975839967433718065785731039245122476655909485653013586821880058950493887135594390233826527258023064347098694989143322653265868471561570409585485125401438141120611125049668214803710076792770865740186868665422989234199161945285211587244400087056277513066848103003594235542836211444624230408489767933029125503480281680013653452806649059107645617712284070847968701214878086712957889144351470995072795723021419066397883431631162701392489056183414397559209761216964109848368248280442570278669366061431085625805044055541678337569358800691348468301793039808188022561398642603667973237788840947697871028160044282413986022624860978510890128061254380847523800639464919042166790005963405378938579149097375070848135685400061002794031950199629817400166861868445265877963423848443794603024267950808505990210535617396041722865730595594297459222361853829883042033719427157125806168575669300522672998597500628157930887403915721940078250340264007898635753181515372189068332021880730036774517514732814830865225939513901568877995486114174888685679453038253586118912656944575355079523847382711563072920192555633287621752752913533247290239014442370480919449175593413359775720263522269186352876920424829709545550988060089514595546285488661915342942948731162739735685884621349055705715155497555151262169327987876107911443338089236895834922804822661566888074386289935820069941111503124825358306350291024742695733925563561944215052185059776893012175298092676205010906704147907429780844959589022609366098325852712995314743180203974747474005113611128686159276610498915585425744653953637670222683580336222528034556941073052113001554555573289640843589054874759164104189145218379283502265845762308495768496127144328288774984176232369232311214052991308322685527518028180062470526573078399432444442836276678020205464693409267662710194534449231022374325119533638124433732107312904075977755254051892458326122306721342726173505823480111395616502823198159921967244158876898848383218646551061646289223262910641526275545137525217148635387847813482983410559691205215894297120304544430430457877807986468593449607006978444818857901851429157015251086724366877186914743726485142099648779413785544527410276277848159595762720659727481037123216496223605295030517940257111089843361637398218308741495472244892020568701237902334161299463042039020410492317777023297461343944370715016217073811556522228998943862247137366401207380873438292340446209417284358137260806038672646808365643610780848845750237146235789426799845815066743222686054522954262233460686880291068245187199001183793250400500234898844202125434341912166686002548924249953429853455744094398046151574232018209715353866372176000727395540292134515941806281411393586266330773913592094997912969315998924198400374296798674990601376312610288388187774076644170169592797836126363566721673318353099665352408024623825514778137539677039951396814528710260529413793675693401237317669708311857678324200014683274617785484385346187745737236957703380768187661624407710471198112683280901839526913651434700019247922002265013842151941353354282925739290524505642543381667715924699784006656811077506872722778745687380685747502685889530458844316916868589081770933826373033526478903392039811652266851535098530444874263956655801479085781373878999664854388515555034864641896507496886709511522783369514317060520795790718116135934635690729920443224085820000988649461497186040799530629245684609765335129711361438988888877325544677230460248595185932909538453638595745796772348987000685036797951621029488431886795278957671488299181156767680085502894848837660566358770236663474885521653504856288400308804894971068319755075727332648850894735962181539350054950989679819615094366520838945688784894827894862785449408938432063237266020248843321814016163275723496792352951027636542157869833577323367932829478926782784678541432989833773220547571442888473296325812473464034952082463330145554904734128245260351138599880286293322194682049559391310638599267657264342332874453477209466172746552342696480342508618223358800151809539634578256082335202221421660931256261765530387161991217288028201883686556984341018691289321758890330443472474884328887775560957838574566081988024833944582828771694378498590830445033099600250868894748774588285026675294083993559964513748961858250384817599122133331691160969439422018895081101493110406787853826327337150205208783768907733174231251771723102143920001407859554181137951982805722839238265314350861657666624319809325469296982352136648465595268101142047809823935086577349196138227061717482741045516814195243450070459229513484108176025281374868728423167808595240903791793927111770130708673407838557253413876539387657553153615779179942732156644263277820096115316248209108809058690932103680356825121619018453925517667569750226056883245385808426427596905160412397775507542418379218275869506743418020759609226059600392930530044856715274336869363666759447753069683480030482383720170284065304491156326740917508573342712062465005144513732119369270786370414097609595329060079933600114939686584037365131438120844108490871128586741254810026271629145268576122636772205330787099931288902474488471657255053211275191667320040285951217586225870096641644972276794186447469693385832467764784279201333367506453137775229163064642439443507372924131485038087709620240540231861509684658510969745949908456585658748814205102191722637578172751114126621749161538378928141865027364044790803396588529253914033372449922884848060577194116311100080271976727280272290700270137824677363158522504299714832574758420819208549868943310742295409189902314718821567279872116202657177130244163985613815027583419156167416274845740307341467557313239009888483781889602205009729847152600108935047465376463930073440987165429259805282763814952798472859863474326841635607555702809630040329191107465673747587693243203365905671558090165738449282284821825028075511860105245436919148336905344003978930746516725067805363065063356718049178687402991612108584815401335659793544235677649316055965487774041927570854436182985060372897150488044995216711728353330297113928488929773961085488833226444311654657523659940072267647490714634268309768568194649260210474263207036524208368949988950153925383737408327366503087960392638041110781137935245103613620971791108877150040386641521060818696519026988389314694301587581587049086854175006550442047680362401465324441017916604949701213081357053762659430534538543893573461093027366822402706081447971142468851822058771342193250630324401176060782560094610057194336619868663875676808495629542497102632782218224352473755707990207029344483197783667827135065992307275088539324690483291043779663184388618862300148854365451701352461730905403144345777633102141470197764869154044862059869420915726818735462412468062940445619615284635448998683206375679997163114809861064779196071736315609275550436088064619356861672886754014783688650897580884005132330751214118996537932244315431102472164459656851694755587528109957818994717900276208598377806895802044919922041714965157722270315537287590405805231561123653024945417279302380805200357345218091895318223743982331950455382509040648721505049180135151331834735107789098264402888058176037893781443965272638086420235925909942476273527925276709552899472022615350875947582151698561923440778231839402784121101439240382968041468480350017963047440092512014474365804692140138802476309449744484708325425749001930683320549717534352061826551356688702177224448945275402870796740082476389151168190264392064863446238823073291680754622038330497044920106392535539576345412686315661433564916275609115595253337914311603807124086837309874049127564197309772203202260727136935557634017467529005107518680764647949978007975886867417943866844165545876922034134140104535214463689573740653684656762607140610066580978509583881803362197944865082410965281513508542505463348263947549941435787221164320313503491125693795940376381527182032978865009117732778512158824087663878353518641731318288745826675014613082265962509539865500260478146231101802250354411099146099743534200507521648474913166362021309184883927430001861266903687894779353969241423238849881955327434798914432126558519899009553519921948727388737154197049090496210933418505720388806365294815372831740972624762119224032349392976390120576649851667770815719815974535590340388985542391340751585121623347873624568093691292000343370951832985539419100063040207880369078350631377811070341051854152867946575621749407468667177286261098129385697681772370000056041771128461449382251275672210869386484767107695566695998787780052685329479798971763847416554440904336416118999294606576788020448552324148660108262653546575495238667778573077110251612406997651895826382417572713186605070123178573221492756388203197466981044641235527657511423898226833300252410402269313383859874842127626999476815616781528995046426983901507983194596589879047453882530823344050927509058254375449339380933774667455053147863265115242009883203015989950006095948245495932273947375161985945468472826009300618851688099862651780268910028162967309803827547565892290061468605559875871408580064532305632843924547852669983046184169111332388536331630042587230046322182355068631526862073140359072160490537397260501845220342681379609408547279351850986302019295634871674972751082675715852029838372801499965881734491694464038565811102088775912974151997102596857456129042610815878751263010080263288671956620600246802373131440032403567662309429214586712022062372115180162934297973401928878491847366223356961376776462041390819130063879709629320251285008194625415272969627243154977447158784122607492488059829295149568509624199814897382675971606445308448626110770055802764531675905475082975617377421013310426596778554670407729950391808779926913876983204472944472388058134004466286044554863236900571117206786775416913540135613819926830263539954945459320100017471093264964308315013502174679586837910553015792589890796696239148173515084344882654531769389766620779906202044538675638358122288314586771569047255670928238297833454141557586826580749828419177682604023682706147607554199740482491214959560746599159190839900853260446442995040133410222543616225230173736128299413855105961981496332653963886640859877814272528805604799455330173934002071827355193360857165125906072881362633490240654572594747018694463494956262501958174292537565996264272376052931347902662559665025894402315540609384243185814378485377499583701816134691757519725510106538090283591319232422811503893325986640325008736776684205384179173308055157585499815080541304936463938744881465902398505695262483452212825883039238861308719884496034725859866594155982017112977369724831428783970350231843948724625519866551886289430120481031280676417709698268246719381867562647331888583496938952976034002820732482112490357270078564690991633796060262572900003635991791342851432217632074513710609234268326903697465327640152535420936315716346052858075036936862453279861192889277728576299043050640076270494055594169437440537346119548228475526160598915151527792030451456853504986861725572873749377449305542244493821447190695399467426559922118570897079785689204675599303840947586006955260605460552696658795891009622927060171431933581721403014392418335374768368167555364337677221086529432262769706097634719957021195649192593960159514071057571621079340133352087816694756922721757472972521477693417757462193658437160722131233724851223142388594446921770722098046733085854889204257304200678860080751496602432384101038808913995426376231646147057690705575144453886819630834220754333757064403171732254148628498153602716065699109784767993867409389621309820209132225780797834178061535370554530788838904763103384294544529040752018318945633542683596834149747828973413478815160834738137109114382665603442144759771408193667864214009450738165842825059734418451076855542599295808260063559825151083531319499070209855134559828605970553221130687017352885843571137742132932905925744851595073411743940943263672758806904150347952803754883981109570220867506608277708951873190217045533885068194875094347919760782697105484089061540848553253470684219694809864998141919745255945127943653965384402256687926942065257148851175543453443147586087180248265728220409231064295023955331057921680036462914858431044258963542434134602298257453231837155363252995120967024011054848842522817057109130813119653053014625809892365755759743352756694141502600193849666752406600780857261301233263250000937166620995329616165403736870284113206262148716979963664740078917423274484895935258640990302706574360063911097610767078038410175286682240217713787249381333678667123449370844558249242522298050143798038308516321902943904938841129373143917634882909743489515973100213568863429013219550529338624687110437123655028310337560285178398015489998038935186634841078102873163693502060474685093250124240578775865070843297205317371123754108041282275973269014850541369430946866962986991942027257518317044516626110417292437755422832797658205355928604089288543696676445661806739403201401015094169421581615119132672057858197229582137953287717433824264620805291726185061932240196761996270971517568742939302800841591186803490352208080284643615093381286965970796491039147643656982049022004523666719978618977001353499708201544047161288936783611052013811596204349424890801682892936127484271119682101196440686300711591776164520197683382060486234910625571255602372007345302001171759430639651427278031601139057029246730850434405373185220245925069168653346720302512988513490749961637153796093371369480113834578703267455594904607738699688710718664123958074140598642506654939507133734249817898806294176751924382742503661044395052973936680250405100168657961252200904021753399278539410342672459433919076866660332443745674582255648551543764453446303039961703605651432915194831418874736757595112635931972422150040213569604785002884723846078091333562213752653171468443780713568625573851128607812175533620751126733962584889640818367283893040033590062923197873050852702579154910242589426272388335031388885732576494111379759985336598056243744962672803988544853054904941138268714224847797526774286863671721782307284146165571693671685067242487864351916247041290973139311777637275880292442389523509891791357809977589413661668299649433084847858689347283803968499278871998905648423593663031554417244202346171899348758372323067837783935573441650426279112979921176196401594205414567511594510724117071254138640898095072859271155957098652997954840799917015516007930533665907797325296248119296456564440326216179449876673724046017462322057509467225146074837494270752991458272664610321114344416392742099634281944408566183017475629906382540305621665573641468898945735859239055979249279311928303997208180159076314137015882846870038453660030843753722934600641529958968976998940194056757245939376040597942863252608276385757621851019207791328566256783941958246492828836934478792067788101215472886544702986490030172215592901061876713856545812375103698501656321007815172171172690062463127418969467166973875371420504717181424496671369462525855411060184425040969700298157171104155060568223192088775943231343903085505962726672110132744589896011455988608600373944495579793076755066984334525327174907264124263137221469500885460098594028323880656309289895646213499454065153103064666276518987270745543823211575502315441962058514274533822095947247120168066203342040337293379170305585585614238843140361360995893301546534282799042642423242636641469838720993926781022903848413486649650689053828862970563981723766201342656911398843694273656509735720490326086158290854891221870779905261079231670521498720246828204632703463561682739189038693566475508461561333389140197592199272804981283534591968850247356046097601085739285174404119165996517881810254897053286648822450962591110460127429663878893577312554617869480782416486771932074898904351376935433250399290614542556711744540296094050251520819850230437091706160039793780830981331143879194760010235462197439873868145329085737439911107959240519113762348881618588151440795196800223295973052177716185908581954763485203814361965126216797734550538182294903133306998799354734202388669096174670710302992545701649987963773820636512844431797440804604761792078359493271627982762800126437443307871839951164466237429608802459288023362014226737783270053060600836912969193271914506882412260269878801243284915387657152715995776374658751035064458336615859104239654654790513930652427649154349986225879248458675548739409928264486107065230299132561739074676954981524986256480880148183397581896455757546744939762472427892936287618721430359835181910126784116730083777819614526782313296202849421852329876550383526982624606929170785152343299213135610203284827897970747681712186866250740690805089493108043062312343444912305336756674984052623856377849641533004283902475214033860959759422787745958512427583334631093107281381402464316933859387617746826022907092025624657967928226879545537475390079817275292835904903102378234171174748334356311203636764611166220612521218279275869259596774842818973087426049951412368465476430727709963320559533643515771177325058230250468713127997522889063899859388495566667959801991711770072403938800286763279314010357070861928390757804545073094924398528585520755720044365989197666690975043096655962203704633997787015024076446401299558424851770625126796127247890620701415269685395849497639847765117350521596255082026721919062443238143299567475969350407357422088642783346986640783001626444364509180629886990799574567233848111452096091535018811737522407421049094328985814534085424861480902755429662771183376701320243682820372114366586086135658192362689790480262800503180434185649387493495650014194781331066192690703199937618874011542960947761515015156174086522922653577484789178817353267439110646686487665958409234029943697794732098644396902473891652141360451058583147544725877563128202020815805128910640280850236378272176737983956160598241573873033619684541798397196021510632724351198045394861163108640459691995004857276705375375149695976372568104199257527368305283736544824515653245638968400137444876729447894381714309524467198864418028951899272198925981811273653343057326417030921843296700063445663129711623625139038457045932340300766785769101817729342446200163411979967937783789867953103309874779668446295891726433752837064633584631287913468174928335357010397429255270579184056085280451213586130776538915344626217772077139279091525125359093841327201046164798899490136634437461833013069788576071239685669794526890823900240062904841411851992833423702160542210153403893690645229310177849877133178624968384814300585775937428848090309448560719861335945785489844649310081492219485256472602085970040032747873242812890594282342095804538322599326675439406133066010428056108199552484417209603897650547602852188841045380273629594197458259759806686313812340798932483266747783153894009791555111545728897243238238158288920231629353401940760286268266832543211870184872925508900605704741957630362026451487130065320062529997130740323074403227567654282540590406496641430890131668605135823175089626150971931197934832149779711778267454213833005033927984483968350615566140125375481767509801489947262720201651182876338146905833189502811311873343167156101828890845483613622305960754779052712889062933039668898180480028136273358435575186452220680532613855908641438389667227408504340199170574306663586730450260394271445854015034604869750536964694244284778280737384468922060636367379727101629446116771511295328624831613061181917437981838177690041108888475238112673857223453510263158813551786525048468200148687479704482673940713866525789475314716141496506553591675503120592042060478443229232099920269001133203176150709111046696398924833183793487975993552081845147547402819948887349977721076019670605039722586177330144591672952041874662099317362804594468176521575093400621505797654380221236041130411922616433797969212123327171283865893019930473165054513600842340840989052620744408690499057062261998662551234235095516572129042770174997809579496555247725839992672838972191931089680396289797141725913507736612135951307939465446624725878604021979944351968692747271885761762966224835714820450829746648759496137083429181952302113779855285600896195236261486439769851737591373500457595750790402918539316586435222648748986606071679040087360423896004893214078088384679303363888044828820528469071241823643623513643185909575897164542672037991557617230122580807074029231845576018784636002354988203412313709097773282233961648445422680793614337346329554447945979133457820926404048032684505029349390805691949784799006784022638046328198823191018007324619011909326755991697210897087937381126518895343855479633445673629133046710761317894952977759684788466629487297916736486901576929102265623505651140750351155529000845995528991527821068639264038663477687508203030002427343619325595054330208961542151646780707175695372739034291929167924764654485029008659909117713186522705506250230838373155132586016400266454372265826445447419479825108684324610228608211255783568532405403365783667855924322366746971325734172521072210192022872913675975127998877023565342318544820052609295200106203302370339035014653489773265340269814795614914710128649113180436287962424172578967938444015087705347980638426204491735538037027451149601848552408598592531863940326363653589737198767976001425258140866987282680942715203501349883314022019243107560307121119094839577552220443921776066121089049500864065819069101417464261187958337731924955000917313071033118290232365782051451959796793168896282354017120657997941110077759761630641966894988730736714966033937412289660999442073976457879410748713407622755847845650990958454401127217539832738803339800111075672817146536838850090959553185525198622231479199632774688671221615960338241634730406957886130867143325837367143377475902433818258011052549927134289328560559927797026177831379707823966510208885057084024236911576324139214570182097628460727423025852891363523238518656669567664136604993713338998982834438312143134839973760765212228297004212137601654412202618026593336481268749554971750435804043214712590373402827895669388294736651302455839650181806755703291099909207828016910660745460775465535569793787725050130117408494266180235318039153946609915618708214991122250674708986798360734286721146001648694871015369072454044723418872086704064586198819129621247571999776270910600558214443988851901007043933818167661357528610842802622727942137830494146219769090907752046198824697898119407950483894944162926281646232262992321733621245728713487465016654506165691895200018023283598654359591379313074488737575578467916275748470026469270411435003426953805006990251734293494130234999743488656613324218976076435015016468482973257176780385318750908952971162614661808379749778180705544912697986437951236788442921001103312027393544230834673330886342222564543352005166620470048314412589269103321961896215949206404160126635435902209308285384094958718413443199608827122467530849560974568181334792380510363244651509010752499624016578808617263695030457696989411490182661252462250343047664535905768214326996430434327652215080767826042369194747019205942561163630336508690178304200931448491245582554023757709799828404068330406953198867213723361189885685571808031885394858311979582317693547182828900280523701367670246664054894663540322931782511888158024641431968610654309775361980840860455391944341301646697855500052852185569427115922469474123852075624977347391433208353894133029606834350370066977972498152541174600195168154447548748917570567975479747913533534148711551560301007270609343637638314033353561465559871355300855517904084103361510887432294146589757106380744755683150048581267408296407904972421484404594326154003921957856357948438372235486936616976603589085073298864726461362503726404095382643050533674938633805031639159144356246111396720748611592467767809830588534550005337892687845788772364594747282823459339412681909060987447321108197651772057719246358605121932430138599136885308184781342160803208543667563471157202469090593133714809001670418789753259828790404603630759907243221339038582847672516796472722620940609636935893481671619300434368088800067304635181817625825321249942983939573739662617087594282651101694352708198796511254960586332604233724546270965050351105168118564837970780236516303336733045864854628759209657513164150207761637018600184192140591388171729217882841971757146566303889816261418986535112954739740472628785709532210331416402532356594492794033208065838801412174107489526531860833729525593291205225416112839775193182517200865100572434863916575179642275701850799121762697296541304088620122941198121256913863470276831530895681867006623859739504769934325121408518600222928613162599730018289226825602630860233306120619624524655229587266197859949930066192828218047849551724625057872504246029231233246566100457073746303059811452597070521150823096263143173854804679965630951040800659247515851259509137005222807150177349235693785687202828301701476413754281496557364791185073693950562657354369737003307309080879223985744921838727366807609299778021121010750314044013767742738601592303204786224486736130338710394039118281555520711753797974698485288822922631381810908144593139959094330578123069604429035126411146925663266111229212892461422869276786255578716604856804158651515363505371933559470765332032236600338458995521950949970825452836033017052202969620295281901987436327346382664231751759707830031582312580352732233592293634603698851850151903308590153868852820013333918995441512901408259285381895818296750684308910922189311896715500559854291524165287655270305585799879248256269476041976799728930704338324805778969981775553786397390841237340831445041168967057113016769669668179717546251596792963446705610620491910800135906677355558324602270007456652368300723324167304311882220039792834561782635072071469318437859859406604749736714122358916072715048465392185635847915313938340309927588809514610070343296079187782562182848824838555872690131065949164518496002961626721956524494694800008228370679740690771408267133335283722688607185218038562012996955219504941757731460333098360402297542520413609338725385959100403126084902457584858503901194186382040400883223301599454882352883684644617135407747313756302379246218379299871845636707823799326654765656249921401112479560959754651137534743837506300608639563991747256502751629053601162659245615089075891082122014923461446016584953822856897664720897484080902228934388726679078631722878662299375401068049494854618415499811738855537058138978633075317537731770290455463877276459344799753093750672654575864675748528668796799466521927806910263976794230277500862372877373893030682374935127579337372329673047157461847136497432364271376497033130792809307434526442784257547129878233218661622538728101649635619320115754152338151359869174175041157614964400712461722564626271068784318985552410989736059762623609960723413196120980115276705862426930410445694489441767246477768214852964596056120322985674222038745807886361493459252415784339703790141344292939362338313663786399742299677360709118352863648404284538166443270333580863811959690925532187877704906731330762854401542372197912779675573587036326886679345019225596508672546514386346780370238491495654016246997795511156381219451505452943476151689827080726646695878788025080346272559483143316965214737607479584940696840169328594879007915710462686846290618878669775980083548596909047105531283529870148205525349159164947851827357946527215428604334539741567593858713885379765520499330059443439617701458237183845839600657100687491959424813973429594343834620709672240535795026119345207626473276677870770295552778365420601744541189850495461430761413242868393220011002811836459753121715139977638499047309288585849976198530966787074266488266074120981179613088737240871944190301911514313984734780218564565783649998690303318584721935757990820457947523260915688895471948667886757250174687846604507640946384338316175321431226241891248717073021846087068048567002913315674597026665978558321350999098007773560871778991145246031604260641319450960326960811473125476941494255675629136169013388991000704474697839118353139528221827922256743971369287508591458153748187860647498977203142286256892343611460469210440626756752851570424588205659828320700020408645705969272001633230592074475674592652768386830845952749735347574063634614804793416143794573631082494861296490145888596742365903823794080692956746740556451691979557783252734388719299587289366601049588871938037163012292575993631176637890129647742728356270301685042040562708842790210951992272038696107090784683762392624668034057191858825616400072548312857040453298018502498053038258394911173379537130525255139802021573025093137255670921353391995076586840702521583866034123726320360518895535124574667372650417886114206939154684458350912999351307641328182995978350845145645539824214514763514708977186599586326922006703327271414744815888023721142805425438323040478363151108634190604586498153144165835146804595156079678762909497355342007368704544224652028815168759894322215048504439582767418265596407344618788327877386689363298740698081509225643156663669118376521207505628143586389282677952320644894190700075453716766504822732261451005669328240282911533376536609534810055585561769632926260054626157809612443448247304565140267255957623162048589468787872276977167162409433034642030835808477209853277647498914192989049350644562939261022322963895667780719985805226852686286264990482854247975118594708142730836142139777729849844623700759696863120457601206425305963136920209098382140897869110904380744741981309558386938071112897701370282933568503943117682532043813985424595379869042942969162111016328871139350034394422408846605982053851920363640493353468329418313418653730215815120842953680296594998300014825109087427558769093361310782886951221942896766911498860115673085838587984094429310289611666274702738366240861181798912841568243732538232408178394289431714855144896330459716368021061394023972319712672448801567059351484566251815351135832858494389038428782756619667558449533630496139681157179257148820304576439507074473952249999739208177131751760528958960550980474176209693912343150492710769351982142262450302477076959354892867498686645025207663832711821239513780904925768431130173148148932814671430701936405796972564310070577422904587613884396087473748235862857770545688920025757578155398600749463161667995146121196330051921313670201565053223583687801447432505193778505297825285628709387789262244146588184061807011965644505131953465804475243861446264896840585069977828871738556140380754914040302469678170361607341906780993390061721109132948784405191638674081148124198272720128558902749697971904394538744031323352740922690713729711243913633268235275414439385154541515078783086352729220560487321555587369057100546587368136023150255474626045629975392730344121547939180508867473633983686314049556509782328229231469333805236075106925603768325241871687977332594789054764198364619265449604291641648442404866682936850315038140139825756307411514094888916174745713649369890305608460578548105000397481832813233795485131523311695767162212174264162334788428190585024666111153630931111508666873803553744042891971738494245151288392112278757000477275983602799134462708178008143127553617450340104199854630239352001181917552149930083295764751835291356988598691465933716790953457399340626155089992760146196342544541318547666914286031506861275457294216971518239766377621313808446434597250978303763666598831578213775897580212897412698700567184510159421628086848708346019845498699545320799639601658723421183476401873626578199341377405980532058607120706003275712473996912194118976866383539101407006385642687156171711948025067421056466509562768741814372702627313325439455280365155240789786713497075678993587227695330679309074438345794185326388546525982835794302064600935465847929471558375777524568448691000256995876612935422229990229824495230451885380458505393417163534612207508466349275895534815586501519452657734031336280572494802186334718724673190763467226455245539065267624902252786344070592260322139157643677940852473901211229257081703426468865358756397464337701769682389880634335552940425429750864043496507420558646778017061563940048132258803337855474941584952236679555646241384311567218111406791448081671053143206291289839901434939380517182758722310743004606009429319116240335167368841539471631668246641578284133530115056414461841959116908351767205824239504959889568777641002998707254513656991020080241502291639862183778987626395298735101204297575954938548302335088568767142996347318991078960130365978503658527360562000856023845771968014422974085094897734288395478161909295257342910149244826003975649216803061753957578692389841823337558802394500057864697498804848234978137921909527324465694243004443109797912398186354495339701757394776350862538482360078240638813290113927504051336961537099729920657893520048049097427951060288412620267880796026362323452470484362078677526756062600480802676953387329340253983909136864391474245812875716533221455502489343617138844444051436468377912027152760533104132971844239173983045996495185265903463134511438054280734702806032997617599091775248603051397061876265603314909704605291522745394842091650159907319227985846753039889952487424184448836947562004405217044418814382755055671919652978490837035067787859273149275438303091548277199792590936356460911324258658591270335041762090999715269015383763515682340395582465288134431879400974826232299277267568837565528463201216709018385453129140148198712583236976638869444531416836388837541019062259841610505669411945900835242457717159251724802116735531453217470458976077933753158467648469002187822886039823759700820325166230356280678411335315641990618315444615630350697901452345697475188803655290666346765097935912821539327188187363880149976176253345600857308634601346988279293653160578809044916779134204357282978403813273557830160356778802839602000996836614623379684476762758326536111038089971786276239143068550300480058692900771095947918717231905606770193117747806476129573469915263225020549745052927940935602754898497267061359746891675470721593255377040496920443941594215147437258065163604346505830203389175211823268330854265869564346902728117252836651394404028971809268148613100324368077354127806706989732499121663687927733539799258059859041512788830363288441492000794403138148677564736153956361230838649228080327742475302698522904156273799042707793301513489724904045424268601490903431645386572842532955895433855598047265855683549343087062946182406407077253453327187680543971832859197772779342291403117347997435796758829665331605009557300497653900031489660946479744209869240488067365642832910628676867512838973179314284762455805925743006286482737810727732724663485347147003179075887982052287704662580601824686902349476297544199321520157733930794640228689974597043282871390845763074994515866941928205139445730882961991341451140354896244421551044206734219774015943465587625072557996184329509894733319178060968646999459020956642019887519260660293784963961397944644204756335466537880810617392837167754001138418504807386778370125556094852869673557096224450455231469530293955397511109508909507402234149073719151974500135516866533447548922749186995155200134477366895243106634261440242566057595969728709848800070881105137135051739857584100258168355652527209138674452009813669289102713521004318490976999937982232079127150769492791109328163356564496139707655830077293822726723296642362725561490522002571891998689313279258629387558152320659207504814010709656290808920331667557143151058926807016695401286556721086525553250983879701026878983520200313545295446154799080039842100727651065018689695850518117517520061554631325030873193668572804652466996145979835916232876428676619838084025401854727025108570892979452892931617865619040249175375023116135478638688169589719226068177473448399706845443349430130853846193779567220044025280257530028737909240957115983832754777244084820024252207565642340584247627953368770527143803536335546407740499625086389054998866846782206897042802323223648307468791241970240388345695892887900190548486910845386522245052625004170154000418320696241527877786978737411123069796346364497330901785012934039351590096707508618396923872128860429158287902766689507330353049589120827815039263985397698566743472317125595210088754600047839586862387065217155263545570916718321936532485612730347235807418654418718068347036796661364710601218442301001897467890909772805814528681646935959956413145152542699694357591153570510331933017357051093249386494215177140139111717747667051095417921047415185797284551057794152525068326076711339115083419409593855312432693362622062139483037776383659079538245063539208637810064255406614153912594834185387245698421418054967345870588876458807561648173648925447917290484607183038799382724892502843882747680179449396785107489163492571654595709660186217398303383763295838639957861967588196292728231518985247203722854163143643015021646160453469077972542076993815655509097587598777853090371004572781394284688896549191320796052992116788696072559749273738460868399645765121830906019219584346040132864468332455544691573423417554121140020833238587174343819910303730479589917808350909690059133881140798866629150826609950480005733796189022594993477585520510317545710917672279703558303443507574354804232038235059785480383321356430451075154902719703406161225479008125226689517328999119974451033150102057868222009654583569192298394678648194406926566711091835820697436819141111624297236595820300498114184361874724446170032204299565198154179512150764416468509352357150953767889223013537037661189550447848546996830524063779791764387137962058370727629407224623181658705151014534714543611362067204432802471421803010113857887618166899771432568810311411461753629531904891733537086946257728076657575803946988150199408910081067460009028339271528149425660367308935982208312061001595091527976958832295642817585018260189152896129463041793518201634971577890841125058672930451897437558588627013923989064180920547114074030807825252863989357331058593683257011689534615660158841358008940036908921277344337633112391845786987807268416886683386299981491331151257722551492041449264095562503385049096740642934876865374539238575969657091764831405682501849360111316264973725800950096276113394477648011331428029797754885212169894303237326125778129729979705890578333552992795678960850044741257843447897263108797384453644938984156689500581149974766837932456036492103307625295420956953980362811727586516138138191824942382681276254926721637435616941731406444833524966907192403341310695839804817435395011287849327160676112221861396065302268943533633702950542776314160851261460778270033864886298677869787570520884227642137223070063079793578630609104273014642634649485090622886154809034487652012246507556579576650525200771117328270054815306874102283470611469476921046640118479380878468506873934640383655108811633845661612764307629772276513650221611782389809866570891231962417400398325875539072140478231244290498151656214384433051667874504178256374700070032182961906119856567121016844398486427509517323026991440069450675736271334770873858600620280641749344086411921775758881461901249630500458637322338408339405552457364566657375945746119462316763116272331775367980255755723655899402683468160581477861052316091534277220904609523225719898420622655316334754027917365732510354213348662854975886396748394758241960031845151619181054752224439648328941452461647595366431055318199718197357733995211233402211061852129520591739860273343558857597464487242329430906966627782952334846743844198622810662602741090147707288743376302137004762666272080095942830705512525490535191425261481990961580460484940916212378732671989902585858382031699247642863213807778339643463630605622957034389694174841220217209992126763981362072070688091089036249410197035715457042189940020295602473277310745044723575914702005654655365199919677364414817014019766606821468572506821725205334758972934581008047272726628140279937287448901173526153550851468512644182692281321516019595090067077804966558649007457494179494427784576002947288186620371440633600918960486196958989347012431892148716355961874024744429279181937280612865285212809912640099660210282643201319934051411659958506721057975985722896316429625686131824571401163186940659437421632697245179854727935333010468395822267809909473699503434497989527608797792311427448712545461857564846427586794717073054135624470665370883515272750671222069270467454711931129644361684508833763841205125120663085392152249841983616365721802365773099128010643481347588643633281310248977002870960710286945429601399601768665674236234572947839101460786904319595625864923831905044488664277719273370945487859206618434848860550284767627884151895833140122419881777338175103079710469769556888524641896872316648386689040499323271223308673828583208675295471322893987434078232556405213902831156532262166965728386428147472150895371767353677809050426188233753991875081609427060309200293220683946254509027540939217663324922301227560800734889453033733821347811095603630406221172138532067539734344824739529326478228684725952142744201655736939899315994582789224713751540209906830127551158943746879433664606774330060436913041948648563273100073137355798700288461028538546049054298239030254392072114934168566498415608679790176980084138946276316070715690464213100905322250165230187668360770668441538518661619312913828713217246718844270797775997734387024299462364374647416722775575881825886192217521953501059771740654831157649758697395952113253064761959371025046777388327564069167261480120478546727216936298995696938722332778366354362303267406398668521022464794575556009114492219607362625372640377961073633456417032641729025228356528257258838011126162769444564075828870551036371432734151442729311076112920287330193209891003467469451119668247794482977979218802153886714255491346842440733729594396978743656469972010142006568419106223988383238742888301468566856171685018043693264578845651036009957572489497040747103607571162713770188024384677302264288000061579090654780357064328267889647580993554600817306303435616645640482733107826957391933883108757267989430263458614812586275655463792959738311308875641400875603224034605033506544086791947872692268487983253267579539129162051923617960118403483367983348691123321536036223857107111451901404700857962668429642347737607789323123673253345964459076786832280321573792983503574254450554484559195984095449906514113952637913865466789095064356361417196251594151496683869652151315293939728931892822779079967054102901402704400226537715383098213985078137013377517927884362336738737445603981977523701870439303720871860725809291449515001365970079628036561761023121262461347004533540310034996909581983493869952623580546779773423940371857588444076438418363015933982182060050248969342474975538004087342508497033195711473289161331529125139746486537873329946299175789451567523453034776902371552034061166592994861814970837590853536543973403728979479780695888622760853314769669960150517225777162099755058866234003857077531717737904819317423658859942551438874927062817582667335979088877223327984269351463187307140045470487777875557719795545939480850221811876556482249493892953918334174504869902225951669859333236566615870338956352011056924030844249681048403749698028420548900507694573564252785134607324564886916482121123205797162259043780164168698430619027095093970721543407007412772788543136437950534391728722469774970263656795358519730252539117736355895212762000902757534292972603467243438086449046589265465689588379609733944997404855036178818905979858443511145877458340214922901381566713618364111812572434231759346723725265503139355763818586264034012975502187689247850158842834706562829165317326254658409430137907863875098475253716054218500796273635442041914581798458812535826201959848486041444881442259772667498233841483352582782379891627962310620305867374164898335431704849837957976695542247451796319687368471431829917123672926465346881069664319515482548723939649430699143965095177573000530383872292571590389555817294698189611788566829851730063009026863085681526777793453071861079286750880905310096291376806515599077378622031023321043959935154843052193284606434638847261087033977355499500897812409314545426531493722764583072065524336967529135340482072915287202858172738993570023652293957208586188268240275054413688949784580500814852077453806407469966027618880479320307986682510752840833458967413051358644673783302420780492530263344136413222677246906420278022229869660608745003179594891088771512399711004983696818624626474804875733066976563871138973204754881843083843262621274880823537981108638780262448422673001247784623349606375501911361882263142997559283997492290218216114375040325722245843269861840030911448215215654135722985513117579219725642802816502209300620543142372494305452552847440557712583616082673998724229002446388243130142104572543148885103379392827638810067787045165634452421923597184607060557852141019684762016047742609513028125105519106435489357985004848219913276858188775957269985433982920853215741422219885460422596913697019404240802230487421461766499806426154738089014710432538304812499021297366648628896637211261388203583244783799671776564929180148273793283086611076529634088658885876020746313772186525478589499105888404859670811440052710462015561855363577449613989322534235132828412512205502232543299700720586732974064230555909626303690712884346293181199644307749635030750641160278661535079835407900995465869181836608687544285354435093271016586978529972920028763999329972259932374580697238188276488624214273182902068098509026772229756055314782373468775941248571417739784640117322183375644114155961257206978891009295379474838591882641069984862595938678980783807417092886571506245774894209268842990249328267706385155024268949959730564776407341938562120435540159573612545504511489639426826573552580119681981269139381650570837772741314996756099692558583608035983612913943322618163704418485741297516225298821410264973589873199328639440616562963408946455029888317943791786756788291154039531646966697410497274629522295449895482729282030665818836590717992315257224364076333117611785999483789209299097590143818407627591394746165721404034608772891115561911819426915347036853710079443269894251631938627674590964662131180212354141848702584490493297044071333152324098718039174920590070915939123415312919965261703678075266102763189987312868565808534173388634788926278491232661378849868625770251785728236344620799746267049078111286889727621452094237682583251579003109171834921725244310150033789659466358143900358264657306350119311024298077895456618328036142682343821371072045974433698321851627568704746326407983045173927904961864718737037878733191060141344573781297217729139509224499697981763116815732130716611483569240520220900874727991288916584880430031716494839474878493524263355000868667375619593828486294220270958626786138111918444504300068039181107883626288107302474321983130220997245930508678206181967460160243777418830134824285535557057363346731991990993151516623336482956366229508989876053387597250622990782978234363092739032411696533802065864015357376540394825363557776624033951684527627005721217629938090076108834846840473989215127019108200401490104163031478374591817592345546043380676191975093444940568735642920899159798518899475595002600360486681130442234398804959908251487372454476907997239753028729640623807479961049221836310640681564324577056151517678926783226111484701719634260358194927666858245575071799729292910390993987890240484269298640361163316378147311630073311811782916466716393786382364026752430471981899141810006792585897115128560722653464564191523144657871890696241340914863803226858426086713964747534033748557899999981282347220594397885724685881521301304930508161826030364331237210779716442208668251860796320650614950626763529322159864633900891336740542630450442254727133568928977542509452941863727733765992147417855996132233029802164956977565626382803164924946208791848584712070582102199960826905033866314012757218869532343228193871024777019809286865560040292195040983817646216925309648202552258578751561854598552629163846203028316351199096427313786341817094831007008869891320295626681499324046444622449077301434665667357891514464914213157323023337726619439146993896106235539373457544912713116956792683628853844189395994832974534454343291735381686237158369335842134220494984323412527895921982512974530383969671250212321328347690644399178073776793498640788610912701281021515875834195122329941043367865399933699502975065065340158922368586751935078015410443574775421237511323927734212939727286067464029998646634482530033972639893792955995295498784683197378834694518845431570716657320627731496249615963695135876617918126719735500392156215230284362463958305748680570740029420272030872611910422048887488158909947350973989924061891967579780880325629255260990951945792413128076541534738401408564229677804011884269983961174068516525059773251520714756912507044914610851353098950477927012776068195669927988865192208362915554703248327299823968548924864724523274688807688055214837073214942385559476358903435124815169065958709287304498501901833122154102228029364885681781839122854280185249730404292596405654238786906478857857784690547298124676817960379380902547813863742403190163547015805857196838883090657108893360742710700306326653607917293657007082444236600560535767985331805341438099689608863865600536862212069168200016565166150333916497241431993227307292541461946917533732166834038371298989555003940181072058138608623259572481237300667005447753347128280174484442085308829947161201485398176947152942927342994358109757646129620430958712099410436762562277927734966068644125923372831482442626207578980466529169923541921794141939421478752508311583821872042146471762392019176155953062928515514238670797992552270732577041802676046420219331245168046488968811309584015827745684258131022655593265914536468966313089359970843209229715282967852823211711077714816209242093636732577970816223062043653358367279639192605827493640808852190711427164135820699696037064438052089332457360890208183655622080831499516342253661882992714106764681887891068372362384943604581459647087993780654087471803420974602635392108170716590388723050446180989572964173818536429994597550418750971220851905104974096694982092126754325410306275405143891360901152899421487401286267550654283070316431994269520398467355888500287485687022801817169174021782896445617521903335696220124805586528884113390065311683038962103842117086709509023699015797644110264762764126246029356481418724507458464463187306683355520103159508555388524182475628884760176172022448745568413650639879073353773275596948671810314758585550535587924612751484180880631170875176051997076806974035201621821261930116454435366569470228366702295279069940317174530323882010172586443126357992474241790480006897431114686880238987372226330180332883389488718873996614929173993698596448922499767761800097245134579960867174216888777536439129982941638513085482767670741081526618624987206265253028903326833514107609049302425901248575534774914516830355423953096135392404636606132043356353331756009612482720241386530478893843324474207459742870548320285126111503579031657531380099006509830822791288003400125429878487404091580230716441461948407198123940342538852995179616598724399139758101888471049579978285299751706697401064937124435688305071796969277052491589468546825308120863375004241434217683365471877418874007320647986538147545378895240733260127788845227997325006312753563584925476510801758636206309982400649569144265849705648089797635842894404361688849379684168198737370965810885956678094202541415234886700167559213415257664656392789889266079624918906850258868711801383394121994032043561825677603239390536359409175705041960045621681920738751837707256280986053459129710361879331426334335135389853646167212247213901371540413664506560335819278840940554811422312231196329538731949887618448179813892046605324886213027627978751869828992698190464999176771027451597341058127259575783675948311353441193138072853237625595029068470360823283909940139586175032726208557470317059285510459078529041114765829775777651909530805490913273895731568385114966007586446635079137758399977752299514951304038594790043830992532984050450252649208963252236151951144025248086442539427455594781302496062022217255470219421378965811735145950516661908716676926296165873192528632325059491824862751913133354864509105053930151663267704575868285484573132548073212714901104252072217136316596041274786469144363131529189113781071768903242639909758033403952207987990457823650680998569157323879478456817115724972333866358740424235082118838358467980044138528688649977452942597870504227782957063196283326009502557171321085928524581266596643992405071516105048015771077692849408243670341985953055005575095622756669767655219778683635423935341070105699728107633030266677337926219725024097429051573556858445295884613793866494173590864911647840062362203886635647892256564052457650178903816253299401702225294564965929889898675951350678515106711110362156639234596608682521197390087595423995994794338195576508614772549514691657037547730419894028602321197138560223886614378634952527549846345562181071786041868583416400661943209386194096670071445443339589833730052302406363764673442430253151203940634281720215699289241925589926950990348562920462088502983118930753016575970939294873580286686398833057423477430322639732613922881075504527681540337600563567851265588061099822530633756588413353139507893059232739282393233115976765173858006328883448939208301050641098263070345477789489097693913699034654101262157491892528040685412588798415830277726845082469110133867234320084312070141358375360058051649795974474405987708730037402799493125155718128377860427130146133587649361102515385560553350268128850735203095661306682198427636045649501074047812736103893410810466091418061392699974736284408679304823633640551673136972515781483636562595081576391789443353462588757589263521841729355129312059371941142959197922366110241830754555875270338009629751853941477752388621660886376815953149836573409661759834434437054739605565620240225002832897676779473160626608347577448874887767313967660115528764899089558838129312400185412496543553643558833347599537867568213213690758255303205805637078993797454655161227126127794885165201230551177069240813138698813523402404695534095248329374853823669905566213863671419566722911164945553022896633234312027372041356938519475604399600539132982604694985018017087564693988371424655785451130727539327644630377291674147339022131910937914267337479249126147187149800212654716626286850788124803926410988113871943297491539496189351446427410018655318303625573156604828599516793820203750491675755361252690168510086900924523351770732287710214536048092581320687532625101316545843021741585195981056579794857856804728817234507450299463479666587443236110103340911488544020279878443719132303166915793820894616774961562245448420688666377844366068995189012030760590299638018641818590754392385695738787352981403675016779390711041214849280247631015069428805473270383927883502112054575877814617495771114637678867282962886601460579591453892090621221281296585099817869630160819205353889527056331944537351189287751208532827788959698692544658345370901103358025827704455019492772234542331092212165842204028836898712929634277539925647501853769487133645791043566257326928577531232397972619012269101868348770450828552676443264396355171891308476798305746933326423561688502358204658346880255815494286987809144809949465438973063907504703432346188195832634753864615027327386562371573764158652424754060727400833642497146040949003768112975920491616350688262002738322094730539616219012790635538573934131499258358227276483406605693637640312038347998299191339950226104194090427041012199142054316469143042888160278802641670412706886477841514803547865071198737666680570909331967932533926397811492377944615944831673123821464832886036489081938448361017831673007362445710938051553587741136662187678940352249097070217051017403375035897046806614096660113211446174998802572127839281657874649334896924021158485779037460911912894364673057725123085005034445204540126122956041946580503451126030432694827253838077721915934483465266423675049621069881712323857469656293517338290638765740805103933238053172566622179583790882460027118036774655544589367711979870599611248962055163704357414485524184160016087657497227168442620498938568554883779639223026379213212412993163950991516403368615709373925114331859428829087362960247359386862257304874507419721085223261184795513168595707933307728185053204039153965407172118767587011578629075629037084896181836574497011819521423120250679444925371679843972576040559212773742599127850324747899649527819125241733032458517904310541114562438515370114221190311326399917372513286490399785283522559138190433022980300485168921739122604366022785153855938005431255688398481214577199073727474564316825992618951194357389222468985029703486486793772964340210269120856239157162749478344648612119593648100285311570693480681288578997340974591465827474426377154381243270293575325050192546210808878698785001304198288460023826623211722360886195896272040877269636280830863126120552592186802038575753749494750732735241495474087009518480351026576935576573578154231330069178867567257548128326981017974779029505073113466594614498015832452575525572169308870298905146733182536763958510289066100517140018788277635411167324611445217407261686482120947641258406893831602399327811285855370286875571124776734185028210997690940935842977761014096479772867760542704634050172402056794613899961270098179832661752289072155604032099460710850646893276711030441052032787520250160261369565357927080248513063090525594508680496747243133687007411983830694221501059028090117033942208774232198585272872666758165043050615223476523807606117133483549124864222599994480609805949385097510436188547225312391782136662070011442295936028971119291407642687785378505465276714235091212957586541549103660790952518853750484510493568563703253946537720933814497346039038633919735445192728679199816503500828916615554502076803721193735616258576547233186212874016365491589427356924521302829081202831863415708208044385364609457266097450894962174855005463849423642505421613219350973054855131254619206335222708927712370721318638975377780134777619215181818704281732649824197771402273669804610768055098512268695050152833747319916721416362291728952070545649769309223921515904016141991224489072944920285177585589256954786929278546498511610541622594284536265973807240462880097669112390898090750375588873176751849064046688072154770016952152639183539206953927078400715427627817358528826888924784109600830823921138361421055421922898832489649803992970433392277192265516431402346610704349198946116535867942547370853785330351688300765445780100789523432175761024670995222482943328779920348033026648193655113090657857660498143105058600645410816668773781243506933224399157379680004479470781900825225567835422703839872495592038627144756882737654010708863964447356186673235732990109429757364107453179145497448406332944362789134123802603271727697046603624644568125079437582483272458334384182418492610071933629870767619558996216933746383406233229690903210447836068780856703751174017735031003640941421663635108377163471503255723228285586715569716577546024816826584348170463354581196951951303190391753708348331255493788057040610494232425275568499339300022356520739800521368476720934834109055707444835860710987943990314410418072640406724751802661300854288697157671035378823413729126196720848360417399751737104820844944497793107634200018056281983240394215995139856378706144842895523994105185719594608034531961862910320817182884370792373348156182823434844270052129525181457499520204940397543103762420753066066361299402999328870020993540571639653316591356352490621203305167328623117336605341662573134389251652023977929320345332673785110273499202035153659341896855202218967616596737856438857779390857144229276136931860018614536279044426458634840678861845693830598254190635335115954437959520411516923229666244507306884041165871503174790324984758760446794727400249317253253024690658465170684453425622083794421276539080240892458489237713009922398664615942284682729421271855885871194023709604450776835874639077929015768772582568150771030468931014916150564813339147253220899755424214536418188578190292769805161489772681037356611008280193211981572997129653562909528082075638326222154336111431380128199309843709858959922171319201931483516747114206340684831214694166145025336129666221918610502376244202764536918134214777705640151069274145878820717583877775766109988290700771525282968720973055194263060103060949163036482337637125188778403388208727126888940282559987420667464397415194028978426721188268307066792410651303644148622447617008285161666127852267516407694742944184950432111702826901246014151116895235697348244118208359426457051679237099053642109637325192238319235704845907441731633393231416674134441776596906117187264616708352240830582265523629876776353763021049949354609505065379984529085480896385234330201923298513701226308161616926329345847842313415094000194169420648929965288314565506360959196274823713597381786955009386315492768866216741393880518181226901023444269436740197493170176314888834640573980740362765012218457005225864660395104383298092257345729217351996326961511075739453380920851066206498477239766472997978863388341018134529686425993812341863416196573480478201405264040392397335397499809802958647467639614829724337265130793236739825220265615226364615268088800929515324706841740654900448162039465860302242740567886074365480645479896996618877241182236494868749202611822039759705955562780476035491135563257047800580149130242520701943757452070569303833956470507417102934970555580918809040032076052752248874710078168137881329766393021129234669635561448578008930576544439086109116702018951388664351952100863987093438694635685494938849138465650406487975809980774625719548216661825375164891003421088692585679582892264606622346098857015643337998402268809157249484658604674525516006912937549412052518765398468577689839610123845737624558437154617387213508654653583629492928167754238267168255977247426124169321851094852735554073971297228284705889250893336115705310267153627208371364311477562710109181093497284058750183703105995415783065973010286113600460835314169393584236323831070453784120562108082303580353262750761278628616703142384133812982184394404196862074947669054001187048032200135270596386854668291184326919467694850610054899401061900728106054971605970522559489638264276175404331066814195143453556118148858521663805587199965229631812482055779537823935009394862924879406522081883565848385195621113001281450164634802055293778787855794256816364201122935537452435818507404334828665606126277737931096237399592206356298174515271904773382780749225653211931956589182043595773927606824192421836870737072429950123307295027023668469753629514164620731888774086639528730549852846879769859640536045026181304962863698073982292605135739418307479405489862579141088082847460411892712128959008740558623428063993817249747804010436002937363894734860995769799839766852816213602045625112810699805449755134571560931304007015048440870107697283605177008141471450877818822423360303212090096518068255964265423195751299097044496646637379005159401065362164156384623947718218018821926361419187408906818441479079988024645043790300985271577824832024737267457173045756768368464001712818727389972530397239395630424507552504578467801137505959681379033905862756133622641845565265914466739971492738634645602885740287826278082233281331975950339945476631985989876560369888821034024562584313887713984539470117733121271255371034711685670184105403537721065119387240466657941037409808278687838545155239403003295295926422405598690754079390620236948687422085883404810986371834513007773515760942634308935118448682396316330899801324893272852730947501627382288372751332069955699958188254039508929665525858466265238964860789109730967715284505206686016303633912450646589038938791538340539631340610288403829320660085039069412728211306872494453361308851141623283803369673260263226980685061252006126987411825765632310514595130343379554955222028571211437845614579570164081082075163133891912766901234991746745149822705514553855117779621295540455717453343543778932478013543678105582156311035130251822012184230868171659346958672410926923049622578051403159370554785584336335137103219031105753382185703813023029755116114005303397384080945143850570571892639301764422268472815226661527222964450247570245558242376774768031860549236817978366426657686015256061497830991080819747984990973943402830227843547516820528595055105514871413565775936256363722082364072419106242874080484055850992047989707645385087503293735084273922092613174612845191811826950991301875060468312565506120161984063042711693541352139573089768165425943069300761926377085171468719894281175526469234394779128036447897754333338466186275323620079773539674055161682467235765961163114727820142447295488831014040227381860240340954685729680275311677525697574242077329304151530797209141630435331787545754481359595570914264933430463000416403894947738969372572261633535306306734789685298459334800200871384191298949274735079662716910167398112342942049057454549949400160312443481198368443410620436117948332977235117849118314008956643420630512780662398470065865992635274358657460891541658624203149149209307175370223974215464970025610353849986559719455586886396652398776508545755665850820747473551674496478055725241173837673875242974730949185709960434148317631789910047443587879230216773753516248277828397404244438127306748634588765570830808139829702185927458829177032206332131151746389437628673165444169174970834005908385688391052108824777773278035231544022753708944873620128484220823389901683910534060453962724705298037872196595556822194357527482570909211464259465286655357914928189074138422189652030429555439313350556219051891515740280561246619069173407951060592828253702643019883034415133728591073502477230202389704343333030054174678372624211016687654509009611910009431497909671842193995085562585652604174817197724978001555741340579806708874413287006621707330053554609583047791939958710147406363256875210402027428983138734697499254578766587342408607517762909310508066934493024167559981322117891858883572826148428031469720014048927948557471359518154378107779359457493587979173299652493825084204137055112476524863295719636327009164215175556654176534231022591071428525418002015920149141373490201257766227235497887845263098420841787029314754381596737383208811784143482482967051531391291543187163334780969521473523682461159598223228544272471321515844075491748426407894136285776932659883597751036974546540515348851703316209715589329444643303626573773494994850933812301760306006104281432865407320057339961009978271404066053145675345627782488375039028306211185407688303700211915114336618941154814597206389260505492719187915318111496139016542595307541176522567579840555741445338929695690002977546580160758575300864123173262327533635796220375725822100485066609333288064431131298381582291932652092163051544809456072733414519505676241149132273590116645729443589128885799165861200142040984620105129485915714458489297648776328124885821298705935456239439201771141537657390173991019887791522923507247410995917730141645975893255303534990466949373152698248176993762822896715328979805858168910819380650651908655600070294831177808505438255450399662416166115367866954147646721482559646018899400485973626687942349415302749365888619930286356972815621469226588675210709999180041917361941082991763527086612085321317819765496047034320964061745254561171938550167274209258784894052691308915053739044150169454640042201172330267331602140769773886902031850314097959087821707919531339071650530475396546780072189352594545234281033967622619734710153495831337377048519067872738662071497284849637606338989904769502575613413728555832466682480435029162832711671012413503655207285356147471430199457764404291893948418494567220772276550509874774024307016869887609507846723416087158160423839988397919181277743633183344961697103132065924921281201335899843550137141179560080809544729612368840182675879128784766276412043236497171537637044948496074667842194068856548658939736845573424935631069126344804378206287810594417810119677336538502020518023876580530034132858361677465792048606263424561245747322492983192317958066188607735997021688698445119594234833040103159995169132428449205708286400474683037289446008590158699197890109193000305441030520065985514773615566938704217358124751256108133504133963485565675998786242744126822744248257904747514575565889272784496794983319516005192151386632071348178637541354913276085257727044290747854442803083862171897039143852669419823755616217844561277125463979159841207427983982662100024361074933981963121664452893939074504610896781696803192127043070425951873176400638170189695594421719707716331772800449864803299057812208832315949058676026287243659748776862383888877693910144531710829111029282978514053170199750125913892674065701523018600329947642482105343894413479934006173557643222675368497833978506437688709603356812487652093814315292667975448090489273078981826460566701662548877925152090692491618489717034843062354507550800483961294311291722911175956206619248887259596742987859007315509204004120636892167480911627285158077305271271990148843525413485262759798717724973294404196021457212146299874268433719488994131171975506004536254641831300246665459292712594523692368961381779876900632974731498587325480552229140859994414511228962658446940103754497391560905736937987191546606796069821731295207753010908931624641007470751829158692341998212104561425422836994434612836753534063124667514367195908263286115388232648060150953616272599737765101365920809115190837718699184943674462004158736276017135935273541921652609815671651244940021773074115481684076018189692399777825441512330762808357153495375777284056340915556525043632154730977499201393846197656856865466936984550751379216143380923729395502464312205581006026696235866107418136179656318045820286204737641136322948231545738389513772442020295790437229602301154683319046252304050864701318887132292602495549794496109778801216267107570140576919433053190347347177172114709863110864342753414144467261889065667767477945198748189111473893581524226848805583442329242687293227409363280372849062302321760646050957278644406374736006119745454303576072197843532924612315993091915420691279764010489278481477616404135047023774678874410424355124808068510807333570459630903445715685480013710943736757924319327884169395115325219843902606850444772556864411259236564306807738700630384210342901348074901551136527417210461912603507333403640602667114416155512637381487253593424415747316713151658833289733539363713638544824866488796596425073976711757659226833988756643563175239250607187592879765527166163597746771532882140435361697783911816023725307045826250216399325607632581590065868729967667078969469373749531071074847513251692808719793103515453636516121208318176698393643802081905090728575747978120251321621863421312576784114958782243697739333281893830216052445649721026084879326627416818057536722440226815943497682727767007430713966061892273739699434597710955031723237099401207866007071389674289003085890997396418401688619956344558312248230448342189768053007363343549856931529984503501183258400937554660265944449446502752821034514632586068209308284436538707344513798095687058006577922233445067814853459618479175978623020332956463212662648903391280455484248043556934871050816123437641208700029673971555133180581749980750435915599306283880495243976711256175078298068186510196159831548411044793789672188455561706042383011914696080303352489557015104859605941176334882263005304380113594561717952630156183842036692332660319293388869379020170682874599838027195674510088301993922032334934763071612738132481834512495842819594785447088529265901247854444363818019680855876093708700022198918464767511528006945635189841941367347756993646762156708846674517135102833714838993816114988896221205893049689923921193647446213621373526273167525334094151105626885434871290926307809803815357845095687396434874200423782729719135009729326009297516291924568442568540021981726583966275864267014136970945993009127948822502390105200140203720996715014187891176185890666028296725733774001060922499829816543528899357489911374220661170225756204758880390922078685753344960559526595673518127972492596002983729989724002259523745374178775187558615716280702543205226086797590908680329036734780289694324683542867666277119638346158883819255570761713434921677592792638603452329669819399486104022196869126775907435357732139591688789074227002214769670684914139089784939985183924021152614613347526121258919058019245328946683482628272613231845411797219404613813753507559319691464265678582376853585474273554934035984375007384375109415037363447111386064694788120808512808850653312788645370514890717787534025375801956567659060982361737429897827400248241661770404334969845887601235938374338533358432489351194728762136342397856653065507187363374167727713066296956059566637441396731228203999328269074409380893802343878225246909426883359200061322428247559254103886925437559413509724174765497418414211854285536666359645711670716863979066692082132432694017081723080583138917373589434086091306367013374275948910511232476249457649717302540294588971262785767498040115505597594326086976761420111775023736636035440231457777585603437007574194706547488907308339078964153240951800278396460087774648800042828270673018135389955748782313225386796118277325211462326393571398318984428740452552677675227254310591291448471833606176606061779878432565234299683526816896203671978996561745631291295007790552053402226184792873092138295396487876613301707841091566730681740891980894718194937207658060366281875852548134871498970404676604574869233980388977906000102366005825176540690392186890126971235437403660139508972678209310040402105018599192248551030958286383561604400775953843025808994521365805834232246517189371864089343674227378781237823519889776740398937588833337120981197343964583799025084878324034370169180162855295415578005821501944666697704497234349878497969768585306767807818619707318152326265173409582945192490719259382498826825496010891138418686506968765259860154266425750120291926793517784426537720209212709420288993026489205675574854300532195948079720043074994018257785682331222013493618227415068954678626323757952175566286790185909462000410193940476734554909627163066080465373344213300837829683831719053732465512272722633057551363331414724011034306715011971918167991398194080178402725161135100947033593298979133300537657160269271077048268100964861382606777100315759998272816941139610621258631881964936137198279392127976572491916343856855302080864253690846229683361541666157782740864943206879613494193069692960935392885369509483664780368076100945576764899507639272205100600291559290661906031710616540135755903760288726317099682924109255240077516526802378599310798600771639895867770696490921630876467149247559726480791882717096312932406737744584019941006793543221501159873652798258637241645062238604760208474699353031659127674023810056112465995945206149109857884879092424376011812487876901642412467534060328198195501387374617969872760136195061474966113078623846289435995520332878184469104030393160628678955536574641305235023812994978247829181732893658879956687180340706947187355621137232768214797818131115031858838803933103043161876011576349285563640687251964463242328726476746492551130493625450701169764755249520247858482413102184733801892460619064590145985834268791424098957880844814551209129044215591189665338399437940072670914907084608108112992348772784651555769699041677395059575384625519787204658723035516363944983711344038661879635754510833271250837976346374390875826715571649011061703250661855974473130775793224727076784792659752469690056017517927590543873829685264326320394756379437980476673346529873970621471873713109240036849090872953302829878143392018648373187876165153354742495285792823652319123638581894973308955523171667344643269109626534096719579853654079102849827121242448880599319594412726225351686699354903750472748805203663989965245208455090040875488822055052439263342591805028460455153136837623718792806303762243679133500015527619754715055318626648078298009351310655286473893664056330794736105856449299474627192086899171792651198354613638564450726732521262718856076280933125642558698934900167759997239648025790193992212304701305761045924260798870051541219704744400889660138813864867493197207583313084463756885436098126366968716891977533797070691621783583004836205581353606584370999139202040998657026995086515650603756870723153235201527512314483392277999652636855259954432657650704654355906922338356108427690403331534784415388837822979871726362128507778314322289851346803915655660150376401051582974687441732255700565702313712752354836338082875589860201432942706974296356877743287663746416119202572726650852310191803617079134650674477723417741172781386550200309253961890706062209653401466580221998889397044550218332277139326324736637535431616472088666783326039633877303227150785819708706889012133058923692846584105617113615354370742521081818303879378164199234225864299864390488907020064606468669740558420244812471153392068509851930589880307624560382329000502380253190726499583127673102136505899672626022452452219222480628809348734246198426777901194042635502837892477494167222193747920982860822507791351449402547003636216578855985482050596102858803725063051720263398241627745275737683893355944777880639703188511795259247852835943858684910847978843179201332780075877580974054766643016504968402854877597848303353973628827597157000766088096469499476541994159980740909693786599092751217274436217566054563323255321812494230520080634418835555180906636054726222751173492604251408095182039287666160840604477844770745337676616309857562058123409960664771576985271337591986460371794546250424172783388842375461009816499466241845723673547719874393368850961758257581132947053123791652946037517362111875555209029102712946922935346622399326686241276272014041631014710483353825989767991868570789807441245169473332875928523261711774166315963682575134441953936858066499684821071841388056251585574855309722394246400638335698307146701989965750706705770304674154814594554442724269043230700641572487613340833529393761150942093815556523894144123458588673906638537904558568422279799907535570648632730671977274892299640673422947745193356729731572867506124688849982505817269554267274963824702317789536829164803801096660731455566469238399289147255312474546212502518003854877773295028129127966966236838014490839872358062273289637030554408813117435197165078559984492039088724640761412510108583790333856724975164892098913367018345814652094321279022119030759826762404848588597210749601390193399400883659830137647073020104782592430537199649892592252343130542300770526959185533405479680742969994135519620981404437385704645281883693543247785072480876292314949668729685944923214277419128924323038104856761982065443310496110980011738172961836499415446113316879611068172989757869119224177652372022999159306138586869950294147520801001990430420982609775017959692200074929205355787004109049643940204265816810889248556138034495778065485985922305211883387047529004713703550789025148343644507860614878817682605034202851215538461284197054873708513809914241194366788593920182572673543024662232142345823714535681964186957567705525621890600068712386880949983583789271249310618157154362359911037895072188074746030162893264054081935787941931558985062106066472734431041176990090343581936258930184775909883212871547382343629517886654715046160422984702051281895986651429902830429713415080804427579346814559068025245155550220089810197062678127275555122100568898091941263956075673631586117281269067092862292231507607904483611526286767701816161407842327586738395151722022412627233278441681387594420830069661578869836403854605953857562377890638834525615975659587068568853990828741484590953040437280790461590989097338851896535264813598698904753239554459548717313789234462340040119719760985580197856788486905804415390105591370715748043491990521051995015309974689664419650141676703081524714563515984039770912184490009669249015407927676497217830260946510047838416420860610014214118654765677765111819443010430252488842985015658259217459384605275776357660591313497313534543110275096218778735583905724172802819380926972306808073733999966323591874152213570911377078238528122467380269748712823024189346969652834083243090726646705793921728036095041393473733374449897115027985248356745504937401188922252632016564941609813490122850456052716164785137449235898049867724483996451551258079577214822506198888168754718778685548281184416892566794315852837483259861957414654397053819867201089240930158591914066802440224503544482304955706734570440953110504348664720787766116216997286533718784357226021577130446909378390269598946777066485802346174416518612959602739402384792370734396718082868765316589163371104884308202183071091907130037384993636081403264958771070704622630907054786892180865799593161645954890580427583228380466884864132461181969428038031135429678770357422831534837497641006244082972434878321809747037363203888456106470337876529308603089638895744605437253019601661757759428335987767752967034371167221415554868416273575207634838250611444607677384210669862131878670541396828441257754465476028963935053152260728587378610445470916803268902079530048386058066209527562444900815039086979904568893158496649004672383773886459430836043300913826407808987478643033691776020041476664372140821377362553441167558245876157380811496483167631231236325403462459816983356844744031141183454936869924111361992917816441691331365948225011386152462657050992216031913545864420312895068228629996618901614133575974191539936797547841669428157956809202044149215265000384515938239474996711012449736579614590473339977426232626335128010318442330642181646279960782890042185248738818181126564157599625316865310850366172502349721314178471753267636003082659111197134827902425232964483916126640464067690764444760446179892105618884895272637625885776795710241709286077086020752277494509880274085909347010197813906087065028328325492384980258519028818655773081426153869001723551597686360556716694509484866275880673976908970507862391522452331623088970455101658005081843448451942158116650994884368042994423873520505089326002853450395303664351919080748656400447387702714577365409313341573636768658183834359040839419299895363546960420712608797412564895081223688951799472221662151236662381611325682899261988060725744276898059496832070621518968595723932772455883470418739742806937414064270804623620926490101628404322782435550522466229712423687075524304460984145290885698011333031604704154286910367436066901947229272233536421341556164845683187430033591075643084720923014137398163552983214506825714888961046842781106838651571702244234232901529492753172570963066875397079085349112886848916349518015029582672667149893685569815451808057950868579531336127695876572576074823144652237815402970608747326225925669145917864235663195085606853648398846661321518279758493368161585783365047264074061715951651237133217096006342028881644358230092896665613083773469569324354037842683321818104879208058685357890387001698426391485045801068133211800240875473507386107695551612349700403374385470454540604986976875053150948153479230221040733236253162314740451865865902075918440072690600576799925309222026139479691644572276961217323332833032828913686544521145146232091992433731061545794561519533584062578225574735569020756614919649364107464132425057102374312638328241415180351919316094197863855361039587575047396728315385400678275785502667122493634468149744910453601048762858635304227328007310626614630812058875318293401921091981518579490384757759437012779686997460160132526149536455630019172763031449799160936974373287418720986124997927252226907122146042801744915965872316796386368935496984980102963309818914889752157722505972965166080334491028796800177985527295390426961206087516176697636072646919647148707538225850132591439569395583285737426502635052715570212930749806550548850204837084740140098274319577004105306733921482941067254481575669928018928868091587932010626293667073609428768659148621562748885196434931066035910475103939645722225327550141711355399301586755759256150605682293173523593624439788766594159783312286393827765578778965427249165962263672036139095290176820252134199717954103970850560386143836674959403262450393312055426272324281391473147222971247951256810618720735621631837297434053011473835372054251908842645431126743629825890387066584914763205056288970588856904621191094871523860515810777638452500169525437903697473310069444078837388087630627348934021312524867574953779371118678091075553594072976371790263800610503406597589029963055496711410888225726877255063640935688412871279483130553177917464096064025050488412100309939671541657140635781001649142385060240211547296139393840950413803082931060633349860110240707944870009025768449016422486144471303181558250453061012365542455122569912326950641768739701563013466808598364773415849873950019842620800776371711675114273758011438254724072065687599086425987692246133359540102754758314123294401171140565653114077288155382331376832990263228913526210415373320149236790438526601964791269304519069050240946386046427808562486750716547980102324035658866509253208597574198470989288058361398091275216310094120606210142365230703547927421915753666814170363370634021786252518111502496084013534235961394361875844519767264068667359152464990786029558246029942376211746817209905062762004375254654290673636167054815395547319083931263836759445104302295779036276827389584787879381146710130075871115687166916725398301966634336123309057487203671563951736163332244454605950743695208293159104372217427383805958400072617489964181805842554623128507604762742472367419925006389036130999158308041984497859207490890042627685897924055901394661564538954609633492354671940402144629807100492488185930651970517673298973308247984050496869290523236862295267816240425757203895422345687353525456309256266566941380741141657173434550706652362143493427700695152782983521132699421751812812500062433605964692413177432556082176011547381652563638014589074971748769022501500924313114674974945438050042066719860647073394780748011975610516701834898908394499278530906933473466865558638497962493177865676804691662377810301187806480414677095954606062120572940958278312480079226420347615514125440241923121469359486668482882614220709729637121556947694324985431391573815574367633232078036366774949033611519044250974303294472521578091118520604797228513664516077598926835381805517325404039411924461988174540941258422591489689562914252699123155907659859806427054801709510375014034433280501960652655605962440717571880442246123322927511754084185071220510094467085656349805551433590852247320800789923727860879946414808811666491433670808946707381092229792784016006157379726743956061347518894237876550760579418411537336417962448681412514895659432797423386544971916370250245710695415613706484917856230504194572216535894529725645057785116590824196448139925029204864706594520512174176610349097295529940898939899359913137350947637912499126971716182776519314472973817762260982062369106321518599505790444961685756903744938644438170112498342171343255344358698169657423901571319177115020602158488982344872993305218056931306976837097667624662672325793874276160569871267694231989262218992331069260260482342729913696477310458535037300269423108662465581259945816853611361428011494671787050667561376451916284819971699274453319798096957188713121433750741028112183481983951333078655360821533349008342215999807023761422156666846887742426062122218787371303370388013875500771774157478018124651396015476877802237719651819808743456282338589152470967181534260561203959612112023328676712440287856739963428620497337318515643344089131250117489913165744339391926007201610146616856476900270951223593960374912363785731647978574159669554928758450049040952253917204034539489509406385624698065566308295004042908998954784416823297386733543580609000027635084294782603479461929797317431020141027446831734820278481627301919090481947524428568752473012066792335855566413085803875822061678202183368676875135182713166175240715142614452721603905299684586179426268563600291128093796332126088021566547082767964520975136738146894226792058146820651678863204439239674359500442349537337197838029181190213948638305006491612962068898534162090858517832868455460740998380637368502018681916627331108370931651312139920851249428266916538998741090596588528697352951964453785927910733027478925297333487367248872597617579855591834603813530358830936170262060263490062827813126885579387923553761337515092120775002735925621305837485061634103398782550904599668148158251767903108469971053559229379519083670978572205758790172134041390966608483376272192497312447637686355841336625826162796085440909999892000153732444387144712931637327886728542550214647947630183250823752262438977380415863360822239894944947321454174742268592600660861026215586939979300074146116615164079415219007954462406342962493782258964184692561115396452232647903292946398963515326449475040424122592533092205329022010653561923853327771612507195457623823268644090170162257655681061340133994949181114926454356446522785889121929756119356176143361876924255449308538051793414233124751199358727804199303984266375752745361336324862735386707175108968837417558698228281008323915929901684205266274871628846779295212029360421388401368838303506495689814877189886173068799960665491583570989237443849533990906350023369348343694325879642690893627568948085475669889181470932635829712588762680681498045813875741746424042083977270697822353787880934702677690553235112438838484723158672528418650364822623073041138009049925516873736642910742279315084181365311594656162165280972403602229860608539308086037953429607499108082005031180671585054681416166203361475622253039006234692673769647689736098733821825705920974853165303667027631622327933155409287727795078198758826220139782745668794105544197851618192751749268815664324065183997482690524358200430956416412429740122218762230022496619261489161029604427884446123950080008582487304997817699640384059623818862627438197789561409000897504812136947596167321943542955088403859923569223591049432230402827729346263423782210677178054861461034781038676746250455207828736191821260267588878656863179019146384336541155313569903941854324893845689962939796118356362442778806501388689668055077568326412856822258266439257264301575767207462209758192982280139974524065026599653193796007790129177518171106487115478434422478890481493829121954080885020013066031984353571033169883023419639613249046493165190718659186630595839253697185745349320614408589640635017363948859644406176081954659291061525596611020091474261723338617833071316141864699239827088497193475681918970844118126191506903130190270931604579774591965173620958047845343025323248117634848557819087530757597763792487081924194035981088394610226401998625174714464086777191211729723775353915538893381013226720057522536491836640536271460025879178521737082699617139770205571057927218257805779365474197914937282900003218483704887770770246341221120475294737226088630048610636578862803766871576329375576014286623687226783965480961030504750113024901520305711828760114159732054586716454815593258903378231434908519555093592065174769718134825459093435990935238776532805284107085428033653527552575503102284163594053351449290632591438457291827873247897349116200987455863656767095431343278494620897182457487018756028719546720410916991364967535529955528321240575707423393511561587008396636320584424492759800585050022424963871717125578459483894829263007232921073618840395823439925527688324717142559373677301655437646897724875932908426031641066019015069773960776678880249131683258936442691724559224752601917112473470711386143852865846717559701860441709037299435962942145015695871389289713428355604994130507308675184828309372660320067743507453378236363215566376858739782865188774103753301020284330179499320083733606063627100992719263082969298022795125129816237450999065939259192418904095483091162193126775954158748243588329673699881629241972799570142809463676678878913808292112134305390858350694162741058370923605031618350448855202450306301242616215591679077318124600481172804770949203457994043027516068126235246264845554033614336125448555500109713046116512668983306362865024503877655154173637861999845672342664912030527053429370859654469923017226380469371204451980195857033780155415369275494568575383501065676492322020794461032825939620914618059865604898503184859058178573346524989541225164908645580299140516039579940856250688958180922081549092884901811970824989557283488523142093417880000802052749268676704108170516509374816332736858861456847162636942137150685826507732709616686543692021104117542018112758431418417079000690114661468925564180698130451642567131718676194949429017965785679883743549104406843163953181157064150828943154513590853998579963463508972535989987984952129348524913620171103395549744537746901912453347410801952357676341489920247676938743947585027533274694186051513503049094110644742678779170750365577472243983824754454436560314569006822600978301606671717177972901558619280703883248471075733487535135094108994105988980696012425696006845342439462237233601999346128467311326177440398583895714585574513258021474491741799256843799909316476306132806352858082486041248840316972890650197287836258821079236116263837697020041341621379697824437202303054853854671940404366233093738447285895097381223785348332292646977710826427778075500499077433297098045184989532582078284014263161166520588797491136914468356593039571112154933990455650964938138063695998285296268340652607287533334717709835415030645383241042840927863725548750501865165150408559747109577326335446936561594736640493110818541489041800635225009158609023151852746827203138105476052662895625392165354528574010830971820522266979730285334432184963937233241394506548811454460505149283119646272098188501801646301246067257631761486341533015672656211024592628181777600353372183941788240927071626208480714379469975620834587142529981410621849885165627733560791721090417684200131533471436950655787228720397778814979403530007805852139214358177496751129512079578762548946873966914709757973610293595214722445557267192393423284421736471376135236571371442772021810042927025855137655570305586524621864022373363546519223742776490090119833375754338501201643859497118802776854110134626252493510207951381428984249572676309969010370347630716289908081690246771416719112611002125470146922823859519849330858417960877118447316355620000476233319816682478769058270601677969708907001229151305076796707141368975140753863999853763547236632914601640931161038186220402741599649346703376976533155019019949205397206854871287987200085427145461716342472659266090926535028027328542223946462085223951604529879498958469390693382900683904577143667727186441058042696161217478037521077804088645882916270214035567687603140314406606168344481491714376232454030464975180533058194301871027440058659714696112594142067158151405492484016111132521675365636730589813862424792581055589176128125188699585949409463223300934670509975423751423861046867116759001859584707813444885388229801217083414526979790927645974827370832905574037094549572632949444086917710897672964304493552274606952272596632278186498917615832507080120425317172890235543181892193280610126531339855947082752786008231383897957167463065230649807180968776494947754869566369754378231218540723147550202875552428169522077292929369011907903484235463907609390929373426654187112183855044584556913057049565034905381106228369583376900398308015283506042119885574964626700401647912336928834332442988516837451358246437857407701926497724967771642284010358500016839565364208875279691708633607121020261974026174764900490745716627202796115448109148475895187946489610089406884571943036799521551637121283227904095079108415733956828239920339056066985121255383378696337912798735877784169264889128969849814331784263531271635828431839001777382053076665289909475216175176556377218191707943091818196352118018365492684806242419194603049718954327087545953577926211229784560400723123452259302448778194462717194028621770688842133324872202229006819348313185295059572421711294524459654733509707091566523383219329567296161817174077257920986610267070680265293098274164315843733049595866276720145713977647116170190216072128440038216201719292635898771897323550273453177297055197261582856300896743262518718012123797419935160907136239350558675370790275279898267412242710230863917816464388758400711880164261793005789620005197891198963843570059522589992387905452785770799033394212028616908156394385964263670173500240673443023775318503307585009761329147635689852676160508898335272066352262642893383531054055736555542325394823973286155585246198476853836551859671880684312000629769082277633586828442235342336830522358450189784136422867187418954325538108696290014776510120765538989756668868397649355450023931523052103858991428313509815842683220016406232175890875337290361088933436444788697585820266645200208146558588945000172943338912964938572764967559747828515897726468295142938122747933630210936493187367211231468732071375310404173206529683778809856616471684164195495972334143473761345669799049097114974385877636582536756685152673659562596733416710823307959694615911437772109117845283287595750447703359643517230528322665064724902516388751409462775187658954722310124689634897836193288313884480270290552792544294114113846569846962313490566597225595696696452809221258313592556695260368647198112160594877135482897381219397774308845230117556829790847500467433602459727261677154780071097295702939584296912234302519545868925129755379667273062410541699523637347655663642935672724825672225923030627720263014900105634456610971443859789909825014902624921005570189815256028481168858248197914138462998632177598764870537252146041913998101183965460810651513979050240936867498646202448540944895141655411682833608324863554039371600234447856005851811986715439524233029588780836525907082981369776198683960115767853871697800322731688664938281341989478907680956390212656263203944406520792462117850898448878231376632411745307145006535405436033545209727707459859056092072442517217953521518455541594360289720929919355638685279531143442561635411464088955207832519193413017126769526577773362079079811923898713401078565082446828987947889534389883778583464704981667185167245502352852685052639827572388069207264885146630680441328244560337588194323050407590425285229530408003208294488934670188897865462901654153458770661997364420767187505485098546730240724863100062045818211228226479228012392883351317654471964785001331868130522754466684835288307936308597743947528823850467573221610302954781702539368506520165798770819287728657329133543815136448373653911801824041977925472415042663857348738513698318697327617140375128212837198189424710548937650507750906116997969833630403387082685710854945509558531029815870141746132088696093708644605412741713489920529166260365121044871665103222337890865100413434723787565937185965273836714494381963811523898131094876658161552670063429087442260051330010422078270621148771956808844659108513965414190200482007823437442026850156204087103394256174562543534239522955301395754711842510240113602688820789962415999626345562335335183208879250547738394237451195115629183053238464264672505950146814080667337525761271706760728722896707403969398395283361839146087311462892111649419439845693990536418659058369740633884281560869355714412832393400635530868289648335061059964102592657737181473123822955127375808775002252565071837358765145480857177878458353106538338015189830233724562446843544528052271955131480119447109183656350394255570382186674254189249388869900074104306806037309734237959459938699411732712910016655947212808219531847645423609211000696056527539687587899914726251982807123392896807006123958294018470919803865305118991919070983408715544489426587162442427984008835695834837841208434948375587136083576596863603334730058429389646209029543831220521511512608631176546377378005861733894939352318132455818443099688776005008564071871063837717898296658097450295996112879922607022706945938908530617679329184604130073074208240613309334718307809743758746713817535410034838076658504645963346224563883169471248995197557388404123617019741384052075730723452865921448338759058317071765215318584127790830904447008953322575656360972610742942668770678638912798766928399334869189925978354137615639154832217686299966439035734475163459470968975535024914825972115759492430385713235072783821911904784687917684734029714750406962025972393232443403177467270191752576553109903530790724274038047184137135086194133693886211336570643644542054571680874228684344956820587470850012055170815044040927885562028811099164762159379182025338198189695364564591094291722950240528916133319738591536155298137992308113021350164207349642568148413890408614200840901071986020091809622753217363760599661496390512203540220214834121965708623446301822745738667877279232011127674196756128938399186471601060436098566590482376065583570129360751491996240368853291307528440687426282549518706818650737968149292889437067721108851285760764978473265792075831958146028064332884699760641787558363397397503491925230768097041807587102837130721814373132019880102046541561867723346229362905476884822368077112646162483220557202959474149733537155330252734986386288894571033539391579778782482143522428420474494165204155114562079474587608441845052957911739118813820789098620045726886987311026795179650001309273560226487737937099053024938545383102198824403334664609812043443636357807714056546110243708576080251354295177714525687919742707987234323825510787679387777054848750682169574507928425031945596516645025939406515998432208005588871245164548627898227907729855693036105734511870367067956600530946471353190782060284433786654834231757291569680396871806431500473507370793531864801991216463965599889923355809688789087045662479986678159862769701375320731360683212193136884484799236093960167854663833899085065417953649402139738717777501715840247792779941126861128098730938992025072367947385297538966183706825834229206328044384348872263329889544970453213887944084349260519165476012439961796702222598345542338469982808346836169627673789430261086534799244591021310189156628838097001145482009679151401860162338103634110957553645807197647488029528818494892538825485279603483645512759796668517779005476850120663607646663768531541218178747151439422295420340346850873082277276607010613496014850266564188169129029962073709745751116930253929377191172728709019017167495303824239578234538505243887220238870020499145775622227481352007197097721853524753100447052663155117633112049450129057147889382224875571027572065158105304717026728675838497884553866803177900683666563448805601574835931852562047746951243693283217877319528759838616051842264240256153097399280993231953470719887679700949654599713190417342329032424992017159418504330954150591688477939061796748269741536764719223823066107691675137040784905439366482779851569327245121593143934811932960272854968651695320560342598603855343692288417227775949225714753621011986881173819675219964088975288943953836394459867390875251385039597116877432401502785378707349965928063088321432129793841639184006692926258988126669281733540305601747007443997012507109434820895963481354515527552003459130075814900828506290641378018411054366042563723988690416314402533525739881195630113931260998770903804313630298685745549224311027709510274430119386795342684309566515754152777985690293995573081717343762486338392881754542167222495898015435105385142157528888943506229074666314125149348469292446187319427251938702433353393897190064217328046240356226057485676180515089220366025408141524593155184285856261066680824014445391779864219746624325956264991845932506942265458233606933393154954413631883920613300595513110407209279947217413582941513195973228627613211593601221185927942955275507511025628585947997894100413001519308715623189524602818390733180458889905627849597180080589783431806914330808077574425353258042635312616211229129471006358001008708083992782331685365501638241914858607940022682465413611648687167448813210831096316935827217228850326170074322148708519158196909497695242003465069949049563910334605419601583798612136892866028240728362040118993566242250664827062158901834750811937201620981168112232136794662239926684277130480201348005957178973093889089718728372306677228930368476952740672243921043641923325488719340170296502793426010702985727221590690815587391127801348796141320784494395972668768650955381318712660647182005173373745475562980256836310864718136382252606414910689309924823111810114048419202969875957703594557120567401422621402369150868440684569415593378617936072348776806362782593299300359051780412530962146260793427414628920218362230957153319842235528541802678192895751283381637043695821546286097608685079668769570391439341630850614766309701562375950621187556135085446047993963942492551250085363749648483546726979455617623049321010755615027675195885483872697800012210461466149364847046398607883169338051979437578381985769734987852442997657445388664850104647653846970494363140926728912219184382223518856165933974637983085592441399633910261582185384166978035949717376007019981955340977943495280512269765197414386569254859253722352786610783168516543439304358046225969876374576823529812655451966896959955111172584919654818614387492683264170881768476199301867498851075886540151496526494911981910670360973927981837673025557221751646798109282012978416136921988275867593230366368060533428645787838067534417713873162457250422903923298259935381372784194516834045055521120120992182144288459714833744001979037553099672861195565157269530396377723598940778902475347627962783217373333030208669006925308772491761645408678010770739512320284658075763662861134079217662508658062366459480530168628536781790754695224413101345837328238080563906743733952525926914503412761549105632865541635000333958502328790840128438250126069694944401895586789393142988109951805889927877730016602412690438191000379513847617345028336301865708165229739506539430611284774516900465526391640649804823791745632785871075135788474545605405239071873649719184622911476866100698708835984033098108250345371755454037080796247506011400645482295803019469218136944905693382985918301640666252001844850037318746232505722030712228915834370837469355482719446653685702190949827335727834934167542132161947766325739322100885497892479219699734873480808181746799197834515832088845182780433386354758929648076928320629228444693102210030328538338488689841914838978341711152272376758594692907907694793100818925276390837298771711303087798492123608606283232509681002156334564938673978501186380455743124690160361760903637508234784940170721501826251140667606002439878461128783693777132365942435855868246159664672214803601407792761398122566949528012205866601621118657593906631521298532165648821327502955280039961770801512203372385119904186399993619366105430985195544270793323851581744173096599014695229939760536275416239578715619084044822221798241471047051150249894147374800723383393159654240205069781669749809283183759481799761111166532583624873915443030165374655845173565355400510910601573392408307645016406513634458241979220883712638171325372128034298701249134144943152977577981739249322550905982758396609170958319054012417107878832294598316644475891688990405270994973871219291676335795364340271741139291997154216789984252553012775986219916477742137160440775349039300645399209696162799793616559004646229443553752951630281199084829529415898013536382627111865722605014826384231703767192274652402278953363255740230794027766857589934662904177614703327341801774564442310844420477065758358534738413497091912235462804487477860724050391550675288692041630560205565564116731765698717967344135270811532360464815854079417998897810567021624346720319853104792882732136875322494993881206958035889098858651289616984226674706946033556273323475786339711832652925362271983844925871476825547506358439757736158235347852485104117573937546596856400488803915778417876358632959590680873427870056732482465203393251503018983197861694317922988618819515573272828223100962923995129013786607482905339191135921329564196744618514059957126584987692838227988122536533045917951556639753802235666328286931064742283822652911684518370150514949891924223434294548020972186203177372288826904394949006689166816299440509537254308575313222504801704628099548294947375777534741715552020835219184889376891428928084202347653988245570963333122817039358824681310522641942492717116429332919152430526260408324776342229712371437788190725839797384984087570696816364541607402180382570105293254130069849795928740638361897483029746949546944462620979382892516502850061731240377124603362106137285043134307009878994494617457084612999406620858193680134210222297427590847950790920291744310152839512176572010075446982736801755775569960120964711896906345401914471704164726840206355760821107544355201377974903774567420945839186758850384011401282438804856993923295672384418553587196632460823029947975856048747592306762283576019593975848168606693684491833044645301142030427623268131519108885416189874836402278096675745228544658117200443035413075447952534792511919968938072496181984221688156200677647322901214057704862724655364522448592616034079303886418266328184073446035221417806223378721372584370417501628866907500101947621875573593104836041295432259074664980817926686709608472926433883086428721558185600994028777678562603477976871589771712723272972547918145514527243211869743087699582221223800137531154693016854229179486125187756321235647322337202445632455527692947604013430423946286807813266940551368807401189537150864176828288602828995729534968862032949544969924060639925532658273191056814279691401713554430678228352755629515338291835880241186676373871434935569655788552471871807161082875746073237950528977915029617715258018964809316652687049048849494117070917162114529258329331342521317740157230808449001924433758915880440554352133000464239548588480595334533457757143994610531519414609980438356096260737513432420906159583138261995933534012830924065777244843480467934443275888314446928251074084760206065172442932322128443651681449813245634801643099952364383288282591812465925620145338569732234896966148474117565492095025803651846633624378936420974449361948897084231151854774417015575210969659174070658058443838208982798396722000526998218636656400510806113298359848306999003205647564041520182872476516855834079804053098077420865114654867877473783056858889894049600368093343027079865570566553025463375047347275491872827452717342309887378502756830531704057247731044945913171803577157923584025743058632424673800841505521138476346824267682431456955131721820836630913408462988109645964318241850788341933509969512525230388126993499804330248747738971810524485786260441187524029931616188339295291779015920601155242406832081814937040104899840627948957624353746032361592691451910446111936787080132127033841195246990207014313734119225514746595234194836171365018444638269372350266963915685026405713013609401121510472760275034348458616755922621978410351524692988971236661702631706456548311002418021115980682906218950541412273470804452446466781909569788520354034613347496644021033487133672320036992020700418650392181513529520882565133232579268914832684478409102664422676088175135182611390194648273834820853275482357907357846221335075547631784142902290888605001148114582939019936236423895322520290214906402436871580509300375142257674430743289969760608993946526446400082957260108131853401339584072066273545657625218327458160909685361544328664485339591238072313751740912504993877653680803356221439804623830047249383119791440470681474725530157411377422216478303703864251403509124448188503213049486796972551977360602532021325477104871418584867739398851814973444818468867414635228818961876745967121453347912440770397988053298579531525064475195181986055661342274859074244124948818887036584259995932895791019849759064871544446981144686069631118669515670568089583122123813920278996382126413618085244546471816776892484073908160884019838562456754169464586417842445899993026562243011449568949220993771374127092549529199102446747578553243143644819730956445368411011796310038386664824259465993333474096052204519309611025518010274041042547790678421179816528977599570197350619267357373628123168167822560630091035739254813683763566617611221492761007713396858454342032055434266671641348687956549800635097355742599067527123452259024389077056837658133640980649876692132400873659105251061860810594753262781923476932700272588905977206652707099557440397267879278817180827258950118648467723509341345056649920913199962236684792967229899056969140037498949054475455664635112494666439896281736189130943658122622747831060253611779976979316859925671870449340834857620449074290444357203031255247755293682377373345797357264147589083498984192053060954565704282883573843070309189422735296137209085314754900958983633746686385438331296526919726384449323715144424227844918252749696449678524346295619618249189505370603850378728347469042242359708195485761556485700519972708514778634912604230503330821325544462299589994843442800684788608551475612040601407014448843909221451344362317900023491340142792700707317267103829919281797563364360551368991519738160923241368964085989217368303338598828034270519356733785023567781167084719737788648019747057233061186674350027077157247715601592792754521876017076666765112992381661092095051793008092586545320850522912189571442420794446016000849873526508302916097914736574603722536902329865127299223178017717613720291897249727508166571958436304937535764724783516719622493883643842607054259203501850502740739100788297596769860954381850230816234271744128045624766707809355506756754067854149782498683735154134340611330643269465613883523800918777460197151660972856965804785626629733404574982992377056390369050680120190760239580360647806769603869810346896187916132535910661419709226609935992372024199636721701549271751081751324691318615303415487058315827162399784937729206573181463938672012948598777275703466910400474901762474978783739960776213951654442082706176333073271051383990262973091833798243282657235582601005166452514321932558570121990856776575163631644670216079539036728180819637562486542551613703286427374472565957453781555202353010928002037435720959836500531446536855343786240220729303016433198238485678431919502640926729237920321535530538126930110095826863613205100635511775697558546635369225885463910157356173967339364356238414020579967066035578570679257238058072406163985036744350693722231861384133272120862112190792836018189810418857150857619240608439829281996549907398193541625301045753096140113828486935395960102169678122338456279320156845960885979677449276935151130798859357388970136635940431516181511474790447405268243070144867823657179757459771902425545820672908277443498531966530072900609089447807307120877345622472364854800712778925233959885761308103573833292286215904227714224784868167229353797766658979677801765450242858400080860706854568111161573923366185749440420788888155683247825127940129278162763014908169399467017180234359221661287156856437214732576673196964261416834398213836522415385008082829734214713156720500479604427748258175063438957954044448161361379883378758560496108584500053055833372882664748333362038333913931415859064593133869694952595607479761597779746559506252357054131418249474832891539448561320403645178386852395983222281688875518867372052748088286192853817200378371089419687671399236932683786480898032596403040232573711458431093472559723298099237599972283528420625322730887070059006395430234001219038329033203640222723395172509027549935269761366307963677866253428066722667951632216810280019355538672880259298151789085089391718972423252686267040596278909610513206623273871551854886961379948490080933613676718988150358373311530816519810522154358883508256578051025571993805633866882361984100248681151059219055314512325300991744370590009255069741062966628949491797513011792535329997562865840446234320084106591211164285084325508081781619865673888801374962681781635894523834881069744534958619467098683720922279341620724490323181456794886249149996292746335057253037050833614245084495748434021281567914060255717789950635370691752987158590499426656226004225900764884402008226870913863162705306446917331512814682721301447565111163979356086773162925648817035127933850468641813614068246998663958286803002396795672081851790548063734299439900213927336493371456610230873611848518738538890419725036858907047037028576648958742121300466938428001702627581751693530231123205195983704766080425316502606624513635533550033325524079967920928727002147728914459560014939918447428056451689299408365363634114236105379765545119302258190124603162261641311330494669751570437737506363489827341380134043307736773293696212719276666599525806460355338790262354846028167281932566459981944447473158873710035172797159884878423785622730418314738631690546030867871363494908049485952495015771843393976064429103586954288545652399673801134248584466186847959228693847159409151522553103953672531893213400991367014677505811940765420830411094687977496004137236551653940758086955370665172670590986059003657228511648530662100931882856098935524959821329755053396416243268928230210113222802650346561843884933499811698806560663668778974475026095370571190989786365847060912020633775518361079123137772133603196410719114106512600537524230411648117778436945981788483134570606887378681398841685299380064932571635774432591321021930188070742995342625744494365391824352383502792671850168461736442114081630164859165792823591933556410176597497860174438403435926210409109186771193802720694330331020968878589406362624213793475282073509005226587698288266363714014385303549648031808423660902430472925018470244197040155339150073851621512516382969029735311437077587564635466690553067215990800524805412254069459216564365580853326726515482556407304554018175670318099822070180538042592657645472376763001261772832221221454537599453856803239004765001617279746979381538228485011999049783519633982613781672033952931475647127363818709607878559696365518502276609697189860368436025643746194719623141339968612940403707213192704112594067115480062853445261797710242301296713380098003754538539600094875129075142651888281226039014301667888211188152040855760124988050040762846395737532941346557828033004711896343367631210195561245614938338928839817803946120117255640319088912385502236325336578017325678387968486599276035569376073906151898576389293316744136343565359593866776305509851355530645625432991212092936455307342886927182738707010849244409276517411475659821011885974274753790445172082835396841559164296108132519240932608558419067124480783579413830590055767385344362356073211913464560306614296506395238414273807490027266531133459872040678952876136579537060664945759928756262583163175180662707106432647278353746871652954981569313140006407269634527704045706428174379631762568011311490772716597337886162942070653985344736815078416034049097422380690213710185023347617837334185398210824943441280297389515613125471068720262247837219658686493278627275834090978617897243353680300935571519622904170191398999512053478754414227211573908263236628320680646467960414867483783935030005324264789788457699642290954877379164820341446128788329161057533661255693644106106791984221244958961026121771771528427735122331134198164676802933609716606113801901242562080721862994600201272845801149359063479518613851760953206010889236584741090559312408362424340979118517468131315179786641090823918868188602180839925581672740860389738448359385019675656684028448462887242540137340699052519086732846339196585838544241120141981214480519417301424100614511547768504025538350906338484819099535660456048246853432270513970611907171818976078592752155023468353308084161459120272589109599370595936847454141774646952367624805007501886306928590942067417722094939635596967763961065436241425200900102308760115045739340434921540342909942306231839148894450166288662054189333869250432164027372949784794743398252478684506609170315152312878811120779110478083972605160178560006850933303742782446200514007615336461958878606462456375121286463109536342713232973237016533504411443164523329948968054616948530707634008910780269619034955108396733662342390041391302909802092430750700015050584165016300135003625089902550527617545717610773715775138004846944588005926508216720022440636703307674471310975435202762725580227779232071401863314191088088701989413992414131164097095239842792148463133388981062896366960958036124040149715983053250784054765540303195791245138370130666618452066815765570979073358264842467029918341185024184363649583539985794853213806034257973036257974465587615041129461115946048935228963751396596506722050057442219961270470827473315458620756958794900000155883156380056022056000873126078096232674218459240338826395541465491575331981748151745270371493101861830567792560099181396233771154688948840826182873582889758794348687607138765784524209952671170319259569148440556141700249635630644567105279874088842490242710108504346260953853459245574508826917360533056727565857446582273118522324544258490875579106852329041730381441768735281057319047737125100365086909061863528497589758781128930301559510636962330265117001686809874326092104849091231082647915674855521119637134925804627928666034977619879126682189504494700326231624513106297098318838135408809166004062105824743551588085341488287952190341437025144720200437283748274480346584147251805643146325535216908591780041440866681757300684112358127602952899596106802192565528255183830269464062954550245084268464823965854937598121498616815673658171220625091636446541905232761177343380801798080532015505332418884033101730568318253279664715104461304033010555236644842860832816042534262445304123063835523882003966132576701314017743160664631626737010452151636244024944750424143320507270493999602078598038744950540009007707699863397231164667238819324537313244398128358943227069181075753954592441118788395258305183261196011349637576458436856061206390519097915607969629806158760628961820261310085568908778345502402687284660471393065973484265325307666720025356528700236729219187803636828863072986163869596353330745369712693410102565403587026113612914392088160257938517287423865933930584174770176688613504514072776291952641307308221621982949862370671738191533722562900056796716326822958746317583063461773529651115407896026680851097208331237997400656756070915468996737684059701376312263124200499430880112074310123320934674957879367832180272950570617475065510401457757608341290313274345424768922718537501857406361971750404163036334669590908219215401629361870811191591755485926635833555114012758562056605905755184238602221158555632430199562627975678923179672547557580302151839782137742672069277568991262914842990960643896091440202861173707541850470757147573383719465195571771632681243555942700652720109260856310419970192943545201222953809133618738751084998956228709684742332457661533108387827516569004358000418594441759759027018112282653119301795688363948806709184862640010011933208067513131005962607261702657861940544745566310695632974015994877509069462666899168957001951896546138465851177873819235870195034614522238505234972369079263030950578689872712658030993200748047207089585935696683696649431398577993136410901516763814672251504198024233824850188124482449853408250595208843258876051736751673404920472360236349072301991653103565394182453393935696701208176717597299638603886432403447088726033693163611802041264854244719256431573859343468406007642686689448231993159634775005088322506893663108299263513545315158125423846144093069439215211527886118041125991315994389196963736837112088426730485341505961936801301208675690959896018526224485991494425364737414959196719237047293799413685439250116526616853757458967962805668071061662772282056761698876407317297042966084361032386281097310959485999887253172626540656803706564038337406909859441190589473024588770526308882135991285606284136414123271835233612324763955007731136812832152583656871022332273828709509069330013510763546086298115998682849057484092908758508784866175503577149453376481591254030608578817347783141404377078709293450519030452449828763212738017006641588934721975515389640726803068728934797157771779350324659265665315646682532163867069547142465167140163567213013125818478650900015354597483335977377373008123141387916601149714598318551331746207543558963284156537574584113858278965304984296803385385541350068034154600936109373951034362418719301279625904535314524795538574320325418021048872611595554829871518654628857429617343337739199148072834882325956243723498764589647380854293569826378114245991679782724305725332863864136515404459974583706608198109848067988064852329154604175073716910934457871518577974090822130855121832446600479574803539703868941472571456370626512863737586867207757434289175829898285819609875997766393044160012410101348556799714095946620168542047296083024465672861066578820578684141985028874261542872932122257416481214435771701001945493276959113947137248518264713245223761019861347384754017761856521457564831420756929962634588859562344944054897880466626606397702742567379217725111189797320046038888746351768412748407390784183285168967686126048299423635999694751348616757785035435526405325297566749912030908607797198452745721278511962351397516230426924522034717620853112766660866217997995236675770520425689705111951016897693343191805791688845810569675853502024569501600563650954366046427213707075856327131679377664009583742176481186375685216847207194624099954416324624208230727038702949897036283539978535974679173785996981698129332858190405419774063711597838507885598200723582499148547559178786506042189757890085828483455195445581665779387582383484313244932907558990422803618644344661468156357503570868648346484941896502658532627884709248087757352435086087192265092272707157287531735255965811558607062586232816920631132610707776703805609218395332980464728615465097353577829179795521661492922164150108997096120405146652929042646058492808813192661762204314532808526391220797607662781971617416263575793641065514521039551940649589348265773360220547227293619248111858806308696643025544130528338106228556694971976574282967422919591161255866990208360605032791315056909178282292105846612276610945160348294154737305050218348784541688063692271888027627788440029094539377770443873417346047138053720318501112099975441447117859579178304874191551739962767271453311230326845276019862991176508483196229782959714303849760826045462518623762979787361506162864037559934572917893539265195272335976378538460415878296823073926309321852756894039637005856593664838833533865082505545512766915340080827157167949539199672224260335439436347438628780363805307848182745493535758337994809463076372987899735623054715823107009462963620579172060134460276774783186336029977518636349199062077193403559688580228151715045220707581557199912062294684825688751906673243575684586207241160990242330118241259462785167957054846926641577890438448433255945826694193614097333188236942830678927326048305592477443213391395725681098884789567340080743279166571599561241052041076960045756976259004399675765701344579874187798088913697632435761310016308249128791624832521093323118191427466972485733864507673566868105337291035879890830284214520835824496119311232685282604633702427117878596416030190113076866724994851219396802036311438217478551452004021084656508696146371070508310747674294785349559802050930420883244243246027909715885698763677511470056738480367861451169267073616356134249016768320647492021446447880433151083525161733341337376347505337826374666864371568911158792434883755200795147238464778462312913650637232589977870905662650188768276847829315066117846676898127758517309055155482394333752060404872409825428828924404514060751718382300744578688332971597923220812615655784591147383106681954132362573405129868518142113110640090432027053025717380172955921238951442295096937400585406092023472665521825996526753905019677110930594687362595336746682575533592688796006275577321613660741126768314795108996749861147155617975231452947118884303254272269518000368525796905313358634573168915622763586406327181840048824678734364231915322429182053322794873734261306380203728689405182980739708411808996556806635511583888012390724303785659071994869078508768572625044621964677877115825358083796202975431821562819789600832332456025112329127667132735240896217389858962892576819094642520872616396342043244619799583625508649139962773269097429680129574800107519832124565600086303017217129775240857782587607895068985666225647787103899931512781350099955076636990698552613813172851008282274843940667526531721383706972241718305462340839456077281809802308798409605426585796265621696357320101159225839249104932759326978851077496435026422103565500993705313826881453122815928512669364476381723491049648200851539940049863740018235909957427463519918202613310448096318612048950780707764307423699392714391413314216525003867894017829535073824116750710871697781915138049767438728481281605620622530676600217796864510427141475670810098950746237539519139524699480096999851306605660920727150039405776353444813089116674163630481769116069898988537214875930616555843110205053962709348841933788078087173027373194154555800994815938937799861874084103065180218537856083956211508493360280777333210221059227602512471539979492830076642329954381822467301440136120332812729370431781437916603341131361815711638664848181037199995631801129368207447627789218585256977728946346919562442853978619625537898758819878190801648338478983443544254776181253747742733892166221329036234286063957844028648604054349394231370182121446812123294778717829991413295591082709802139216634975668514717064904454645042177417600896557134402029840996369006694732395851984842559205760741094751611103300808046484827254068509179472294997769590896470132506855230533781348227805645362789413698088262543081695440260762777423386784062772266076075557201839551862967535643287862687839885666428977147666755852946186648210244345509663977843901411452610194531744761454606059156805559283505972912114008585713497148744862372100183051034469568662259551182143994660239106503703737127231734848429879509542489293895704980299464654532806031821647666832136109694849542992173251820205227434637203039163577779151411212430553432527064018022379510468178592412496223399179540809701122230238222550548026946216391045558103923968485927969178690441544341228304865714066801017470907267495685688047219421620688245731571222179251256977461822669195966830923809431658059459942733557685854169088436999503945266212442781087064741175912982878223400187977505305760551610530767198030089900088026971359692549976724731242534970461487946372502559652683249649385481887937719500180352793550545912350724171785498428326053643456156616579752603680591416970130107556482688906932760136453830565158762645978621259665516025751908787506503122272121200286551304645916133190118887577919510674481737578258954634049630115389821197157614748300953953746696741841903034023199116682592209257371331270255776911240548972978752053608509574915089353327422351005791966596269813699923526402191371568791015631592813929535617908232540189033761476884601574635871945160084983700975864881310503595954050735122670939963406191466421915967574221089151331574606459481740692634308135970422311237413529187791704929531107910733263676389916933658086277572887147091673352654558317825517748254654103650696760187779652907851268717888364850571305380965918235512044375534176111870486363641752443978893541451370128186085557740429920994406630131586157965947595311665341237923733470387546870436048763503316365195650476319972243552792224422423916121167890916671039644476800498251868214662157089177104213440278995320652094859317324692310809969631526914748295282981338094413509559597789677182318467603249633561804898392558999077183734895381742625769974747133446913341353784863547702683700984858152576547334894077143410710461822811261748708485080671178118954716486540318693659297789717064694696629387457933705575952106231702675438209486221635983223600303018101409362811599492635325638972292226999237460898310484051145899099679910524955661602395154287016920698614357822837744778333154171928600739207977330098292122889870174552182529328054303552645443833064511425992379549864117378972223968062720515924362779784918908033721681530064940083875221689389156095907825538499884630928726529556419900209847589766655007484057300126938409062643932121148888886555274452721728949801567287850288155051807475715119640121412155397863926303390809790392812703469067115565345509631906480392794942077220882058269516221015460876138458770701464231628204060284927241762277323827739599928624591569499456865667915505945117102229416100466851500801798733496583148405061418350399112078260323258076326016076109435382070603921760013092449542806968942750227659445114588427382082308747654361229508573756058955509949552725849416827455450894262165506021923157486518822050714434660425887467319528394867509229463622434761528092774435165969562585739687089655210386285660299176765582539124067326896954357544291186091218447108243268500419844796497630399075388967024359615470725731469136101866046946932390952831773214877781716890910363095835195592061568909070351870216832989928734015159574227246971276376526257266865193237276528811370640666016087382205312541713978109347096245532103167562593359167128062890935670812615496528508758425738753786690057585853633051417960513327882925803136887492144427390847437096010756819393469253782348228900229172973561914643435286320492351966994491105730777245720751134439245907360798573885297165999998768361633503112788822517834577460842001856559994438075196199080985575373464170346175188028607765454514943414558399572345818521637679358021713753674625475890567934564920041857927274615602982856609322727514709711430009843342861444193615063644502154691132383428681165533409198022422513684653724217111814725676992864846551187374635562135089241793482558710100594678276818644330979981840008405804277880208182112457221449758165329043169946577987020501286641608328383822893724627381263675157315452596084143453385128637419357524592021612978278420262325398094108231591292902360110784821976009391927724330829417470411703990712975921176305776805194028752598844698494111340715197620549547348461767633744862871707118987753182985853572733572191092346131307686636926640321469298772742002907033268874858105013063755283444334107798462888810786877146318001519639520151772023915397190122743979145431221110854394631214870911013071404693475597004998835593576211406838009605729359232363592829399768565050060350307454025544074093327252028000106763302658976063545403575562137236288000141075556599974477675908056382469289917055506034767792152213362793244082666381699782707936834780901500274444117648720732418481616381967092843867536768140769507040061698351163880593231360781759031777895004674163832015012302953283339051131901971871871175809003559147930483918183723508363750034149736068992346503298556320179638065787571798993145246521762583699635138383981616426032600888931365580463149536962531020538461413017414382329154855105183539080499692659607781332081236184786249112674065313494491353907774042801899050520854068110889643235316661147825931964337868412438806379894193423159694195667712390590736791480539151382565414072264969957312313662618515715410707196527732427223746090307192309262962316689369569849834257813683526262860758156497425077833096002199448616768564786631419364197643694900770702936455426351519835085415128206409539878428292629490755173187567492474478978022698588924582987990379727868515086861919447613575230885605851796043347106806646328948814455421601677922401900717240043455465549378911391625345582610377529023084633729821862246701532605298519953402418858950669289822617044563778645844825317966425176962962641146007931076798168121887214602600702854791111614898201760762444050092916917830519611625855115087279599279455598347683737638609418275171329866748325195166112724931946060605427402410061541548567782963683575216124683475113422307276921950208549440110430727045600563427412466527806015096702936303484507687111752702210667468028660860906828739446407365641069683946882933488778470364414614305623251706722404926542643573213719380134323199844833559528831266647863376634805375101076026435782533466594905716993670221456929191856585795636937722530183289162459876508729960427628429964111288924781192522953844024829355041214549300016864915880201760694728446481676117301311812726868209649365644698266256537473702337783379750132053411364273224573718872362089439474180560715740027160132568464390520619560146116067532104883464410680613372504070085291646338991292786239927942098641821724344648226736716036851121609919802040154048052166028492632642941612910024084884196104840279202155654968917548986979116351725811855803290470577170129557718491108296393181726152691640078053753933356934085673595315983863118409781846911189137430246304496521655654487232912927519430295196872821866860195750450963715357586460525365030337403512028744659302914302826722349866600722270533400128058050909030768319582063339239618851286153844455976691569581169805406457776287028461181845366161281482303044196452643090392894182361052481754336278038757907876973115970390255464520120055160989826577866786135864598915576850979466084200554322352608493320871758420143232263985700809112849778082082552926418881853717466089838680068674368935659086724523349564845038872603792075203701136583901434100788249720591596948069426564049170659404274033837561681331205261363218355280604475794004419801662515611044393130361028136422949792472222312926258775082134094795873611139913393002069616089648838185834143856972704585280386818414227244566338729002827560884288384915323041903231848166422027411398721139885484353462321748616794269542726137317089974688149702405865929319928592138430127560058455837598849700240722139448693194905878712566962904571742291983584691705337315141707705024849196582348284602208442210507671741561628774667454052637641596542736306672716250844194430330287556409874417284897502419483554958703641482049840714527100710311466341977597462358340966539441154370657430765088295345162672714784214930819024167634890479196476388147802767480463086771951761866088803647850009047421595238113313810279017375010299536770743188684593676470621471298786574858818518326851131891935066498311972732001907785822163912510080001365357423153159172488715931913527626950224425320568779738287750208800841365911380004267357262135557954026327542025797184186730638688336626024168359194789404254425304572125635752706469453585198616492232899484960790472510881455997397774669936217731917721529786826235455125179478967239150992825575617062668750159109253468907828378475093731097437541973204426500079068183362353051552297143972738973616886504838515464882673489462042848027354979357275756300192453870915594524589609785263806928521760230022811185290681602059485588331320146475445595690675076652982423568337726301062115883859756490079517630792067986402202483357895095059596105175542333161791332095021393041253099091107921175094911532870689733421608565524898145415635934800147899058730344715829553050070119074628964326536654219188033859690564949971996036567901180507874999660474740701651711796008471279279390959988491787724276009194234856736264136117805561478810544958123306073075119424237106041632507811138660044680031083131701376277044681045910071243495204505200315445756792623239300292427667269728807717758025754237702492993171194565979111982811718629813670299628094514864783170509486732003821371385967468941667541935515863098491312969231372277033212502782764423065811861012231465927848345145895114169665977331104664497946078065818341302875968955125054648873123621003561996079553610170835951664269498106032632783771783019091613917838508285857843506670587634806574557931196686430442116642691114629919917513895976808192863322574405512719454934733497750648172031471296041657697899441137959014012674822499054279042478205397221802339231298801057020337686417658518672983230745066183982566375019086629875630380331662150935141554627428597356990660239611926729607065175541479023748690597834257352669720262913848103553585869348486409038499632067667119838821426339880639265953733358643261567777551631954598432035287878286409823999532525650671369319928233874048867828690414999996549690048200014010190856101992743302329260112269697567741044919762796019101698842911521306159812769988953972896707766088173261183736356262395961625522455024835474022898465597716554800320009268314629164830960898864955434149508290748612771847999555431842774037121897872354748616650812107025135660932641803881233580130058206338166762047384132259398230120871330548682673337017379102880261680577687273360921625154701478906880213374697008011108002021139429665998877146333339915274909896228924823710297637243077308115832504849917142644949915026970801749064919500562931622051563949733728885323227283410144349239184845896662756232738732702311349660187737278106668490113275237895988187813870258923039813953056273477327484401883533319479848359335072567765719719607829795889441905792065941207454402377088490346097147171192633170445228556486791431072711103976057685606818684116509038752930427129010444335608194997224334646041329216935830802024184354599512518321531900243007803279920259492018571600792881362818047913888089700548973247261866782881698424563579022644695195711048151428894044278341404203298170645987242929014660372863943164165234750764843594961195267436563452885430582427584127989269885627780422391495026153000689291334181285401834827041045239352690724776078806943054642890573765653075208082954515827153812223191384109334000793172945390697655488784935807386122689129617910018685744126143197659185637043143312778260253522237794997817430169495161879366418163195901292358652559651337871321788421210442600914341851305760412606443512222932206674905661240413809147640116836730790521001509546915224494477325625060707622377323357792252731658218237284665291609554677605683417647403696599659470320411838251749694058565883051836609951434243113037002340285330306363660105659226265789232126549906230683631564910103983589177207227845375253484695987499116345063962017098075403123835996339682156618628165993806445803630195460874914903567110920844207798284747577383717012238771380575020883276218327351907240827745748196385912219077217209676130714802768251258881908886226803673449677544051656169393700532167161676583625184502842035000951002237442984129687884163652950806135637933302387151356184352639171197400325824894687700849390166562739585814343522950089375461727398486017594058826127264591366761155549954879772577826404189714089362498120432803015421118655548199001216695286677663707191744568913531936973551772481992014069457524835319599074760775990418833534875722209153725420819367599544260078369969323360139083948992531624226074711183464466896667951022804427639415176679149759322290808078953929656633069838017176169685849419843802629422921746735546579925558075299309627104912352620477941505494772391086799246848520709760801383226776872347797611462617979074669496387043812190744892526647258191993885527946158448305757248949656179319888845564351974216157462841177080573417717694722290395446419468516178504285954359659485597496818673893324515843665671189986498698425476490524318509286529226172336662089086397545248290105850190967680801430077179941787472181363454538746660709615206452201982093940537945745442574270441947585196098216417880502913455823524070085251054245875390388400977671642597122404070147736435259480055396072530722227810931032832910673991797034780264650951401533640606131820018133132878883546191495577237273934265370444543409840582560342663248779572701866097395016060171372065872216509832852996235984898507459529766787271422521802230064359730578924351796365090671542851836855033801823830418982657743914150555401298648649053509584489065988306995188273697117490077085831967539598750944275923088362912093803789570957056270620368045067624165914597313587097688908788559695543613894291471298640005545564759224843581231323041971717433000818940425052095685817577581050080911558518249124798279144885581142020894423484906663785105974332434902902522650913364786959225886749274473197985605722727910073918239080401669965567373460373592225892002201288852767019638301968323189804859625141574182995793352081838974357717149092619641167163347140763890713323328122979681037775272280251394896871958162708178754278162113216415552059773669717603032790131581082163014033637584038506102748991176607127050913082957318290947602595294542792315005018044703977913446270061597781300340354320201095997774081922526783225145242814612405250854715951387794175563662142238010388639519883005127012082335755929859279132022373521636211851426124188836552634046907796935427833518114528672113235169897606858544483760659432524606881210128239687418405449111167732644054440665705321104949391329577937401365989139454116006204607544132474883129308467758414473530875752629471049492848146306935664294163708261961434735803245948718820858302491371322934987934993057744937287347817088256511708221176633625267201034893586490736697175915258839007266273374269331323080391543423930103876889532206051568047197150015445497242654016022949813568091030182382715003664607212953496034410085734739313664361026616073454701042202150455664788914394571600484669891503009478675083748441950735661189459910440221398490612426951536603741897058432670663829473663453389893364801555758784235868622744653621060536706501319864099873834933813220479318968553927370954044823819892490707588209560984299083887577443058857092443839095645293629854015651209067917721513644361385093720914121177488632202672562585233630348907874654523965584224462009898468730491082924894421125322229862385575538025033619188257604267906902827208516153182116249385406737363899561968610315894890551030946540588622019909394973537539009167625506948988639137348640990689823048115359688570021036120271784860665948441119466352473883467103422717415062227576098373716000678987137571960469665658123544297105824148397101041014875434470075852530414157818333298163969192358872713953988823733560378583324137206717203427338089207550619456855797906805786077185865323498694116447972622899956447472218660831916803408094212056162707086496201162276772283840061151009521101600623786527897331761326143722036100732043493854582419656782654299593914204831182545148872576516037626213767439718194172491587351659159763380716988739206957582950127152369759262349307441758761657932635515017223356053024230353334593984604860177048382342793083730213788810046663996191998600320304314478261860520372329338197926510412443152378524515069982737330604879925473490837774436672058186727135117857760739767218414618405041311122564413866018759440673136912252875904900307908724223965233921565415772445950891017143969147369671542654147412335923453314786896515241654555309119476823892857964359723963973898086728482787609927524206599490949927591535754993158465942415872483600040095815926963901544029710997214194523121907293607799993816369955593863010181604384427026212972838195029446128354762242423615030683739386275420214138453398349586628563470713946859218610070473288049340982040102992438462610094850830847269591495926208506249204616785270088639516598295297410188545685190858361121204950546273554887263777509410759895267844265694452871795170148422139743209752649318736974629360795897055702521368206737342742457462834652586542771595296903730044495099507918529662954052269915935953662549719062068614013927072149240193636617727319190210804344572966868539973124411030361672875225909218396249759354498445655570200168400233743214046123832335742724975708969166262803599048563064736423572858194320077262842261001969954182314760962912503713895724468773485780772431823815053979591553604326264784540905949924524224704393217747371533722127003435344791910752517222058942036492140164737031943600133009011630929513828685756676646532984275026428178833767833752525457731790911178529979296747423861959945629434045725756948063834507864952355037442889181412615566591113016027567181724933875248186588466803123372613099344139356006701869820138670262434123986474175256571854652722676114571540513457428527361936328627722417065019848496946740823697064062785165165624492056250488765318163788805604467494398905711520493251722671512560246102844598845043055053998544395226881752401442997393522735863018552218295802243416706954745829800271882354070343870682285570471036906514783199479357321186647645852551793483221815498056644434972071728885658470568999330290898128646217364850935428584159941788790098418446292286742851611838490719238070771000213765121535500932212909107573971817364557489026780969462950071743173749799342593564214362274926317334986003947870177761718724623083570767550933032243123632283007802310063442720721043181911970765521930318960677679631602114885230137345434512631929515368805740229614547804759586873222237892004469741428028284666898799418100155459366273225548247162803728215285371161501046666524854642366749728342230526133856400457539709776856175566597236137770768538433768502803871679021306426772312457324310803582110486869036870474542050054782026597765609822161275789414563136170372121095363772893280299304809050767464318813260905759061760480723512531043376550339422816353547882732182603249866551046531086998375965865751535418913785922453157379051221775680817188001344263165560306048524717639625995510309740716083742789529320757769103858577765313143054352114945969565359061950827390146750784699463007799362421258678448331626200654591372416327510224491369362286466153670578431526174393584976102118042558491994777938014869016721525321941291659617686284623801966533536879786647571523592201890124009555526324078140148691502254380730917804155173065801191620020327988257030991296941286010545215705898290692549725496237022418768031002776128691333469339380177668040781723389939340620936887679793355105921431609720117677028782496882532120487482176117351649502017572625706724409986918210823820364159142967431417137659062239435841353398307901817279444191501020578918768342669656590730639957946159840957453172875030558717450322297984710178105665736506337640588724483807776806025302391525474003879076130410706765909214665917467431142389961645501871812781172221863176728286406277727111251102818850843549598348933943766095016283795576313625584626666742261542445680044544224302312640170868111501932338034800692284248168416552528981766954359371485146783786386763839922111916847547992467565683267319200516907794713869197813656962098889419057968414905471349025794014576138351244388278368752487250506085901184126292398503136689350994375415370117296943871714005699445409738060164832262362771847311083277378880834197417565274381408840499509871192790837306848610971788332154142684160230587035052196436458804003189768644250267536078605340188273474349250490906210235865951212829838683088315155636785555214661491368119370865042881932546734705981395055782665087136255867767161067167593307983165898296160413028136611868624302797915688034699497447177150355722418505758979227218113329869577311793037643474441168484438591354740990230713223643986268242062438768207198670896958728753458354290474546872132215027505025155723889047994554468321331062875283646056248839497614839480656472999831613286574849655912110610204345327136744908184371765589481038916481244393895665545448511527403983044512490956320849913327602992365827197980370419619833007904610613151714582666920695156821390656957440043976582482500189743848714096876288355790420959502825651190886493431260865664403043577774155815321011468175726716407312932909012401163050132907656074987013663380833849980647781425520605310427189364223102561272292607396524033470877264608788994471938332682842547704034229481004638738587644970646346138791263188437289270654375162701645997830001139760778138027482605024850733092298094921082618263596687807018345597891415198618616811676203854127904739394639312486714930691676666644786102571041174147397253755545278768525478304610366802699960092783982264819572903590948753727101742622583414780180441394221610582829240942284902286701200741771719626185789511610221107038194702472317388451082312568739306036895355571567341219993821823685914106379995872050773408704487404014522769957130747319661534670920832724029434095098439279225013232400748250382046902935492230289378638632512656500998516371829575237155476225738407068949513028489842965578873981282539173427870308316360241099912598066489956026859733931939400610450118491995578340493093510134291579207930942305129210319834656383922543913274120774244216605325668540271325376850205002555565559282663973817329895057503505694388615487070292533143663247762235341672785375177773465733458657863562294374112579910762379614219628379533254254665093915392849551490667591889760465340002614895182034392215564289019364177307756363168490655609216110443565363198561588332748986707584102433409307858618621196052903968132623657024903029416922391219081093320528409166934000455315523473020548094114541169227346888972590188171520915567196172651910051187519155145346735265030937785024364255662887643853669960752434393447653455445907035229932401205560840790284594864447270532464054132715321805235520959829196848840310277534208880964533150346930757811752967923093638152365249221850300605090331075279813812645684980368444055036312817048235008832705976056821746535807740914311892700172892597756268435839948530606532871496567096377748699189938426461915991482114068228074161501228125215386046022719438314705996224350445221941894949746106402797825266136192841749201257351671624895056223390137346688471095272288779037607604783671341634852957074416670487636779159751780929922452530346018913005045802608791478086230040367569921690730255690236150735501677322886310790381574189410731426066397917976932838176634607683702254658804628724596524231608235579010942419975251811039687917301988873244095986494980939749458574795874324925955818688781381340552214550458085802887375445299928558439963913387341039384400095928055884953533432619254538901456941248952213785554794761989356180093727038847098276834437886547666895020379783238030742511497186241959210004869776263200367879363619889795120166487929898708650685091903285475888821953663895456790933308533672794310856360404818099105725359505602214031298775132671420078985319072247805558010040871890538453113851485783088441209661816240420885665009788188547355016903393752109006793155507133115843652376844836997792118391950250892293717872576866391570121263048065203587413600798178475160544226850780410126668261735973459020689161296073004993203938321331638929976303307584912918796180688905384375615919209359894695944760848204540459777904380048386566859388154766965829589559926007305733679810960819604486280735554665167884125710232312180186994831610209196664095990694345478645429746085751779889785841674716760735693997032274849127440614996397028985860285917074466607441571927886844431265803626763690950167855168777409174064569405939724653581202565268287737483538343083125368162722421540791223238206757498908439353442883104380727022354488928384189340338661495080107422590483336493627610419467703859437157352444437335739277329344913433831787447931089149123057951546822267831457382155287988204980776434699051843967450348572593687437954237149679476012675382354394104665486118987043182308306030015715165712731704210127428881950980545475379921319359916909736595901848980085564909363435457575578380342495358779079285246751112722154502436962594760417867286976217683736818280610086428458848422924229777571002031595221678355238861938460070902161863927623640501050307901488667024580061334803029293874448577453097058699840501736515324979890791581505833083809186279833667733546250320338254909525785686995868357925497323218538020335687999732512226890505622768271188621458354879027700653377261183839684410553096181221678851243937575370351235031201358637144807525410874843496696241742239316261650136654985964822741485464456784950020816189961829190574699366818848574426174427958369412034051472146006259281820824861925407055937406102148495360022973856951996276736042259993846988315465865912471561794591838744724137097637558069551747691286033673992643559864653871108763129579251002713131057897550443295541143149789343378640626145371989133587202945642799614236250270265988179377333483234396803775361744833437435064006955095492599629413068289359539337922898441131376660793077409186311724281178353117590715581610222290580220250709385913976308133367767096248905312552768506482929440351549213120780323055204447417328226568235453793836878239118212262397567399369018562334067383315611802939380813738140846382545598683979331367644114087013927579721311706575312562125771545653084201149699836410211469690362122509412393821065451160068078073296203428008555450001083870182524008299786141620467605050403023014442766528618478202099234006341988424290333633936023637621080919844512853006461142537854927979899736646772145108927166423349691221051367936257940948916921618745656465275523823670868676816586572154031206100535096654992565100853851933752279982125852692001264419420036901792249337887049029768729718057555662160741487886291079819065282144910447562533352803819918322776208914560706406978707034416652279203497467536884115066339745779443813637934932507270937978689006226932943662922401864173393065445630126300284097457974117268103645716182357559856169234857180810822883612824276224794879901044114745670250460113742631789486093440800782729989404270690486326353603924877777863224654819336713838449342148803743492354245423705150947636178488012784348607348597873101974408581721880368023877075759896466784277111643185700614500415622924721797306911717973627485822645138862868032345214119126811869793936826347349041005554196389175422758963361090967317019014755659655625389424582134427539851980760771642298364221182148055496244254674460792967702345943596533131391809483548589671437761147201238765447313145801024868489668674313306687437340085242316141593063028656126252983313620293041647785343604139846803005622841903007687801022185289073518142520630505503979487987430527922382046520255882977535364999590247587083325131035214051397358100613659981596584592360722931822033165535573203896349563682222041154295094902386625245332602858246857832950230369581034856863516724111766606805555943877735564309352112310171590831890187785157090435266342917785225506682885834850972961180295050795142168741708291897350852659939954211732503619821310449980231966866838980355556141814664035463714605293829237646481586551296348297469776124154911567611611769059598736885922191713551916758976727964648089480777199143166967377439511656766035272577312167752561343590966669005110600372050255545185618723767553130485693118746704936443532564819541277314434587668970465384286030954500398458324700197300398047776432713154471045478950211908628510079400392132434107254005393663030898987090857488976779283548247419367709424525692822702834313552802699081814541317164793386648130604426190963397612379447596621105793152854651766383502716479985650037550470490524812429260736377414886897580745319236750484229222689455687619511309434012184793841493035788185211947241445773345307590391962150258388557171519574268301342834105220772447688632058919173326462400721390818165441703859895132866832243590509762636956528898501171269055565908509900177566293433421944181222226554270005910364679236317845999986816278266893848246480992276487935052641332423316422577468372847208634678991125766162622460836957821879239604715629678774633967194904565406468981954999518503845415239580684959467750699993883523311400770888402439012921885612748640341875889553040742992947307488659575017944861853741942311991334005628479047935462750867043394020798701810024602642302684595709478146152147003911759685443464280685782215587702928840710065254168121026192227652299331111868620226621343020769480671499421469697890730821003706620748346891845215927636602910521771265295757262633824660592468329237533955227899494136644794956272280948977603178342378480508924577015214681885194553200536742600188673224952626743190548896231893225515597642798239214282895118458650003700402820832845873863321204760458846189530951163297452750697484970537357114163651766060716545789372496081920891984835096531704178690668885137286273591493660367503140783468559252401008812505928131838423909000447798415066398190913936589437979398075094751800141748474042314304359187459250171039393787343313406209789823881735136992902611941184554093562637286332661736363052941846726684792104199374001353388282630929967388785706805078573861471090531209269885466003398189049438939567747940753682002530707456384328641990677523434162596141658998772936470972059913282998562166594931414307725885356814040780581282328487806139120867325394015491868647235962123628177494419672964026377569188890219730781959608970122294222761708660671647368409082466946122574638804019531542132766951415532970536701779977394422817006543110810335036253203570252762679087178620916038788135805382881418610696610851238094674904234490633971483911515607083998520124713812809826221341951571842302089596849838918023150840761449972546104695528407749925810986760211673476349157069715395234947157643867953149362438391940756914418734359758557927585376926504302216560422497416852821641841862292480474499910536710549197653452170648242856907976466499859945699058537607733501499848862775270195984784906520889882310376781508093383039907960453587783182200840533726562426136137551294683737146844550347065118425998947665362197218175163575545991534302579796834778560027444534929186477449888325520276067457139553371876279935461551275868176680501595273740153439362843802240783850738312747908062815682932009358044913426857681293427595717969354948564438430372060946265685615419710428662272226978150382984055945256860521941025237217079376205318394718124772950965465334580940134329255063652003153953957696165866105557286006661593968970175354746823169983694727987765888890984327361009900948679907753786693218956003458962774617335239945414208631283334829888702712115429346259929312975636415690724241340042417120520191160567625922931651090803568165960908265397467990362510442011323373172829066787043832248275071107812422090866467484690560424972520694109620540980114445560416191601300112617865651588837359480952328650450034139153972111269917111263924256279231202075663399995293305675492078971853054110522427553202770135872365534997298668013358888269594499898596009353010644846243065407940999733666500502704869274035842836585690872737706003450831726313466836616536735832183653864404537150591937385166542062479379936984945543432448320478875859148170488288924456663492518923017697648219688328266125341610410113122184038907541359570904369198698565802906801522470821213134923406077581829949177427763767464338286847813305599831925893209623404155302697683146433603743435817340263165168085692517493691208514595721335838113512194805304553759933835705277915064253726050092344938231470267248635984060317914192837295852817620428260901477811288233757279932886540426738471599141006519245325093784523999897448327438991709412218742244731418487306713654761234733820457188376201690471468027829185016639922077228204496149795326381438556645358663219905273954810953159173799614746562989390371777535718100389123544727332812649059020242947940518533783026827042179360044709628629158923387820881983835762404635836308962568616583193153798001906128231556417034529440806326920588014824406260515450110372636135219445225452246658627055202371550409852206714917564725604999469562337734800641264520790609309475070212532831229302171601658426642970313587521987850000697600090767500140279377355332613218374524698580768237731411328691386721091300043270760421731668907774737695865887624930119704001190664336400335936691302735247785620049195948488997555091690362488503407279497480792189439140745874494561909085005330994403165345167941256562087854435908798226049836010581721304895007199557091247934832664454957042319807455168284781783094856992209010380603228610206016058294950017487347488825753295987837394310713500562202778938277282435005093658767433758850145646307126533264039217001112842709264323769766491906677979418908476363938450600155647753446124084119211152253594525157205853474702893818238364357447314283550972926145596304363735736481129459926126247307923826469872226645934395065486895850759918471612883770533910660101501587658116602323545380067707290085476685015775164483950222506881773554021321273100327157849920900324204991932338301373004386977824465298906116517158197319351387803037733682684161132973397868801010270447000254343870459771277019002596035306581757655218731080172680889492325425109917333195814822353969336547879322183682542541508715054064151803130652277784828262390730745552445612360719529847295846645875956097265176474143997659134740260681331923640550496316958802235240753934166429835643684742448171888486115033213980226771563673221124534881793923074088935749408577305908363082804156986268518636815310963022268977316264813020202991536070240869493413972501747746448554942774670674638760811172882254900165900855464828434250353049976744186547570461404794126350039384022186122581149678899892580001793498418320799554009438878328776503780621218741128843957678013155740693447699791254960479057383264923725959694408539217948162260419519705680635050247726025744149788620210426128527566962977202340149276435130610842198188462252109515197895228559999226731501076148791727665462213242900445957046355936665859271112217863253001114608046895716666403746566276719312815342648384269524815092294763998938782320013577299451977674343358056183061250087537436965985212834329031486726521725207835185888066644801105966816672948621162968579747792698611714261710218180284553428478075073448704669482471896527833853602874555678000027341498872406719928399259658350672858605415866699228123134600898343604457750283051238933235525951773264685953186698584130733762946183478726746081171520396441754154447357866754176839511361131209227654837074691945629118139482859918462620956485901789064947233243508676775477068477829522975317707396858252442515037923212503349005673790050258458908127021500863267385948645297676933370992781423051080757957746259716924412768837181967393872843765209838872889065173886159480132361726099892728789438338296222743114317772018772774039530939445436014198768447678514980841088256539526018263674192701441989515223834723276658051280190084254691442613851164345966922077743652570915914047583499690503163022893052321351514324605207380006721350235610551630572097838266084357190340443214992117317462056094809379274236097492033878009996219213072677384204970623384510798063169521513899147127779048824824038530000592401663462451131243935622954168037813498884233974663203879866911976905079064961396824524171858655985921107940190608017646278804379677005613426392440783806386468837535960169513453211721590961508236683083375733258644538492621184910599260130205560955683830713478929178713170973354083980751056210524994280185267987188309026015820465126032298365803848910726423546913726663380040401274838344242554454778986324981398095207396096393227457652791490553568407127914267132410602548412355238267023824574235459354830694251183042681354135237536690737341264981096255254400809384803677745352935637599440122346547304016494772429768459594101246862714626378490491285765711373155950542496899476512959463748465192995901609506505934744530340485074686657392040801461480788290801346238680293249682695816093577650965637722198150553155948635078760836998116656168083464689264954583131022096010718179832225286215887098196996608458044305001823530782557160230648505401710556482134143876447572290969053779194363724613907966167609341484317485277532943073777300506453199807986846083034295454456799252494344821829697000869364873325752389612837017330087912526513289215998130218828339510409263597004170439217539482634323449695543760368179367556651480339778193037557309472163994139104906849120446443271000931538808879985281915272384167452663657792695981893354414072666319249557681115039189355829443182634232960663141834651666787693749657008462816531190056842581489139831674347582485880038515756092204845325758851834107851112497336733456961255785830288172555499801989529100648524555037278837996219652311926847049022262050180669071432054919893374545965222252651557515704665103719808339461569199700379006194942927611808065921445023994523531601802627283825621462710708284822328853876284230878371979710116383885064492912856489015251600903140948476251757721904418391630940028320741619789836348399376201282751135951104597954173665896424144962946647058018882434196059651841111857586482647314723199878730477848734724561923578250022342900624201551384062968986367632141427281053546433254433440727837567515623319671690353964453505414927610523441732690675730218518362455015096750181398087835652812766569827617509730163082416541433916707975589296696056030661133170464575168779810875435438794442362586307050778287303764705211883770128276376807708313027342116411205617489848378556621457662944961215466237530710547825326934318482569043033688882818091161311112804148863094504200578159730814129054685953632108635118090216168162898979125641575454589752543014975382002840926620846959928363445718158660850957214929166640793788196728095164655539813451009932519280973502716608901273648951211366713330456527833711245802644049246684457037815906710550615544912828525068837128403671040753199424836118860342537638730972315795588687461324861721536681202218187586206222370279280327447597419481470077903932815306190395313113977487775260132045641043184198525084459754234216883092876203917842902927850874011386933851854613472311564351894317643852706015810519973610989520323142075539678768636909384351635585169016740539910120836998922821403005014625147771659081199135166436082665867143075339069322968736350777278496782816744717937554449709315972636359233565864582218368533381877813296353625391138875514930427340814057009293907706026892120816912186058296732820991964979885965723091513665905001205033624460179307381076702386893447360601496941058414811333619545526301627257621289943553847383770897337220447574272385788774430554778651197356864507858787053540929595376530917257718261496448909341103339173886329440956726077459899544653446516000145936958601794136749929936254055926262755905109209457459714973416631304305073174348167687686460089190142694442852023432450542932047755859053994928214788175699396587386941889350831024807091021280665666942422095518205005309145395260541727403409177052106673903175159504999474874816576750525498732322436053511739144392475941861209337285463075172699391325056261250282693595981846663628589240727540013862952760969620124177353905844225037191210498071660771622842654551066210322293260563451321262674339543752957225086964213697654373088042444847628084242531606921199733386906691869143555034530546759863488260382505141512619392800378228363087106118310296777407637047300284678413974935576626493352813126814255845979886423056934617606238014165489163394304428503227712873137508629044971753964606310007434354712829915203686644407758926617345671776375267964181670000703448011462614862008236548417092581710037504630824352669350675545510421136148895254977120064816901943166942111510804521330125864703739106963068754566744060026019442050091229684674295297733995495464707730546470067255294589212792048734889884201764201323368163229367145688606363690581526705948357203250837793953895251014235776543484447741673747708476560806977470813468743587885338130609849193284932786206301778882824805565793772324204995519228220218398876918916672767988888006729128476834305156195935377236627843630253648938401076930877810195821896346838096214931738671692351992289265932076386371863373851887343002395003106193384086937609089976445390796066019389994396786311591976053114523329349003633939072687524794093384816712579270989764644132839031949670040480095882079603803086940604767640735838461773185906764662392819455024886341331940566786086059204533946329104617635848746151021975766393681023290354511455672486338849693635574953996157229710690188096693330500631293930723281508827644367552922537102280026129244300958960963818604339890460364978913669792735651222314044885604634707082980436314911501591019129131260391036458153768699969942081206417202484009998344608820402052001196850045952623917925274628553736195606715886728505661575085535132442084146591759232333405978507401062199233804751338330156319587205412781990819391695602336500979867407049755357273137711164007183086174436235108644353513156487167468004085663350164296035025831364732103457103003365935724044220167212537275856594905885163696874516336512868708929216501776371711401185878290168267442074197837365511772347562256761767460037647353242077440414611878448596375003802896285185231417531316445517201963966709082415395347027892260821389081275139698799209852974324244445546041614255481876968882494217597402209635761030676978338697431761665704582498898983497184871695026780032356352549876310666868312769745105621550295473931588182780400455515037161381420126850893624856002245435875812761594419582562691088718103096573888989991984015205042076229391764333870888220565272171934347329007816721779500072942446108601453009161970803828923019516022575176753789014027503121996892116318285479745441760339663208978782878838314155094121461772155666881309887494859082012377781398563548222290436644805701328442482801855269166049582291905098140575061166416676218261000355628779052114109900746986590455594531616747779583960933406743363640728769936542492562602981403736338676914431214761541413918141759694043483693843159361616866104850453733969020989419191502098840213974051748610930627136463967676388466322015490301943258887398777902078680599576319780236845882634269892897728878704367745865633743145191890672871273795271554006926853655158397594699988675839095608178371992578293578290647446850267451034336600727490121480601282710689877841016582466705917478905954611365743800677206467904680152751809032466105371524062309221306747660483120765659394111665065007875123671897105723370320439815498657412867429832494915278334891758047172695303954353632929378190509216532296835644859382274481702990173668528108206340458787071125300243215587011012925637834662703588293260158713477205066636295842426281928827164579210787227643940615205628300511949346789902613833908061062040380917767945280996198041514122073603559864871518902089240696248907717491864280839075222289380774080766995514026905926542618223790897875894433135945265026494915214458724346188170735333908483729734165575595827511304872534971272094805237740928966983652380055805540219408221585196572640724019102914377406406445009853831739753999187768491451831443692567238737955886329566238535422965775853841115079846151799316925184992092088028564826012842323852672392492386806095943595316457824507215962650597755329038763428799533551806177097808065512113665121697102945864082981049861353871126848982100920330709701047946141886408820818931759165039617595244211036497675316658660976621406986460990667022720528926119581815048935541912769932744119184662111087972827763138842988943307108887945427333591123964868064447326479203070144838595881735355271903000514939506425304213327684727814060032100347307287257224835755238644345141683784620532548531371585273399756770291439000965760886373378804032759132708216835176751987252279108982096180157922367068015324690474429787738326706153372505480664459266679444970575559187140737470516647463506124247463629372408268619085630438358242451136606635917665855816560179792361265005322538641956471633439391491461287658020852396628387589732465253330658320746233864387337685112284812769603161035769683477688033594552950380012612941698452816747884164382441426053521534479104175983468147737272541692390462945708139834398057614347869250303886211173000253927683969462435885454622043965730293404529630347066881503116460907180890638896402270426343226653012243245823916537818111326627010102995772155670267718033320922342333477645179357794921152676833816880153593823238451887541065569796250799682098082461901968131540797908811847290859098692297580957773802208574847724685818562300413516903497148787593905247052885808029510304898302429228836378972328171346014001011217605498903792104619007959011843963843490101942947235467438778636599315668590163409730230605843214031651141558775679707210737573815809729052823651294340194011678145744631127763734997128653335094887049757664934993113121720389385849609515661362355935677174776308857346858817380811822353789973772658173242146473418639896603957379747608257717010037422337298232787628009132057494996363802530392254610206080068678568504085843350702671336677219297388851348859583382780807722971094100290398000284417844253890908346296742115255542687768439349526870206441393916399363940585448847178322218892698572416504400733345198827366980460446989965027555774873037586278166127779760428691606351742825089439187090125458232165983833834854897965260991500179672556415164516189272776565540963363777483220161981714718850485159005668761822145636316258202891515863112133477914909626895388271725364831152819629944454726428228933380549749887549314031896393056297409294280289184768940557627182808054448462961468036380142864395539470791550833498102091300969748588033215006212019182438084932792140599266327291421811675801311131078432702449382536809873931156060648806610744450171579747896281383056857349066137999081788063849613563888583618195194384285660017685819744684732258596583908760844336895235018072881782739963074290823516009747019113848245644576463435923529224474405628250969913751042934765393150240127919234842800877188498757762214629472692091890114102325038692959834825316790540776694602574804677918423898783532058129426375796970373621209217295650490250543331275828601370622254198292395063091749779896629987386882953631652582231176383265278167861220744471626281118356475324881041373986428497845320376966343483988792803056846367579947347051216598370143346180168187896524809579933513871307505136496484063309869363198709475707117530722554102102550707003661351860718272814271806357909987874405738497188381827154756218359614591679297193567051099357935703045660850303544236260855767357424379458700684916575976503541584764547167684661612169076573340306174219759977603146429981781430616006879669271818945207423741960516050753723177057736356484820478817462429624295615737458005067906350568351317816692150659075592265952518356534134368022533222532060436633154149003432817948636894882382680865679310317883423082940365384828518731895906412201906086272338367442387092286849936967399983022716518390283916058820960227510202967341075311516816483880661432939225914218866770801120854649401101702402431257080239072705831864423678581133406286198656324426393669250543894266244590751942813712966775811374912296603578597678219856692116087837758190402599666707697729767614048355297210921510205134918472206475985606401582843050739206294120037271503176458398119101292328827863290127628141435304793134085812555802570672705977338642527486206797657653128818429300259389902055612254044961530058149786290856723854440996701321281910029541249277416935537377037536883686918133544921093959192708503191211562845150204355739162277470216917853461553214385083694802737208066265382934811667691754930703571898741710458997047418284063570520307523664631061054687183653773001202939741954485691968384561414254919433903408524240979483157658694503193844740191901420268266679203910865555314639965414596942928777627399953947191936945492717903662265644670424434760134652211645503890899270881785138785337174932016393697324641462334943059926862803399698085479816355656884153645083959999885682807759687463415422639890158136816899468577315913585758326896083416808047548553010666466914827955320206990863832751112768070623132784626952696189059344230685998560356451403344233092931138238284436072579098307836120304872770217747850778661996124483055956978235952638815720754444664069398818759806972212051752390197269318070734273950813414705691961778814697998283965460401271170556214348413394351416667151257804915606901180940178520390604937743930852917866375521712754478821469369473354618870954951297745121390350745487625031549311659283878690770150852182888691774559509332828162368368144744118495675689168415969305462582959246327961774257415863352384366973617940643930952485829124601098261086996203176669999556321937900860590271685650181339569327494822971535227694904641514267775180824465027023437217134898470003096899007391072408084920344441485908851049104901845839809523281769387325091633075773963376316858374471752149775151662146097789230607035502024392404445545543174814393983159201197000312177867527895800787407312826692343225259038263281166688267479647809438187220373594766982438308669063944510939479735684313725632570187346863997719127842462218226323237295960562950705275607401581540741608153713401728055338704062775619940767051536045590390539328247375439413611981859734763892166528096566583940693647298793846901084857344187497530317767459138723718515182044624083376404497057235259483467036770243700655793973765182712632328654719772021447107846370489024156571307149935822067636986392215855087389430310497391324852422925735677985830919629254889499279831901406571861925557905839730198937601218180413064474626257640395520364084351205159665127649381012923090886411470395107193262409616588396658422149367461459245340669726908655227352546243920480432557290753779022195380732966008214462595333230148849488480460625704653124571175139351257473077081089590587375685163818517642264461564396983281696747461637841907227792213569120459619912216717875070886969898556687726138912115305618559286774382924981809755356112358411446990322392046350392653073188414879066989990272869474680988654626811147695250832101071564268551547879813557042860195906340753776075923043445074849252632608707023514105966240514568953818529221115871601791534550430194836550733149983812928051817412168455673546513648692249801593180130260118315803535910421311321311384315317743238520548468892388971782290655611195544535247147752036870224202624320974188098597192298137106263292858478113844148509181611765215962085470878393908218541763767908972169931567118591181575198379168507938870249751033250178148367486994806243337789266310037894926180605028462452403797596444628223908212949984254698106433599579526776622560428445677876484699201875032762033104252565500557845307277207792283362142861835136808379473577923921009859189683411776606270973860152375222832883377648333644964060765659785399778437627799504595944294819938954876661366439318146720287702733768335496876009207096524910970434066840902303728607550841420786648081059667369416933714523667601837372642886788898435994555382960148558792848280026501506135968397881536870312326513716165151394322698564578265342045380833511547579046856476277723915251832854644097404886429183480136994702853167392255927428381733993043691688497583011856483819511415908751713205110420391467391128962914819720914880537952126457167358811544829462492838696563344613682612627621432364562264974367298417502395111152585870707913646600298260754851225965273143621050313554919993004414269885262773647608657724790515350976274707789597670439617517262525393931687332401017309911341925479791800452850412123754310742408945954162491481998029150680097265005307848836878811212899463550224012402098278284610743262224176340334502134523960751209664671064793108644596116584130722449595288848344657447522716326956078412134894048475224096444002785668146122320030782065871006064769515734388953793855904956831393679610653806351877222302426088621114989497826058378066860415489973619948155972787910722937550026231013072437044512234371240547974803657226003862465642719722298701586731362947276827885923981514650295680813179965468949890943435479174542919746451977331910283111124042095229324340533955842697886083082575435756043132997409617600564665107976588782914998726532131877710045597473406298205431550705437418981542259639727195375513841389980826220651611997304195855633234669810584886200665891350337647046530532024810958283765248013984493647388593999757369343533516921583285929131403679889119812744306399252150938358107044417770716653425712448172239710324860153075839153220118219956178580534311820063164015147994861085574735156032215221220294735863102973302474200997973533410444101250681007231265220760815551719691153747014768519418973242670984500182700399975674184968135520362221196421683601192258168672477058438449370142060990751178448222734196927897103080907516334688578066591031867264051121187713067545913163210568868230761174539653637491950938634735328892123715498515551995447731427946759655882496131598660973843172721966070967789660568374817735426171244221902342914466956711026710659014747386529627600713315283728520293875753619366999540999835843866352734511133018638296999930449703317891183551334181260093010947142674986529040578226047221268458360458423762773893964914613318622592548525044273100586322085182035772815629484483340933822065383277769549901088666540079797561122159470153787031076503169863153706307531673757939173380456438316387653676713041358808451027419648198702309164271401234084978469261590799114262132844200727832143130356477987178331008988479936989344771376517452854705616506907372647095917928228890815711611071796205369883012691828238185750915226906213284368442803470050896534345379717100386889854104223641244683177404242220202861488502588537695638505718996111285530788127720314651029663037325760113860373210167154107732759566911091213614874877542682399325482873665593825830404828271539371101913488194390506162890227238110635596680524262247408248537737549333097737031501744756933555859465506217322966482054273444224271290818847332959011266990452513482605743976122273805941932098012566335805352936423625930288380298412989587854072038978232023048565203383707360095122517388647096765986537663848024580480481760620188393523472237273382678940024305767603142428502790237494220703349354014797926378674303915734486985903621971921628854783105348381326819986012313466571078527903101680797165608561335215976929150395334438699945798924447606385843965435209880894846620190543655405228545821835059931310276520592259867679389578867569567448099979471024461933984844278647732506497238516321281512765953932445892135033842631079926181417129613036570620113954957000269864878501858233098213190539785113389849146333702693638059052198732086736964278162680360944429839684106894345194553987259802352951220572038292548176210140835650958533249819541590707930507644227590393934594369134429302489644207380005581847314506089608195382466368105631854997983847869837088490129777689347537341067612592132305964477680166585599042475528547991189563120772693118422004071638433695832820105325843337813366468119674537751644244506194759449868855126355732425617758049680523386813197172361465491659730298803639437266718338384186036120851688223534039792145163426449637636903916606487144254945860358301760086331646111224890864151221978248688492891215259186226100534692653750676484138574941363471617385546384501708648882938517161571635073197049884982715123635228783139012542004727604282722353756576762736842801017534076605411070675893364868609570963368731259431300145234016312644437819532564165888004281886803237531610987829701094952537743485301784178176719143351772542558527180981350405566338850496137844097666421249646429097873144146843105944779646881519994208080855890026413522296890177986743589543917856345279281085875552256110096791603682026568825361856292581812034830511568811049526503339427486565681701687808347448086265035812700925537626766141496020205166936006598796765197832556241857617038110104883469343640386411393594021808380143246165343554389380556531281347388247286587503011298993282737784706499601683903566810906988801924766811748216853145441388826389432750726429320611047231112591185437667966331169014431760601268734615784284703856251339636779666285325686544235009073069486801952653737155534192669893470625900018740607704828798173256144852414057748237474966963896207041139605878705586200333579661483465412892288864720306417379486042306539588904948437784512869523177901025399951373885022657790902881144550746375470168608531174748147372482596889294271229352309085680695016258062203853538882025154115714371025015821178831855516988530526430562356783469317725672423929456243363884328390017571900167949764219925962517357904330057767877485242996781374063537605202876084075019047121321290665212953338751850339821118129856144678158553607931290450680698952899074275366576476308207581350818735566609544464316702244127749661926798715589044083189511561232567314317468544497585539221872338200547211406826735738356659121144485493161619369190871644050411479403030814433245037341502501926533780833648338032364940128989915393074532924519899231649990187128324050463913088224123758401101392623847604761406770021313286802780169135663121378258028079944083074874070511423255407139456681081363896130421730814797769412656832825816697113340275252332441747015080876154347161069950832900542211148122384980059918226348564158126117645451264413611064459060349736757695106353162764852381831184147555022292975597125253191294654850217756210535084860018372294782150696167731176346460850788171199505342729211684476758287720210690550795808719745032206798126284160453030457979975046678900780947996828281215146724477893248294614878668868867473530128051519638385694679771606398942303760085197064529692508124970025330016631764899790360492909215559459535934750832284861582608172760060144694021682102359235424902465969343210914975217930741368571113216251360960294466448349478309490672800865489023691137198773276823029217561818546473313044677516040072751284966816912492999047363154218196963732788117627013355432393529853192575017866694921084360011859136464223527584702246097737653687705553189733635856935115194341938067134097731108088226072513386195530479562282155862189806703441286586341885453102822332791102112305940558279604502068073478253592311668524873419613031105698525064969231906239594740577179595802757045545951624163224848065122910598642957705512861785670138631442451385299322116389713886884590678218139603582010868595660943066163658623999083919488010023877041322612079134272165954416790275808602688018749454925494366949239268501937779586487374055256644454612858217751240765307869330967146204383389594229707506566633338648465739249436838703261237660333333320482733202346169034906208179325941675376574804320362942010220120988333287964545432234808514724745556457228414979945100119354366045063369289317660128138040920151061842904662897913274807210776563171373620515404183626074892977222122346519457261409583958825819021973836019565588158889077516445695812363653983263177036982965385590064559790083605048734218852898023703576610829082912140518389645601411928300283800178867108451581985577914895341046774550245756208444223088299575685395156693951099293438756993212741181098802140172736266701832149806395458838973612680574897713079363708723078458574690836762430162058300957263507133434004362552544970692901774115842307322004454981309405784323047327155936944702603676492130734569682331841467728440302522360651095152067463824063437058109586299590430080848273976056244228551012203546379725667875174867156054354918116963683046441538781684210011952580740346372658847237493867307570819463275514392321208965839239181653839096912934078728441224089858321203669730014360858294728018162724233586302774695108641636444771071300717685752453548549202488784920854319523862947791024434046411342084213498622159739522433229180835090050016340134196946833178953290661633077091937717852627801742403924596552818189235871415752575780702569723762894567253863642967694383974784048053919577402810367744793980105690088064378524134257826259553509795618730232439095967020915132060431626820753084597225447767562945580199568775664721254888739490213126311775610459291848150554443363528586710032570526201367147177839698457065725287643303813618313250910923008268163354836401635851630276692013879419927311476521684088084803058205266769436785704457802130030597593777044290883334995356937198991814693758850105917881562073064389089636893343344975004348640670222315393823100274166278455404025778421731466234099089074721276624135903723166535580745039970100763030565237935392896217389861874523335360864800210886722783244383365355940197719392185046596479128882513173208347019066778459978542738445095446985415106826049738421282092244395784078826813360549973507986107363811888880474965597006660220163017480655067534083340707024717789744352667117587237828020121769869639659237340127981625115506397049442522179964470723818680980173408903177957800394594192755621131209815743024140405192784705664812139842904931053194201511268254098494344188189757356318038550799474110280616695208768150356339203065776583579355518666541952676241084185085483555676347944245041864291256637666759212180553259665914700867305069190184635265723913897973443599574903634690194098917587414166547294833517319332757504006535812443684162281000648004083487218489945948004326417652499432195546751739747640014148028466007168120757133761205028324266089530776660164239632452025861273733614523012386336233982707683550123410697819080961188500445106436608255782964604102198965655312585045559757764774169178226274293792102879189172272628111839646560296811120613607049887451764978451937043760377230268398838020737402801671619767929543695899461590956120278348514988057843158367801512428831262967407380966228164574518007525453329607751940300898959992132731899720171892562683002522769181758309746366097968883820954024993228378820036680033139094796330532702595379021802904427493866526518810218556183390013567589050452133417761921822616714411718935895765334543573958180738398978646575921259462700976009547703781039532217848936796372058826041339801999303033871458227057052992713368328337284169731328851802830559881997235431470424332591222203492496081567880802610315990784307883950508047254699185965813794454642628189898412679147472052588139107742492954272653223666600955949230657327540397759903495077780608016951899240478871050669102990912009120707205359759220477697527037384940945460190244204620739306906128150415955674100376228488397768343140403174170341446617994624796370247199485516120622228872278183249854239803285832729492549028091143582087889894727643333841767689892181013974567044611441921240152983211175663839323626880361187706258335601587369189709496345215343914568131776233290747636415943565971090874460778121398419348728329630393225167133654602998633900688394329722271125910037207749803122412393525887930891406329865893253871869357676501093324419624068376352033485334663282272407446118540892577287165430932095219416259920104263621676971696006094690607625516888344378565541775082541736743799330834852673107519129032948935249378645071339597842369458246390045178040592776689497383677445574353278841147152123565835361772579674624640304266220860186479250314860566701655804037990183824478412198227402868274774562716521399395322767621156669677301919739836259813589492805889949353810714019818815018276722947080585869714054331801787708798937027871790987304783327595533049813775400794008556475243767013057588125533848679913281469071202199803160071948657413568805332142333335333958736907883589764652672542303032934168222629993834308280568787474864835628865132768581145689913720912033948742532465175475462418116425948849443314608612697761688926794121794657044759442731151232556598188388679976226498693263029984379082477320073432491330762212560591571711078020542895643447247949443707435915550085419458372384319519752062713904093476905932838270083456253115350680904838891936888096517939974897277018373254503198188142961113742669273768928874803313501707404815727862554231685215722475699958983362184149638792261968850931785758406582416679901932925379137308300186118250345966122632091769318993354503232704674155151489062088810074016347016848189771497939853355764634341567683429919882428343943093686498736300075539003460570476672973327931330387546897082116113759120229987712769104882805366962874470251351867302325743081091741977519722181038110096565157630294729888179822316455069991922620878630183881381844708393773842618239661508702770216786849614860206436238322532618413730752335077898276364048606856012730681691512492611691772439767372414471904343430450546338662104552227089362813115749880490474758067803388285759611259933399250587759316714963549102236796512843142999901293908445889163403752937154263011690585433178742516415655806202428093425500969892581096820494608365083184181504119569268453742540550955044903848202855165156691475746877351376649555715641064489956345834723852921876616232416456209332399304659751140936465800832279952140708979486346100092433581692148597798428424033400414322388653162689417581507375424940196820353106779478548349213766571726208344471073952679632056820996944731383043511313064086574599749893099284639836440608774443222055555771150249601735166501168317059533047274910701599748234714104131911789411940163175068512469734060274404650621694821147972414912092446094277318601340558409617223004978091684361176675440631554197510717652976311807164420690710535907124106396745064549966321997178904685681838393504751256341283492060075117111858254995827038918813579161495663292756841728599316297262183149549961374884680979576356086929953642204676890931124109308673983948962386021639009352751049717397222487704548460589657219133931318936849242917276472816347077051262875918113496415859618543573725549845614199744614224294719593849784042025678319278727744423370982510782690613001151678103998632879444560262200061640681810546649231934958929891197038041868918065483631937371956401219615367919987917551577149290925894811152819503065922410885116969461419259424784468873900460282538848707929453309642181716128659401660075367584866438856760705718037465822357005801685720777037146658976502376197187030200295338746868774845105326475469690753538653048041377279731987327852789176873822545115512961597312921180458205156213487185810718955844707492924654581780574675283559039903045595296062406524013944860206544666268274792984180831643671823831487245673972811144492253827664887106954357061742245473929173008099592619680321029381562093225345627470218996568336186221654860056909536938045510752071335479739893995912238652905907138884911221956359869419760585015475889704662967591313206532325489209392946004870407434908652785981133112617704776246742105663456678090596008909167493825100960502614177878418794909909280575078971366840666621553734951717914168568206686948510453409278555674005556077661721679699851209173647003775097897857437529069663409101612489082670893808327862665083999299264198210860463640933119708142448748211978150800939640955268135665007109929678734427142917987357558753985011363629777761963415955834105668676477552022846758301046111357544571191812058371780493671906202295878490697857451208415321385062566691407382933708135611678889663902312731539461160344577278406905116134798704378237151075964566801813547509660706080875897269844610753181281321679548508425035414913194822206628380815358241987449303885948008131911781275333631000349759400577952088452948790202952601816533368186978947442863505490475057040433617692565390133540561641467369975103758404645423300455232587980008998803317953873819923360647718214315451800707418455698821393485551796461900509860077394586777861030897568337543357174039702520761851380335286242471209114020737796846370535443791673209023061952229155702697981417370920902801768774431870551588444827915870062310175648068113630745059853893943349338450955127061746533984068190291203968578646861224839007997927171047776567790235842232215980783178442027869251304512018612621239169635887579329575286539390711233315153796697436415014946240191065404838244172570384707591596070288237825929374767076027595261259296006971905178499667582286977157542278861084692520693370546352813310455219772996014756414134863481188672385915869960351683162175077350881541285530305836758123588564507799156537701339825763464624097094175701104664091778738026866544556436803479938206098222823702284606795784629347666093399613048612669642303965408563103360813545252693147234662720290621564761638929332194473746631436162668548723042323177121141369299690395992749966783941788786828687226285184502237484124392472642688927580397707768877550242050120091357442952196432404549917009254460838958177669856999666603633697317997971389594909448579452795611249563298959970168013364751665275767976742476824847900425889662213646583492391059479845312120342462669970988843770321477659192200528982755548457111514667925592597005083856049728576379052142646511009955159073481520295964518387354403008450146424135503716016295158601421033249175627539806082029853593982827339875621001475642924678455758194321037344832911000148581867157885979180615425606371295995150742322660486905767081201385079955898061929934006585554022888507128600372116666009813460396467689948402703037530802116697425600063916689792924943629174423141681145155962977174724780565183979757497162893954214946896354948474220317914600105003791878676816269781895663497321162405238580828328929506654673242403198488782651777399259762256068714021816422728945062086548782457934611723065079188293138299215309911542957226674819747543281622037975561582555484521797959526083115904388469027527674620750928778468192405013270594924587232527322800989495873001681562549739724947012449743431685440342288433371837116111748638616642065027182377325182696519091531582836426671607405092807108686284126022278069025740126874937853376540944619889984978556735497708493557592045273304127093160231778115868532731499909635094047200169286932234035634265732318204734504206772113458578041278840600383115070974204233904057159405328395583887052002310742121073949719936209043420769213850689687327053380543971773068784793139134763714731552212402138303670227230239285417726041023543270479084938974649854204247249166550658097613874641347191618515586456106964147714924505440618264527464987048287455805777770489216571484904196362583049464292181725909347184556894699125358888787025554864565232232091523659442356068499231313465770918773322252268356815214276658629760689152282100826677932327112542441150712824254238333465300162427379306359760782830714263889747227199394474524076023605660646963334778404643671288070332547813408075431984288935122358225001366140012701881421088364570798457254068365198561421963138078524671861320826820397594136444124673636391885478719815522391037875927733143996008853525307746967534038508668450527186781141087405764582214649335091563274710712766921508869664186385986469721850776644806402005696058508031307660769029822244875991177180083921683674540629630622082526306338272953931255248446781061608169230996537155343427318761385893008106346291958819561114905109626409303549072517799401877947285317493760482538609329376693868571309831438663484132253683544672504395744661262127589051222148126853438523084644656099648789746699634177570442141664803885614018180890731251835397795969934929621178148563795849834314899141140299053471868258122109901983059070485236083564250785861676957400383050847858804663577749518123905507207161296601852543029841361501554452588871216919265538598972496628784202815656097109610710358434653921573630719475756905530003156241513123513621084937831989811736342910707202129836974725793835109138079220453224035545027756038329601295925199691548891243474041245334389607815838330829863787997124631999562405990935760463327203332751926132215421632499438700326367783247720491916982546312890780627002777407207395751175141599100364443716975625382939267741446902378107700000381426200694655060819165511762744806866118902379267410059121395847288289428508463573178714490996110113136396493695721127413586692303610022525558125786991372942995516727639644865364986041946836795524341509551196881350519372969773806422845070577233228428697220335415461788855661954837240036119129970633326995418652632870962217548175716498887101981474848667994579637778881726300568786334460356258668304799020981093206848334814544736143935251740438889168405145484049841331160005670032819390560123926397477014536647988158482965163396554707090247616196024108854880242010155781346626319775786068249094733460015123093840887470388949472734651004632506379489719769554437007968867456417702752716662226503018003587315327732158129435282488767370218553010572350038159797470369874714266298900763240577746217046902905117944782629605657086774056653589500961894108546937115870670530866749494007638930513413376778965465707662955168691829087900829109404800295347861111110423680841676387277857402741289085902319422753878458029520887111787498001015814989559997742668307980874161438115288627043620959253288477250559690619985721599596224484374373687877311873574547527016864004837233348815784512802461078186407884181936439613152577162996997882468235586264315236854214926372373433346773297631363415981692301960421606734952066203958999804318313467904109821639527489672129483208747944348835243245217296657944447910808948258135098431256882142313629677607679972334018500795830566997307361488064102451179479044352954141702593333397252164761257502122250915971665888509808065384813550801751646720410407782329058917604348052726057461952555786232830852660085189227725552466356955542057688915645722438611083791706278314328294135936412658919834756780326637422055729309895719555219050755333510471192657849970076562841044669521826234063288477877087440103359501793590905680744536695517085431800026931891643681574681948487497441448033074709367160605143901404824463789905273160608381219805168514618693315817550699303000150207859299965430811178289450947140187230296394250118618940850339825701547969149555798943229372304876245247048285690636446340075785308503469410758558530338815310697805384611589516283196644873849512490713014810352286110108911358328816609644980180081911935800594936424674836432290324701022321672938132220706136870213279195744901103039041017471205204142917106858304487231416174244843408041186496026061093564155525088145887544124833022500533742556268652858375686743208571228255978496208430310544997901604082573745860929661546227368550249667547841975262977199996941531791936756759029319028868865530024941737529585261551820183235989648980690382051173989644696314266518033752614271710244059177680195854310654906394999110059066765066866229296329675548474539028172292867870461676789174643020880903966894939791615635399894450242570971864968950801649730294333657512617608981953575028148546487062152777728102279969150742285071016869231331364751903825979304370750647220084503929726024445946417635920320242105130763221618206637545426344661718973989187084175367859456811199483824121231704141319628478788526293863170192893708281071794104116666432444784238333584032371357833300678147799219411902735343710440485181435881979924875406054679830638194905174964985109636691820598712952716961330293732054425533005167962228662233275965641722814665591668806828436077444925372981232551674312173308364392503366476797011876854508137198590794770634337246724454587384134323444334235737357493250540662705538798884893998837790480185327264284307373771956531734914034951860755723286155848875150741905491692347966586803513594685104612614926313484751265294407319166797458417741684700172146123415585910025923881191656092946527389416464083671199334387820137863429327616892956257113828567754153875350486030047087272255951032021858765338607368345972461503883672849194596539488044468751789923844678073941727378277523391593494364188238263885740659965047648254037883847765788929442588372091711671496449614422756165433894377468194155686304662289846548882045025158825162220087766583134197129379002605603797955578951663408480049935215865368303436552945743707904858030659621717251372585690258413609454888115629190881637279606441922617074443418599146967359514000139550792236890824492008515454414070733395665116510630626444737112838853328086837229564826701753277972980394702531976186852713639524181819295734710524009560269350791710335503037079559143572372482430125275328663888227036357747433324788110988902709912532910780055676305558586625428662159289603636035460222654770046167189909960516936289759297488841665987948351807434954242778082777125322786066500311952825365060339187924030308647205817864243604064797709743899933239660883501707321397034574374477949655767202193495287312385453703442416906965531167726561062206049087549883567737368487588344075621603875243604750184785018993453534007292960261508255922929400188428596492062020999154962231463188576081356940030427455152465677677461126845426257845042056218764870136600600520010712713063118048035411630781444039350332001760862947222661541264466840638776489706041574956111726537040366127154502128045097374388275089903834814658800156783920388145808139826712905601717324808349872042156085006002011228393724551155515498408669437991344604029076240070838039564568456883407477663703548236276434189536955742549596505964884469006149848192321803209817490208989831020063056478993295626299205375717319907023234920834126329919938071941305971039848452419887625034453243957536683917048092776470823629308862895244756762015934254676922668502392227343723780984730738880366221452767390129252149044192530425114593757873256131617193238788042423592639539632780869049228095193870078736181053570378088562256753907501378739427947822126496034200002409605399264406500691397270434944967046949826787717174325108469090538179251726108388712129672785694776240484112589049782848089425747562556042868097096693379901298843895561810822292672557459437974238398963678909646018423588505191524693894550673360563078204909162089456688091894766443080315736817296853102141808496091496141036365713796345540505035586812211839553717507758188856277179233087314836681806572677850046726774732046085140509129188390269138326790786984396716109941297267704295295699651589975031935174507060424985710328850818067161200137117973158055260709511191279116374178853661281950018619344940777255171999346355127248901374011939210681245677175968640892053403232755520663445289914764053199926119075369001872229814716256637128407005802396108098119251093669729503150672798157029576579373031667305868998167366705531432525648358844012097261695853556564745517566455482851919444075814233032527659664853443125296500106166026345216644663626936078781942037608817685927283113791749941773107965799203007488850178434546529781390616672824560552127298762191401163293612445076321910426682752079779052011830417657188285219252901324023710831722143019885594259346478800922126345937670333997501743161599113404031812036210076437691466780900941685956202658757516377112672045909419391704112085614952738731466002608264385448258765701487476820575625922367633054306190895333485623202497482552185994093546975400215558570748249398557642938749951273454044923641168722662254320725260563233764572020043503054570825222282729219152582722038058201599932166523693982844207943107085135253341982631747957834945191914391092711467469363454325901259463959886839586261262829446280111654231158698391954336723653742115466639451792973852977236563828566857770066761943071825952676441239214188309599674802945716155226216161721161778512840917853566760030975754569172937422599710965876280890479733063514926949482251531637916091230829087430362103159550819121733011258295675581960250220330310050759880190110469742311533150514268500562015535295492582147034200510182012440285789742641146790977946264568049274215025579933134792212611583617480822042570420020677836163366566635481177372698710312029565415466442503630695206275145439151001311615664211421541009637474051993845012550776525705571285693356874427470170379907979463099507742140656355042780129612131565063455604431372241226576136956351991410107335048439301564152964275539471786842924587313455034741417641345066134598703690073392665594951734625432223195860774467344899889855163593844655679579621020694321609133992893176306486928047926164108020540478336743568853160764029158819506414340784361714083280686446406990105404440946819908701577439248457752158203982788901149596509883699485394317950036189892707785900475419346346773202418770209510160037887704399302053552068931109003015508157152981439580031601879146406763485459897158632994118674542206135618909266019808324114699759516914073480355325065743667911637069735657842799920529169111250967204437706319515559236926707355420167895840482880608833889628920086504474096207107483876510111704937555632701644296372139783537646134742786750586749429776777916676141623692124445422984033949318822224297698993586179670633892794442343208747441257466427772968248630655786735447903501959288435565327061602187585859822635303043141100407848457854843913521587054528643336331514779918752770697264795649980503231639098536018323734942737327123723632481049353789485126630469953117165484037871727662900370743705207520602352645969358663116982058159084991403498086150107653267615183049590325903261023261935790889575830104931148377131011184958645542449865212019235508818265277782771533484488401249520348361444505941490881418265460639922295437791375546967864131952309573666397445460437678281669223997824955762604079374228714378928938720865179765576624468096857169947769324281862959225849245011017738264901481406865887752641912999025932942664965403398680126313195155656656596091222090930264173382938935254354066782367004916881928702426290469914571412199010637741024098816791178407079467368166487550528482862481514122516623568509002708831613272180515331020991252645273958706377340330541077644208811078905048438003484748166605576217673069894717630681088127556214207772014525144439773594631867444909066006099378964716086566204609612453379013827248215882978459952423096260294070019315709966520699701547827889380448208973349622663289835614534327933478701146084841013590226182488754844902773110871819860244549835746742023888677931419410011478056753608394387694425486396776927744004972822542930671352732228289467187807896475194048044174815402236050047669592962566209582703846768891646277962642123799772632425711044762186262554695142340888364239830356277743468958818243764341410993235831890599528074890496187722294889738649437100204512269613810199460388430101233675481023180546953543200102910531463811787678036510769640596223484407941561688910591021190529903035299606065687341949397462550402601004867791059516157142533494609924000484775182036878915632651153514871170945837364402629530819178843922511951131530527717958343163795884189210511111532190638198951612583117182022936654788844251665668203827771798806249874185709821454688972658164920259890793167035340990526400651896060748447741950200356698459586337485843783319839771216607906553399586990879151503281310611502910240240053414434012954871425812870426648112039869317636351189918618151495071875836932442495462786011072851381617203230861773178357500939082669913519552203573432527110534025582572814677451706389039392820104775043455228215074999508293065295694128845698085280024946507188167989287293678390690611096715928984864338218641569195880706868400707387333705608106576154979965050853578300826385523677458091320589468457071416014486429022307885439671582776178740112194506290139392924080417034067540211048208895152209637993664031830464831941424923341968063284830829098902721780649289302140830344881690982817985105558958110371401837459321650717647417108193968019568952399241815393302706012923941219195703384978628946230173983931818922346108426898923877156690406239786382881074320784449518826335178013860084828283797428086300793125512011955754536280558836800773157287794424557185499554834528821006299191204334505099722449776967028917375579575168872436409431594618183026462861887336935126502828845141607037894452396852989753558618931051537176062577190501154947125289870777556319576312984298712321330409576970891617090570490103109544524337731768125569297043068058750630375348669000989841011047928573442906860615339725708740530489981838723366522864229886098078380770458692766700121021751480376949271577372222860696264226140755721746470082672124860224191934131932639959638434559306108750809443943924331704576707375363736954207902787540833069527783744439249605377733321222960543111934176630897107421591375306481352510213869524936104006535632173912385226657584066921905996329408769194643794109445300799837578282877834272122231519963173561321170328684024222784277770561452268818374859259291599472917458981190895345504762543413344380951570256327698696715862592598805407782991414115303405946081713051105508987967723774671142713004591154426728522817041609233579886914786305829368485206205437323661667205234363176960941124324601180411980795713163308531550086921264001557865759876909348813845301876225797182070945768757232898646584637908508426216212394467362538368130901198839222421975155894166564615495869652511773163095558383260589472242350529724495115348408701487412035173192997247788363792783285109367885144013656417889167218482728386310941349760134821501007774060469314785029301074715036073028400973843310192136045878393529998049166818695597512243643826148161786020279867013222819818521943776205605554195842068328811717914132386424914711144499362305617432742977996328531905806380945622191342914758357178806560962032973764970700539675564085507021509210337245602368479516712599165925133950055148790006051787351049129593459109331171161576686628113350979340633903686563782020572370240771065924476127269201800937608620350538591420261088705216246579670695132553053561764040549258152793583086027360948551983139193708604866362940457018389032879685618724626779183723351578687951214282898751092045229026909820038414824285570162094472423821638378457890588059630024695436029064129098304294528709681174106234835271160997884341295215525716235358440592106989884738906161706657041049461666634030912779501307259358970864256820230898749905545788456797019310267816641120325700834093426552772750784687558426334038616068510487253096348856974192511286291780508053168311483914100656521094626305124197126384056156046886830222604895376717285409343627010238626735745939142077079904489914905194736599352226939509436156222418319944532972513302557951855649147202563273446729795734224072359221010264416947910625740413415894749526518860220958798491323654100187937888978408480546058984058351922585606856569754345711105615187678295227488328456986478124802770307387653928220124481122368127570958789931463925983623769769547029485561469877245316899584597926074702928196056982033670294861919538902729736771895919122935416157451873705229559012092508434342668911826860315881904891795964648779952999437993043842470698014275732780423598306586702064250075336551629827510761833697102884951542714240815491656123464857445105626277974634849164680939070026330597117714607422467845450358128487982889775424665300755932447700027214155387182844259649229105590348452208278687894482783067821281747387304419175383158825205435406062150946062160564568565580973861307598336607047483024952630183929824449828690291893229303004580916481569300286531427619018850281339889440968768484214176990259705255615224690877155305385640138612156249269240690141273298642864858635048864579631965295277430233596456313092113451878103699959948632248183196429549358315254077956848415361951027853789384553772667803389045634972836640702669330710382149457623126964617467221879986662882793057353560613045142269886698773132715550810096776695987578900639068484901521043116280075969845451071005758530212905155147384449419309228849505774479455441316395417424745205257670842888747947979563374902651073771415224088285233702066657434484024372287491051313439457157144662725187748120151816068388372556787174848686620517200115274842992238123114455903635023086465893485854493226154141586554722737945624943400560838918146344152158502819743577735392070903676469544382725261233813545581264202276355108174102674306986714975159243610167447620659542282405756228649351156459352918174036717416019424705624758357986273871028093738189901260210279479539234019023588602642082778917343418997434076295656723705549316946888565695484094399555323549603344852828990076332458853312946185593484041184891505130979660319784717590334147841818984392423522563994123688412256420161239036121334516880393441996375031147287221539643630732385741568030723160383023427841112969332523346873201616135672806521255894739365849901606003905612388261704335795552322139620942458648546062783637789214357498301216683963277624487128560951673474683602707982750376024098846586046513933940346117099515873640619006032131128813588749316666792362132285827478853080125020085959090969839285209146931211823595921771974999791321568686308886069462520496286335543632820559136446168379378355088408097895647731858042012741161900996817205029214659979102990559585172325559444244646987152574485707602028355244281202397359802438717900145296700231616878442314532590301924051043564044901923004454233160365849068977081754470385422924252186237059175481579623168400613205591088841374245822614420408988729924551648282417007582014997688568644966569056531173143189094254726444569082512808926398629573718369032826749812890827058235181949853275587174725316813560673932666417150332443952609679631514111366446516388795887246875863910922815745080231929442564310207467405797387026055400390401614745261583562361028493585451251751719802362951365328479132159949357417974623923017558275905208591540238096582697505779158215752023688159294690383089268960903438019593539672916587366974347083906436764459783703714897116544425563315017242436959849964252105801625823066466518850667861403515052309313558402038271822470746176726995215040952020368369978657597811527644640388355780152749876425664202427883498883039679195143071430881246945237697787822386425233809387152780449255484660597157774274230093684437070556896866240606462805513908436869326169937373541942065229483859709979870695075509372610534946195899855333577420941466671750656952612097698528283822821650131173955248956518329861678668998357912264498202886642342342238392625487016429385046397512999181459876897293240124722628931054771451685233859268413872662999971839949218263693623198596908883207054505986800259603254820488207762733359246748953536213950329313748785804340001921465712430043840961119720193993501602318492248787233521936187128376566865348166511644142076128463021953870759890070307036368926031374861619606744845062792037590578353438405148090818103024371184952465267572163020000410424610499934010012109629909810032694048974989276555200137696945552673682534681255849171334616166949441430717933743295526725334222784359962951068110152339927857253535024265568408308495741425089178819732359888681546942170397683294757056308504344357488470468336495187399624241370707722383166912645855656582728625820332192657563588560227005095463110198153933552731312286888498322486226118691046346102887888800875259205197348901423318942846338898102119278676418609882181973363169818883386391787177485599082150192691230453388511095325253506909246696023371034811519495024676173063949910427958321026091776041709236544207901029309840442585283454229938113612499576660469181756097098322294238610935361748347902498004090002680206663761668668104607258231315740977997037975392321278821226087311025711531290634513336084780756945403020086512003403776976472540056894121921912010425234755370777596777273432601765769078883185850808094352407970697055567848269818145137326199853618502241091466099057137641178317075716886584080031136981286622156234425069269682587945179662186741848122157333829252124219673703190543507374843963435992056678160019900690859035495737903916067019947533736279486599713403669468680218440768286115929685904047799387992636746537720492025264140378974175914045333444665114235000921446375847483579049334796162247250357204313431740399024458523987176710276249423544502723649373934730909098032208648284187643765581314142774465835403527480124257445120006511688022457881070763464291568100290486981238466144352572301516014298094682789865673098041594873983488932185381044265114654115675305348764627068023361401261551342474297298591407650924742684988637103630340990520701795147339250499166175579852904608194396712774945000822127627446733220265054407617645619748712360018224361848201690564275664105983876748671166091304331780327205317406956920936325242209274419927019462654437358638070421871104399556633368816471053502221345075912121330333600567589138532591206929151777600258736658810955898129179754344646996342943063705824441377161115430261150170467214590428674871683695838043033591009836322696280038021894105160208593561632468614918306763073666404701208863942534343883343102430438722407955565252955295787236947961194248933618450085840596718620710762153400907295455478404885575990624486414953641742061704563718509753042069330657762427503022504770548140912836110377763260836121314666263596545658459508763220674538319070042309358570088830344863237656696088377316427196363279448810392409362505444948849207269383328839137478735110083272420778132796004914768244439029193968838674940429669372754013837852330806973416620288999268791463143204201529592583862654245636840102560819202943427737986290230362055329775360083469434185011724300487075230173779406214365574513010523387348434705351175073636976728718238875789688438721021865245819737312074081884778370635016854155995158469386196916420580885207237616119322899350307239924067076387171070787136232357918508793956254400819388295167449070167952902276382878268219693579043166122896591773074520501967963765583797404022161895784165526994759585311853149135270601959758657396958291305560476506485606082933322868502475988993341738360155429423477342196884426847549053594499721589405868900274741160171941842598306614814699391324620458152157089785615950261988699655612293605066722005672939159818568195013639751234890989272924544770609147507179117422880973569885936232432710687361840400088789547176429324438355612427611553747386092983831034539311857628530379798005136591020566087269645714797824902103889653755639037575415607895210382913566151432431842880174140277394307619207634357875224069979999121904828191128853718394373746206299643140709208095534948242792406727910977030672054701766094294877312081221824949037243962853975566356821446873263416829340181866062850653755060425789084184427756598239180607692832449014006633276395341834313136905658787062348745882008630654143819024924890863398940614968745788142844876672821265698451525406575426100273512683666498679862014594683357628859483847133726617222114282404160040340301549073149018798793295022169904945134858463833285790106851899159269366404178104365640418412983274313151493003253874667183445176154978121560966697785263749313550558235407751190556020605848215599011330977149150608394793906703633482083944887185781026080510309931370162293049467547540020825605314669225204016333774433622408618214372041470949398711690368928584144239310775587581286195118832652669183444882359446472448650023199859492585727980922016357852842461566728235727803872253720850822866469548073157426226328727988289340175092261155996096344358857132586786112379081679148072662363007577343543257355115814411476554074452461722966993802297277190637089180474156871787844510331256213791480995652220633147964584025809668015736928825634573473647308222885560454055893769874307140608550423424077365012972872815844377348135906718072739023934150387241801083998883486115804148892660540592046492714006348476752223211628088641470150472780968512517663059130320007934665905948282537909641301169557476696141994108354334733408449093726867286947614796563310754573581823854810105027649835116533294579431937459110839267926804456045818186894489514312653906332087263602471511363164921851502677613863701060576158678156566645959032959667040166140072615185343250631764667958246252534214260445406416180059201569440353348852722499812132014913698810118399076092842600304415013211669300914646316218520621913190326845985412648785067557664089110952436051327654453334536976609104726958897580903049021833410838881134745579846783882260260552753995306700514750361612405994778559870088677433932983291328721236604793557324902396281324432140278587190661094301858472897953614583936733855926419035880483361792436260458083045750665858598028111740351380399465932865871113782034424221312137657553177589909949885307404098478731660408784283577000144691460793944770706153372735885360550124592632508590820087614220874268669774674355125296776998484946759186751830110246627990640252958832611987473731544879646137277901351853793610071866288137319654840753531287532691924957019988963147395214378073202547215715461549497826800143107654351965040795798476503338348345632607981315273867416312756056629662087907864537392138344332558543572357020235027836909518376632172549426153079244036184700044305260283645184326103124074195145245067861572894366984283669952914343482939230449052107514014035627373891481974079711521921350240010893463501807042411811683881922838503904351999085857117355814362755628878343102672283698495188384187509946327187517895675674759010303127304881077725898616591283987506444873654373352641207487391031289833008662855534112854399948943335795758832274522699547405439560923887726535256720122883523298371992746546523164300097313330430010256280949435972458535491942286992562639430081200719958240137544204876375731560543614199806952261868367896094115172584374016118355404319888715873187151222811984350916435708546293872216295449990082639310710936011034082046236427171662463751414946584289223353611446446107234266926387555532449813524192248798596354576140604864570148236775738879946632850998479793103663277694832451294365851998708092977591833362466742078641462620082316321924430603960842427685315468059677063149931271022307519115868534130382632910908434981903270068818355243844143136881216056499245043528104446028888035985730622025228207878293120953930148639936884149614198603508327480089691442178733600771281831700895958890591063528947816520871436162400080627705133874578187112164130812835741974951098342281376312785598314466411053654751361833709160952460680413359037129047505832912578814970696319777768539652863339655485238369623144954109159386171725847053343315780748489892560836714967817324930872039463181742128710083774549184715590376290920101528185053042305733275286644747497396321466890847852561708370556514734692946463269848464730866705599046719382949232427525694661564969331409810805061443908203546100948847044387839613034070523259690471837095352610874671083438542584590719407997558087098150055258991594461179221831428846149148216976219666902479784236972893811368291762370296336083358084457239126868060862599029254084973157254997212056389451196373623443797747269011975715066831407512554853220691088606147177971002204164946519027172081167162984996662477244831390927450455969280113176072996613616206615557751026672911177428152392317028345580665239225339784855099596263574954070327204442961658151103927764618117075466941430249691445567849857371062458848207704658662826177083014585801711653794392013056542261740512172236696920707998992506949364933764490800932318220265639723098419908872237307909264715545881773903478414712647650638424026590609535880262880552430047135367808196143043820161930533456571253049858401524701173070578856324438900873557401532361372655054740336213656221390916950548527963725604711310012195471088481232362604760569919831795237399692635090663711846982246195309459760137094399428205709929256541398010045643971684889205584180875694785630648837674124518279194610483274694285244403322257144831541057704665488777452854267375346448040451423805835024958571296756572296668260523434578653304175896491431534233815439872123869468424800346877503366516949618839206686821104611420570979838657372848839151605869408439858484811917135857424440206325212343426979663855492173358515836069869427644672159199814563349792822209442619981805687563773849414349612944242574333357909260572942962590415902759514169330397012317317929935681146355264369969930761483066321887679001661667948095648883987344447064904301940569094935013574319757483210318389319327285096084910286772885582541733645281726007695527987131097079617205386079646873894892617167289772208326334481471093992055639146467953546868066386656345498881810721591777471911034762039390709067376049115200862198644849037922110657494248093347215964453292346812530879287272603376011432268375408237952052691294264010811529443190406871095492704323857531724383419548583083551517640163818387848304805456250383950411302053602167353999645618631382665703597374433159105723295965316732228591768350524290435783116166155449522164657300109939825777259087295225632354932914504135912227128347115672767367505321790216693664848275631033587461337287330883868980749453620229436003396693648112563008588168543951921191734648778151634978935389904431540267209706472229843036830629348838720155982946741662841630428629430800475204087367106197248555618503505640637435766173278093815447719687674785417028465401948644592314977025664985359908265660052042894015815735285566847657534366310196882359161911778079763525298235914690020606754445989116153834736173522650976058395838366471091957023566198875639394673563093133315969249889022946978709537145158446012920356558941699297059309053140088788355792597982140696659668372928497010447845800907305123142380593283721961152707441659969267833688943740509705017183580220596474068656872459752194200082604684493199145694698619482863372248899990655262254577401979465959380768500197998887192280225892519564648027004088573613295836264197990765630886775254368623212587858730422671286595241775342330839920849722893843659327389556045035789188856686548882712634033957550301880563445972634179877523186209207216436269824206118827300034268240036915082582513692635142431666473317375885149286318524255123429992029120769330688789153152035099077642769524584211922168921417612086242803560747337239100110544578756232861427425591080093964433689586703364530545844809041778822376915748511652116059506783920888246956251168345744278122307302829582685387548501355995544087855487539174659225348486467559627248841546420179401205589735495659195900108779967019432569043865148378298439848229561523168828616411458199836363604111386701769704876475850829316226978114269339548465747520996286042553600476840064691587008794412658535448383727725071725608443502019831290704420191594807320946625091097882172939399421276876823766824615911638895573549516489719083469941212116748109386764379310907040040175881743862796109493412175648565878388038706009663105725046006795413328748653204744670569660632383668117611443685355853288664015765613680338275984498273492556457248364266024210921157378536446313537463217720396151459397416739710499153044959825778285321554110146812161170942347579733874031737673363538286685819697118955953217499755635129883776229369968294105685199681422307277243670958657196656531856969434411885760197741343033526790980572564102869685545696797503580651106027802991108307170917428460297874039939546852333127821788723068617081823890291625556996209189562870741170570099176062767511443650032251110687289046434777396719077607573886271717002694220250742149736558057507335589575342187631773054573225016578196634660807450693631151925774577512685154691735558537934647815734347783810065086812715633792939009049206615656539440114451573247388472056104672229105578094871732550241121873859581800631525555205642172209645042100519522768371192734195801528583780410479971840283320967094648177153679624047007240497737137989918151691009288473192518893223425824510139027060379937394075371311139123209278350784709169592254904788448898214346566548331808125426985544632988166967213470201829018837916280637172318447457719105215718503440104875558203822657537089457734450530045028244640141810668599462679972722216814959523237875195296309550456885956550225727838541198749279835785469994356044818282597675299262056092296975588065315793063661396118623712177434312935077429561481861651278801920353261373432577298714801314805993148289681230165828711642718041418041486560693986364957641633838734282184149168355940585148352537906450614409096420697815861763897630546825556870264452828695145816411030396278933948611225157842913307759348018448367914966601376012494849472206348713124224851738245393691807682115249350068276366403355575376089236373165880106526980695318491100240020090950773388275802612521197541645675013197640644948813925171650853829983218636987974565868125780226993468865139999626692893285555103042094477175304719988246612173505635325054356899048656745908954038319494892697970215963804349217471409978580240931575886576903194537936185503735139847571054585872927778971696672442040902133776137386153317529417910487296153370932058114684254959249349382589777221133186475167133130452948859446578910615356831701685485787601983757847755330705104448094766689968810550972599422874671377840368709045751295220444368302894066559394778900988922666827535268521473237792615812488938006329948891175447821690108948980278257585449801500847789143369849854098524821821190374982041301297014477149657129455526343544770307213853278670251445748398789499572422808490653935698021651011382454068590813615076406611178805746958346146446697961019038429353079469112854903212134751406300112108055272499957287482524396096512220296431342832477321373628808456850955163258263754390158966907087518716317106359621921314302731253409865724218742451437983881763248587287103773226862411031996552136383806477187141528698393950569758179146246518570870893223138747374864182022337117422070030997237220662179143641248046790703902092716128019928219774228023204443909552938559905830360576657204455686984172042192526174818127425621297665231727064456196367955157672631432827988776355220323600244945664597788713229309463497683525066277380408767638339818816373118622119246129650048903942113158166255037336547100725310856194977695791374622173265430374616171997162213796087020213377404564998885404247424084822797958872871631580842018415426375278481031787429030993132467890694971013334038955909822206026045518657602046222411767950151918205063522814094027980218539473564808343543892632759184785947829438900316003526456144272833031342956674806427477921937689028232818316259828075891550904505568983256557352239126307416489333101529037178392717383331476263059681837260824962181035520056053862063385030729607636381655436144783340452122487111048706051919729492900640396206214880672665796214947435636897816025101921532754304383825897292959683472956568688682845209101122947180045475325969317945982534604685438089881787374077970296667119450925234354707761034714071014660799547302264962104283885518549917556824445613351998568047156846493330154450918645057906319941990527217576908015671295513354101349379859235407517310564535371793463173442041457325884034448691920178517451009078858376844366675915035145205328964211361608255359500544357968530219434703344069982973695083719923111346643312361180912506733270081248126798532783359246537094735203345703856093200851544107916586580557272881367742452923273413777863170746567877086707384991960393876896561319107418029004614795628525187581803254844855829981307303343840925894066271952167947276879091766885069431251650466718318722410816918495740831788007274101206077868053311512060492278064168216242702491173765097963547054823043480093212281195819232035473463747221999335443271553569147407821642210863887301249446932229448134606726450170133497366799192718719648953090927468104786111847478578369058988317890221102716790232956598497903760706897154272370641516863929871222287039097311833930742924192512045793754978586423564291177870022652979067948169987312274131287101342259984422378730451825435025637570508553578562724957396855918715644461881161589160798034050860192445286377854099975231974279241281324107918761731047980490842822206710935466459001259343577026948876141923852471100311227936264904643174985828470573663027166036614439861515687630403581075066756499467407100599256692851496641323469854975951091645876331145280275021313989153507123128688425526456609587160793598986051641216816397583383129072818296823199287885759975682687971616056486953848119427037508325597636329644809165452040618649643999745583315814191206089838218008626211524992076623965784518753922312800690890201248541489599496427158317054419629949818179962508014927994894030351870080338986984253828272908556725634123873854131590903040998643516372737181164145143337470066067724766021576254870763885032749281473681753344681750791283963205023644581768632530780018466601318760256432509069782224331914306898741876732376941386638010140557794617564113882433160020884934852345244134130989244656208876313054808554902335890350558600874770216346397760471178471348279302627471367537258338262285989651198725271309104861267934302322312479694405645013912994902706026123380772786761290338346309608271057824151833481128786656037632811220521137688936891251131172128603770027417486956887553848428316380731969662630548312761402766062513392124867486242852256322299133852515249228162111392746283838576267736290145155700168262846888869347299941512978580568688773392587459605919826648453427895558075938079025825666892709577084414183824325450628699904558021397044197493373506878009570062702172196941810175830340066183010470305487900617763038853394644186412535061001344231381133268367124972819700434562750322663894272761925587970087177260750390982519601471667371375045196611651451787121584897982319104157307749992459623380212065744133253573025736766177787656089190298016161088598826107963483018137554205435079268782625530682365049801817350747968217505195836368846792941517999611747605731775108136626356507670460096324135662579912497527492780004465200482756989134596533381194948200676768909143463165719736824118751131854763290280208425429544388131272753402792638621213086351092971379100889950014281784468740718548638328200003662822325933839185645787428259233136190118419464817483547695718776805563620267188575154581962953885960913681441374125813466919949084200058381923670761502355335716740267126225809016833101326571513133581045731486061275230658256714738449789005737483172814054987498461313574877044532279207104237519748161353227596541173393999798734323426268780311301639735246286850793941198923227934187417709383197775158232227257429378524184025912276064499461014619810211881153704199449069248583078296626970910394604841928724720042980787681092745227406935303297072760608326406925154217731255364511895973433658589273716455106288000628545506639140419885744210590169174298550997017638302072467097233135955003946721212919897357634189850799273063279146996371565851269895950085714132539105836624657280015999928171945839505028588234723585331625183616624354791318747953909057928558193800725569178758128786575368413454607311991091911733485562033599541785061380526135540290203677941636203430901109983404232146905006919150397203479107951498451877019214711927803689875128324234710226618000343323061584734521843917573932254664346828964435935026180870443849791216103638103956724147061607466240550284457476535010351814365890950429344438001261819936160404485854099588389151327565000371879012469377320717922529840704147398730919568734092923769729392866303328150820377452513237227921927704264374100043776267106462366959742315703563077232646427406811742486364969773409850789350097769464326245304152428947207730076051402290974087034498511660124837509493997542096755680003145598479596412386633943228444981949763437440105855169302705771978867050552345078964159544922819667478925381911685779512118441011887271706576051370810802323223587490582758426316826686363205268274893933585212357286856292775827492554276339937581941708048552850516523027279822398862375502078232919949944665218538101659996527134013249396424163126778682177755829872945293602404801154349659055894886783461747641890581154866148454090639228089168914087946439946656146637174170970507902346124280374495041846291249983284382003675234358279891782094385213763365295967636988570895525132212900784490700260134678317970291901701888117016141031877722430853825290462971546328000550424101941373526879130533211476795919115766254816407474753670529496076924843140705572479617066689683492613355318956683138062026743917935304023725871580674987977460384072077139892582321844536971222312480932564447612161433506533033537327189281388103596458964299161436272220887181563640853173621356201249951229981579405411675379160783018087874312289444413431796924742234234336730816399877321053486728002556062691281630229681842802829757988255288053847851521104274854452514045916992828076745346935775737356336796710432874173778301353302979921707078724975598156597193145678962361357993907603277332059027679220521837407759152446163505924881660832550729616238278796260673879029681801081777995128073287549834268621241154646086386209171631571217554389127453087295860479848897772143315793337207413976733774910185737808533353137422587964220652961878159970234709059475748853407441581657568990175364822554353711584674919922495520203291936444351027588711820117531542938607292850081124168364869741870744902771797494013202148537759391631239952726793730056809786983822362857462752354332266077134068143504294130044797745890994315814572694876209445969525830992598631344721031696036151430658981893046189738997298535307610910468734338325260401802472527069942720360922477545758492497368448579042483963201922458831162308460470305457116060068855991170019813099329750954573292555513690357926352911732105674797270578300500640161655518726347279049684274045496304431997770991749873894260367806475782225939441258357962797550712411730332251844537816033836173531473574740771005856495014001195260898101434112492697257395884204655910426054999976074100434682077755852391061115345885775648356913664274101649332861156136804237532289447980726075043500989766406048587906759576186689078894727215873016694712476710772283748680926486109298928480979944442148085377981646323358549697028327288408206429628809460954646724864681965053468257830402305658252964665916516638324673701270566561415512297522422892403492177683697408787557374870744141785638287835791527309422862760940856221265780850872099882276948647613462253826321806238916493681865685286487304279934870986837137051389173629632365239725429901209958094732981422634214104395565875146150376455295059262971838449809219928970978732157916381527639205780602875494456523970191596024517190937822629426702020905187112745780407220990897737590038034667775197144926985391165360885187440175251217189923242051941305540815897008195957775239736741902396680141876375204205992240120687181758154566515247432272710917962094768321332659525476416142924757554725438201925772602199587970036603616386585743977863524790934913603104197284942840868618937069748757172211753528637002558272772006390943594229476108906617026411116887148358207098392162194818990159728665247902270081316770752257509923525453456885887490915940246605369417828143056989443181376303574115623376918754911477558824812872871971871279981763681154507722278801441841536949425620200491666456252416846715754939869399536972495562008376775933910166586960241742247205386401674095259295950790410367583874480336316232709481014928154443766351982444423444469447738611898398468082722836828050455431560326190596668495460073135207824727029786474500429390045751366894846064708630467471188025477557611533986315856308627834475816472796886112498364138270760422937172012676637678425936133078634476242406140845567226566777683247350480734839438944014386795954263294588460538992260864181201026622621626097232051619594867770327917471604956295345947145709055113112526192946507305491601633781418688976736425631968748434707293923329087616337746044686624695403351124718661760216933819815989446877422205125878196562485416729584012117905149636910773094446331334398462395900577964354144737938334911109944823723834470955049088895001800275719255082733305463267191901973546004809042839946446095202369324261612139806100868253877279539562235109157733407997694913832732448523962930901957385548896127277970667717016718431762118541236979236515897663375477225785354351694112164791639321741884388574843838402327437407594953280887437286561073784044152384434417588011595133862489320724845142776251198257218585992291589552492265902358180988852036563996264525068648565497194490487943698728602389999386581064308869694117521997704200551971378288782093905654793353116470701449820338279181081317801907776209267248918551209201735253613631203024614809325271266556339104964139812401811664961957083220363227212830151271721398989067942932983351443648579114414499144713889203490477970915280192865510947358358816114012011521668485866721360300085838413276485032554803958021840839449045303196855177124690899150656255514902962451914957113680617318817934779736413984789281704973791885628039819596798016932967420354473260413137139957112535875236775694425684732033421623593350689669668021087007651671813894237376068437536562511894331801825457330982190359390226032352229277498826605737493358048694486168743898560600979905678729864475238095604961080494148981976532345460492937202682750194765215163770142957101263677036699816345461091701695853825960054021528688291697728261189554209425523298297640649261682283617769633604646340367183902525431877462524682508343474723782539684618835488854861551858224941959311209827628021392065610721037426939123076042077340063874628078631441711391360536123415465741124091614159581925987931502749423367584997492245551598553620946294128862966602469015598424075506564947273752070749377632358503393478461795531869446010121361159644807595090493993889285692587754487276639839593936232111035460084411143374330555679482910162454807667879636505859551428187618242443729009609582719704473845172460051434492839014873738608735855873621332306321935469695280396758059887007725215282173762550677546781171770699483356619375874031228151103398309693164519048420625645506411635270337310624817498286414327535811468005483133475381949019130321162920242081953514890982381056648205872306223126109206293513416635268179007498600968565459316068696541302027054077421543908224633930001257653294902424118728024955019034296080987111086732965917181345086516527243970967523079998915360193251495301355500996453159386698972507063486144520583182467672820239234610941787989779055415672325821322221641276163163187261074418478198455245694027360041523908957112434909514445866541459697674448095747854164862452136508523572728921194955752744178877264122418415936083648217517972091101905776480496230422737472483755507428583980369751254748771722702882693582314212206228202709097629291867623624663438795323908529741852928221708640016499278501930901182104879625465378078865595782772948672263577806397005584990507805392214975846827686605802054015969510336374484871365244328894729218563920249653932686300628639102086844852598232405526548251373329292879779779958075962721305681633972284425995292650002651017178450521605290977821657451985002284799354439697398267989869231135694292000527065553544016424569503611988349522684190588936309215828467713912602282526651249157605605246356794409147473363367012127445722583413428461947147000239907050677524567691405988104507333200365939549359929262299857447670029461202915706009939749073392480658450361673926058316282473295943597377654681795020290994434128735255679245805611917812951925616738462461833207398434494263005125040290393024545794026811127494682055300911805872687618942592468583931591881641153381186881291215058114620585013416018469969084862383706295417805516444702033299856777705360879994003838480340018530421463237122952998567927859793445766782666386672695585932359371142991095600490355203780854797855343168352600086310657106486333504627366026119331374136946252516608969610787971035249514206202212600456395130174231082000314928361822378152419095426011684857487182681529959265878774587439071654484306697433353170129725500253914844237795683480581553856206658947862846224885735514320830631255137583869927102886439451914748372925650555062943208662236554568569323145093084544813236141891350605835723707854851906916941542511937702346081602412277834657950075313246208249119778611690696889786998212861305300473529883550301775467928746947291433505312447882251222036278635084468332870027511008978860466485996022788777033768143797982716504515247719216556309812687122142604705512516641889612858246284677377878967774876245187878901756067002071327453338024324932175672625696784947797644374204813772372923745386774349674517622521565332151114572561702398821235092369606110856482383283764427650944679343779775708844324136748556736590470064237441375831094119536145131042006430317000339998318949293057464925106406110286846412791691330574575136733074067473508315559108707847277084796361864665565804425143727752476940406112038793319051808702035555307639029267048323329144385919846392990828020091257889193154124337737053809076244136601280927172088200266819168646864159136835583086305723097056852666494076258032116026657251499563952524600539682958414640361002559262078362110337432493549853743110261058569375499530814970950070445885313998024047694055508664472531332754247829694271547401003391751529595782935113509440832605999647702497483543898177661625123819384270768166804921031821111067706186224407759405076638905029573061850105256516125332151887717934469451011568379690513927222690621779699710109992785715938934481592902928702019289270968130262483062765061612888334145948632444602444408409559998990383191982675353856533378078834608253747583821063495347752576980845835324438962494670651360038394650370003612227959576433242153293829829850529939085962964527995294215932945570849816495640274284115411779877753316910563619044504222292747714717184827841290464335109826818364002690771826865335460241093224737965928829459524554815951414992730833885084985939715823808496116513490610555784389231208416130635698182761586562078201204766220882787300743478957110506270468675094113230263798238490520896746746949075962009785555317722762273996963157374355046856870387134120949680415636895027882532732999072010843588978235845801375218272720347122239629789139732836936411939754196081701595300203412876176583269745888402005978972106974831643151858836988700198747339587462743530610162081134992441678490667573048637462331146959431466312190728409718223319277564890258586617490871004652022593584978911370980823043985449175222026254980665948816261652444536123873463489499880790783538520668395327327396173185089149092666436965898146155892051785027782832714442145181088227413369830829747239649697391834802546416052191266042012171293019448307802885519111407936243388463504439719874455165487816105609613171180402403023422589124052174194528835393599746610165902715591510314199745083321302332672064367002694227329126981721617421857319011404814791734052318434139573007872641982645948398132328902038748517254669271227374393695265078920513895918872749629285754827446707469814432791598055740588660373170800365537843348496553667157307897487029422986509673335987722462389796572196029470377585116651791638490935308071567010833481198632084907474525849775893903083297776329729449133711380144132576143081855239453526993004379580009648854664662029594928172572704263132413772573525603692300012356539743333840769756537295091537230974885367938196100354302546090812463068863202008040315005058652186830241050314270684050602554747902718744871895733756685687548136233485584598765895850377525867286538309834724834561730905412639501753614601695904876697392175550186123308874762359331423836160731811482973291876813568220353955954880990865105613351323910605973646195192654257471000138070107887575242413476263047719735294273624991890681612649469288453769139499869570785833382660325740103857462403608322792381010777140455100308252146026974289197042808715200222536100605439176771799720908947997743224841635391619965217479880515513187747230605611560586187229344678887501794610153468108710135328523948525868703810421417128242084803245614446378538785796910788655156243722370006492643722537514095468417479415656133986037053555626933520425476615237000570614006166186458332937445166804884353037569766522957035633970938235303010745021510929265050630933641153422264328773193350706379820787485675474821994897352461709466803976647061159040036761490323798774111392316576243600533478067760505829960630830602226105472513382392914384126209066526599352454267544995349490074828115583149996276285170516774031814596273574190525685265417300996696613949249326109502464928586376941005461463998064360076945576198541805301775487327993044903087557128084316924922452256542712282903545804944124787065011902675238355791753766529993538577400201690914617756818067306969190135839270420258345576895367422274697364156345204203861863777779905682277400083355455966430697242375155909923315829293238257860084771307552314198367511464636873830361129770712948606587610494795143659135815337938195573384259589618365303797723843826193549734690103393608495727344430615042671754847693881415223864765980290705219700153130756299414636704929262698882020910410948130687269679491369932105712809391578809826177644540764809121502839522048625571795437067347296430667833661291378763580832714427402173589665310094402261289621799281997822935020441334868409847711080201945697344003728557501452010313121841138282007831245427110189996236201171448418949748595709608454826216933013553908174796729602004679253050840313510564808690474145725082328151317267081732014934214085974541284326898379880546787355688451093699973756739030029671359006333820487079944576611616080126836596857223244625681302996480631380616343606701036592052634261618261858928935839100380405994301201354242384662920681927919623433088842369335642670335387786273147294399756475296894491330431136105275046904617345031320814974755770611279431846576515209532830707252900083607902845311428918949814792455784054107301126171316842229697064151676799034961625486000881529640373977865248562510493624009087600088337643817002884986623546985906987802891413112540743466365325240612663293842540230474013194403553077667485169372219384453596180831277263959162086813593043475695898195806167043136688672339106893307641169152653844256862999298879594255608633229355279250663321306491500394018630943157309288357693953351910736036922842903303153783093068555607268545975390572335589436934764027450213789327594441848824294473050707504273252976473951526570604059571788809720050674378468703864597091667227936724510690833725413385199207830383957083971756236883072435686901341157225591801753843456903393369858967826862951070629870291524293627537673664510333083007626322675081801608528093127574291746834386316569414652701445829444238532157744891153562824761613550449405511426049780382657517853224416731013625491613658261915625020419019676342609185959657180044913618183595079025177663354156798130410151899138325337462564482086671154765008307418858049633340479432883909769650575125432555667521600685914093907451825319991581261950773560549063000766360614393872329956563959487444742488609988405126785910677983720645753294876053583756111050281987219301812748221496763454290743723428456388902987471506004031398039865223907711664147660142306725232163789448931983218509261139786520665030935108843913654828096475035478399308118416976370846759292374322857675989744333405454665729702870453917435935488184729947953132402990196041529998407521315424813890654099812885597364732918766172831591601128439171607687570383774542494857796397594716774269706069684614503791056259250190286317604392246438027812386707798076689526626061277310321805746234536932345023192798294033916406617326660180453361660117355289562494373715482461687106080042447191649832259782160084186979206678402990894697303294997782499591641392650483155092609641458843594718341427958055253236359440233481732251926938735076829557504406684777281476064457422869964157320812544886184963277232711133318454110457836228740489247872283204285439486479584371953623458434010222541988438330250068742474011950423672096586597062317719107462355360857365019733725080974140117525624088045568916301572484252647956252740099745693788451546323227959681268567905543137412438810868999941862638464092473634124770942975973014115860187423540938572636351360711655995999912400688869257956281993630507386305418892246572303364276377953804125643576294884561252308467614956259885351889911435285266008948217993379296988026308096392948223761998173668133181745979723577609024572683563105066825252077158587436075632098396443489445272927079479356335085123753442374185974297311417260447030084164431741882528539926777066928359180257635924530354925114146410521585334303827827094866282391745748524223518111538809414446244861222340252479051083752232836593677968252151442475313435569742124119146263471134548253216849162136512301756327736720677931494952967826589292409080600435819105078740211616004663481296184749319435143192334664339251236146429271153063591705553983959769059285999616706572785080531558805851178208127350340460953754384467245448965086529722125235807750069998837506735921486856973985484981692184708291196517765496264445452500263595265800254031799551479188798602799871373511732789905208301754217311019812150277513655142125042183080001292451387184689261471036462036082212561511944893045751093635193699737884684667293309473694998611787723438012345565174062987495110307161843256134375154062282299441305673375839034065728697595170714954706254620484886823262109679260269814209783405867460849766959735714927719448738100530444967074663147565485496265086422405754952234675936947404378760739094280610315356328952536781360640927850516072549891780794640762773088171565794396370757148592856405090512594577370820917187597820305644839855722874489055234955447844867373658727858921892098424909176710945443786662286685524329470448242847840273506912080241075667990327704724590526879307761140576477986938147575270419139342777093120273962052092468373952764352755473516492573097673639706102638866782743955517401452927669418681553815528313756355520775471555541122897529798759695183007961805170556761004098168467028598587082576982429721099470828500955771676716288154212594988675725201077718493789386174446236572963207613996531320765300977830975032159943556690356705244016973515611692700566825900944968547321763317523710189900574952860834830306980674997057134145482701757419750023642446310548688668855783627152451609324073766606882939365118397143530213907844833471336742882932750254214494774055364366279884865640705122733642981171509742708939256124025665655201984610322621760598719036998071798422111067228658302239486486108985854173167544819763777788583993478718278162263279276829929871445182584288451904467499565807045326761317037287967841370044661534056154379016053000187832084982212341416712702305985029998108250505631498189922417814902725093727610080307138229002497092567495440686603747680433374225872459542066853939523019381443425457410886747767544017858414478026393045137103231711576686889889208348838694920506331719385784654940780534218161989055970995867337236597875682474603692031342486223920275847591656746567030439724139865667705195739630381008253902071648245030604456044910250657985702698150680760203839662246298147132458595137679677286938877559105877388912043373644861104600336206203589894901565488959101712077629987865720155805310470776109754124280200033395241220262796234770653532538282017970970138832539695667037730837010238370871254553946914871458426500976779276232303199536814644382329206994707413426674953253284203091478745021399064075545817353149126293031055639355592231465570047030058313826261553326651192048022440726267526101992700685991752495890564219515535497198539958305439246275741267614963396332246623202547818004086647659756916411965982634700049982776269856567297316610285879158700957412820929447624820530252966321716555866597220214770698290491792618483935275632890169187094314349540513221226246923960663819682231234508827116582159794748981697853760774954800505023229727919386848264262701378273703161028295529176030533435685765667995273477509650853363060725617081013106853223881344134533488291869349214148062931557183556001539231232458543876204898120884233677784038075369742954826104672002611730230253607554494248503254856868450802245190147878771134679152995030383739294085260662276445423965294485267996203068636511058801614873115885199679325539165647896102290109448289930989545808059311781094744188736439554615722975913449100468505533824442037131755490994523184495557059896960717943501710460483452826622134219092444213284879574994886132603350762339580029654897705713784291258108110501162604781346860943389075130622575430998100038681365982509570785014597572300319789319882892626753072276307411390073709640821685412912224743493570660223233201975546637047521380431419195250350404058088415644749296304760207527790736894947459283610129213629228456822991475259514451993948542539587036767611849113784796241788192057378079085978865604614857321192809830184468784288896820257872936338934554884490987966472611857884107015153510444187955743665579306723880558302690333097717396679439875863253839457955156118681684554661152816710660015412527536898865707353899511602737009094308922912775423306381168229845094926492634057176163928584404375498741234355121421266558798890187285856429208351981674176948076151283607166119259953011486742979436846119375400840906125974057769379926714646743705289950871951570431747276865712675901917460191837363079048586458676548723197049401610655221702017084144723057421227536488229100292084988351292339847003727660643893829964083062262493673258340532392611097272453237331131256253669113782094315518024963073455257714914160484369292603145202732910165711311103599387520759175258421040045082748111215017073335321684155333237192140300329025237860979716532603314531989039747924285885723221399227794960663644968316844942002165840688991138446781869788275809489779762427890696160091443985566328488186755722326888895209972889820491508867354665306145421999801400137713802358449482858525668725319226191488615309578302025939715344642184180427331927411713316107814907609904532323245295689523832552688338839432912652068731381651407952093357417073052756648213972572729097923020682511179352105045269850961984816325995349080496723272829844720638149650953041604726583154012503860628892861860786660112866937379873841099924041173851311418875353571450955665976892070614237659942802533974813952993559603138854198129746317685203457756527419210905715726280290903522585309454744444437257774267832072177922392943169463210115416934330658671443750756497689506315735462889085458879224032460955393930134372967348355278650437963191828577931699409395274667215132139279968262889162603473590931990646397879633998607472580474533419781454272373905811920258657769124127585008660284867394391532713417763242275315656298970531274606229489880187759351420322642299307906761128081513904727952947366190098659378121400632698649027871690136819050534872534976764764915259829277312628241608596666280533730345431620879202021952568305514277979463507811379422044525637762740036203188900861659818688446875172913655562242232431740592175777383903983794600839080384628073380773210527145071761220417992325024813679518497990294488527271487404281145875211141350064660803837436594185077311018324952914010229927771683118971617443743123629019682822572522705598602159418241307052625245123930158460175769515238875460475932857313138411109571630828699520181730139457577350051639964443461726012923154458755575853678773552106055541378650244548092562175585491495944920815937485616070398664428638548851478826140384441928554098193439939123286772800894759466411056596603376963848163758314005078241258683132179699946230395166453178723674139626059686133092838648083084916279270619356786932919216469745647189466846877457856354274840162010084805360443643589445206391768889498660320093256019385309728897199834412857867089527640376854068630737803589549382228984141464829806851350536687453179701082916610508227994155463902625693361833693064734681935146946335843184673321190887462279510679922906593922011791958994815428555641389496479361381294034391686374947804853364983862643805616247001125878160703416144951544543772912825126640871953730641731268806264653994897576154509685037543369966849554738366818160877853098820878994172538369790662494552148044470722997974351185757354267345559030868597064612754241886643991379711224918372019995229873029462616770408005682270216548398283742893423540326421844906090153095381395445473447776193733227363771699117541817986461595499740978031049928773566633768001583077416237597482312512515789797147665543110733794274323770961388267855023658816742034356897405286296656218180454165647685221183409123427665144295212670446608095535066337599027442797191603469292774093936847301294045144316062521034891867168474957420112521002086559878641174165378296331699510675559166662516466581871023889730847602174502709190959582523605167676052423970517700854977129217205701095176522272525491839438374408996848369949223361470248691538742187522186928252503290014991836066023686368027375692784510219287177193642514721076273342739452149300290464687003202515087916144736816283744790830310925639692933221531833942752034388059493317141711484846971565505675548023237878796479825030907181661398719875619934599084882199336156730069681656278850605616475325510066266596539810541163358801984093433004747322550646844483979024472097998144115499022356405259768238103521444416236168492203146762804017810241440660665650305301483868858624866882520005503579184495664631299833879716825489075886618734482902998182735688736755123817168202054312663571121363527756715912205823096401857447168717700709648439749836618049728464938518137983298873010366722325767089337826696881349540411132998882985451753869430202211284975782210966691737369926805980834966754343777872509737830367252118086646301938416382610887521512694587387667354442042465047554103991076134477548405074603795374368859016732851643776058195666351559450995820770915318229375331003024594336348922617717691298859129404248031309582925111783185173743182676734094792518199542630661554390753156570724095544883999077253035009037251485199962933039207176130797250893327417235027903017276999138322851418891520045446807809704636193461663357160178044495419227434452847576347883354536432495749420890507208077596980531336626102386429241990292561638053441301693702558945860703587499384919004701914246415158908189037930983940245143178236615219249982356125421676651550437771844136506154884923936596425643920875992787969850236437410535924353137591249024556788862209135086363880510262556704942708393986575831204122158698378887266844088079551797189707374597456299983212285621351282877067648954383375720429511387634281028346823874776837077345109885372600645689805687938207182721093573083919059730404554778305938536968477568778907751106442648395334128675832775248028816007639827805587513455863940068954723159057242136296041917608370745084099488241990268426606342219351168776352991577026291167962255055826985933257371638147923006572777352742715547931999725309418748704861853166734092629772975509507883852446206511526075612535694415491127003365303424958655865047455878174697426595663375689158198515393209972424182729918899364801685560224414941011120000306637221478243325237681564085589000614937649893296779696956919334541492839741592230419317820718629198791456361253213139236834150085349789965477021583807779582166338448558341308208664976085496696216562239451807586375220267085606090406169920074092025290405768038680410219369428253780830193943777258966490886952494450063789227133268471034541805374104372488106704266943637278768517008330647049067636402498586574272113814861684363009319538350224694467162481779138940075507978357198173731926825849198960052494722569727673237619302410607195875949228320454511486812290161172152406059847462074599065246393293895841809908667943227345427842292699120793997394219081440044212182525561417437420862320112035258679552242535250970952092838092560733412946716754597086659287844128215725335499607477229959618356008355560511905068298429725836620905347209309154181282397771651656851576261510918862629509582520615407183695120264559818170444503903195895089875482708555154649927067781795052407408442821852605620152462330746191747703733384522129009041983889923825757978285014143945713620681871172535412358894567515955044253123007899032193823274149590451933747294963141499984342568490417233343233193529032411037252833941268407957687427617163591586460432363335922113611406044189932695834264054011854427583683947627180796596548658708394016504905447586038041726160929146386417441705505778960467796953637341167508545020164309329336585175506375660890033000374227122613658478470405398469032587037052414598034628159254390302955251790735069925509788297952747239020679996326197131413579684904211013553305754127277083713975902491932824283875199864218012216451867504276115705368000420837850834754237224845617932913559412932532576162978599931709870430200009564580184800003675782246285253322672646256860416700232139716337981398907935691580123499738391688057524075535958815442492473678521493353126920556840608837820417733864372113097944649783919549828536752579207237322733413086321583802442461151472522372745295161666048662897886417059025878656568266124235365714426013008508951469591599143952440490369364581324314537694657033681721915188520359668019273611831819142847831245590174134703607667811916611855642171857316375840681304051749523622884367143756603332744777137343130756755861057964859613719108279481438666650747196458041203425311679018542431320962428446856796706435336576760471182636238559363441227965357603410134124585195231361413008665975657428039502946598651591177554846376133324976839658049162756591916506130096333039729517919556775102545390468818404549462868028283177636279710667918422642705405616699872747224543977447011783209636225434286872981909828795980834128966907730306504748221620309870059837541315463966507962682742709737807080124527315966167644106028491733418381562611698115186047923098201344522991537990031371518454355295449472375781738669268210221911193288768847243191010274300869728991458956329884164747519170524742667976938071735884101549787810708042962548537165813544702328173688433303622307147844857625651013703458195212285261974603488629688985491856350222670006471765933309685081755833776286665007484721510264563046546304640079313665243153856737586710772053719528629025488518156160460918924946859475351575655873769949268248147080000565148670555628546725779385018084160456880925867751611506246867245166054298901057302721686894018108572789771633624237779003242671277102162861217071268392765846229419189603847749145025002553909889700107897558004226565882362456059925917357236684716931196538755711980004325978192174647388307171267357428296379340039187951610345357047151858685245955768444686374807470171141668086082290586287095432121900743185575437813925367386542742073607561352952411540794257089405952028428602266144598367203475023676019930158445507379418298250270384031475072558984785711944335470906689330903295887500269113904168337214059208747452947926747044050396167197670188733182003349346672939122113261156137376081488863546261265082445529007706756387394624233837917003922729005003175633050907802515477012482643441998429999210160674038450689421786692930114988311322908289996648490829118543302222447964279854108790834569473044141398028051286166266160270677147021384103565295522098707845846093606228538028914113034001864176252630888240726357079914914843920411409619700393979456605468600866928105142703631802875503868962661172413677578364309068035064805647020817620917885771488900564549147421041593772092996438089083682162775731081879746160159140541265157094069880720262002024489384301925345167822237140710061138446061773326575686579520147734140733651493933720359648805147606000782459258230868069950417843662231811024208060736315536649089137818311909223002879787375653862539520279754619078245849711513745274304414539534457628263754253346330113048608436425656305042180667375587441163924424149795109150716468812583651583990083917855499350662941836404038338272038085525109194437156562429310159490949561010078302065887758346683617484605567541128348757645632871059732924911110827228648576555394523582849425506993844367944208823487602154634492051712721654241289935281199220052796035122788139146387865970420810852424170499606781687253866431422066243992495087769446081563750084627186706009188793183644449916182681141761176379205652652748646626358377934269904606411408981193066840554664621203016596840534540343466278361730871448196079120130344692683504283865104602712798055783246023237340502683860745208282886746159741859803239576558452577417261424300227541544330855873927682510168662888647145295635350535395537038471592575148480945807355434938838272909865492434971564902150326275133671429603346533608586451013907538086631029215708394372443569377972203586981433514949299662539606487720438252855513526410221668682356618289194268747579184570553072697808860676958692371517293123684133185116103468501992035581212962731402462028873997250508947143911046283675406356550674348354145195177851322455309842113364830382536259910468226967420189835140725252754809511371940409029503503944712397732292222980663408692333579957573244610251422127249332332204919871501406078835016635325670706316593547599291377440231971980670057242296887924233510859659539456566333449895505143265521379419140055003142983336488717895425623457373266704644049292997496720375251643033424300303644353164440554231391636387512945135364653055492488413939892835035916750241702731132692405428498632656184944964082704295694439954213292440054502298474072390791523265482691771035866197124784189289579596945307415755131396550032116695031710514756930575675800112796449988365760823134913493494915716912712045098452449384304769778755866835222921290884630829959527001984573675079290549727103018509500530458606459847981310995980645842090822785956514158233819393262140544422835270221159342662788674694307295510398594648850975074675725310541412312700729446825070300838211196538527500138840140744371074012279410490967689891711201589386976006671450989603501574171385459915708174705800904538552590131542155307555719093923798519918148424547132199928276456768580620292643700108047576578815026464660799813483452921239901124582030807265106095929625573568942106867121889562552760653369016652335300334911721218712400357877281288686702300911042470791100329702986072710138349632716576157858668364502000765592421314417963376657631022728009912776097803282066117242319767172935548969897747355590015806355368855341920787082614062913718231443863571097085840225436079273124043865306857979867292376405449047206848826851917285172069940542772934670449410533568109209105329025029502641008537719315640692910302357922262695182645499813411918236442119027344290409096948892209677787558072013002437265935674140189464259262823170861352318391190725438409755397095538846516288509086894157125624964338276503587477559659702629044810580525446220616717751936573797333605356118177167277574723564991173201813511533740724521005352937794326591934557725586713356216137030829643451469879348378254156207549668526423046845838479993388018930548346574031882736776618850400238941681654376750543460982299124181247748008730957263459299175308406743315363207055175537361891244211638139194455958574498477475873664754148349005470474085682322927001773230516366530393128730613944069899652868068423491737235479374914833650099105885396525182527924859541577529545273025711790093829434765889708545876850318142775724204388298895738045765736046420107893374093892747182803385755777503223469772490653764140432939175929600841451328884483709403248490374385553041491469041128594558136409759356637809074175119241133935914931600543132463743096978693110592022319496720921689941569273825597710359342708415077313186823606505661676013180000070560537060197820369554997551110947859588304509938265768752245125380351764459889885557655993070920689613331903443916718238993682825189788700099840331512135639532713704539866166069911222610874051589226067589634635063358552343827956058019723653169692350395585983027773277808469355746104723766186021352439689979870919837674526902193132221266693829022930638578294798271187922884359554581821985714816867897817830256199548273664147740292094800747217989976205068598127631644284195127342727812778748298627333707701065865149667375118807870488983511988551391850995209856484619549715722254854905098212298026846955737198168982536024505742182679322293575798972279524121016747589982167135958670243371231308173820767087826645427393639265106116187312288944923151961416633951131041355468658084605187352911594924823200359371013146130164742496608639068879283035406172809180409472357513089394573943668417779453405761448341397154539899141882231439703045654714726636173617178306732072496596130739904980362978104770357483935999242479028256840855460738310352229489813517588622064073206573707937393367883305227333027166839869567991363157700018720253461728968958382395476889473786263712572374271768096802212858034684688920305476496449037786637234940874397564863002484731190186897746070563374397286388438188840796101279396885011238420963748119217866851333049927766028444326567704078941567661653002258051367038059991405405994235592742009484245271975995309906977525462087829711893333972687432195101052006042728826971711029430673108534778181354632501794246859491746295892334804933747224110015120357075580672811205954898987742410042897442507328214295520826470032941375441424795163482713210293737345523851489529839919867032370304288415274597091036835083653029190545077705241081230285697137182429704886704068744891208828183922441873611290573424111818544210085621113020372497083530112667820418436452186394796477495410097437280774695663636906662824523394033316673136549557792688955961588114928799191835484476717663677274324569813227461774932887269090078292131354113991397383597394621191252149732461551432812267272769877551574736554699599335749154484914608504119658518775206430721681896448263382756129479769895741243886429867717518570357135504079033782479955722477817134337243151753425925150755544370518117070862727794902291242784325921672809001175031084930718925269301534583605350582601476889185759792174355458678813307567146046058107602958102890458441014134970167548324900168893550020770377430222707903414660078268301909833641679321232866691213182693983172699171709771071028746027445618614001812319623127538459164378850169976358925926003554702937015208321308391106402860751417755529699021551056921694038396232628792193903414136010836270798505978169619714127384562351985874211579151038772420444744808133193054875414365370197878458464041951160897600956972661891569800966891085604161552009331945601544191239627958496467563175224286193592474515329419487296147882518989877196808397962038640635393910431036166016417302594396530726235378673253846815277154198385020612337063136470836662774109772618703776243455571125591802458340442629744383428529990727452607538240131448201556842522334818282365175863701538689722852625403423811830402309440737954845296623119719867399706094299194654406317737782641938822158846081943725437184237510275703089786978544380001057283389617870225679644525573859881877191923768359087153904367910153467094128884775281604507321806078385407299330298563268210824652505927484640411270190177640491788701821878923822052343605697714613605122669553029786236163623922262994876585662379520088443356028150854518628168680033772156157135997773617161657544946310424651605308329820341210904540079115794877911956577907067182608618432781625383164938528899796277061524323720802597088302481143152709800397321042419858980309023873582608608054582284325946925085298872785183843447868627750870503957903778979449821142489914736860264104539313923075563289228729039884325648678872901498409969826224997352836588448653872353417689614954507677749289334180492557913696766292783938748847527063459123958840664385869140185551201042342969908509586058803080181956481722170014125498648712473089829897160926418604849564088738290493111887311925888409341991447374957929208186369296272172740961632210889907385971812638172967523858051907682969145791756106447576097062701085075888052316363147151315421146929447375826872726960350235461551383796151545854269224821028204075941105939232117134051146558103511851172727249566342326872954330107494793340694714033269796501107470813889790220703581672673379636976197394986214558182361609487307039933618721027886298037917385404888125730536158808667270005669538085915854042243625167783203404769872008096172439168001292306641039532421109250930207173866588503474191597162892817641944241643299542095372359824344271423217776418582891510263654548545176915236415770284746484800615093948132043881426287208877227454613860334033820090844156150756409298185439403761264649836783278631877092329620523338669314410847743297620032931775984479166464278526066053793521736865956270543338130009702307977675389350865986127192519691209572337261807395734415872881756814135534789959582515627157443675721033859798170924172207450074044541466380327894038949010145342133864138130930974585386962764042888244713739180552624721963668036879288241499135319293701602701367312696468821314986288407717845775201881126461013778706674693679028275381085760213840196750540983259652163530657399187784939620959068855646293520061653375672769304522100127557148034095045813741217922576959079620441899862925571088432637410939640325417374588715715593231186285807242055782828279450027192170407245968596041091496243105624555452439082879522748490139202723990613666094029444340327760715801320931204747821584880427985848968976894554971343735455817303717348910956212950531947313776756978069690444572173886627908635060497926037205112332915972991787611700750495353767626563539465547380849052478693984959134616429687012313583375519065666219638058319427638258836643084539625042143277341282111487061347828541233731421208744390340789382079585426919829035293407556554690569510597347353905599125704969440940690429919209702697008239802402241766605829986561002867072496288454744226206483985487804655177452676864713059644813265994432542485031063204981327208299476636058643170505239043785958854850417533261516528831663761968507144538844198641201599265118181628298954764577036184378820032992207712083025819150246737109900306233772410464194920229253195825160120165322342167033987176031422957024209313238281292026768780744034221677462707634619063111455166655814504223374514391045688961639900740352799653938419315182613326180450338150541541033002152460808463601650041071149468947320149965753293550848203617432299447922246882559284556153877376672402760132820461433203652466103971130140886883321343254017177997003924550183132414165388769936315475487660155557644478488481037275779302875253601937829142090081691715401037948395936447730552248298079977264587017176611432084274807011296615383644617756284812577334063569170902854922735015723239723474892110479181652294817616780711646277828967313968655278722354013318613379952224573996059863313711450728889966643102653699720044751608340167888667016530866400265016467379700490881415665994870712144547107948443097266044683368663573286538022885338185204772321850677457612388864121928266592275901126819302081413676744119957072916245156836884977655624037767501352796465752912699994064264590723360968117179590481275675304934892135035005248459761515997769350617500689876784640915564335569456310918430281724484992663179675871450563330240528033251349534257327714474982002619062553711768237383718778390445296456306107861769899079473414749685369781727029436833448354410635829046002057031342476737144565674619927487500703151997287247112694864068815317654639055753610341341933920201915452646852051476778863757083963843822464906752068307060809042331122429056204762970419854892949477409533951556093882093398990428028581802510956081940171009049403800581354974428871517118222041600870688885587826349461211685833404258150845571104963596271178673501344597662891403432987178123181922362536101652470919421135775845953623780615223398251898046968703128772493236805162046766161083649880220941228800797556494848192245937383825361594793548695764001390563443054629046141403890503931705954930780964047392950259867945720388859009724116644503758910269600975838311970287045886020370759253152104387030225079341915643089444073434977343336605923368984331846457846536763089033085808927692645939828884996932943886055457526676589975483266181800426595796719466969783667528629312494636887288541116941714475697793739987516283027663364482958579094560454946940382897459111893589860836012920378683724563980304087676871022946322604398360361577113857897132117100842502860580774376147523244619649563170133178401827620034648082854283557734578265836529860539368784291077708602320446111437388353082097831590785002792879528647723868980270965602915946647563426598963671135644857674263335784826302821515359603212761792739330697372228446885745017430017070234456706564251757440625559583224869692389492795385530633260548045108543495598919912423137083814386534417448136480887180422208695434340915349803239937660874584567563357292573338790941058881514548196603963446569129199940708713636712634877844796404890397617000005157040436444778770058614033868981113101655037087948447004944970960907497801242714728164681105446515699973440158837952983486515264520355569556998380709975660410700439628068958164769198994587705100373699243833293199842283062799437559327316756838494620892433667060055724194888687970152013834504140277718923312563730373457134787904706938745517946261691663557564822677713622864073348808229760695336584883536834352180571859564080484165675540771485435915932475209137314059105176414834487674363431273770868401429957542016264656569074925453696521019071757658426407246246573021809869794544821025665303499601195244490149640899969046708151661077175050160937505695509234195686238187000879497043823530204593560947072128251596827249359769534396708683069414153556512984229598549617080269932610771816393203545110784871100538724818433578251401861551732709837582998564309354052327842695381375757353304242750388377595767194799265459859144133161928219167132370812079536444020736778816623202611738700296903661367886024811972135457718837968542485832532133200116412231695444693180124272444330639280110749594365182941489872164833529939425186048138633911351869025879116552560711511555430941398040662698301688266232993866677191213736674319278164791341797015682004795155925237384949475221621451650187973727289586554637575907096531143914640019875136329183625793450602824536602150502310124677769521031543802920060824384108561514918348521470486318237765597548990107693971795890439484217627779686384893168588325112053366562440568628657979015892519870020537464496766666076325675501964002977356146010998611791226204181621441201068394365973220080936997336783433740158190161447367017938686368881122703842909990292826143593834125201436798788642729104675596214780189964737521756645050131643140263597654348243357046092858169878197902971216139624174695380415833683279956081775660194876623559518347817780038225088123777227929858301514086488123098894393185836034774381478005054951661778671090592694632580054038234471932144059811127569918592189003180792405255836971876934853035865704689510557456535820014725267864330067865725468770402365931317480093584929422295555258029590826885299199278978361215898003356339787782753036572201354825154293341010875630703430337374706935711301310470061841038482531380082142187766336925008906172472742378372294386178198127499364427322528834329800402955709659784065950175088080347406315483405531763425378162086171196859979123951301372072720987567029505901628805766024003372030126482098287109736116872055978499913000063930995670777919500466163517735100621986053612398884584751830310723536363673365932001975097185413598116698182204375608272563144166516978371486120661174059884216742529967738086425514361075576389417206780376718165677751470753209541386657810322419478043728509531898268410203718568463955858090495990086532769734461245489533772345398286101916835822503880763732998396749187599258663734225004117669403658472247559479805399230190135756131097887814646446684423444609401419588058199829410255067135414005157935796377216468242010265262441440732121369548552298066690817624405126354525706055425708707468011197971780809942365840437597730681891182699744016252472594805632317424679535910921039660316440178946849788026137666910836807399775686418859203875726417420112054025543217595624003827640563115527049400683512230783961711545655377773601275429638357379786714405623079705906921628801940387488731784130250181446222362067172878752116531693396432604191385686657641019410567604520995015971510808275795442371291161038465181283825430137141503364127683147806897171652753633038204386124420994270585840346820746314770654163506327218094351265210930900966370199510108090100752585376919633433782371547393305252513734172393837243552593616359208668985435010651707840853369604826821417526040554907375304196158776460493830909688844645735821433321114630347808304751502613156057972832990345450977636748167454883856944397493999278883878343240896335054362022372748267286690766145940874846583059875080008642909476147933832335393465710325839166700974479677323559821455275212365899208775982502290352563490881266011080102487234531145086766009355901806543021723066237211015153243817016022537206907455987209935474078643303243779659751349381096097005780114417460262063068012237426018225078929813299745935899585422365627104423538963466644364226280404682436928161815332870882257554506310828030989423781184005245220595680597112949573799361051198275495988378953347531403201414113082550698300208546378992680595216919476789419751956337477657991642763594943167321130042884026857985622189132967160715553314803309729831359757026984314302593904408465444579222331158867688482760333053357620572962605611532690625049275696708190987621950769337573470434400974711068107148501779935931092253845093366674679433526538438572238077860879129674083931064894765141293312295242810442447833682729921626926809188608233936881099215130441807903804106318555456480377872636466281798346391949761474912300909856887238673509996829651454467783590671153383404022830892126463765511255751215153171567441989889677409711088223584501966146848963770840187234995862265205592216928110944654698086834788659286131431226239732253661658436802267521980514426541747841820919786072077439861594429495361235991204868700704432210248706532529823707303215248574235074318996700706727594453579337813151443071560539796782414788096680343040465648891306813019310745235821322623876134496553657080727418539104181861228629233915758389242570449320731421545398294521978019838012948091672566161308436918978239114875990593363982639089114301280934767697952746043786011697779054425269993253197953822245925621807799383400530650892744107822122286505282790842450540626641191164853101417930915514320542294525074821178515451721731338090621820394130716052128272086856683533681604040968995397763223920630283924578908398449516728867095098854075085611301430929033662072803081139660550061100270637446654317360171466232636949472888090212411125372542531494341709648451396016428481759949976114176063563865721579801479849311319498829682349347610235176143790321179050490038887095671318054987187914587717461394923401927592821844788447035133213433990045278865583043785494010633310452213514142482107244951108437885151448155117088873751406964861559772193694729603630427390985566699566709308616573881629585275018543424440731699965975800381110747717950101349342342797983869140486994739218768910687882925966904992411155801280623250123132311350121923937483834801682979561602879785220975339097858912897288531498675730246814603540692840980701171595828747727154365299013162645486273937330008309314966234047909357958175557324982747036203286557279114516573717030682128758221388161466872812638811285067501625579416304122051881212242456181816517169881265513368723776778006408847905732455108681242657828755034105795589805463061079498126692474411937296429513728931253873107166116004969275921230265577133185838934865709750066633301385196456331915167022059906790735790222987500285532484950036090229892129547961887278412691370341031472079361137430079444191562897808332670140292776709599166800532740499022323564540565871423681201359316573821054074383318455068596693531681978679019607006184498529951223404095095587857318042647458518152384021782474335985326852816476642270087114886394780072292992550206856680553002122132477064729943879962619986178219298666447543768362536805445495833122039318157144165490392686541697776479446735015906609442564112889860970319297330949875806054947674404194054890045385523294361642408117655557915357996185362665828304423040225450051127041621942884504330660816497051787635521717778376963254779318547751693915448122819450290774234960633663714677889078187718736783194653103295236841992863551324455249457464797999770989954482566006868007804310552510287233262975291612629858762814557313362806484721859004169199259019413575005569926055041216429116226267883074309061161469216748220589534489265907663910203531449595399089341728062210364614080994307254698226482686875480675236362675465388177784544576460544182371645172577819126336691047820617696988225025380300567907601465627791199301301971543120868522729684530241147443450391794358854209579085232463735591164531205039571544168006647382069878829132403533493498834346898816298889545923020737972725905285315412092370060892110895952280508341878371102403879873199325650905107298533092055740571344000067859079445239543854405194695126596600196822294579422418094954723974807572747747269359374166019851478537697759312835427514082630872289484214793672950021382388390291276805623325980640117244257658287611312033497557891185515554294380953493793639004933795484262148715574257640860552708528060827667094207977655241800253174861945517513703808423635210260277653195251930305794904441181744444461953534673060859909830855242512750961148047613621699454638201879214044396519643334738348425817699247801865856192168864696537110958384711538264561932263708143406167080415633885976015687430199256771168754298058969669009833190186155398044016102953919409823224131924468943339336912270046727157035818311081747425489999513836796146694283414436750649836320197252710734121690424888423096327028281569822736927981246898797361711043680286557918606541471875391053847923229311516278940380988114704355257556218359727025294760286279637672281451968763450985575423962284906399240262478151682417325459607658915243585782848268798403552424963540037981293990768773700374154505080245640653480100075525769226827121755029152947396494842291798608908882471231703021825304855386988770151120101350616483720119112447910101808406264304464090264577132345887396519199564184153665845902831181880495307383343333357402488198439041307774395214640149299517993331342819020080661383478645172767051944378303909121883889664719819101753792524260809791995254956990427013757251148720274768413513037302009046225804680180725081518210642412636612106237716455463189769367505645413994710177743026670422446140230992020549314331013968336515277900044291173934198780871554501519524946205057912874666904183098904508772774927865254892333225661095777119388176031103841182336249443305380581883507826577511907540025228020964140350755129153829307723979909739574036731981190168321112748049227872697066510411606809499578055600268088669350871745596323077239058325033406168635190254690166481045559531327376711452739579872836111158612962481200198033096359131438531838945500750281941851982839852591939048226831170910133663861786227864612954550244699770856150067985476832324518058745909462817696562026839271750207935654354844727180623321907467807759552561055160146061532204647620372347390795479525251710977822134343428271852158461037860690910763913856600988415939678947162721591088862152921000532832702186682602389860763635301139974417503643476304807218219198726900847929059139898750716220999364475850342809341176809788740040146253748960747734402139025435180191561137719117481315063901024319303227863488363249523774024919833474830112238014883073381045959654351418034031387531207658010270753117726704674393625313536196151082680710608405213534409799840995099633497750510983262854068804292209523746766933461692276431861792454531303540938492284194814508666808556159382325639067762275657733442391453940495480178333530006577736648355618109225421732792084170222722527741408026480490796603631417972728568820507705956119468415852447422100318402440250628703935722898302660048954472060128572792642707117948879548512472355134937113444128454826637302484135909540564603491385671982966892056333833747277548778666519135729291782158186947088507940815206668429472396984999901818922089486414012496355826645103323663691829094469033197354691611887790129136363801319990838205814550907322220425106541935450637899284659594566353820875771432503444153788003271865925887177747418732450990475509173887772109388935136099827964381198128794275239174026914742102586870889404959460465621970404615560735940958922995202673741032438017716804068590116691476040236144151623431775021421438142435522903830352244881733377170534243299649015941324233210925590057616362594717035424863152756596518950266495453821076514694885295400959556920917354268488055564282958856400841643840193534851391458981023302381323313736970152811565402180826901541071396270504160312968671195524763441492353216603979204854921244171625738707318081394143543489952234866950633871288252912103791622896990706516367809705292345961489385664363107544751827646306619503645246329973089609344389442408653006745018303489514330508497783572192634999232094714729578877502787087542681101194582048054859143689089995542383028990793421963547765844586470425293159179811320211471883062379451626927987128643819777967116596883822679101835550239342702364753197833012408900457572552280300571606401799430840056015459590330645920184567287192079868011853778512419944385383764873444469916889029472689262232086350987421081103548957425890073993258921838651045560084368752466365284152675346686098406595321445519134286195174430287759228387730290198690213769279980727072358654043549605926661778249402328674133080166960821237858537707617295234634394336497927410684842016287719619715400918287293520679682085153124671966430114236884030155217676945857866876245781543699489715868575693551686565689014680272440780399462380395754845143002146124662365985293243014775772593071140118315829527934624452615854993537299348951693387972307187723927898345637152509019270210584891126251074900629754208602552057929784739788826473818958847555144789951456143479619231664029341397628338477538687963690343705825667492351291359386475944130560120128226678158128639443228057984593628289171163816986377071883743635947614858555297464022570135041631954145780482490474274548215884731459445760678226238571010242494468728526339032081158269290168913421894155294638453132405260005270723645219418102742992885479805528049816948668539846319509921555349058895619694348838579995841227599392116594121084951501628225928828059244555040977714781309806496717424998686921720420934003848755892498407367922676007133025246322700017300697120605844263271815423189101092021313683257128939150810413673293224957167204426834773453247652207156665044466722460204743065074940212429640797152825421910933773304425374450177188371209086504583431389598853247122203062934401954399348989909278932380268781829956739572611085515443509107637469958202082101601933148361911840326502897141111109118207341011830817123660559512563817045138138311518742465998366648187746421394158316136277845594734807114824217789898013217545704623914531833927501922889383238448298432034421092199855881991688123849621429782116486653440886627966697573620917010586774940991434695576670567925715626551042790080303769059879100362419851195164871815761907970923850982950576744618643204900793511127293410513702242446676257923314699700388348183191506954567977345647243656462750781217448478675198873304761724462085610108155841523561137293312069590349718889733937457999398935077303673959276577611424123877702932575925832050203105854699576772936962917182764405824313137792478249367335999329434276563951611712857058284435670736148667097031555718909521575121063198629093790816920227558934380166212280773502502420648996227690053941431662289814399108527801685958474546408948978115793101058003803777274307714995262112840486483513281196428062364883939158646148548767409522358155389200319096961731511954265334942860078536181005716837884639846982710569045616454608573076019875309915719048591982422383812757066689853615349170584367840704077845628470054606400054933736147374334030108696002620447783159875277384077457520967486717791245460454022440712718447356563868002751095870718217062462073959457525696198374244720879665909513883047553102311533964004398285789129695518488663880055729219863577837177243345340084789407442601654196062902517334930962483125458469501218493128953420552669552943840455435096564087108670775495422518477792379902934693038325110967093912813514050106637983769743283524089099421395329377260146299037839348954683374103321687870979101365276794420620558959998909863608325961049439944011204721458199658381214390345812681748101383422558893313930610880976812510175123523808276860187796735321899156753271626893894043012648336313603010616504491924156083520683784333476237374758585356931020379489508961157855104936694916323698093217051842775091275388854982249014826682656297099003798898008521621407543747576678865579877685766845261657499355941318522413347916152879405881713211477631693152260457428421648559240060787523933844216169679066533137660866592719856683106246074123292040444688325785847261243838476566558034890406317097791937376841134227352149546580328987115935271652029573321140236524514784865633275826818286767162713793099464508358742935432837017636773403627688328871570657170361601283319945838672500437903556671078102906980058768810202341447918181055336209022252662717389839615463495473510698213059785445515321187298422506241347218589348173719795498541802227992790807124019883828329613602937481567995039777919429551897211178276256591496560749547749215315360731722046011028025556521972243777219386035374846535841811852368140289069545144366191509244630945268348916586169220080983765658545819201686587875190065977163137830697700218854507266348367479874838309710638002346489517038018563597774523769980156362949088343956852063101153332508799144207514179961536599733528573506131018510097273688877727613392899362899907078015474663558398559058079415913760808953738004156483824672715712472633713894487210007508781174384965941978415361918338544073859184940319604268476037108106596242645077354030498287128343164599505646987056467759607242334239388571606444639972901911496592479879364695516516377353561676765261173204668068903232362326068664253563840334929091867430367874723355977873265569519112127235269341427249290097632681207761559533141006073959499963837172749619120176311722665943367279070868163495127530517518637940229470520802243322859098936566836841730504547895806546907474895711496186676266279945084348395677501817216431184298926886193417022674927508659967524072929842559989006223089434412213611604524852101069921266195511403987991645913585713881816498333130451855269926709645416648405596789460478779758605314443570064688863805285794570599609004826642398483068090287625802563673114552956721860877227644542018812968788228780903322641214372412893673553061649088351181843892630118793480764580426668082985006770417569380154282741149441467838816391271381263797268195657674294605910627944108918072905219150659351148952051209196708587616968349360985393528321655764607925906100607345706869900137889710335733812514672400104939960487406244238232521576223189904403852544199859841733403548164188959900808936325682178824870774854329549622654911488936537572099384931384682422395378662000457417928293942170913876659231817522855948846892851897502458528504973178909576515898113354777783964076637382182577438172234722533260397696606963463498059212134305718954153523862042193542787665281159758603808006267310935505521905002923360518633364212857663336926771957579893875149960338596577755146826711239661429756048314567884648261706313143145969785725123409208904909865995756514911379777323637413968317063943273866262007239021024465122318956897295578453351776936680088345029115127674840495792891072981391242826996640251810535206823762116024310099809249060042044903350579066338036339427710929764322378029855757446356176856889774250929733731310587775895211340253911562316343412382229431547264705887268332450089750543721394040620467962726974710645790567435760067871409055017889268000630473539017707255607205768663443306145731888781726434141165368424823742607717859999712257383602814659698477573503468973698658152340910211860515189718489345167285123489420648738666265753963336620233517816212276029095222958594666241734390260051930652542804226328119975118000377564076153644044713809757295240136291926493779557421495463148151081986389894544179673646510883871275584947871147828007575268663706953886389012329407195251432025366000301005217378016184480997390974374136977816115528574950475300052777124358724953694128669707945263064822785671810858439827939512050694116671278176203118475518593387965879711748765706878833619944283837584764482052686682416077801326605382975163193033779204438886802828632859134912115718423875338603260837301914011361830241651296651610273655500056582957866423440666028088670042250723431017035029576961063496250866488147325095680083266470676722403903181064382460882975544567911628161270211607437197435506357042838364610433449635848012377859774472323321864888687230761198724774841928805828718641031612002760931114595351793341757680124500990086242763207547726229858265858454385853821055992805432280842510980799142145778145222789366433079806217064045463498421241567976438339164395553530692258722610223453856433698995959840016149593982755800440189084147097364582641311708534419843801425187414297504421053794661277890117232639416455801954169912327866434247532097715109959169233029316553910385696654152350129104482083973426083154416114753262654286297881294017825889677947279197478611370448967754618625341210212646889253615031774533471975094522495879285956148654456889852828538946031550443034734334347801546447546023993326072039594135152882018939514472787788803975070068494638131106384535301957339535799272267521789761512426308289461738126368355690729913297425165399160647988915422693288775746762139692890566725918283684377643757626906268316440754253870938247570458155557071231643006172855908516884428083419399546649690281515168370482867813756877238330775759993198115296130673499795069214978627480830029742701359244687350105477415351193423833962413938997450343459741163371616859023008521909373719478562031765293444586762787524817414250856578222390196350750553439262782158842073048910097908874648170349447896256072469285562744829557148917466363048836062163959585155334703677151972809477715296440279271706051010395010449997396043977425872250591696954536752802594839384600980962421903282958182582884757621226148731859896509528808959618630630518218031215279448326648624274053893633458399449890859177540115452106646070297153663968315694059854212145269746906650489008847452627594090969144907267295675746685948149218349990372224132414917610487054560466649625562389399536217868624119618349218389797862781946551853074630785123550685861644675517444912883733861778436469154885916814543679723323687315662808178119824063951623138895821137359461882572133633002649173121358652005337306995999700698747368272417839714499819813179813837199284226763721824091602554001905798651280618653673866561198297019087337519623725888763246688089670591861683423842038106920272399987400024247797606384107608840553522184707526949204013976014576770606605999931583324455023825520620172797166221161020156471834697632771956760670278724284253961780038896654750228430516925195577237943415791842790089983493853835525756981138992593413679114491787356416385496156701599777002028070630886814471488525223849028298393912819208426627246482143698982922435551749163658833318853951594105219114608707055115918078847992292692132505313452361764035140120968285560755229226430071501476333800230143338771047191167924727359269754918805699168922829611829329972405789292143907457177435117435122147749490884296495878043923417690717937913305388914350589676964917947272083102122457491478294940566561384732455373049552624780221312947314035901133689597402736378493695046243397862648255823430676991929223529685576521943666546935274764059375049871271684222154914055010649144588419538473360752658934924096190515620326855579606146326381340492492273581558777947830152346285886677606730596068578240946856024925548400961393858085071068255654905431688861112307365295462180641107353893521318016349437702241158159885494478117165459553446598620241847624437875555628411663285021070915434110232392980287890724697361575834116007562737401726166144189738618675600311556903557720682431489579627626597916054813844802394076795654349995963114218600713000089773861633894839376279581003586384551161602716555173426757192896834256249415769895189438771422775445065049903046658246960550732871779742382112978098934937554868097414830649446229884439579989509745373288989900442605052366755538268159698920937613226665031225744834829623673578649808115561513342362564503083197452734434046782129640693057679878871592175720720300875199759817004445302269185411011726283139457241536884245138890708363540842501164592993249253049829413277666581847062606408410951314360473767008495302632567243080024388442165255169043168292883172755359620902063667238419724466974107236214263843472944925568145560320927063024215188109060816121701436641793565096269634701174139226801446276832369793582807229145988430744004013278696591890808446420514148595330976129874642137214938647314850204624088912364498927201603804281169704764784751065262089596107732996483428604546038557857654483499885574929809585962746593301249360061739928555933848379043427550447051916086201102081981847391734241392436481838115891987261409199701005471032299845943967863675640294061325769250753068456260292969898744467635400935922604367309828700861782148491172707112113442994471582343813884729644148443974306119157197483993439196377486912444629680455604654168314725378214603093988573249667715747322797730125984575273213085473092119354979194983576168571700122528485851272561134321500345139991280360234802189065956098341360717101664652693328931061099271883980541051933828425359787805075599823877180802547590232653146420022909697911180993168611079603381070325303603675878018441595432908425552846285130541748829302540865097827625397414588878692629897227013687392360020726241987717104024515574798589793058258340662996954626413102607229314691812929127414802898886876594852924103484692500347685161226476266110014709663198158035710463392354185006143287167325994131538038734771676278386575451772446278767429606943321204428367264171747123297307759248845848213933950171636983518365408029271763432020181468240527231966272468029429240235495628571254346525821108695995784946090480894552920327492105597441725770296709971990951583523507077666320818314816850804108692966362165044757806592389481682641307141918807498015703318151357468635892010523994690600026992365374717534410776287096269699948452828782507855084006376732136861831701326760591478634080911149302627101701189566078498107086031165289191875322642291185853785895927416649409394603529421468853487207538592799666508960772789922753436331897981240763158856830033339417313139441394781710162600906305324223397497936373430754248591798505873267885989313704152825539255575731482710490570877765000083018815503031717242843109528295869454915683369180956592609851987590106268261543360823484684911924565189163461945570915212061634513161768961101975324805640734270351878864472366225007551344366383918878625411444584253371854225318430151995041444970406327348213627991164208929310430572901155346871681339776418090635912987980589302594633615175412585885577277958726323383083846999476014666556856027281089317933073857666999493892061573556927145253975774716615984410093853110070583606181400179567130657770871313495296642038152261030288146081675886859034347403976344371941467517106513952909077011082261534242733502550758764112227368785489803757129447962671413290053728363934336373959765424669915180510794376126159465732825242488721023345533193490630973591802687822544523897763584224174591220765134653466409630600066979591459574600877263929808808296670922695998514175901013955536238648331189757671032423704034175908055671415180072116935061605947577545099986647709468193047170801794617121243035943703088461835776682829395182441154665427733445278214499233584417338772582835816020194287268064324943151180352097211092630950861445330699144634063144812525318953814134342627656680383391158290333806824892694497136689635107350263366814585229016867125583702426754970065703239820968719921422872985965986782101167061064844571334866030584530337767764674293163828560455737073296938225682221659074593105135710864793951766407915252414201548674232199788341504527939773434977482805048569679444469898815311609548671619488096916091746855805853498414834295097211928693269720674816933953123949448787045690211768937751451796311237338858533902129536629450352329836020251901383719822931605210072177523443286235383385539213641320692219727344125444432238326351977442692963596689575759909542489262547062953613148317961969885123199725195350139584736108097128075160860200650988746059602156122213800745009867315581042103819394454320700585687980163074536529462308513408177497924609253685883538893144365305603069950734523141582050445173374737983996140516338591241933141153929009101908226272323582500775867018858937191099822042968708821827908069985755435601217151274963162053042751925866535092875019339114561599601705290841198500307661186357743126325297788391773548986668515327060342312250520708231116791518065747862824551317643344890611287182824541945899606325342122098986196159405164302548613458278963732788665313516271791994307735903849445564743968189859212636966695550216164578238386231460821560840569910889091125071657101695221118711074090283048288651311990810556973318982636722579142421492483270470974944417307034819824032208301111954994726912431121074427484255711688658731129181419675886902792810757071883536480838056718834456657558163653956166659756904971701016724077114424197229663859405971948766758052860218908836506303753595696762491880641916208128033452046598470096569946985643222827718119096916714007812001565994263495816310074940248872127494850674370354657880125269332394936789624779044141132082632833188830801158278618151157324668802196477518376040349031318283109673941623767105228506816039417170863254644594791748926466204088674791910104851589514594105390454587403120158269311261589149337449179694986657374501890685066758607069329503583672693294138144347403657157252859201685555615945656814488826907480444200094922335727418941745877534321292977707670297617216885451173241499116723170362273377862135277071945172333028392411862891822648045097115595853847304727641939448345575260103051748067396775418397287963159934891426672609002460735477475316448380499827745611591032385713181545303718483149830530399302551868040856774503078353875533794677474462396161020019297629598309428707729053605878703878335665338358643748734751145040971841501932891710463102965371851548509230067563063349622814780050671335076356735193416801902658727640324223846340977218464237668979419736319431730751567207777996112682155115598664243853451007911823220539388579123025549950179634844465533121336198674480963695944743933100872571514531122791546188628140564220699129834693732143695377484281273441758532692317151532342246410796314993827414747011175469156985463370137360050405630723344318547114505527998912567290568026796114902110543449546701491827660965171919515900912025756807786934886738785560087000057245961525991506754362744128673923414711960808166578157751759817695494291626795199297882442971068070740709438912768290689174436716964932740659225160718902052715900692722426086909414635596381976402078445074203074933778289840375121391067724543906798532328649045060725308689921872016602199286459261911142949247941113345056317086016136940419526763865750622134157783429177012857030430836897729424430214160655607224623704688732939835454777671574540143491547092521380529741681194428077960534198571315216549265235857143183424165130551814906689472426032398516008363931365704979666393931850298943760558952800464643386509617710077730336546968129468982982568447752867708631674519640443743371383368581853014192840433223455387030549604580298883661784246813642628323603165411545202810382923106373989629260060591514419989248128535219342558752300079462932630582327847305980125736042572435189861505345493414001796138912685635419003676287549044222998208792907521463769147642390498062051773451839868840824666857110665833104718766632039861698642659111107811860209847243365890905884066161740356970379387405666731976297776260117653716103539944509499169649675766119742652648308616235103320144076501753996989273125545518179302333400634444747541369536654302831002490898155772674487625012782337290535349738526896003162013323155062004468207882876231029384582212183146303679874359590113888096572061282913529386128894440412613786249523444947505596522332025294451178219959213450685005376828854182268925755038379227021597238339438802356299645228611865159708337354847758300479367795167296665015460073374857942090628714536197989521644515278123896008549304474999723527326166459556394237827368467163549782711923764146873558679232383866011968502756485321907126119594550807155777880316673872809293011782717732184143316464189615455905949020310410489810402181035843953532783346003089465890984842241887691859266206087483191259601664481433487910544974188336178488546745041161607253791979242163673679029621444986896599936507410296201840150382054116967699948182042235396986133805827176821779403526964221011545684931693938795336754128690261511751662387137298580732676193972222527454753866970752673450289485732768525762054172329890676078896130927973251609467315531961693986754136004985624618818375841192779430619619739527608721368764027867393209019547732531950627753141497449328513410636554723217809162434213045265895768151703767559732617294720268019865228837733909398890548586194319769944590376765650220824458681668009460384266511087867441189775627084479530669049615576695724295113767705222730835651704738768529725943369630353879731643761491966068427116154874795654400648762885160919170183968425252105944789805152692829719992433580577635328147140766030745147890622569590673183791483755754101163932776224839423706965008496142992177019249452880476896875723956645661335928241328131966507012170128491093318661614843081346627705881239426277675728345288909537567592354784153356987130358605432420599913420440791254395281165239118046555947771299759167099440269659589617684781164556084967877805019431930042744499129124736464481167952115415395716040749045035918258105826976912302329790848529007532060329597970141188733494298559180507787539949264337623700745263613418345499785910596208218374262596970732780302579549936543883632858622064558183405187115887532425032800479666658449887736429285861616231226881648795379600758546540346497015325904886471014630219449754795014759599112725757492329548813436030812758683636277533981907109164089213990282149374787403767966238961552439952287006486306631670863732481104478983863938642945196729573546981328522553689580059390889711630442801689851184963401231925841557299039694324039695542275688532398683875979093259713472782706566779567993985631507936814758352833804013809579730061782073323165988811171176998342749932488872746925053690448622963855702607900008762285201345998939386548358405007215340592234555042657523336912262334437297818983847796906145480180914058830840913510196028158888208177459261286028712675637366499743218598018933773670244011280105823474015976357432171921035303915442366438168845423016966164116537415612926550795067188034020803001317811454538169243377201327075030620442125687823916175103101391461221203616302795753226170875612187203475641644018753630084954579909358977007511102640130027403418039477852727971506948758108440184101469566222892963122839700732125182052072210888982615748545689763759066936009737097228474863061018793867709007748249433383446891298467428901030022729697524908198132409586581315363311000313163911448306305741937346374530174973944668554240570846769150007887122252043702124879644663953445599786371919052031940935151850673628503929189234716837040221539590666694950343606733986620725715882293836994579761629575254494347463105476645439400317505741379565057569696638479154269397577575425728320893041733747990573724844664177122420632724309929229866241232102997918625414934184526985585371311154273627549770129427108157425049052542146405413073808529813504540537878672653824672500297060287154864361298423258810613728466262987063843131590330643370172701204998867998340465205250317227528157324546648739704662196197616316675383077787527660805956263159901342766783336040255446661966507411512941370992915155345631308680740528798332412334707007702978419179414989515504169029235093381568798212750760369471774578854386617089625217414372245844278328835629543972463590285843778522588035079078696103497706453482293610730624849561824300195841706806125782483972763219514911374039226830913952426783194868432836555746555490254955545680135404114789673965261199900034295850761355376634102723357650178000622799323972784457877286155941398122082270896777005397288703090033575929965749755599813319038428490270685487145439978042470829018651451955174427321762033943243776698304221841213196539189720580108228884506928779404309140401549159377663149177744042972918836175020976622682550557059859460971415735922960895518170811695300629472344410724823436432649219615798001230636906318437753403635664811690870988515938300713442348952350021764365808989428296186688428760460254294239603312367887611430208636986733900570717211906073994670448345567478080489897525487808490742606107903512013306594186584806659017520786633524211826969889848815608090535561760650917895538914099088221278608351605628400469756637042404861318978193520061269923769685208049552682413386953726841533276270130333328453768657892163493530209925017648238741625564697922655502491886012844821787434983479368385961949670524356238580557420316323473062024000966748167978563799192408652627970103718627294495408352376788640546146931725017539070428899635029862079622062296621825765640229393216089368969928028984878235782476415777918384866256853420341086215404376215230262032498315871916939144233197420482666697346996695655367932179453235333435286544798393962351460246850665988490964741334545733781631094359841376644261353598997178435264722056602920893880486514266557639098204167634485706325613671257290520610700299263884607581640586730107981281899250526507182621192730919375503344528570583271662405160092926470995709720336180562614539216708533519950038151890306949160951702362009668177423597750850299863280173826760645641511473675927936458746464350170342234574278186824301582883312824575450996088841651205897696437810288641760651467642909605611767016794320830281683526770518589435743996118198066297632504850474211888328466088654900171843672511524559316351894379689458934903188090363679769156403188676626161623291182347138790077966313550920137759440406419257189150772371980616255913526632493031960159744783084213456906921621925924998744967102977345016837927007883161209269531714822581616664714868733402481244801514329689093192747251144415710615528060242516718265118851103308675666554997657004401577812156208751511963672088650101375099320482788845378046711176821072970461485622505422933027551495067702732328145775688601330206523496425547770894025798998813635959908148095430922371143332843401766761411360788750100485015943373685014978575469530312535723897619813897494235325924402612513672738612724612049836036255686775943817965767528957601043136396881448529743393920861503253663393283110940242995490729007180246092986895028513416672476427776530727455956898250158132678257503989683023851054459385491236624346765647753111932710302140789534155192645912010986675063701459014808515213784624510656634474893930610079538899115838728919376386772566783111206237457373894398893362591747715009467961203008221986075262421017106272803108044773277338165240803118387753540212220308329127646675765597602785056534811681481964053961861191291949980418561804236783694575145411188395433024942564847798798349631328182697185832316860119188071953899787873454479305908513101050396759352083438362034147819014118713868476372578535388451683249098831674385560764686708773537568517905667614536866515229352214794756385932739230190121953260515839544847423559328293431804921671446701548386748572997067780665551661870350203899439434282764578785938610375055204543446560933979377968505918761693703594544506127938651510586593704029495387467524580844949672254500487978460559784458362182127517455114711473990272472258997283768284350431343484538085179239125901912603753269754589973119461495342304294202249849411726001702925265272811946596759509764399593236319019060730095798996333957959847779429624386964281311052405909148942788865940656293688559584362706268237602949870181197304652944493023781630855988191425901085192295853100844009336009803562839381837518138393444638765199024167543637179343761198227322303054908268944031529646912183378624588610013808705211064775764461170804100581200307599208860742351943156187981050898574684941702137895795097271776994762279616559763943634651647721098475277670769662417079607248949639146064624868155199459410634624737671690255246570957431643522494577975236108976355424845863688183492993531126112752045606259437884711302970940757465687892229803854007715591336909098511292339777412063274766196917751213200600805968586947960848795368186356145524567102050714663264118712499532889542017861051061469408243409426088094589479483250895333676686941723643229078235135187247598673944360064841999384583135598586239899954655073680465481902842758946970681717740741650492449747570892173206317144965596178785069008143607535426153812053224172852274678395738441475365520237710751429990976541134738820217139500181766296101499512448998665670195269356263815408637733644009585101691935695578040190986044067873010358341508376838405024614048923672079406435469738046275031259612952046327689366714764661810074197901201818141263153583383590420685399056456631836034943676019499825709027823502999300664571109410689888187570370919274790786572603209507174306625603846595207034589943337862434333616055900554311977654059229837368559386816764924004837197276212461100435820335136600202443282643363726159075309781045650434185603499283939074417480751347331278979387905947796448263939369184283250771976424052234684712112502780253961288224573607230543013058206081148614040634015232009382824392649587705504293256020691448989654233862311577846794095648952619851725173491071195181384994412263112291280297406979003204055069110059209004208901410964061548153719499151273376697771751111372176748453293420603518334782696629805145261339665156171062487037210259744703486962635875893657541234969633115064405985695520138678348008398782934237247177771229923782333368787658712299977059624645719764439551932361500735694735529643551786002523307354500799114969198552293421905807815946585153611633664943007883320198197213182023601315364288165586993262401163194635283658344096197313826851688261742664285664365971255993361812198387170497962874651504019911881009811292726243627463455767996819442192793702405741891283545016838913411367548684202531499162364937233954621490089216898540158904858150997588664730423568689106953150485413707565302293294557573943670069410269139979550714770464850909499046353705804637999084643849473548772260027852204265890544869328125549661448661359009173299929719016957218934572640269911552690051324428353423624050411754141038123174581366107775720670170650771615037098381875542739290423285096885443457583163826794492203928229893783514476353833964689145092057985591298850072410070020735419542459801847953537217743208423074860103585369789171941833582171501744452029766707025832832487100663528814293563774430249248029806336814176150143925122595494221856967215432824378501097644465443289643142366706982742664369125522592455106347424166966757217472219287551003655106160435886897464848645269146651471417662521636871554841464134995041053437596021307673975753311769730014507128536746654894912068409025158555875993162286741013484097646702549361479215439201797256300225500244065142444381567002787368382784585265877777773631422559893773139232724090878027602295628937606062574353487567648237417132688937119698443435180637489768790441204629309606050254083203063735394887863248784035700707416274776316613830633703436383488300119170491194766063016116669173167521494530243118261659680195468237542535920030910224384826254126517324227397854548586508808490442217288141741975210652668656972487900952308737463260562133298027510845811334464461456139726681068924596607300433251640501059524960789798108779611629423715680015325004200794115163840676096489024366180622769566456502302152409425541312450849287188374667128429238141943170659366815004459731431735167389344416633415657174650119052430663099592714096224664262605444106229726900838295282941055833066506659339808643833776332971527189122360397565873903178044938715069169014586933582208696772798759140980242641964060878919090676862145967578382181446878894120923524071667564150126788814749969187521716239802548241341151662910387203788933074772076287579242015341548671215933937709944094838297928254255226268550298582806804536259897899447221054963197362438058413801948347485214345447783490378495717785497170628826039952881116800918704538371005784911423756914736900796452352203405067075642369823938425941176512157937288282652692466042964118963337467681366429006167090466598226148037715027874331757050911918113676057041981290054961520222178520802893681041917616236055356485284339149933439433128383843670449249803576165296560889710293611229913061963426067828090991183810158026792749913092377984571600087929665676465303361624074219718363232187566109641442488085640598989000708072023599351232549963862223651704976326378166732471025720754332040151255673048557870948637596689437046050404360400625707020173397473495037017299649528203105598850892640094430208316696586220067751699569541142691394138822076068323290813830014186385600403608314802420085837551658682771495169893205163508486449541193816547229230650538597637167680033442433806563647089339664629598797486129424183749394283026467071245916400575416521646525956388966399887974144043936289815498672539000350749710243988368768272212037811042249941697113459484314058388188301063229068109004993193263875636937919181196120092366394092484860909750400203921392202914067822353792789938104057021460764578647585539544515471399760904803117954685914706828422971222161259637694559457006285060397338934252974615370734933861575629383635647617847494228790512698387130753017842291151699046899363473381794321916650025322990392116739664554680143875541245247807261354872572643639412815319142975602410831648961296592165929434052816201944304897128962674451237178369105876559033056466829063905737628580157075431521186380713945674786507144072627823334918515687215846640847550866677143000892262014258414608257214515947797479383407296200640355303428124386215116874222220736483974980057320187991358449092854860062990954217690363045963022024118632901868242726745025311734133916494662632836165742609961137674653236498039976402107032732406944756484146790514695826966914134421745314757831830656828922903970989517768673207357076105850586354826944607017104598965046868574125923192118282402186310328145030267528934181413707102039695100255374302514727829904110585551309514496660843659161567241607094022325206697256744331231486252500488989370200867099587443726633042528484089167513539432272198643017478575943866611781286302670397390484191883053948943575850346770381865087995576821508090999938589839186969726400958782407821200753034264051743520818316633412586013922804393200215373298351118575921669186397533170317528426407296612524060951796341518777593802619157070204218845126908307063997955620634983544927436176230922768067784319563742982350771607349370316866671841269771195830963752577935545250439807993649102665651015272490163644142919576103204389402185844096784283963744204502205826891059843093577327307644464389504866154164541786975974428352831719203351635980510383935628105399063209878005942644109641213717634815932946211447806381470506294125490329722150352153617579951256011312848255635228440884567006647261597722809540080291197871246973604752019031200910557310502316908708822826512891801557685835527768630827478343190163324624070738841515874562205760306841605169847263159452876257440701006510298298318749242715116613087001039211953677534026330677803824285061266315135766910798796317528542268590810226233679317456107810186671884099371186559998677503674586957135262035162297992143817154569122396973728106883706767332475135088362539900451785957220946194698051715735716926263917832216922435667576085276883204953329268347633046359905285415902603884441156138037824027717499154232739152447352752104328580473797260394102834278718631895170608987989362814492516917287277913911094754396110059131329564692248390686578841336935398554263309790981969785918717470834294470379931223748701808966637175752271649365710338210291661594801344872215165565663266516730343751171278343622942875635204475978884631623654015920971270727319366900460999178117546127532140189146080679362846166368532652234239168493179012036523628768801090618336284454251532965832949043981984925063338890208369364629391973227585760827266221617304283537133501730327892053150304740879604074011948243367256278418131693413441639133011399700642762466971967122240365946270717458487333421144610017051145253812316671509534466982211838847440982913991690194760922290807114953674958655798037510386205555717788939562202437295550902070022006872621179174811501158740287411127795820194367375273737346553914139522018975496047062932174806782743463924164631861088379349450002681291063103213057658324255621401552692760556459761469253687552061599024193076962583887943127887082334243127453169328375697558323884675691559443554765492846920616329215283369027240910006756352758454995559821392264312080808036908886159580479942275153857048793976708100658705185051922046558257230646053536694741009840226919616326962627071099525736850272994093116849143455842179359036880503407406592556046083720932550961418866851590408483368049094638122419717290591167783550606391239311286071219731413560868919557877211004402540290034960008045642972640159831915101551620849168158208373399870998801611698046342671499340618194916748948434544712247000430021825495605931449055797389731490052734332109070180597647872632589388270719883180458139415514589003825991589617185238616819257662463792557663491493733065927833092879650695828953797608919887464699431199313507248250654471876473386248915423071215161450550290857204948859609566232232118355514733406557270280619699513449133178934705298139054458961112642184667463593928300815773396180513832162997972725191558660070361735916771604953871024727860200813078736119753587398045671488623557915706248279336178750393071178429574481694552217806601202905973829427585990923991955426145766467735983369255447041261178977405081984053162148127152348818608397689755096109658888047916727472849790849807672279351230255634791084136355057325495774531507812192595898301614055730778799757215296985332748263521944414441132240303841365274757348556365185992971464600529448163072532802381710394502405279033350599355658820687956029909954804730672807769776778357364589659287196411638188382133093053494863402203780004350175762356066834773575788775178277333051171180692915369522876235118084842776092103285216013185235711761991220442343307246090916332936777081587281110639184817295367363148046597694589904172747789470481011932515147950664706285962996942725606069242361910671589191593648844766720229624790110409881624426950935776994567694832939049580500997655499850581474119523556110358511412484987918790121682777715803965896445235713671967590704789176522436687738806561943927619346359321406836357174725290290714529721582883015931482161883562641226621315508125323407738782364057399904195872427472815270104133833561143675444954357855108774343244029964625201924224305710115666104949328989928356602902315322602903204495402626325463024813848949952625658815983443526316027918786758144135142174512567235126005446302565250974263430953310399203602967363545495020865728837323613674097983943434832962114341039896946150281131408739072709318529820605936210047607647933142792543909547043745933659200310990107054328941989085480312819445386334310188155334835052510867297098947427168558586759896781622761693511735231518897897013374088891201315131987061911512782971175869950310571387562907639020124387719774150189947368314326981132233425614153791912767025694458307717217575720297369503511432558673787447626166426663954198139276069316430282597907670299202635932204283929480922063187532970730846436182646516877788279656037542937660234813337870586536341766010478679538135984410553605625630004869213838541802013852610887200964940823953096958465419692079852280442056628913170849335046325316599119833794821150521557326510158460778271680371138706738938249078608675061366533225053756101296960517588912838528307447217312822784514606298763576577487880641399587685295797748260730233491820698235491682156008665606161328957741168896993624611042227346762499772829151965687072660262092891577364369972580308414307179675526651389573376831301539448538539270885335171326195787180474613623376816380628013901054938079628100218694392448818547538428478903909398382864822299179685152197253544483786257775834250661252575892268921683742941288071692301850227573081599259138014430044199137221880609459718050179994663613644865875614651296178665973517253302305019924320843209433319956993950299604099324874425190397738257835195179217665494344576701701441705535304138269316411966110267297551110395735264887504620437047580955378072780911423868215066888100703987464775030023596829329372681963719347947605252720861870379505410818378197174672470760868564135084174378752615884500720273707142315834075339460894495317013409256415445268528363372561356963079779476414544050952861182470697299657677336749968678046036539290882880164478817724738231403721330251086531086510817800862089632666354791939426091516417034064726191287443730362841704619360567234349222295747893560821620367385895285152270090154364378500572441790404636075884006491899287118985838648037862770305126718735196435942238250963253200931364847510775346367343778504975342209720110751901976036197263064061045476723151436177920225395411553809123559301263751078666611527986358201892735119038493560861067715019914173929045780703199733664302486808836267249440397308413916715944185246314241073311209505694657068045252106214316603884227023142664051010648268215445691573184963572606393770957212480604811934826538101710293416699859005152581335114986171234041543276906551692954846367310099871303522414825624365980945700719568957124451525809814998970470184923315392935024710266951035896173499618883626892449829528006622101204837591891366416682795182269580685427126006802995522567983469070982648818326371320827310012685856840079142248271484323170019022561380229182549993527119278225774202444947848683275361889941284548505939519381402762123746211679943031727301610164657867864312341267696886817545415772794971759512546982552372004514681203042067101668396095711222309905943253033780690568228439156522826300793333649901788152788428475046960780954497587687392362437814088144872284115333055833242685948897628408828600992880577811880993532640567734152646401260696303831079227967344570636556474740275531049084101878504853990122586953958629151078031619153285338584054720747266090904622909301751988446389157815943165595817037095393894955526420548719428777880944557602455223285214101084337366928102338513798499906443777249080035392419210180078980177473036805540853491331679046602309895710932086248632566221533507150469617933162243806277533174426621135197240884525225808064998213855831989201615130881170520091612746618129547293612539302820722695241582563697473186917995592793888312088117439785054923232549658970391927744728940071545527381165007903358769108292306845341845914475374748354659971624977569332805956323984308410892953213388394888569239706212637858613934376891010675236028127130628046942047800625942122285478942857391357413705863589135254525476151854806511386008335114296875913633633125799145095293916388925361711781481749712731180162283460727067841634722374380815380847886855514470287789992384133410273971806132133196313883662687753482063231806190872034218311638699947261014264559101877047153140215023805247049565947689584552044442720226128283702028867101807642900224866270935724376190939340349073782376697032196913208036087763794218692267687228655990915666991008548793034587447140544495302162267162701791933541561994805018535360020826338993111247039586406263995573205563542207850553189685186834447460792670156787841230643564451624275427440915794633130035376028285937077893071652494108894824891099675815005924829284090519484236003663760825238578278442953720618719847629361869294325829288923080162987581977854699865103813832991012580010234138204999405004962621901659705808956666486852746683559980079995203322183713949496922529814759548787860735150656739491697159881724882045749738604909011082508693249074574093079158926111970614828803875364659517003492366915242531819254346196062765283286887960966337132293543022370314355048747349279239892243206401015878769950271835464843663874727708402955515989871953978767145373232527912320928492034272302292693896152390523753374535592051511009419635615378935544252926815239424539710428509289589127822621544229662668243809942704948653308695761791047517775757279474123899419389223276953867084273730700341953422459526607059639099401517418380301530492695164407965655840200097374146897589774382793522094627583439089461833712115850945679517281919013546760636843821288303664631158592131358462247446945685408897527479516270553896277618237375491584539939941485734225773983367453925193571504734739006733284083447488605955902979413637513884956771921305808596853094833208843186150512883839714436945467476164502045115473711881754296468844041426648600204482630300047175471501932379693457807474242982065839087184732302705987343549811732100432408137964218587793132496632835728383348204424818421212186483435547809416837941680927213977344891394066332991923504118247185875480482348290269131365102240854994428456015223709072113278491104503212665632670471365398294694993553281128887810444340521490574585295145624686187802338315260198471184502788104620237044780497581541510114058361756235444688145413475361975920833272733197326460197392297983425664407697195224629314629625666452193486686629053667726804307986003609325739134466669751165271619039443967019619825032065322048782707697962542952209758272414195293390046178492239514806287343504937869019178667779248787771244216537920515969262026608648715767020704884894386731380037826776131345749235883344295731734703993330627237750554991058810149002056200329538578393982643257011804102633605997482122899344011734591156620111610694289538772805329238934813975586213816283094674543409410984811800499537909725137492889684063662074934289650535209238619052456548291953710362689985743440849310277930628431507368472306092462445020863044241897353673020954587724368962239534536361300027542988137624997772940870700581070179717150122889149159061473970869377425879119860080125129828011753143134460336533382135630342946079439221096208742940978579212226605427403108939386482609369352259975028612618464589200179373211851180107050695972859992295940809459120237836953176534953841421036972296594350885350215883434648412292259576528691462312608121412033520959291860981665427328242886207683206112207112762314069241236208501654218091792377537389444595569559537973698268133055585750367266631955720765456754754020488650618089002170829077174906116825126515268355160949929107747275490756726087862506778872423903822620695395874211393504907216922070640059763950168615429405925120088141931911509155416733394631250765779331657479334036827271183273434098168660625559013286482339149809837725123159956848931428352495775968848083128619685816833304574748280718435814901463384832889696578007307403333039110888006955003929034379899367478455845482692656149384770486712407627151276041544676340576992799692104564345870256903447378581433765605195992859251181698186708905244221900961049817541165494927436402048707428744447167732263373703586011302505147732062904175879856379007341800188091352230786248832895877181416375264414438285593162722574201274411997801939648426461562587233377852255343756636966862235603504381194551207420921877531367317799036577442257263983632791362091973942021138142760705047631457180349880558806347879616715623820982764082585427648471087018608219522472147875795031752699771134130712446320251685896083679242369012317523220154730267426075750671339915037217213682197755630841370244062819388976621431599422701866809031160838623897676090335248497437305605525344671238228793252202080649687848003088661659325042129382802532755163023619258029189391009834055269530790048660019199223105450057357213428231951680162535602845952597598029887867705062822661448974593747011758077797025643625333269627538298620219657705409066154722632783077587151378243972218459732812123877921883951984591335948055353018141959951856382506644741197930682725689944789235781315853627131836263490923191993568884884474317747308042827773081972060932006962383077176004773015253233236253046048088202283425051803506723442460524560108863723610157984142525921672140111954418707618651984888346771866077059326584507676426953377255746996531786313208032562575537851643825014543750275313934587844330199565764737232265146125899529844274219594406437555045052648934926649858144829849977429839557666029937522814350526178401358950735506716542411429920040438911564216852498925017760715148426975622920735694468918999311728514077217971514048806206131673909935392856126255566891481010737246279877558238925264233752928397979934564421263123887302327616562756455035960609309539150339772787855603142464128335799651404893959018878224916248890154723428857213133544875504854642878035413001972460758543157041364029095281556056062330477114635679793499543568283801171629329088530688052811238332792276042386255202873788256498850896242301032430018367643454661757772566559138896529187392210436304223547600096891181798455563357876265651268361106071650583276833250490755794742140649853274884376038737839515783280518481471241220763914570395558546247959776957727250398904353869972212741178673365238460996848992185278504321606064740669698384807535443122503625356580767292081867966394090956256911865764240082922322524476817354131954346982799237173630595424959937110097112915343650909593741052308060759625387049094857496242929446542215615031215099203174939977968755491965871241866399530075675013198179416511766467898670075201691242554131866551007469742373790324968808779395019634348469703590675396681979400283588565512900375287190092805301752165342607562295378721273329681961107251014117812543800261981160603076071603965656540443118803563465329650488114778906782203522785036739490723052131166150964286158681253805710957454804411954257399118534378243076204382018974028109885996620652273810650505033184961541461430625417197691987230376610834266297901993664026644251968701436788602445306320782807877526038619084285895956073179446223773488843906975133599262719500754584670059238737635477487643017846138909802867687976268351172727345120107223617814145281903156716735555567524455663043467215439978316273999768908798326787311626256882687607648190753021166013896998732883428582163300002639855149690754490588871207407080542676627871185456780447916484348795051704130160714073940883340540072627441100112634456719365495908577867867631792164958598331111446063790951875368167133546743333987615103274481117543941700106508253963629399700020401918696915837942644548124613726212859989666225188248861258408294465466012116373691602220201660952518748529654202405683626375070277512839413205830852013459159435901096347977741173908871638912755459512943488543517168735207323075736466282578384726899722320924611490620036614827406005191979513355277233993159676652127592660122469906400094936261123029330776593633834511659161368386961035059281835559109539654834145886218285462396390371275921933440168527140345032528945983540939356542457782088433197129841261473505073578591237079954930463948180160185350959618746762662031292804163316444752391805549289504340415180855652674281549167597172135131621910447379834379285513192320298943198324107510712742550607988166802156173129595826411579644461877160786140558596823341676131683172436540730793221024394804962788979872593211483049346082954608845569925678566966671109670741953896022233708818654222889400201150529776253323717854286768598671826883717427154919321692594997953660784049443758562187518863938013884990253524859151127244814489436128602554132381796864019035669122891813972033675009921164755263611220274533959748927030301950974788536697069291078729960526361957937339621102556795911412232829002314020520587846099488275219532794149644972060305508673278584985976945996781203634540051898402300300026827473359648582280095845000470850062667903209625284792604935650880301336269264650720659903426153659594233636264905693398537625136388520799739911103131994448602308379047318721168045336552578017336857661301251255156984769702018564339453750219699580286513383809937584880787013569718458304264676052619877696218813472591346793219739671595633090942555259261372522072843342147700721542388601337200659502518878617216397439481246040933863048419314922012881879743961655947411780695153833995491005377615956519582139067051689732587793337942998996296107513994934012759628324966291411654282914878067666295302616520265873560639676926902206456956283581799053878437623048832650854232059514708834141001146546640722416275087960850136111499951977389780201864718118533029034643371886990039413938131397611496649429910356589426823443310127844438304725009112929994853961026566957299504472111373611589323134869782716382360143998289891706208143765792346711894402771506974499004954855756417346821779214472866639057216259404074827619882274211613577310339562104139860253280325048463051175781836978109484663188227691863245868471608918576270532113879228828330967520874813024187241761496219175409143384550253249519063274479268493139287875568617338589818940903893349227442201501819953030047768611670142222185514717454955628455854105202789018325282359385972543025127501383639421343742193414506148542414564380782983163501840766223929643749151535683134626303618896471701988150382975856711315086068159647223966785378653174981205723419312492100958817805958761405915589620314662742120702343485448653019042418538045445748774902529847270003065339876264584886166298792076643299390892959564037315288950602716773533638914526853266870159449024948891267018641617620069788662437496717634425652227362913653391783545563166723602906499286781221817830273529334747512550497214277314050534615337269233927119159249985202774617806500767269131957902224754170393555507700178220460091228899463453999902132741118431024470021624538863976905392715245307437205127549650384417407108528655428195165745414566819188669680511741998039898251211296565034689546155628299638027601027954084135938317537923695619427802913762536721201257977971196481712616295970254285834584707684836742548664228946355225366178197739338487026472358062948482649869006048908475718635411734536390053737521614260921922804903472514233367113714790654459705337823146423089271745426632159065669826745046346122127206653467903352961461769651818590272938504398096468664096443549557676976743169575217589627403805082218796031012034574814467393703605797878147631288547696349811807329282641540387296057509682127897665742128271069190598225939912607351369183758193812463546220213945565188403838277738289072961581833152216712872089284248869437190312190960306391225657714868729651461299548490145768097461220907521231199701462951963207091599746630908771192533245494173719803577323287817295036475426370296066284979240461921582828829299544048542074344519042677569086058674807657334498349758453060252393656164125776743081888546764826387600340280836380855118103074186980936581330916446088609477864526565267146542728918936483516447453305232961455442178685841902677743171890589544147034528915419607769166012601875489097731292761748906092061448003266633954027234906704257313452195615624689726145147264593135708246996857503495706154609341091595838068344762905084527012079071075995947040476044311876249848607769548210406345673036095415282696828832728893353295491217310686587462907701452236280739714006445605457658156488205377685670112289050817138622876535271640794705143872269400283744388669132645585627320957481490358811064084782100745628805766349464487379708696856580578088268876180859948227897886733305779085657481793597761841694658907551506036358419099164635362239477434872507418136025015655459850784973884453695454398910772067879998694749186090300357898452788464882875172931881558878934737154795521560010500902063518262917829955813133929717756232790312178183798643298257813542544228108727438714279090899128423989722847799362005864163355912100283324740356624627104558279351672549243670294536440304585305085148739560848569365703580888677075221754188555023062951656205360006359052707550054049886208389190791048544840480030392668207918186809963083503643963550748287221693580105416937000600391270172999045047441649658867306154403895865918130011365524165119380886728915384787562434924103755751654478778357206518535756208381669343407381703426843249720520529718477366523773879089257442108488718771767966546661351619429931660676578490147208772813701044924991173350936573190984362632185875743192889975299358062985950915598328528131325188597126360254501725851292999711465187950564767689868559344734353087966796927071081389284177106082973256960706255701102783458916807740715243591195278474478012320178378629219365684876244544771573422934970014548677806195307811964897043488242206278329168946816941311949836771584303499897039406121673973511660271395063465888746188522842902821709036943523932346200294070188877398115262232560595830938224277366935943519110681086097960391222134651498804860321916881765506418009383870174925726082369099827533929730299268813866969798059666278545801167792458345711697554533358898359243680753936089456559793941519576298344394603692501386148910463154795135090343238466411033314926379754918516573816503967832858068136334403825433074235334078374868501046690051966774009149512963985003302975111176314105371025605901485449014000816637109486968646293855572734310475400858672385987638399846867762817956894009209342557471040901303672090953344801259126655128932880400708518501220973690817895373665739207271095468414393553354198804354521554029565735634676726514523977025581243576145701948298099730570651493386879151183354431596097002803789020169940742214043326609332425876799201635601544894080524389191232422380297097628223777005006501300998379163268232637645194510501357425904057301769905734851719140667064440791140821602694813323811677478936392714351986802636390174254691993883518056306317132734686995108726523542134064577407755865137879949291432627838608854173274306968351856685828676390120226569320813312485258735684141637654376656653463810440670065925583969763597188236495203346423933904899326891524914986436733326800916339071823992242262686860161152483308033605178503455847714611919849603293163889070168563445321207547720935809058209218008130201817901555242099418661715571298015372256110154097339496735877213624055372331359960088682703242833561629138638053279531055254611889401585309160271949724164243620415446731781799999105940375037500443748884880718366158440777068525853438643753344431802616433937608467843295850090501126935057021432347591992397925812907690637047590252078193379118471139844464784147997675510550349700213764627398731855286896452477611524174844456934576385704771505912655733146726126683663569188382527253717748088479926358589054219445643738051836837049438385406985553556372414386630610183168984801187455845528594146232168968984690274442289753532238151187171438094438458911637217596999042302913561225464316726804820723848982236528533170000533383833347641891103993207744649611500790091610953411580725933073099292946549477830599945442125679540018668325753914588450258760909407069608540054913288976983910294926678028853960547118389850429389574663802787646335481164802973447177422537037565331293498525975721616262157735986341776797789014648610445464882351486595734776609410953328957625124807217674372931070741249937050520801696464456163551265731104667869829400698761080698166638407783023399773231666560261680043799686629963639724468334791090462651844453980745692681944863598718763313475380330515933281838347108975053169945700104165272137415348053975566650799157174797679335246737900319065376209209276051490830019078054082138549873578010003120601743334674043289151848083619572026115381153334727225657446629072700164748194639731892855555312980165607721323402615973978131286967495838068122136649532478290391260207153124830783085047515385400834263064413628187006855164724317633891262138545667741859306679141181859432094893521385321351636158567602142170982460780607996720713505435509679944716723846768126920177849060326802435287412006027362536457501464771106550782956686137315183872017806860524999991822868380722693517034788336195676361596662749399868789710443067387019400532528246270234514780522954988167082614751735106488661123244308028355754792476211521000625342307684720827263827079471232480684262645776479508979370311701558491064347095851610623934019490352397762523871295358899906148463202552778461597502115980267096832964015028924462685494923019627238065380563776905431542348282211893755109163524281731085161600296101063092228088007203687122252541915216062954808918861159533484669273559211834371162078712360525172598572595342642467234284336891058114107576585669757691846697256837679082798755995472683855285131511249965982031379504328514847574920915039869522248889638838747760496237174394215336658992391987872362841803794086962650794883600743863705345649546887393958217877944175557317558056300035746976914817808393362354530807409608764166444782740617089983097913136872117050480057288816917083345617931500631528892308769251085378088602477298962813250524422698415383938845439087621703003045444243724413624943564803340009021945933253436247480366963896098959983380190392083943731221614377460235681466714978740771807900584407236213799795683962586725472491105895381559127654163181426585630070248496818701387962853270696073856873545942383065901418016973388179214375524015303407918922882698579367017566724307312197986670870108593467777550038787659943177631624098686360786424725549874282596929395042397462210238867529161270710941196646665823234958986666716670212690027113863830702536276636337555750571420384494304211996347992225970715164578496247654632565716176283594985355458079007081902487325974770706854896455829025453244612342635578953548032161567212964979043285575661638410722454458563899713209473578862050401649584997015407097130007650724997175767678964123657633655007382550969943565176908247631335543638498668109865008499274501219102072908233036375259548122268505113239909911709023757273337895998532552056343827826577830688680338418501303361879814463579182411896793423225640832202775192167102310530060163711283590289232105723226785419296723751700472051995607281912826529525093479824706669776134922713746859304038391599540433044848748155176022653802516569927081835235173929971246842977921031092313280548624672412537158589567563334962605952797003544468955346227660035328014922899687833580837901168166142277687251280313668644570736148209146665470354421964968993037991567527283014850035738575500289518739520443539526231518870497292209379810402754370805654841215912819898083173919830865237983938832080456449311267738659121781404523892191188005984425158603848104437921826353379750028992529022883257523732785202092411481730474599649319066177063711688467677234482507813113887543663777771546770002260029260997044965212091628853320863473041500801986315120913558800571954580445961898455974744986657505275320983128487944489935535968577212760804864400295866937223452080266256672593692260688640408207186499645914294507026669118897419608438799285381330203643301185806414397929977574925431895901206279481636575185402639816764002475029552114471684847152875475354727084858374243341190348958757309692978956131601372893767103561612656889438853164646278677141279392379795009064032071570356290173024922608581170584188204548367702821527497540211395371511797169546793118000902767869790456560770997685743781373933428593505624497198150691563886748008584182089074754354346009987121255669679426969631049137134509054272782598332123149643582719356630841109805234641337707769958249230923383878537854654586951546018404069210146152092804164265603038267699178079794011326859272349544964461988414915153065414436882454284840777128834933247385186904429264684858372762825415800897475739420861119786177130922566902944486698923251790771410214344127495303237802897064718850666852440110654196277368969455487373081479215166763828471780987724799907698954251961749006811430931243725529133530465510806700283976867035141371866530955725668581721870512796693089184400445887858332766180126164733840577173801208528869497843366462494820200044634027875319802885885285547709137950592934840243872915092876204921409496499588537797506515366072147643172268825364009393659370829983042191205571818340676841034006478026224108297135255073317492370034432288258425577575698164946623535047721796160967677870518307046820698737057429972270043612148634806246627796025067749769489730651908754398977872689955581863306184892344974574434888025241459239254424128692313954742926994188016778009660131816629071408851106485991433561111223978937867422378181773197227010284207005993145504332424553995268358224937822241338724258302173965548187266525323466090443231801186215565002443614477690358406796943190656217312329690510921204562304354898475746939907110930528952272380732109128380909855575935130801597258857947249159506933925715988255093004014116496116708699463001703197430131724502483906762400015036430965357374268457371576113071955464693594133605783596462371622775517431424494571510940409543186362874076072731585578915213520233570772264615134031112475855275182894863603325945722341769659868285530707064893815488833823572770357698492566347005842734786453574243054239325579391219378078938371310190411848876857140878668261585752520090236410444291442038762641213132820562065216127594089148491211714994392347979485420032083144899124757528390836843723290250299452220962521168224351920877152675638442445651480355112979786349849521840424649343887751053050757624279791141071565590059093785249990863715509784433878060482364476190840885730004660120533546313328418516810590713113406282969220968184621391530621984058533792477927202856029719410612943269005979726670937197096938565603440303092731212209123183361030624642253431295010474730784205808210669819900599371810684724376806972472477950243682121212985228968265204964921480162433646253785212142573411187316114816120263556812444691898338948788892764008897997581156042570203503833173655793108841022840237489803193327316508197034618375600078280108309386312711808386729444993543451448200434725049978837757265274741424882180048929663285492378336564377960262348474249116507439992385371822156497783877335270504160573229776932115071000672605820467364148403096819777679462976599046098885385754620488251624878569196506438824283629426014434532345075825894394009046105251556184796526633733110789111251356305000960107009584162494028960692875213749995421329331805751177954312371835955769349307081737219644218007621020513657329373950911548391646897010031447910973801486460172072651740904515649608138128391270098594980521849186618314567815190394468341406437638195214209523334883914915561135739721180671568478794067179545895559616875912993719274892802918654783069479595404931376335800468108320006774027523180142743205572692225930067929910256076318581774892033670089211617704875404993870585261799507334469883542107947618804704637827742562763814769957486302896927954077746347045868313387604192755999576616736427395207538006488205769229579070328144122725256724578097666519069671338050698548563005512164064054793165470097075851957124592031975996887373948982820530399417134960840572508377241007840110567294480753688734057147488072054953300135362197584150960560049609714196164850542588112381942919504602631556637496080344891150043620554231460977964906311450963444378868526445184183665013489989317734917248220560540062254043469876451751036887127237221516533059424783559791995997778146490525640013250209722594998221109997670618324687374904436508243515234223459524902328331171085216222027983736503358313671371680353148832762793773521867289748676153196911553475163082521437584265091461240592912030091968897445002644673781943707355560195447763932945761427784970269504486600300324541540969768639384358712286825144443785391305955459920184198559701593947347761365034772038107649370597711142470121697173658777700054807565549140598758725674140113870536608887172070877155193733997298287377410742503855975194836638819092245672120235775325596883315163293555880440678848904594456611534067577425503260050785615694680604765204629786948981802431537328171861256897175691555699138544393776031405824974726898689005104466452057751731082957789601534348521327788639912004921440045541159413992575450052505712598877340864316130414893616231218308941729871488541223887829286472153038459322247149652939829108086714091906479741363920473521894726066404475262046802148892001231816798177506290458207662599157083200722466383940346730833315366667631499771855167922327795877903174486043921795117736065865914008078264741504056717095616009582646118350754719195732022555417118359824985796135540879166789968708992052833732255374037758004720008799803927354949713735962244509637979987200282092072417669800672503670774927764000080410607626194315069535003003887839047965884097414178712770074201865675962851907278450089604456243972833510719138096063893217197546484866110439276654411110464329652955364704577310982787824249701951498241559093431233724988655806007585738087162669998744920970073572395384820838869035919156238919912228563334385726141370427690008708186554773458587044495328331183832382866906477139338151457847986417200360273442757298729996787310408579394956840414176660323664102151972817355026824320225688422738756271937190063741440342626974215685395466021581367653595278850800836397110332414119661660574895106735069083839899450994106169943035909682769018053507612353138352960513645923451099694602435075487444324281880250286047032434898767940661900554490074288195100262581641078461957914802051095599208004411243643236287190749309255719493234648214463354734268246728648233788894292438680898585929924762694767175630304845334803863616877894313781432292679787298549892620694088070697607599900627727341490374140190038337204009613664707975011383518844654178566466208223013735795102768066365169814749496794388342412488559652643893558048719821628460319354893238040039007944251331878623464858524116225353143847341217480976086891184171206202515677511592998265248573238807790800523400675340000899455442110213631292147427929345514402522336240827851518882782445375619326678297055658903714667024365234062480865923396252789844423871267010412689742721924683265662756480301664184069141781015625790295011931408591481425229578534944620889007247249359876267328305020365540834761022252572986332941985742100185106993804457140469252564785128803448992435758135751247020245518684730596286619858138091764061670954497476471194248189090455931220288466488727245207535640384254308625572531481472016137736316675359604687722604298501532943710596573867292205921388953826365892683858155321928838613669987244640963916051741901831208865438406639924730359599260915281532707042233160874157203034012071348791440573709271791315296260721773435170586499742288846923989127428243455810519409769040373814100147084652747268505760321804052543377970572563563193452638074930037153449754155338906685960562143134895400504569562103175482552787059996750074591523774178740410967950263630016053315327732697802803939629888089238722584631630766107402873344930144906256823657733260626219942472259911805663335814121657920715680081548794806297893744726801200062115449640433205169284905979641652276117820829847967413224348765729954597783048421670829004174600047215268291832960894023783454708048433400668133661999945930690829048796268490379707646740242509319549298454047356049583140060636002110270921215774074215212355386063307446171664485966084294949932080154813515080720148318711172029535684091183566986362420655590517100745572454737012812604469291193277561262956889496380581408463105023833411122137546458772241164672873978222709101199010923927609878692285579828025401754272331362949115858481328978062140369687329072753343769272231769636956993149769163273306365978981040474794259544823484700518341141624344654303505420127514440135656154750810469993080300790218846603358121876523326682318548099779643062408992774257325235519032012583896457391492565801282309325992971626469592826643315252047496079724184484232131944050096609461351337964781721180663664516832119337444151520899574095959012787777178530630226196619838095122150503164112825311838865016829312167665187426647007521614907421315033854088837458283968380595591647389614453220321323991742333186433540246286822812778557168513106750581680692149269726780984823646137418369874864862237624921501433076697917532070174842182660887030020467755963153071809460111849080709051484728929215136244714599645591827450193312373868841091894729009938203585582199987032367768486907635173896984900956506885822865313033462240454729632495303020849457046540107647742004137390791842068429985372139826433399685161855065555147036503829437625179919658541246587327953349407199992622524529408966381886010671148931019121965403708077170844932061492874844720414588864348183777362051419884618260682035157832995086588727301870507013807194303800137284100468109507812285229968486003942300389037964917748541143593438581253718660795289310108479519845844717906637954815584238835939795133439781345654000886144866833006320821029565556513394763216706897372017276145396022498724387047898069262146258165243350213463785027795832475938059421863797999614102219881508941312874212597546684167511647118890251733585073628949465737623209441947709887212428012678386876669727084944380172094446146318819401695178619803112771079583751455600767644702002263903231483536168365897164572868428595574431694603811654467337414450633535910238155351930791628163335790590328801920754633934739811858093522761921538970527269810715226796186629200028950723114100522235128070373344155206981352664313195006026607534351287803166838653834613015147125785546132155334418019102892994312373033121301062272170779594401840437999739718784734237890094978714326461956133468623316608636568064890163219465919519447333753623344193692390404862330636559741668476949650924614869982514133998307016908891586327900153817699841291698386668764965659824775077791820769610310492411133099874088723627953329208292379346864176057053957520102517994246568287360231342477124985713908811704643071930780081714879539181807177150568127172896111992497628725256367098213012915435777544859033941357339181189507276867731585833639747465120463010729330544480953618391736929794645205730676581249680189428109702191272977024001867301036409199999992731208542095620719919866451355198566601725567107150396372874654610912054054338656071520098090433278761200202417329789309839684032963437372837947021118317845464218006017132498759006544830254382989021176742221985555699358432622376098050265376228721767583158780599295890455136014171333024423082917503873178878877467150624654728911642149125629783173131626118067922811991037983653465495633891796671808174139551906985147953508810922186000627383060324261240889661382968194485502905511899223491711608613116700849553672449610852941088525850204201332854656100534360733339562230062827901209577862922103082164973125490106288846207683522609701828867696659265932106821159170455168903857984261885476465537443461877897202549575141496362106061854187030891811615957449093458194254252173142532075213901756821316578500658926194766589922499270634415753649884834510042443823560093838850731174424826917675687491688357964576020438128961989830047892432301147649686093295474953217952358353490763612907391661381059695303177471296613378302089466401958443400348591061360024514842796738893201385420370148285520429512068661985262493718258221108356595221184851733934880203923280115203434604553730924829476214779505258929510987094026635370262654088574768663089969556504513002327301713425583380540261254800549483763812811442303626245319474122457001973279170587564390220234485246907186067853951542750047878121565320745209193687455580829260876856730960883825771841731391941140988625871219061252168663275196660847776416548619873565833681937917748938663411211549368198296084306106212526735730992467468486995945784485740778498639779012100155352217394460235776148112981634044693694226389553007109613705454579635552004791269808512954635576863803264428592669340090978512920542691213504874149232534006101529798457393765283139659128519938058403201571836687710949937014099820632127416532860370479956807652927225594957326132647596939841188895293732491560571478668191948168361812058912249132396462060789341061860996357508238086332813467007608305995794777257586456094187064036501422041767982533107794990862104340927433964090677102302522883076194421643677804987199514296546584555190905646280096873184519413087616268060681944838340457628507634678195288243179178279836450687623342221866539648770466899164289066217050013619085808585555449798241415569154863599430537839135266745560617816161448369135178117554324787995480586508954109712151938922867497811605832467288839168494971690259513492043134985199502505154150068196998888227917586974946189103719791633237982444972634515228689980285622358373544192565358149044959874888684855837711420633702338225154113712622610972264828676907865937646497111191388113758706065935165321843360583620862230464763819067387507955229450058009445589024407549618407932214012232316540916975720858922578901160254122738188514242001082370848566954419518239163699985801346443886493116052291858686968026595854797839659950899422096259391058321939928321976673358162339659099709093463295676352224413064568809932574494122119890539982133048103967459240888560354969450092477939494081364765218096440151285986531126839933871045435898864653099247301242528653083924689611767787888131547604592765203939622462392140483584550595392042142793084341534765099149198206850556401707207839172635223573712006442060006327713837582349053858712597712353612989904199675988766915729193609987511641593590021476161445321567894792914165142235358308174498323095884284178066824898091264302309518776473242699097734169049213636859686566078232518940763122389015020033201741807747092303590929803391481997638521390194247634589066915375851393217563047123320760570786273833044234489901010736076614570482914212343115493306456135551902074401879011840025155552274679363986983925279004619316040209436835135391645800926806973001677519700384229514392292532134169096778673096073886754538469564424955341252683514413024804859620104091434222416026274918797928448681936984225520627967738453716961788046607557767397135327921242532125001929498101703291737461085125764387685584812263439829251078127785813233808300838615365983196089656015920962266354840438230946973148190453041402776572176643200650510463266157514236905701861663626186622864932786286997328624369550819946016709703457736113558912959898464985990673623620819714571875891862980447693729700162995941592607991863948620911485010621979677160084763034060757896020822990287867285991662286217138070299080050574600017963740316864306517254213074443624868687736642324057036527555644275367496551641879762246370090669318620299528010915576038476306955520600579295873437197940374895556097688981753815300758660828153140674591550468039763821506757658930099909533551949681808547420966131535846984849702238825099904806497837483571950603745519182728536344787910009365363201079850073276336790929547910859945547930095622510939030395560209724359816451670629553228063769388274875443173495201126880067419557890694591986147917517977763585748218072635540541097038745256240279258488999786619533289797493972204546570849192619824988448779117001797475293529416671475881358435266171669372280509148879331594355728884056571254555029299094432035206378765590212722219335728782308546931992538679200421366117794929669821244052146168477921279091920940525739324552832672309096571712137699397687746242129112378345040922966167494922885046636461100479690559803390526119608991056177238424982853781035457162590852635623162261489290873098260148243950732934353268386004663597483261899506751070796496146195970996010622011622302166339721621250671628872869445702756852711835067739125323649599929688957722824458264808278154604147969084998220203930790429232232896859471118232189014501859698643776847035726003974472966448072140595141704254331288596760760622626877867475847365800848561466697746685978119927786493872834111860870454727198575118788064616490326394520841347726034651849025867001953904332650650373086654782239884906131429986975842207221380658288791704682324726586162799002167032392793516885312369542880806074910161836019922859091208991356874072674187644571672452857600888177786402129547158491137647548471736948807044728760779937445672175341682868536860859956668973248440293608872127387991963397903898340453011207319907707952190861334523027717611337697700868333389409956843087190595489363815447942838781173860094987954286005788062720516256740054450128160766593317755404600382164320725888504849271850920858457945598253394478711018778872265702543396442632330422906395707795190905184172057903503064089920304701125322505555378997212066319828181022991268834968933979451581983488694984548418725820611625542780191195156813751724737259335993465855939864041747666301715997848187285464124370310091620744089444940958097423887339366848075905460831721166015487985438770507967369241534584658942219633883252680746630944747086271327058214806299272018739485957100350718563539393934703543818188065222411233958854036622861614764222623744414302961649324639774551585346705572176839159570154464257375321719415636486335821534647096732015291930339479072404045240825412716730461680301122384945213962045672915945555144614683989230026642957516840435826041845412859305291870086838844449874465743776390227492489081265364937143604797840027818790343017539181626216289794670270361989322258966154552501322976139916868937641341665675391529692258189122130270797221938156752040040715117948602875487963997706948802291776430591467926162273426422956077566641419236773355007863863859933074471126434197647018205561549579574152313268381429132933303193253024444533543543932329255774246591706269735578248397099401637407435862900324603676636847204616090789248827032288230850516262905229963845079669527135548692031250278291228869565430391012356108222139043955241608906327384487153652314252052178725849152394808451945175720453106686343588660272039451111459871530158319598753293720185557742477596940591898073400791207253227712111198228942253378414186135101968607613503911984885117768193181663836732404229869522081530384178362146696050111896617438510017224568871712010932344149319044179007265287776141678851624110741796853660852882436034262154513784913288425517224977118164306229689324993238869173610064183591060797711247711010204448816877735929746861400075740642116099431981665380765332915138199875654191768468534831918267133512968762835531284501952721970576442981260257929970093438815295351597884079263442270451912288411005115660828318247196721870367972635886988195810301271857376138280335651985877538861404588640803348655751757550669095896641559781082153152712639017360543820089755463142230270148252099440975025514681640219439418721227180444203019352844419035209623243626334036009512668160483720858279072278926994966093221145299503506709318042709592049317138813372479643483675163526436508272633787938867642340948578987990947186036298374324517641580991901271165327344669656504315322587057769041892918281363326945473772227270213555937815305471017158189012818049864457387799679299185043597462388758071786770920909455123492477176586733275396530360174890796232434536244818417746499890826077800906871585570720939612421941425563553579618645759469847121774383972782603444787307455079893198198776740882285235240528409396994823234198136166678543295529211653648836557423173327461795602770507786970506295812279660620172980352733562635791598362627010375845638042227818477198545679422725361385934857041197929437426836623852717172698668763948369442505422098337682721626517452393773769504285512986375740145119542313016078700132937054758888489604822408751824488609008231188111596781509598530206701979555606702571451424480197292991493461327097863699981428492710788173290645741142184526697833835241512555587879763573948172837913743707440115207151832867201046511040735181070880515922744472629049221248872155209237608778180052039821495307815451714959338959056581685500149316780391622044217440114615995456278317138570525414331396457601503983092841490920833562776936044239099411827701688585176416838657445049425672207311644660317550840617872018926451804671872096372950036364472994646880418299746394649578945137704488870534830227473942072737664565158180007053793769853159005632453609574833758528975700451047579102908403362741811428187724673936986158902824866195747014037235013664164156926673504507639994745264304242007448091123669302046594663178863974295569269762162643452152499488284336459628678809925217996981862067873620270155694672912846571253625907770273490811617391386542868190912677354422217288079237990478510067272089746847347011861181527250912213092519503696581082344675785631568108555806709591287868124772562567158529731259486836326750452744469887592896101618866705575715029125889909910192323727519441345389192804696130145574012289033696246671405992544778460842785391204698759478365103763598625882899238982635550604661745607462709246265143009707087902661343941833985777308369909893681981582649562323073969950460587688335369737584612152289854496621407317191198726596500588234921125247053374793674368663067441420561337254768325479619224752178565099555410384994619996825233809680549359513928265423131273557537094741032640646732345121318484848366225373064809805985920437157453063146515543668161188751534549059551946839818717277629896322256698622672011353225612009555177441261049680714480316282914673908992615212085763664568061291030311999936009327736624548604537638424665437394537145520935617908400400784890776820328189731298156484601933954393697880429296377816331078006207212053257655287471678597890525760581475143622401977912030688882597502958055098637846122537160338495645797092892472036056822442679558213160028824199149941614272720464898108704187281526264300997805134165960206475261708129154794997801069653713580505858053973042269762867273021702845730832769073337607924389765169561515969666309932508234387966202752717940556725429209851171095310601817283629638005415928730997908195581341289423363558800048876365455870685053653673146133573644325187145050939962405879324975850209280699004471156569489859955145853933220935502285760367356385901681757548241682707298419730822038510264261749560335886102082540639948088013429039608602202862788540230297543189596357739619407466601595897912817606234032363834544867350011312785493124796714502391722715617670048188104719755010319415526351797998797389292650648444135899218119180197555945822711084530680475938930748313965695100368923830054818513230970147035039973681687013899435346528196246317547708482132150630780703725994274684120861380867041150065122529911493159654970065758177323168442048103383150542568624661970582123483051641346702216267736530092764879098569240077087108019895468687039308999207372368464088675472490814921345274066448133674340338662203777541340432571372704864372705195375497117774064330430513927475081614849778225831841802078005497312846714945308964518372654646220559290597333860665493289166949793884274393642296735279299290824450858437073231450761910311375512260013466448109617665490252894288855972597542324596744031297277652575988564061383225945015708741599538578272914612981379893915470947628139191676249061840025430490315173176316319753653133034999883940676447109024491780466378468365980941191816199133486544988217251623965593170679663374840305985436589413014803188562554534256732363364859921042149422115150177910548858491749273256904411605919197422332367561989845882134844092243737117901764498341684403664341042051095866389008674079366974826214730528528436950833002861865753226182561868124151044697683694009576808489005538260658159961759867754815022608267501726060298429587220929312329349926529927012529727026098370721377138652238440402365441407670925277968129070354924894655441518852233321022221790652589427275724199112319062319760991818380646778166727282940651089744749974833135636160946670668868299557713709453210259204736330295330502726628060707866358816564224243822707564199778344316549709698477629502853415006539038057649224017790015582578816783821115344502818261606532334368661849754040494136120965618923433480841029582118485167487610266854880049009770447603223859076772857082730424404883487883761771381062830004925343357304683008042086203411144796712875485307875785199360369982354816635896564754304625152471439870172484360516847265724971873516041230507242625259767412547723207290664962087361153137252524906596220297190199493475620245178440907198769977343423373357674946046556963595845887196827562638704211422418910144926143297395499015670730585525082309664198217828945772717832737975082184030559151562089429630534180097404407923321054381739296110832366651015698524526287005871379327429342641089744629294788057697362727586681143935947261759033103244757404114723598693675948415291306269587290054334140930785671647721674808094111592795556576153348720716887126962765346725557633452521195325270423347918816080165226237531128654742403743210578483953553492048224435943691269772924413426114654267826217917087361097857887870879560425238817290295555822860444516717801855856232322504827428507169774880129476467960502188707328051058828873014726687159509542568941710687150810429204596938988057532331156257891144435495978357376751718958986558220060715292476073412919127781556674123768650491673838524270823161377803888961505503177354451564417025960087455689175415345108194555784632511055873523159792963577072649423995838988922727084154632222039088062743190843438406258354739318982211298162739328022588528808406678105333370996933704618177782630857206827278588890873760605863659161240676381783252986394860908548150869526742590961354729130493339704560804570458271322195176310421298829541161641040822809597949031690997108859339431464634944771189561684298510539763934256288363202684185916057116076659892759609434353483511796933642668669654385506568191586225638615509750260146674669856020237623431887999087916872898169448938900829408492085018840547136387785091040488621023436970966422507156811564948831941796459904828624677373621444059802326042493260385427095704229242265172532169034405107811392087830403065342570845566917409321482649890834432563062279741140929451131207350741864163452991907538044501171106054066299117452527744720853139655456807678733431251897567664108839293320644471556934148128530475808570040631593808994046028524915499450371956268287404958504612035166361687623984886233582290927259362384875945363449270356688974524141326103984339315813411281240407140741777759769329121165759104750738115803762987260614040010336376194182750294977687315951983515160686125146475053073188080147781766215184345719273067675916442707191490807445823408797985002462833498440026363966235133925564137064187436365495988613214677864059113686514810524285319288674986368048819734872210792413944445013559390972583639783667959835859071959220814624366937954752744978706905174592262073123689547589458185528413859299805946957219254541213660118112676122047199264641365403829805518727509317411524497033397540318340174044639725102823786973717783686859460745020918336428944441106476895700956044384776830549820758748153481806190750950444293967732575698859942864624812468746858506153428465768115477537795239690328563333182209920477041209887304107180465184013831773464603748640465858927919767511764276061762036077312887577025577345249414801321577377683708208454773048574398697701666431974248799947199807407780523321985181761571370521441576421165667457234957388989565898102939173981661269880260819465731314984730583479037915013908281038491733659736988865363336128581191941287074085662770830208624835470828089487638514653746495597504208913225577897176933533550122785829171351263441057304417429879138977311045397771387496042975822127769172355131893557975684345515334749238993084051943673649769271489738332595119909622452200030104989204290546611775064087048329054010241928978542420995613938771703559868901388761680438072034376444247834671134427586217776001657816388115827074389445775008197843770501702518823829166875450716352085000532636941209145141132324086447319726249631193188148984959604057700762905576286559954540257510893307326787513514723582783864867238959605995309742208302764391044929901275845520648309324172966473265703628138003360446387455091970099769585428796560384167891689459259662212419317154298010175088171226274372608081572136764827356293800067713751148841897586372247328034658791533443282577128476968925803791514478611329987232536616851908878859034537700899114933582471810636983051900261078071720872750044269094042208727996985595916073443366807267638393757740630405038528439256271019258209752614170082979594491930509973427630406959287802059175243540872104199166797047336421570419558010877218447233629374160326053562497617080073362266090088960474799223056498923057688266199817871188483048302972282667068203536841233708414984263245579811417862485361100378078359202841558532850507856073266937795185177222593194114440567232549024798588972230010712717947723735536563170018062931944628000115481258061399586095655561540588519275461142369336303375542472414877104073891924020210883666665924123359072811921159572914437480329339482788304661517721114332701590704909155733971087882221332415769194402005813696711171226366350655406703539216151168653094063248185808217003592808400192852464297022706415590095289123917811620337712651033384009460444236873342642175756772309793156441102505350718860824765207232958555967847737551440851013747940146787375639540702011336131987806200589827138830006477316711923658681714488931681257916448968598740458308238837699499404744997093592684848234574143692643693128573979724875751047355778885826336504936154703462112453764556291723440024287953913157760661332317889464969978576359978889550731186495168759591934385676529484640257702611110579195759557090268002191328914596587514538407401377929327630238890667269153377855825950124952495264307096517527704381761296682778689399092918957779336563765565195384891934498825468500479355505315009395115409713869586394685148414769907883976833924908098343935314388197598017938583396048845062884665830559646560889717503514938785403217805733952351543684731231556947900417173242230558621498884903805209687877901598138436190055034619696820429062073168846737167673591104747654470753076468667306630293752408845497412987984286298242870170372588129375728197404006314210217785553271394945831895776026558334389846848940013481708678947453989879289338580685840429750299417056295131873850992697668652865007150492445236353779696865882029773948764244447965790573972141145327093137820834159954820003960866901555818482714736042575233951938244645327270019969382739189161921492233329044097237874487652551847202933219172288436123555042704979439056095746872380418547950730539737181260677385308765288605038623810184197505741326171818927208489530328476033407692535077317747281930307133800805454805586543924479260461453767934751481235303301410973438216083096020169029730200495111356852022550796344760701850900348098326200723044228936519347914316127284402530852700169357744798881559133391520257614284968013041532240843518065262953391040089241281952502425489369570165347655495140421505085738581733512752101887276851343972862945483168740735730256512882514893779758032076603846274844654419420822346304187820410157078698228493278112238017032465621054772183773456986740813685587444640007455576158757115759172186515760790362740757467796183762423896529047630421183749268362635402485780274146165665644902383589174684339339586996516154691203889570526333194639855768460056483938086988126901225502484637125014486944195395177823674666646777017569328241462574062038971382074326075046967756393141384555364392455320309703352614803920922806291530475673630827757722067841475596371059132850405375407814315289391293323560128427958027615052520803297109898169665789728522634209744344512349073730659925130900454099725687660694750941625489793361595433278006327994134194121439031596587531578182835334868060984391811892579237626603591898493487285852768575831033226366182065534764823048375001364077398905797110544723636997598320478690340593340824138453511640355051677775628234171765089842797139629629768401905150983509733478640272298326426465768301011488174939945847840230320459070902046159970346129380247733630584504451062370989132653764842848544997030294731973309202772528126801071154102738373329566473259658664806039047109506182607924030389623708062793377440824612698241081354029969719078299692766290554324885868990775025843795976738279045841870719575403817464425924229022962352114619484709841501373831761686401878823422022056983890741814409992523461124145586176578428597666830631599464134516912471319735363636496697509850596405654465033497298523837790338476791970974909213665047850530506161186905185579562653907407056083173051003680224685865381327271906621220089573166250979237057567383266901305016444075840564808924666779670440458374247184124136988135152191922909274702586005925997350238491524882549194136127882124800339100864810795745085037382056906186825640002317454424259530246307519629302278319566325454655646767369609229752806963741464658624364541085752638187121216262101610465933316250888800891135256998311873385664640718637872663785368765321121783986565645742990819548571424739061038160990816435168298306210612587598032982632364107537159564780489200288857529682575635845846671143972569866889523444911492958567751811385653018260806924387991489093326918562005170588199758914611729929115919960120231119864543198524112104897651719904125274127940511479619783523778701787188877614505465738777975023901142175136703086311137348289516441838821588761761960835232232157837368420435828195663294471197958654594389414089228148687224768257082042015154777756037047947673114495358458105768219549047819589156107649763187024445696013838877124786780023892172930136884848316947165240710813486442509894846520823228855981616812178657929902584579137819882259434581648382225441795047183907971745545519145425412904275643314002303945022575622609356010588069579518171484293551246779988812882209636763244091312930073449585030002099360215193810856601019442341551956539696973774904229821351002697948131679189113272653984387784373914788766082484637061680876848434305855676462286391336593779250107233050174275925820968592550309418951588343238943103754855106274656537362080648820257420630613335558708069066174863198311842822669698941939803036780780676238836308242974136924532681553056129538801533173127187019376840456928839591331986732968715491066163871464705248385853790561452206452945705777135855410743077349955686100959975277211216560808160817159246295346846645570820312387845786660517177499831121845168805337839534711396903119109867009465112866384840809459219569465949695844119036421823130366828346446605180477526508998132835722968635622475031756629980304336836991271011067354919250787717503693882631735650094589370662958172126128503871356930226811317003882769273512294594049978616352471654759669413229337786603204276080268987850084749312166038092612962755566890073595715209231213018629904097799833855281638660873190203548672043040518013113131753286044209568153352182258228290713494713128860677914240215299629286153504784861851415892009787492128886891581099838775919376769996931316329003227709772869242941881175433527498258813430124041941566284355712636292259616543179495568766760170905858176883294677061797394568297005844226189408294078283314007884894861276201854167411970557644136059850361173054475648311499873394953774822582843130644684209477950025851162611473554899913924246988357885267189880212624500567668865679786520409196394905505289287860886102998300369083719029224260583502740312581071327411976779241799633757548712806175156837458146535674491949130528232960068220677799757909013017162696187147555113371160841143574935142341020225142862258791862368855556268384309382996736906997353372403490044769872515732542299538218869677931416802518554412312397156017725590338222518096787426460674067082954290881588009122413791043169204993851593978072124055844407632952850947797523411260940511856054000531556903866552101805359361248749564834092454371590799558508809579350324869399025939375210392704646846742855335266810465555352384110128894382687284953370980169549270867847938301051142707493964417483588688572301764525492161079094410179620509724023163445625416700674337399297898902417274562461908228148038940089639290514628189571587611712745360071916836394810797075436924153041243066396239071338206213822738646577462966199186153742632262601871172953495753812882356403497962576578435441088444224735803112651674409405771152049840441011383003209354438959132039286935687365472076846645189134541286700895123090129150763263247960873974064482221375677048698862281872383931979485443803823211877347238856874399598544408045629548726320655411144610923173793298538736830362123822136184726876086453528326312207264103748862159191210642097330140267143850782095622463967763938908111993096772638299090279388287279170960543915010973499431766455125544971702353620864600579354908185842314009029973574255228887367837020963484677588299637421351038044023596167588919981115171901281319587268362097173040373196276144152006277597342537357565822833266708586999922682780680325050665659233501422450861386354736945001913892561737383495870796248540067563644587894925898736190456091096686209810766121226749697377487808049375884934536471404345191429240959977104208015894157663579966323049412021497593678858742912486401512769670975382594413582930928339049690372014024531855399041262309154739715214628467866722666839349716692422115969754527052373465317530020900260031394862125551603795561011789870916171335525047171810988197973947469803309328524673217446081387338381135017746481009869095346584247324193296889992295373402297891521273986759761511233911917059326820779550615082236269158253352292849737779310831762805535657094785081111869247688439972519944065952157269479767407146117946955143351976147397374027184166891779428646762831282092132307240334679890812959580623542180772907143987637623165699776416533741154335074734499124506836500355648198837438667070949359805325609011181273763272548939540958300583624268693267558916464579963449728683501168208364150023341854379352706781433839044548771083315133965954528102818621730891008956567410097552961348083027795883521113523080336673210953386743137032164455771871629637348926133690883190403072898689164267153412807842253935009702041679034130564235523443121787627590428948163636386911014269903856664633441063032244955155183052695171576541302190640159173178665792194336002854847026632012882473507011208819886719744473808149219407947032619920512061349220849682072217456477237486685781270791613257239261051930520043429008180162439986166466575763160377040537172924807516072469798823891547565870746140933514479895591727384967785148694904075956431132157683102469898636615431097065631970636298408424853965483332813724677610023822823222865155920281093113027042852765923884149437254614656463670618374481391191613556817709154372434677748787831296452277459282283855892190339730819667605967524518382529132569795539616760440869480101215328558475557949795221874818487245699856842395825968806967084987229365592003734964490014408755526430681496883984603198727502827013957369609789996986806007122104201935854080368508470723336916002490634817319603732215344464851957721352515708124995653926598398223160669178935486137817731774446011861752708014822080023920381149868831041271326398447501965533921065424917318522077762072365837353359240895211205396136090415907467861679029816032810888000099530996153232381717377841337258958068356097684478406277436188747196419028821781036366981845960622712140213319070489553628072091839285533813959698980754358883273430667221622013379809486540369946695989240471967856298700203425999941471988732515386732447226729533888337565024623382792636573313178627484600641263501224369264843456520883399111573563007834752009252740869207726490483572767331669722991075013742600273830038226989824256956919398789444641931577634121797557954789986114141608328384293389589724463294771176463602209887168584867556120389814037237356926746064315429690438246651994054675523221358081555120755557842333816467615844951112995140428393388045013772867810132336495335314808638617792244716797161349358265049465795046733642543064727858088589091864719908013626182666259623602642611651540398141658061831518330414459636528079183321326587698625581571323881232354364064429795374520458476016019574196379769233441168780063412368065262583514555007613157755017169589590646933019040650081826151949325765860411496823262761539018491421017302599158114555241399156547662788689718959492390645570391474668595006585606588002734266292893364147119969057192638644792962137987985710239459729589021894669410073951619809895853066562367480622417681791760202742614388463312701634637225568804286294334626902911667205673388364904974671101958544082343854635307972059563894784136371110411904492434246499661993222928967559907396040598306794655584089813855258365561152394525131796007595141082504943731448743891419373790731923573887385500143233931707152442880149434248184667229075889480257351726479800061347301549251635819113664331808905001310318416948759103397925862613188125398867377628923324084482293195528514402006199263607210256835280050725804597809701174773046605122649237781320262191841874980656076405428722145817845565582368458978498699862977394151175955226537087742622262098525286600455156768980293181139880229191302059303866618768530252613221225511496550681592185235933153111291733834257122876751832432477738516496091688082264866535495786723702809565228626418607342126802511322353098120590297545685104199394429410643591445299519643449378700536672828178996373467032344636198808906591942439523411060581451610302784720306771230530237349353001347236384684174147424347622738464073098798231930147051714292667434346526398604673982065518494570474749397528406382249360340451011213253052699640327767626081966612918998616634547262925923339066545379619284537010346403008191069218675097953854569051143280825043536497502198712790518968293275122272054874319848016688118820320327001424040055249626724484227551904650117556865833689850682575461469705685689906415921785167043292144418643764254452274596587347824288628253909014215600955541436716228881578858684649191909506225896051131196645248466111673928131626501599623976932797753880372317704670284996566434005452351464693498629076952805376910097124049392700904555783374060823289222028716234440636675181545478152646302404395287906725715041909755722443664339090540923444103469662776491523576193308588094466242609646832476280026388798700300945127721275760001917633991267866652865908997387613315807231510756267166872231571672228284491668371377083515550028942206923183753721052787080653769393336912312456267115491185263761615217374012850664462177056894078065477877401946421094315511440928324358842682079980465314849626235434046589269490247107789314405082414995850562122574716856468145913506893047916554765088608662524308094234492203897630304558786118763856096983230369112475503140165049624983472130731400191632099688090044856926565795124282151852223268412584055015568537719092900268660094622036923216515338397500991631775845000963740982023488997416398075305243061553307617106719148385682781077564602321142679892290072207698884937326800209924084309716325083588081440907067230491514433030026588529605437701319131066518634646361950003585477783592137145032372627703483432439911578072546757674183875482704895532819414541881811106934445505308583738181689155082224497380339862978350417526891900154116498588725776077527350274921975520001459577080597447147363720340421181210811156673603001555147456334821106442673913898643810868332168113893521723312194492866588899919147980961551985238266722277431601519148551718659861368040022337213889352982848432210723797947651861594506420188037676520480349430192995418183842229809597204574870908530302526434378504246835334681664967635764474316546132941572310634780578144701547022340182527860206522860370828299692200614414744859259054742812283981165929211559796072645050297171629104490200676671322503125258696319036749638909968008516609348281902737390387536790033352792464353086446291641170209796037324323297725095337551193714689018592949945007567460638275384620179565994474247643800147773196050943905553864460772513918132200058444556760253829644987196073437211026141501352541760445741737814415752238283982982836645116706215358642052415251424619477883417448879062780759394628792740385546429080967252701361155600175212238475991862406292898662514884804404921613181497536602737416145965138361098296179206097243248225933025108441432621524510094858028665485663762484718159663932931000112849656591073716295193492808764799947221068451033728775937647324568034894471528561763895453776544128419343906598207970042258747673751895790467491446569004308014029707173050049063497786688780334490491030664555068657031408337270631892896618548870519302635142080271252261431982946383349883368559925265787769140987241642669937906268161514980278162163835194633797610734222080268007856169295963446613075400146821084354239927874022135550586729048700835969835880508709638069152056040132559843710196216332439798485815279402085305548459541367782757002681919512035964758440406725361486325446877995810332800711881503288739200394660562780701993015944940693200657907113357706749983483472306529641792884815136651973722555701744651688593067264745491344037104751173867798375095328506060821597029709225659442112721760042389187000003062987193163685676576189997466733944770447335514661040057260241528569531801135426789802639419176731501785229925459253874623861434082828948096966913270182199251083648612626415528153975794921810667662849995951232675060180544223991033764338800884187828088206467204590217285167231267614100480725610191048425377939767031168445008063497718405816032179281509704713165408941226312592802033669939777101249308062427295967990352738329231106757038538627979886927680716184152500630580056113190514818163043712622935370718452211782151108279932387351796101722270608191502716870070369087840046986570243005228241588204871085734699165960677340609903392750471444841872565301183835835079090151488345575155005639166537648545819784866870315809720007482002226941638516103147822818134829249113333461554925329460730405382968730799880243454416942303952911487495609171706888146049299113575078394857249481701281221872939545064732701510980870660148231113058853221266853449077569066806784397651981222281032917815859621833857399157427305741090491539950484211681967724507090252727308362279499114319452282137269420858357954291150240716535723486786897533709872211375195740334408379497054452875821560009797821244335340897319530657993347993314352101058078031191689230456461234099813752667847146046500865513491281711748620114794429493749393149691711268203086741818062865994628949534379530233168681632766352283360158143582026431354305947165684582287961550190947890163149933163149293357603238563648190088748483620167677926532346185711371742991311164125234379524209012090702885025632643755687485376016759258459053195540909701947113760035084883752865486514480809774616740736170307638079702958433600164175638234678152549762620104869082368181644664330640204255952086630274481687274107808701720743462345287847360837761701913456674500613894140670487111361929560687969711684881328061837637104166259150395497029013071986553494968996322312378330456395566369851361935693931447139399455562327656045527077900221772291851309983065219706769154896979493739553814883577994937971543647233120193628332387141596388108138574182089664624553026084115810756065967467284097666586733782505640065681486353292957146036684772535397671702365230911058156144817524127402030751815794694900157216921850590847957044385615835817117227690755876681090346240924605733469944340626310452419575833403469429996357209815351431778095124167367479858170179784765557667058704586131623570973349178327748419770878100140834727297894458570111613481411534479751720578236991639721665750822812525483773747704196666025501806124149184831730856121747098692018374365939174997365148243502258291472213445056955219048826706419934496661386781095924619410999029974372922229681753771258032958242578432427437183450277533781076076789562302914470898702308555159402920542309508778349595295954495093239335324579004178873704155970218000820833021285910809657990324766501926892349550969787864713751716689285934573759613955866777620236510014822540187183532001725358854293678421819054160354644672897100034851113979917469353527809328434540229975268322406277284660958991334017567963687392853268639831628468352170330863898002543411901988741149697273571370813512697030861338686198277518560328364912420213898005175133197419585699525644697645305872956462784894245579272727080781045015912929374006949415195388413330620773217113990093106218720148989345960085722516039390228124676244067654159608690029676700993175792216532031408017271443833736824772010992612316163262146043936183275804238895053728164982614493524112217503283191570255395750989124160640049312217846796868681676840726866389772123034632303209259545073857075033799500198523449565804667060736309880756163951388758753978511079218990433581618444228433866269504438325500630185014577666341829229351792244906260244887126503305402952516614135165909214944304449944806977130773079099528872538987008466039096842492492272081255313963620866774872123686277587537130044089669256078374811278294036664533044033965102256622195493057503196799815703895262856922248879382196954038181220772643085544826401217386556930832422409487587564657889576688771798793264781557852929147109507453842196283606951321797564272599965088243972220241886048828842644769275025278713991459293316225603089713172256092715606221058805458194753479706910510543026403217383144435720985790381358093722843940746148967268657890490093038368128192951962519743155273938266575462027543971869115039390970723843673853007940908635173225244357898879712804117424806611039677358948831677109524465484548731558723204904840829679531699628216218082904206159802844243503579834292648431342920428662732323338770998411822058785435803715085647258172732820118730430394587473868906320562154038584784136820571501586038333537761899532235693303849280002214055997633633073817483772395627829978457693202892072304635306366052467047146939211709279680559888714598414359961804123180165403323258014573225467647696605442836467828246390119875904245363300651500166619529259707967517860595848677984854898442637783802512310399957753631394068029191931717857892588589367928798218717159344999324594824226997012754753967678142293257681122630653003109539563076654094698356839337824269783161243273463433387877216331211508130448674299888787293567838762424736854072137239836219235719901868536787378324837756489945245920346494182171230717588370478974699378387732602443546323477395016062605158591935199118701964179155043614401045541437058456653024757069889858957855066942064480999199813506825638710244134435964204880879713778735015278801901186187003557027769570893012814602336657006692956783625662603313114330918052095803198514128818504094770200807071582040788384601270271872651601757723571594045328211606632690558417587508179547382204740726320917014841772247365024064082954478072455501608063892485836583696772893614563774574656115779637793230291585335879551936928451942232075596219854875497778264785942854805339911964429597327019274047152922725994519753150612752500945565245436834884703638386905722138710007403419602023581822501784904087970988941490481619702608868072576562499650241331902889073214369156465190217403523874370360903670544915488317934769184352952063478679699551100383710657223897528377567701976081932392373030491771109570123503068901977795609950733294417461157860514057285322090584507141124002945083697001964633291355513631749133159286201574509037377181497851166297674543444704550458661734135701881552726243724877049267806499005548391552488134061098978777891645962654802124295560337280166353834420177281571734732499733717425923388940919349673571740368984993058189230074464461432884838304712692842331402961352005259203642655850118158541075057831994899714307643985871266348856120166007876019474706708175545414455422287255172283572590989142164320603377122770061255813868268837975415725556831784350606927401608650217327220871202368028589804989167130225568236831083472887984407270653748505472915364125374245448906043347918170119230859300950187653298476663326903173772310350230187617682542104986367436526905250740824206092750745105714614525491507628252914234711171000723692995912318865010998500581206156731120516684754490457954848588834182980232727779143201212847334481538083771205132652158187939310095945984556031874199807537826447643898013995508830856951324430343349690947440871897760373870292642101868297964234135606587512926071396281079611650769111521577521747817446824086780393521171708443563447417693849708764317178008975485526244378950749767104232795893521138195777125003693624153356848936034241610110297024302226280944068851572271378921468355566374553686734283605757137969761083379329878502707694729582614512098559614703978462786700975269206646023455794699748124481157769984632702243832056817073088487180631608608864907101135361222835515187321190205182123346569280060205966675279811876229385999617863738711434301609707688021407840466324231134074875818035239784678499901008878191024322120475586851851825172405810587783264746692489713491141844269632032693628690441103331511568027588039017112591970149931417463697797731247179078091777637668005042750834998514081015687598610008171771376742279344288040672713157003664474610399551772980821869388938173810203286250999878215101578427751125860885875213123332696320194580925399285891686624354326341409374986948014710880349546880350781820389992820668140832205050615025244749828623009053456962981532288466011040321194286460511716412704240837432511156345416645359220707145195945866929126839658855167189225177898640616687485938193729767631571370429682315834301748381289416231726112342484432404629267801747472927044328446646161416480732441367797754192238479957175744044406204123937572101264172968101202314841022361942745945643636161242467456169761531061029943516597799421814251366889570864681178429189551798910240735842773246906258392334590367308233241228550895921970288753905244744754286072926988351897137833508825657054453767137028388202702230421850709038536765603216241425607231474962619625813841735339562260865808003946286399968795428672129840712542563094038723641255049701131487827213259131123481286295764341945439720089280534665723349798641046444719815540106617378229433193677724846796028724424113910189016097200573233037406802674561493143282172810831005580181016362724929280787324980547039111795074095736653792050636314348970509552338797522821046693742884289587190500506046413773532346188173400709517769772406905122669491694457713357099959640737733856628293496459914583468160186295611219043149006678045292539037631364620223684174383264742057203777417402864377062070419197491505699663111690103999349024414018675873214861312572938854703360196252318422817001219317082247142872422355839466021561454772094018253341474138204375696071801241983634296109757722124750819149955737608824957380483698508641850910806402971348257316153678152071704538338533533723122506199137755243607751519099516888799856570720348467969930612931074472407634546872783223497779442221423435467407198294364242509466527081171158242990175065778938318090974378644404298176128446080941284310257963109324334583571614954978013920269514975338067442072402275377942926811591472563660841419147439616076115114383000128329886743060543116984179530100073441828612677531070841250346022493353651028237358221385407838127091410692308773654528559420356727965590667027438608609747062299173168958030744346133787609171079646395558638496835626280132827293093959535901420717501835038936072164159573128222590568529615217277372264413607337967813083475463161896812909990692881448194983576663053816849661011387944158735597714374600555438527434338206910909057299446064126477467592112122464204590502070859307672265306382074039292175756482616340281640519978872826003661226391545928459636410067775073321132980984090052075601921629393509971698139953343915865736098497742238259857396058013315287786989126491318333988671645408604235533493236804278029498665413879101387966707816489869967759359721289350478034447174936508756061641026817709899170948626722648309970729170716823865913140551836428412211663325344140199674803379501943804868861396556534219810271703231951031470069985586647542495052862090038288565042344674813574821271883358315426407509127925337526721588172430830837808067178700633823818023858406570184140384586773560509562503597703892094338113124742938598485729738423697456933349781204977382649674632676497119270025569093690298295128291281309479920856358916647752977630482937969944726372633190939395444447529223028777083570194131159568706524621922474901545296247053785499073822432503911600511264449120353262229483078477406569685849180501473068305902884185991234836724962331242489440071199710467755408458825900262410048166219486066474028374899352842729615907228613401979159168043914764352096215920461785215583747070034296561554434854063984642940106675461217410068316212295734286443456899849694197703134367651221891977298547779271966008120578675791722618724131191915495815668649748557786749329746072369360083460114344680223838377246996132428140080758315323753676334824725696471223786133988559225576331255506729811409518765050303535416191934544703970628347120110824720302214601283643702350766726009708218776467646872798722766023451819758319052393989491644776824468882755758617985629351341470626968817418287192077918929846873601159354462047822258163559303373984536578027456051137693855674323667831708699611879571749587198266502587499029174069823701220606561350237961468777581474654515235318536127875242083307523794832497733631715216448296346398368073225879175697326976750460460402293521206332641075551374467534314829350144840470873001359724267948866994458548991139821917039920519416339872519227164922913818319895708400878141523266815393789086446946515701104891501495362966625190136531136567748031262357593034562773466075475118306425830021461942473979378665739669958460194852166885367348705778939260512790771256931425721169193972253977762767853203001866282042079492383323456238079896216378640382781085453630693889028706808343326765523919819886177576004776352039144753952703143692983392291745573938126333596643637153965107999063778249380474584014812301059494349422505257380682020209631622937874394378261628248783162079319131274104612502348364567269786290685214162621542550148912706980838965270603500413617337147591998110078654002896455358759335293633520478463107461716276962969983022436251523734779863498510426102161923384034522501337165208821131910133162223666431542674624865376902535060941239899822875046577499392134973569229841670297561679486010890191234840860768294274401506484889145146237804209375453280454887629845357717790081575771300274219059325207109198324634054658097070186979452274071019626535392124592501051893463502142153853514369113890623761885449385744098913934895207243463760428155786784455204031944281893091096922781548637879310101811960537997044517725345262597155025001779823612763934532315954917642942658796102004374851577016666948751167230862992318674970372987321808844297517035711801322413826705601097609548457734827667015937201912147157445364281216579188780211777030723782931858405377767265802633815171139941834911155615178012002324066481327066129680781376437644069507548143463276776369334964682256787640027829096642303839492395499960618435343561066569238678890964063191231914915806653182334893938504582769879982035452195514697714115410009987651281495783192947685516870415988642685172976783661311810628126072873619442027042019297044540098317782242188779293310237363967662891256037673103381615878985584797810299760844386207101235780505584964577984703212964025672146160540570477546743407069794566329540633939400281470477410184650578395739294261587733715063501329400509840314088627092449488132196303409042144932786123495119473101935154005116458020831942000277388392530092935041680435033069895679442884831023330066840822995324996202038016120997931442523172795808800825596413641558464449812324120455732934014795726184401788309126549423448445293090911826523182324827282363890896463954666556269314408786931902134156392195028228392472680743034370472126526955842344364253195033156958057441792113240942408726922583767821594704520711272698576598428022533318932738470153723044843131648540592889057126483870074745621783028899595812747389180357533973628681606456604810326047244758634262064891087392057398183679899400198720746450082013010058299119192520139356698141634169217018767183713906683942255477043889896057206045205510908168491881739200967529300948057279946803337610499953974116262049008046258363690093075189680494424690124955819120367381077278982241476122024523782433293776136169565623796938861851860948069348110465478866707764655517499617917129592250881891000469161706133433244250599899062846641416588597330714033805235794858086271360874096791401179084990693827012488857924538892296967824663114257882001439835087414932730703281339558806273015191218806478558425089598944193096848217027909393057098964127341357661610386779668752559563622670747701696235505245775690122839332090355103404391878744222169125967773314225435851526807571261988515527129320777517543148969094215727714407331712155238864344397366197388076047495036962995235826950818172716186005359337810980636358362471595968832401519028962588658214336216765796384110376464411679947000114192153333283207142276094319181079634348716337261947167354061721237766801408477795500472158706134266472460910586350278706589240270032766798105846161841263262665629698619017890220983084323217476680037879813930801097414097868088838765051233050256286118701538321419954543385565371695588035151448183684219896992729090778760994573257918749943674056332042881967696441687406544846798313179108684864893918737720962459467765930899344389280584008841055754702502893531255998620022474582934348953972164839842436615569484385754678197660127435679046072289384540492904781844938051903612703142364741746254647405912906810044211438772374753805711924732968244284885878480528639198867170870577742493134341185510412343781348989080653815674455715261822189629766561969694835239284799186936064498945174834071430052757346481505901939045173767357340449861905004770155823693193439536620720992322146716938595765822036819130216655364905919871130663671742244808876501553140104097131359736799560340481770890750205917285208524767192100954653423178628768629065175075291674209952733853655622340603543822344997692696393035559414696078259703985651684809654384853089814034925894757770287015179682580029412606473071605540968095684258892089622848590661260992350356608404415753969557699085408543850188393034715539655599762160772131624505238330212927801233639761742870051041234862148474683692055091919667565524415494657467821167555215992327694252644897470477257501975102778739671468337308976381801531321132985761751574689861803187310295540487336600735528474019849179939485442336613392012815563833034911340841939691775684451042764341673404975544475444041579728033972926714324550842031651697998809049077017808522368565634052887638191274739302553712923124129538690846225213253371619732261509820223097572099271798791983014873385914797843585946144821876136393837670914740586873035656774967668608743699848904144789994030743440028846392030473256756924754698838416051931451526783564572185189409983767954450860801918804416890625407557706220529075046546244035445568222809511630153704284035167720130120662227723119799687847795886916251779436717303203030655696608276476335508610227490513336502299610947901906459933004219989969520680981186090363223588355684004495792658505464150914958412916206692339019582088289579154565831142622237029945889996770496689019108750492473420166588662374209944857914302227107178976212060286284453551159352741671352495949749174547849995979402654886315522667643302868400610669201047608876444600417068804025609887922917671758578384428013329195160775120744538342155850209375290066234899759023627194361060877519377708705031123529869191601548107802772213216723832046845043551581919179213337773882652641178447932566624009802598044505950794170059349254998821407711252577892038011595348772924965183964584015152999422073040768673158299876406053382982297450178542341058057671736226271450840648846226010793453562222970026552072596036473717575795691590416146641200112416184302615394963784240244616009103624782475526483243749352849352928761269079743993433457055812881082109525556619794396802200674917400043758746255895380642760042439513316245850212325077039812470667048739120044269972619699503645581462515138991868341449111713537933652769445013968536330646229599859104146234390223826262188065699927279340571215046511529613398015107866443000364816050691096749500404722890780564418573390049701373609397393454818078766579340190674093902568311433151608038516966290395926704208656994820007200835737366429935431052774921568103093892557614014889885988297402262719542470196923950369422532967992063626294346564390261182529818367843659965057455018170907870468483627964779781377152759931718783085219987386458186446040396388567857435200739470684330367218521177134648893650560087165450419497157681405376991508545024957640069360938570548113504466844293066034390606091428956755725880232997589337295999398437843929035779748214045763812427161898590333874116071987891734701618748550311042694045690023855985289663144765825449013727114927400770432540236472642649766266851936522387835016730967110039134131644673695479848677943487343398724440766672247254129794890788853997817159208019629982794351829928060091858177883310252228549778791710286243043979537674634932042955544372146788818484955784345527626884557791211686474531974104999243931578568206530037905590701837785979142911523391193091048484297201679345650556265226117360685803748179040284869033970285951332284294725072709222100760957860294557842657252845888952773204176110574746433937176010103932708188769857993699626384612417556931661419113136527083271219727705367259530795408336817775423416605046371638949207528017346382195520271492640168723760020628972811828387067606092343246161973639890804023754195155527266562410470040277519186974954491796848010420723999440509496995842008085275663828925125016422436553799729420320594895916483979643575570870162416522326325000857688584099490114277961820596231704371885396662265145465103567620193650846408125561044013442870032943517375135830213822177538902653430008405015726773828017709733353722085592088575181655151338827937973885885318722587237853441809110104955811437442425800209391337970525363367228580594003845835475170048794813143489634039721348014904338156471508882420856388864655616308281288671826516533370188034676803787577634027834158134540434991813382297705063747687780628780166902808273286772712208476686524004252825655212009529340135178001514677189357337615590811054089529866868588975699281203440128732839569758715450775958725599339607022364349159914163006338454189527216109007226663713539177744121087123135143909425232426383451928828555669287013179840690215939339603925734724444285465128946740368131298383808271729342273093471506654752560765488902848211259269854971388470573139719164957178885958823899518684130689973791719844906055187094767906196944021560522998492497061566916661422689362021153397524367387677949775021001365839367698426108347452757711808213324963891636690120783974940096592610382511144524298364939785996969385484899406768681379470472564660956718605516996597048952596874913549579473703096646742711576432752660819041274604044362890069655483126931513633001771304523194374799483402217156320815592964227571854804188212577293325589845098942825703241590011259751978339798331226060449282858194556318562429678066491507684230301717481347663557535042185418433125366462587652863407794842652253953815825635730006007695666784928476831619279318799590139412577752546263918715855012097419124634108976894597310431930544081973798953637453687775703357900240472141585502148012682229869585636257991386876835143932665435081576018597467233299864717278777585980394730451263640450575334426032206605232083891612512112592585805874802260126291324953432907576872285254784665447999113462054005489731607449785071215293290695296834277217341766046485691707660601991567510424243890664454073508395063194249704009110721712573399922684207575312841949669830907973590737543586198141340495230747108648862515410236784337830693664074183911844454347052466564754874897394861569745440139044848628162715288858128042396056189222956518801457332287215698814938113913525426346517009684753871673100294523406074907778244649330171501749105307854813886927419367303794890901179358889786527728120900821040347564221149950236940173724835735168547695967340000865527308210633494039555872818409741300240568765736914038617926393440289775790463614868271422031186720617608227679135142465654241257925862200955335224646169419019029898714415763670751258384226156207324593161939004652500686874261289313793764781383707260687284882628674396902617505867379567649071918761872922897739739541397062873950291932760323342859586790459207601708499677183072815276137868851292783208806231559517759578836492885713753856764021010733666466250308044263052509429344121287072143719247092964322983623533596062582212195538125519522845687689150702081346012363937929787526893716860676708839293620505952454895319789434638889624920663386828139296588422134500122403998128964331820882747388867373525672013842164120003519205157984416570727412764487395649287018119750299385907610519445542245865727749385626013899865704443462692437843339501600109417370487929408929077104280596672714661081187090600853718039402172876109910203665462919806579575410588816389236212211607013506859508418219363771571516841429534177021361144734358269178134435912648147637711409115089318287439149651276168097298769736347359948831639564737140699875985765536503316230027202710682473378205826108463539674917843805847883814909213318690821431157648958509814819393276418665761523102044114808774882684600710001207953542649676343356248728490897229453044070596479716899098901858973406843976816592233944259047545049495687813120100912830334863136345641567383317418844099013570197544166080017390860664520019233363579798162201913523618155519071119759174530495268614894480834655724087039318024791277650238426218540994934624727182607433285182120522702431384044435557146821320227442451922535667280922916071024000033583704185451810060598888142444235731154868393216426791511891335008227789598236260519728461947254165313406113769583174881428816719522791182414706248779748892535960004209459616099743350132990255526048344990142075636122500357165051787016387225871831326466185654411202099663135805091133269014661823241263416120590133827926346965237987899804242025625651953483007552309144117235782204313957577553463987748386890851150522464613556978193490021592853509266428345398925503442823170294572080267109598710586270061750634885003396739964762951565732380934129488332427667998383827666261133719495740281031639474102806936496321915673865347935183278254767139223041857270931438507136242304448361193696800098307465561667230269004036429552334270220688465923559050779265550078937445390026818026563472363263774372974753974242439202266993958767042098609425773892073906589969952259667997880515344914428638229137797920938735098779624544750727192851804215511236767101375378419145526981510565243240458616202400929028900444069185146060713116207701172197673184793023609882258038713322466914670384994138779015230015861293975047640441493691164418065957894075892778127558593705232491711918675441816412768328903914555727893329974545927371295715265962330561782301372675625595653699003226107555777108368996999123448416681290103465933697690868137439391305922763595329360420065869762328989279026454953385151192019417208324894484722451157293938228981798176555630185960036736633338315349585064354290945074864201312620069256813901132206185519712245034492358228267969663842676429349340481221466963801511458365072062344928706393134220183629957877888093883237005258913327401319414290909831094716428804618255236246901197789512908658431648345922912009938657078148180053077253334217235853673832028894018163853283582640492304789157641037378312727979759394107408092195819862185787736414936822457713368778080765177565365781779893637322687696067100482580552280977055384133260537917772787213420384083859223442381274581335828163391652198715338483556504608302338752773069023586997578727463435684232753289939923975135624423025623729431057955341438788815950325185560186998992368556772871635395973640819107158772388356915849808218438507212885226293656541656542709737758071905990497589225924974541518831107038034518007192975118362830260292493120184205606246685163780893369522898665675068278255312556441819492664219860525807244127782438923619949592202964523727007226196206355945906483322681631235797291939467608925993914745962355776476507245888444540226825896547841143413627146997535850704177876461884075177660249396162073001296213143156499142947236715556135734369294674063610450842448848305520959923721226581694417005086886791769010265437559861882052309517974921811381212598026869186786516661798781300663652717036420338461754602061122509764900700864559072064502043601485198657703267184724306844815085872296994909862883883732713439523614328885472139316199175908065909608595897117835243525499524532209950116181980789612141472610334239460260365662040190204077146002972726922069019943707512588606568104896993194089162291378720586552635894267396031149466819472364742497551939821746070780267129142288448033068035886313428083591462294088470495927332450387723938138614655625974337638705166572198909020175729063016440787396963604691244866872884388431500812692434686203649896049718460209408393772751754251720782098781710839222837896066368496610249218051764906255937813668808256117110059786932818963475065836673717556110837796974057302261905220426589377229977960877726435682944084496493888816014974254256448180167628541927821454226457862600625738006637696220955488549336655542873820902316625336598688385154762592540357022822055104304978802685098494397656773428095845631276732314616051124639086899390813796524473927686499274689109169264627806773496517726221750501237941954286834397683060609787170743679664733691937490326203810017242686996980476648137788717494435411233025972673927344514622404116565816349860921133648587719183622959455568625452826829312576453079347653481111391275497914891609560116652152655580696773095955184377365818650988638619155902482002156874511269814406510824224261724655419323564770488434947734089045942914337580430583377614311050660458748724563043900589524016768285630589253961409741036419040942182610398362537895018521496551295118588867349763291893605925556426272633537004421342976269134226174260075099535135450903102828322207448633779329954309470957680948376481024663446336352575605905409494154143344355353640446596229994939546357999919194243578833047986705143743328615129492341566084499822280593292930090267087892687052531425030073043362240202808409416185969556633554215853738658357778344585712729520942426314822997486394841732869064561071104560290356985372559264654554101810571068698989172848286789891872142478702821353746727070133771008660900118300969054541147241882726623032011033995025314294155897211305682399317794680086840628702947065997109348226860023458045770304379290446475304706193989133807681108705775815780577366702557649437424061133008314548128448163524465085769948689521782666819465725980695273170038360792905553600743038254813833970471103620135923099927942915163329331508154223137295743483591134834474382024041173445088903773572791893130392349064149517052585103938756122798397898214921762802216976363207853582531984646660628957546992520010791514413284033786656321689032146270338552124895009861658834311015477822045861925537331746729296408315784763818194824245377240745449007263525296236945296162772416386178043255629828948429154289208276708829065271243598227896686147646507636705434508177576142793402202141153567924450574577756073177857163358825172460599456155845260047462300575445540876389198876460620108864725307249440600126766120565350862602278596805267397447164591570513201164639949193203013538729750120665975236933995231194062168182901935879930507811970182769555502501681622635678014414670515595523354652538154440325756772722168571158204683663919949964301519665729742787057028403594490038348305499111903807924804622150899301504065723752331630141013086061280866020848844806422590091403364206656780401093980628155185132724522035390769176112863996724651684679020803438420775697800695701504560087076011861881148332839470148279280662128668911224398636607265147783182376645753680011216040593768322853877427432443148317417464033218372896606421259246922338503327276965999540936097651916726189110252364621134100310254288850989246005700912000871319462280613712839042158109510911119699224007352432876980240799501215240718401893153841938137381523931655732454545774902221506112648485489128867507388737934425543260863774449910319597004897293801231820753501682143127876349077245879397000230734822716207004442430001803809598575871754016222456426584556804262458825521306238113361836092590847949535451906134210399738948584397868378608036220505797585710640173762872079022178629384409297319319132717063021257345941605287689549826681585173840284155111633653342065701597776464404912057650289981702328238975874559251786619306487298596649564619973405138081130727456057436417702107037739358900565004322369949092904563280399355580123658825323012540777314428107990396731696767281817301808690917635478984077910094033129623142337029782380489665560024684488502480905304024796651549880725721266660366888472849247037976149507011914163201222430328946561946546858455509183695463288041243062413715268737983684295954110772361080614022816548583616687914896896571100686589753302535394002131254506912153161778859422363199962176509663834447242891366098501599303185872907436512766405560744867245456859974775285757369524523361907753749046681996797389556836553391452323364716744836295933875311372091317255064286487761250553702404568049421120475485705377989500234937115141946845824663162393105106896119165073578785433493840681065889820202133205026052436163892602263539923918000951245782523790718080403497341878694166455706927579782503279017270642541538305728539560996057384596842273463483932513555076521121460001825908173468610899793918458987226657509866087332056860812017567017142834013904297101480745634331766090517452764646710791718625775890682359379318822842157707902012249183462933756730674024225700863203570186763413481127589806636773137882233782326302535394210049414813497653273333204285682437909866963592479401840974211626157995528272101105552278563315029370505315114446397646744174113240669950257280553544854197562708887984763580730896771677427822354335138465430837489454538219523423831525532708764167311331285401709792779750638701967329701779469658812430533206488975003938482625282087681712131857690415535813819791580226623001310991302871264505022152437284853556743511018710425283970755769008803825292719733133920165131775452432487873579222444028569564088832104304003594135902486476921971639216678831690845882354695472234250384668829265821274068382382210343358836491397807392354431139852625176817239506194920401021902166565792138290846795235855748042673851105434987155092718389707971441284236312416985437986839687353558865544400477758700570775318950926180433086164903847906260786992180265621905016321704752625682391540531335193180966886507234646869821953782474105924193055785844030559762344945755982941722906716844680770636963034681640934795174222017008263368142678662875277420137500846358311632630226991770996329508387026433298198599139370727146492444149286195302995405609352317987303778785449736921077840591698443513166629335826144974240739901011950684851519710977522147593756127809917780444201132911309164864682081194029261801623868985283085347569150622367739889630329202045672212697104849784505579890244780429457222917108375114879141858471266123110360685031473191488039336926226762539915387500814471569609978475257123856952410691024594061441089542198872080586545778418357158447813994488279077217159932804842114388830502660694370701438087044128196589967947908712949231966911915688465178263272835746805222499455102335338444835416139166495579908492014381734815288946871759720171829486596632955259110159674021243303940041742947516334046786781882615884961992746383169817396329292920295315549172863943105652489738004822568496727649996828912772570832502525395656392948635572753160795936430826313852227476748598662585004813481177207878723347798033455225012318863148222070316394752820682721690004247818037893520874647092180494549373491350212485853402698522615265636862172638130602035376707446125221314171579092051117400197772951217546880374384312128177237186160675775804259597251633620642905405621479244058375614116092038895754483953635153094519399147231047785826791481810647544047600618501976849859872491911334525672018076549523400842711793318386148710977259401785163182697203497260561677197852724057579567698868916863990942724360534145383143009524521737088870535443371027371331547187895626326137561376525936601325609583315974359330971117642512852045316280123907801482754747269648688417056467899253700298773174606451259874383920950779330868724092096763269849124860713149725929307229639602099031010374684254547220712618139685972366100207543704579258405479324406284374191704309708752921078054068398377138416559182638196919061666139601286633352577441881166352084705678070199981239838171193533390243619138928853487299183817810754437059931336339270228841423613138847452259194534803588589065277715359034278092230600701084730569828086054015680539911404868564105703170617791009880689074385583775600383376323469627540911175619122906863996965287248605668017052120545646927307720397815875559938080006677583798753402380838549190591709531311679734602322436932017494595966825323698955316499956685026534862043765238263650717122527552704939019081314840758030600095945365894375241417791097439131782464994108361431451917363808886329959562517436656843509161611643961541422476357271816126382679263618135790541580968011304026783878313816798460457759770479348788450792364715394304380872863913955437827200454526038555054983166707426733169349121509008795799845143951952380571451924372363564712192857331339389631102917883605787270699524682356153874354166592330543111085255634458782485700256199471966259017050775385585249312914296747990292323640778816742033530085169835533935383188011888243914774379194565560194129926089765884195973576789349298014652557486044294159955580380777327679719661074803543042306872373238166257941775068917900012241333466753292764290081029173737965791957660760515651458969566161567875140205510175849826594006176275348483145425242823887215880609420589003449032792814860652397507070787334449403421281177144345470014143445810175854668534460567710929570130630186449856230332534840812774711967450516370289390400439386338199743162029563667803503811279186148685316242254692620599595814644796075332247676803662050336369133026536622085949489328168740373975137930472132156144718230312948469253081589661245212624066655143712614879017041461643369441283282621455564826118557480274462512219483287244275580995095485726421123453884207066638870829532389275857164958081097529409445178452555756449486368627209165282814383078365413582437124946291910089864974431786485139019578671035923026694863448966379309920349455558346925998750891270664485594983278974168092016880048522379071302940493894301917069909507859022969364635589696587465689002992840525974835696249936274495611232437549614280046563704156342006147049421541882180358666973899114802517637975781177572800328459329572158222521701762195959144617849953184067605529852641650163746160909421329483092225528996317513706968956880172025796604082454087996569501627024372407606479055173301661819334721189197779389523268227292186594179093713475193876231933887413409378644236332633024635925988123432543566941401371325322609088751993902312288175654257120382839164000026725367335151283817935360718438152803832613770657363685307777010186988588493956058181954604021341447726609674831899647103096035489568511246726876056643448094959299765950815092957298758322492496446246901719166124523027786773247303614834003633002310987176913635515514191965139338737696452601333064362746741618913579999806545770031190625349168762866695631704778651007480037736106845733509350996911038943925748089488599846754758375101047096835245217518188173789263769544906316412749945442073859265646072910259920513005906623608164325792711306588729246269432329071196005324872482203620993363685205648176959674868723849739836785729970967839124775111907643301983016081723105754702061473331859902824458485899206739689733740364877330105681770795520855603605037364131221536554779698024702488295204552998476074405884845636446040650389224460818156028165233356423408494771396934746007313936732732417776288906271092772007485839727420032503003599241941044070427660942076389399751551235489993397409886282140095644537883874053775715462583090271788768173738948801320553681268057276877390763014869774306796429637542093153844614929230117038798727499257776285102490446310120132572544206861328089147397810462332674400125862207384526572313951471637708972523755296667331375130152191242567729934304238818010555731083925962841415346452633598545956559164140481768763881393469050435614981965009883077540304441885433794052168370453422728167354738333905781030609116878671976703105846646282712550507312682611729269373988852397976500808413120522916126921501851044808839552422847230572241951736523355360493637740284908615509525110852995426862214531996833098021037450418370904852263902646077522120591837487028148611028539227248928712325078847125496702680495871365892007399616875278134183066631250280859139467742904450592314733767934304660942145237328707509278093778316703095889725401335580602982666206539111038896481387971166121645551051872175996938807435583885710561392280673147755533142855522441277287414850932658658078487750153806038111822257434058139295734416955531839746204272718957234119951517382692812151789358886796867324234568474460685355321302291378613946145566684262954192757818590593112646821347197687117602376296054704796847046225062291648274170617856322588306562390605058887248602171780172134279973597821263582874391549937549080910364097669427910054768466434093205739360555654127867343284594211144738298641248919805534809434566236618715080726155309794476911808644975890236557564994450701850001233633125573193200617043108194681997190391827182773634701824651529832071610020629447712634393563125299452305881406634689816127258314804412331394489780696264109965116727299369427603926037241063692296534211390545734154843709424932862349761091398057165169129640261650509008372875722997270559415840799145429120569885145086963326092068867734908768730514406458319022656212543157155601947163900695563377676323307233919162355685779457136250730869633298380302357062149888766064444897659794828728378075351812370667992144287736458393355368804865226620926190058483291969852425017767754455666865827502582091195811393174392948207625546230988494720712637327592411943431285694360482520676000141228786634891875703673805886710288705764073154733976967267369843288254088017835278481812308353325923774645000778798894436636721332711361355231977526230890059552073664381150948782527710280632398761879747733817330293404999697150800835496040265132117996911728064864720237771252633713983768239255849701860767571307893279609595790117467788582046170887982497196758863167963776385802059221575229075045531234846039490864819343901874064323756413521982242028379968504315601101023154471946928692210802403207385639164112460453235035049827895444742153275266899869543031953772511719397756644650568414316785934350182223791161221912107017925023591122115421342867650974188270046600207640199480322525181559812421598076659039953083748318979286266318631591579428824880665649297755586492983829909797350734325550984206072027071729488004954755672111937150927842005751004218810777523578478224134789932871166098811645245401727054612617449201528090962557903953835597989741567898991812227913316005438776219649182394715351828977434671574226389915147583820634239418282467571677310159185949126956116158487909119289977199237346426653383232919705533677260905154066401570160825648433815088294707896805042215419106732278240590763987496371373863438438760516330824416063722273508690245083026154217136160189326653346696181528274457881800112096509798049378036040068100468486286817946553410109562991129075903938447119392610207382145572768863170375262741562302834845739320258803983020162544324889466483516598679555587345019707549559207574416741506529909232836826676564490347229893255301809005066467377392200296040812100898941122146878531382683928733380199781565537320985726968099326601366549599212602823186166935655913936209267663519522872866776497584762665825511277479846185670042117420516158388104941216043247601016493722658170335056254142528505556842758415848569037806394771471025731539119926857362971945318339909020343031587896226045018009822161830381811077782432300348049836374576167845366685501474086166137176222955794776780773112899597378666017338721139332158034362722564349529429016749712874377352598534352971851932071540337100954349533182801388536138317801644933390199173466339532783230349337368895232890172435455301748052597343903515963030718413166471867292617380612488215351332847450261518242392740875798376003236890442051379953914318209272236716187126481288761922863086273216979816151593947505350525994834570575021819850476190851399433667876072892738334990943965893677028740482888949996341853814857374716741367698825357736550723804748345535771941138371790669187186808950730527891262097946273375440464041953873042220366368371048671072829971390170142805722871487147142034703307943838816411017487500833692780730980285804763560988294936508287060931682264688570652968940785438449436451412276773519874867527170722871096678363571034954735168186676439629399978453079180622294401660236860857702441816961461369563600349332694843822001106391952068859507142954447370566861851312422658098844532858170981958501791381383347564217970168230864736759912522588619758755715910118771550753260741551332129981182357400202101233851684534307155581384483877169770843522492685614963643383368960107569298989978168710618441480816455077921135159820146645999624210578345419121302972252000148422737015851187489640891165900635139693659890082499361655831683207054845001463625247705164167133000264619842043365251683025924751914183492209288764361015550780808317350533018654125798058817600612332563661332111673566035020503020455584928279859294882430661010559033593269293688011296908516540074040929116316159700891050951681591001794827156776000330167101631472987555869622601392075103999754898318483005722842471271948588733086634119954100743714913309574533705916360934055243878961077230385184716866695881014010079830780428222407989906540586304194300732019470854203094274556887894592189368210338952424704413334469991619980772219599144331286422742964247859940720190558570409797069500189855431625023116327906709191784677229189070202679630694315732026942926931934589792860764867389608677208452314592598322665662174884613047532134634009710976014446010679275113002131396187162629294192965845611605244263270523165766627874531790361158815119677499140773491084060152449385048105189998050492839049875675187434300399886065231296322663239282310482151292555751014735602645391484173590348774404105911288243403671471828403619792185702538788965310431068972181328130847745487238952513349612419245420343116618498329498680933674746494209378993222652431937322977608661473568192796755745836304498800016042379072759437679700013313076709033000006988116699168607267700189499079264243553702112827211820985984808516335799558832484794158886258321095794981674277962814035926730696161473778721859999189020246796520153683884240467335816848807958414708981470540783339170912069563761668545887325591523954941775202056680394231171931679631425956925370024357830162960766921995372820712783077764190817948495719817188349544304107458429107315739891850550627911306928871376804944135692062743837132208893435161292273155265618925694688646191857473572990875149429987210936034944867226434048566213954632183322436488396638079149918245662120247873817488274241528648926467532962686296113779061893742473947233897530452661967633862618781826013035828622099172450181498020248357298501452813735267723027193908963210584609778746868514338497637556789167016030138728791270968040923880193923738417851937549290400488451560309920765582838112444043550544665673116143023655366372993404605250607596486919446444935482837897428444665990094433663495132706659815147148669014148724816910640383228918649687685344426170082451923111158712981843356204078635359363119136463254653730442745710944811195047413797882487912908817513655045175641642687149237612982723209521683801214830842003535640181561932448473769059284370610478350152995096587256559575645452803541765913301455306635481655061993005942726132245354074460536869598557796416391516847913939160833016451857201722113010361980457759312849075341280935240692436805986515335701731247751476108859304216378065047964324890706269412662243062332642365801861283032753397604325036275476035391780296585962246831018184588019177062102470003411833170734364018763386837436966412957532972752208371760665688493889313476848040810613570072896157207209167801132893478724680163761105837190380338552489141282197108319329314670395522678416257444077829622965953746365108839486996222317935874749478696781918206637831683031434831902996652417348571317682723855222914565325919008577873487482661398797351863423680421379547719523620741413637716225013430197462993260471898201672494346472953402589151614908615574976191941431944005166080824275940938582330261855293894509322087636523009343268850273937420173907561820087438172563236835021814527444252851991105811047069098849290016195624644901071451878927381102160392080482153203389683364057028648216525391438474538913831636785094316375966562254531701436564790214621188299293415180173691504496385241150141639807333544568525795054769092646450412052088578300563470933433394226352542408418494350992815406520564250331902572089642533299098194009363084321435877459066567873863100688420462026716840681450982753817868029500350835741573003143979077355842786525922918377005227479161806698450911174601490444369841641957357715167469309277681256705462237995296599823822080096302817975034276152516923684336258217695783786232575438529349166888391801972151010658581307511174188346759522561983392164130209634113863737613230479174761241515960430494334567054787941722979424561502550619746646764960413014777431755019787171632999941955187480698250688360752517329915619893356285920285032791703264353472236861386716196239741504218152340675714571946462513299109791597135409142396486317246410141232911499061790365482187334512471578222222564429141156741987703806451155345994655891134424396148642710722952832630226428529822065220124851719641587633642005828417070752907101247724973497899643724342309946124695881052061020761303324606967649407700707357401949642550136112768097550471653054788991133119858215600054814259435041688566465777360557258228183026556844230819644417563397141032054262117922055925755431867908140862879098801963909945182415258083477232692098508445474580005482188473241469705427713349121491068640263491599895267274642376012601506018454669003069987395282620937269530055820450946370955185874784911525265833907354694498529617289101474821125136630095837710769293700820467929663962378625357166906097181370098858870347933812703032856232456742893831830371287083458711456397730117800849057217563757990757545109665808953445962920930758973149287884521624992946484587939388868423466513779297454911356694629267584754905570149930648854262037924749891458378589897787609029047267120267687958594412088039242201518659770854766143512972046262741183524775719248807353209920756132520310303340381087501924691725027607825093142526731408562881325896032538642878435561452766206027817481867825993844941500237187657150948488633653840340246379947404098484377846406104086738085560914123627960672210526672895316008748128838925244533390725306642144465525095181209741252196854232972229658673828024672163557084634813963019339449877006497789910837678370267488712103158396631988322222405303347866816452112272555777327798477639793800236453800091101335032500098655865306259751032927035557539392129178294555697469068646640006134776506980045177084431783927199302849730047954263917339764680484874741816242697186477396008556066513641248206081421226994289847476828840385556440048231207966900212946389569000949123592136880789300017502066144193006861531973194037715308876804884999297172602099057587398114485483371921064241028284059990448259060912882986252265313035262346914841571975501812122905678825853594976997549214221998701943446475299495256158599831503495283323076657379787212739167599502848795895388775781264897269992406580313541593929289972268537813813201475925301670874342805006189338433649967517487380697361647061135719966251144368481430200362076977686189548122338665934967523131488255492096629265419339468746814041051429686143025416541574283477842789337230070824507562381465951344196590041972668311304302748766469291616037298375091208570745245619755754370022517615011066841822982041487364570810131136291299376618239657773701772641104894101886701099131572141629205311088807463846096381216478850781215329549700505633689997282128973485534687152071958429492862313692291800623648483792018117604747965708891327366067129460547123565856411417869709401550922176752571155534923714675192587970884633997441354250492954885874577844504059546012616427657583336481788153958131554824035864682896188752509095865205383352701096669890363413671645852031428293468197399198058378228239437277894527272115533586665987680657060838708387297874549957684036025488900428994395200097647086451099894894009916116667554029079814564712810084534787190463109996855641912342638958720021917321144933461153172004972067864861038421005839685858399905184216518988551037360580386005975229058304461979479161375071874409794273466166515862626868049564803899987019809504104374274291706513620601841652416090040400399371641432958715905997503986958935130348991407109143150354234752011230173837927803777978309163011707440893425918889452605785741036602495344896163347654303157133336437586299884108835845018602746132044269961264732273342241891096686372712531879939266908234189525726017709427402885839240969478109678634470753578319554329059082616323848958824653178340828752240657159074295339396164835947716177964697205630046983585376225012812874802008312555256498563266043454667695188603434092491408214449722593061342744391476918688174269732592306042053497182168436981270704747046847353541931628512179983391611598496629194906936147896238977047198558496317340387351135516312111219512209445651065377840661554021756696912122609112494178159483874765858127680480827801936064557312730430386613037975033612668862158376304767446408253952430704000754182783656722666076831315091274825157257106054634760257753978675077407985741172973642424530047234745706758498183281178280108557701197248909804557932775750510897328058020571529772521133600504809006344106672011661423373139672876656940395827762332623316218711885051438888572369740143233177057232098703956654564185802095352129540432982972359399576808231757164950391505904508959258247087508827927006974614900623259805523061057551159801337648232360820758863240481263077391415517466446299389542231665441078052919550696466644347791373110405595595454778323299465457274516160307191574570568488043174460325168763973848927344951251430881294410662825753641560302858356858647700061787949393232538363499796051036069849614806631205449021368077991143433134578254778888047102526429284097940464957768098228439218533801830157762423727072532479136567179274196904581957413448032979187941272008609152534662752590109833016367328728964435385677394844736104183061987037163398702175951555160857727452094792184002432965804031666621285104551696423491736742090841842385413887104534171075186665927848791316568837160594182148943969013077016982465161632487588410683884681945278081470453455277291462595539685438500412558459093350873456078868820140018230904957044172449703039224770994046790491090700145842978248233951337844587406501336580671738417230119844036213323140914010824965935006438854912216084243048423607782541533318754608556736820176726862684331479038735455170981439612740936278417361677163039896360020074792718953105386176545225457237183061190428065909469785130349453212489220200429554564662081609323349698333669280423150220211025140132942833260986988271885562888128259951095281670243723444302205944407834246457445390660139931022107559467801157796985015582966109205288635815042975223435735638138700631604942565427040617026454545578093367616800626698147333100116263309192095802360353739769712232293808004012416780914212973341306722564942787907514992941282484925462709190410422127449364778223626669992418670309536013492197748924978617409199102955389269236618984430214452759546001424345412488993296700810814892971820007160826945102022912845418693487362730571899913920378391183207369912009859073468113964318255453800588913465527325337965860710992364374781979859041554020296892169400562385445276991247505154814324316622887798658871700544919737445704538864809682064590903720550507553289376254044037255688603394278898899788046137542905977380739844507253910170140902064274545545011169519230257111908911372037917667144913796318222281284425596399575602685741575363301170516146472421633738118808357330094097080995133374388909416812582943368854474656973865936057782471073499309132466845063388966959350386940078530043302842306574721057074637440377662781263123429782974825651193586109253256661685475636742276156811108150656076263491471117018847850699414377199324120682287060073983179304322144274242968563341548166147881292249889581446023659602701074245080992075080350689243626800728376842648511736675059262354987104674553458778444578716884281478185243477345898488160822395929544817745089420683971678970043885208758269958110775110918916406636301326344669694581172502763020703683919795922161611622661088509129676253944249220110364200984396708242371826627624387841462899360229632590442305046184789832376837954878130865338115036893300510516638891370491603715962629337496858421507898086860879380425981956878242383628992015085509889184800778294457641835883847375405457364213869849834949289730336013547706357909437331357532462957019063957351562791018456895945856539674218390411863174969157805101676009446824061254768124990914796921229505155813097633086022629866066069393372621305071603476543369034099261664735016664059100991599335979625998061075975796907725950570236095216443437385810119648898018221364330185309164614125453762187074762608531603916852160756198760216089426168157866465183744305090801912895176446593477663399418884025681316751133949805573046535019214375827523305222303796383316396348584671624082775514516984643071615208306614416632629675296392886510940844704703985918876718199956226417196950721899624869766417963845960748484144455437587353043629980284374731534093947759674554150311774095526799775347889033185470414503635999646283864091268388641817523367557728805985938635634002370631438001755915828390606845949208302030344407591963649275532394609652874485977238729980158034822792547596299828823300323938573021709978712601707801066801493975739849713116427803242084179031809584757981527311792548549994492461021560949769282539575458590014514220158706656130118892982089950338683069942127874879462506436687772073388681049270611019950655747898581527835967031602082516905808296089878411203752237790632624837092397669196183646812147417929645276716453217169603287185160453346832898134318854827051955224056003372985332301334813390633750238245472311999149552437582617051274319135796439353551723694259351326111987438998099532000332811723109578412378191782991930380498066660965072263767251439915303831213821481249015295233733554458992681624359525654814347017883245288514035564237816901664571785628939519626987774643395467479304887859573387576473289790493163419110736683240434560892929101429004027890563480174966893904178209984319590373552701781968330087488107490392473380776121717615289923081141190096485019151876300245464087705631015908446225059608431237851270808119022391256847763888272040138512818911222224588777236828542879610472732502908474517344417262423549846963046008742862230817438491898473500712871511666251087308099915005140064039554758262694971940131864807727994748461092873072753653509817342710900184778378537646675989040100618886959267104863067327711292867364526488307805077169279426102361640582906037927039708250878254577547716245577980786486179800901243613505718545844776733846338815282577866836977004403104633200477638408507290639690319129100952797794281036357357265924223780839178281665684406030832494798292603334171142798374782516520892469735331958814386773338069592328968750344598084763044781283791586182730483267713571641791335523275198358637448736824085151707036370290397074392158217616569624567387231796937783017371698965269191373782092342584465636308822072735259925635646064090617510003823695626216218327210337157095707659663021063610575667401560275327694477753422635082934080205788874548043819231642887270229165440604047314128303283417056607378358952500824529410050909157622654544605334103453314635773917915962824570942428943480480873748183378514339945753431019748158444321038569312992172756586689210628764309229042653059202417086070028761198148927241692781715865680160377873094502908861325239740560779524955766290369822408030174977096655655135443026507377154131308502992271737143183531504632018354272089279815955918265459500927841081594191160356835986759904594362343358500792601385159224635948706719799478105823664308252203635102940513148765522432312882875997680054236735126668909921693396104643293687239642702482369354710220620608423614822036654170171064385257148306288433156071883893400820377327193084294029986089938725356855919254301286345827029787370824531237576380179559235653949052142100995959011294791825279532591018135375860659568424947447797937691247211949190161410661234344175206205919834781508231449277061888658332903827447829236332805050815499955310860210711018200630731699602700406350855864467478428059331866794638414610977342377483236007646527364953005644491170427212162566104215673626383913827711373548608762062989257729538994177024640324827924085019529319546811192626080248325234471210867190995544436882547305967399882676354477533635530155359981415221809858835478481828445885769388553438705681448757997544233668102774273330362022685941619355717534661368761142903183978938437467919828479184282014162299868574020956679945543070206599564426514709028047675615743608841065549203245108646189168360052300618315463801009729937371881361885471694247557044927032430851513709633436558641453474021746039915209304110577435941349683053974584658284601436855618210909567545547941569678252802773150552913162107861390283560449124050971146916124635951050374858123947282624036612069383806819901201475302824096123810048619402170400822313526711581715849305716539457668833287028682864523437095059716454464785872626190605924066369784051322549084842768914134673471962742438283647676213612698629011913531509363487434467907133109112654912967856067994472589929076945352705994485012460708970743624441470651817669908561745797802699487277785229531600972625792586472566580429800535909223263893907925321689998982107643188675036690393742815790826324100660662481833273464328590951602439554349375661556543678279715139763029532999404292623631773462205538792926144466567988166139455571013480543113878705957238560049700848897891508803612210079902046695829522727805047974300394262751189188805790414317268765153936749733083279214658494298924803884768217227398088451594460585168644911643179549220754875867576280669530806851145372947360359772994759063566485808156872004267336136583298211725984429311323896872645066084260207596655153424183207845404800956758872802130943292113048223635084545955060869317471081412015694401817956669007536429033257422265427610263930998221405033719689214820570332354316312073487380120148383125708199947344918011350648380690045131768773980312355827651056301121853692410953247080643917625108348608518363567874228850458982259333447678067060482904300986084341833763878442956027419338436616078538874017475755792411092857124625444893963829890829380438713869497154259825064027811801799814704760033613216607843071720760190719617177729638812550183527699288006409385238155092223785769692835432167151368365837537593612332911824327017965809851499539592144940786011096543203738656020341491668313038725213080824361593725380213940963103742924169498601078849629263896590415245851733479940131664032846442768737304240061831071268367892556966573686407035056409596715067663892298490245984170673799719241494468647605225573963443713550166808125750739113868923571437512179936250902846320690809278833395131629255617441005584938599775078950575639926310201843877384499608146896051615383927411081319950930826014072948383750917466717670194556916893649768449572415771646568251111417711364134191735497283488021966484125592058223994310370042534593268261076961143928672609686546122637985255465507155193999491633519695913553492594345356837741170384328671050754830220255171956563903656156911965507231899651327523191975290760745835459623617124413872469143707058955343596064775052203552600261612542292963361660188817055102456724935542758088740669369993789991619573885230685879915840871248061989807590745546072953850016701526488225578486325846366289230369583618880748744664935799704866232311806170819560505578240493112781485636996418102538701211613838968364083115314918318361727157884807948694582638900107345999895081685447210768826444580105735019113668654304322527947915228966183344292265088516144251746709954747142025492816225281316767314283648652002270777537921012235114447962089646093530239953592907607149676102219185764171532111724326454151760070170354630059134080077137643721912686046638039379984523125698937774845766201203630281725778357846087092760403654425733045241441449299278846509879826914884756480907112572310815853190953839404319919371308514065804720679174374298161925858320660679661686759482629725126160716006845177859650156465907649129743821311247401055915833451159138777041299562593760139834893023073302079399919417067536142959668132684484480508898877007557712483438450520022940359241970689618729230594276156807597561305420058513203816432601089733236251409099335860907656360282509114618353118348636408352170597296488776152659925385931899113058261220955184335308869522129416033496360486263755236909160331572188636779940363214857963793269504066252270556443138837000405713294019664986037458645749501214611077561938365802703655479611624495159111510230978040723459987026102654514465112911652734657606190230094558862620203306706492862515754610760641418519110407965928796530653706493349346728219520742947803698188063485753830482343607370505366382421276872966952136636309840961502952826054189754730824377946879882040683486712248427775080122762071814562984601575512961241557127163037214490969573486459700159378438663282709506937949161414318703995093257587599563751014716790748708711678654333898084108116213125312446765347853872760378517587987306911411735844034303948940844031478814614247646085032619729953313278920974208669462482393592230072913742189938124704297896687263242796082593522959836745209481160954376579233598215673632052796640049726504202456838592976048534906517021496195598258306539864138164546560240182979075933529064328052236372948498425394271072010121315912019427696566113450885846997535736617098254856244318463309355507386881378384578341034496637065849035770865538242618365898769952792932712461913690555540642305320639460757575683883526053193059632358044645404147204620234729321400160490208154171185430955859522734363424415101786202511958317646034996937050371707726875632771410542021175458824555151402495415119272239943296189533845954487142796321701984345479584491425647517571673408081764801344875924205150358662971222958855959925885911849491551793911174160387801580817668684453062227026466236061997442877766593665376920727566075378362557268098445225693256620749924165289287229879448899877352011848642059688191795273965870566286354143167974398637567559184420727706366024168836632787183793276099758658153568772138126191778439569379900956882770293490700945238539025056671218868161793591853263105144861403180861776358213786710164877181378477762758220348220717142874839082528987317354712898806820870801993600654121795136659347611336338944492033342242567448602827272025678722083073721916484917363506028916434906015706071452057942662068009660597949860595901876919617927611364186079164019061986006517245210705618482928595419099226408482004410770554722662509933257461765317163484527564377758038798066226437868197400381448788464835498830419284518191720578872366123761721088644184884265002918473455957855097581011152320413129862152475049355098785317130830203907875409845299636842915554726415925704360906491148960169038503958318851704473962017711795714810312634459563171418568635023914157025642079723035086780619355164532298197520587771395191315703412467898041391926403236440933939071330144806224583429417015192755590319000573590252940295513551571073314294133966404861465368793881382497482165950461567988855380036771105731028023570361964400776100583913553153828803418842773555837701901248212815313656732924337973285896074486684845666853268753134203216441557684641922555102951383469293335169991355292767823027067890471635870203650785644342657843581427712152233265650537758854204790740012358902730665560640979249571803501358647041461860866412577488207814674524192315709855755527621098090043293489195648138922510867146262557527416776406617482776073456039492141629415566673283497341399626884082156698011232145500599885831371725179239832409415205111521023132447135150751402779518803567039699135481276034779515843131255459917850021274699373874592827388081034635080146160144211648418458770612858358884017081437665281801950968694973095653788108349960155554351672215171604689208715084113199483902920471960330251716126195883485649021530565848797214447535422169601265355318392114101773113913032722991146268292351726281457116154530499117381276069343550171166086598630941178148848776244516134894039544741568689430807635621585417441258132534310662669686932284319594435565617529652850246744956951438711360318581574480285519287645046435064393317300993411256649186717526516579188870969294872249480492343711842715861358031915641166488992833662008502211035386920298672529597365501268119023336404993993354623363267251773021969394941069613531463660521167165702727427610943658525339771364956118016778424956729103991302553446997106741379220112660658944648736573958618828480722004751299491570454089086305301480182788850154652530289317987788328590044132147732521144160176805933983286184896995816288718778066381333198519043384937261219581861192427260298337224334706071307081286839971332178988847767974880723048830382084397570823874413247142038539508884932201100797619185028981790778328904651660167954448080614931582717381510649187900855388226179932389936824303303824580754694012339710669407804987477130970507547026143676726324618642805957346312052325017641494967149729580964150460699080284963661458000587437856907559041956551210466278320932556808964109248005669163958160008131708343056880117813810426762934883618262521975835428804789914813016701425949039052703494805295008966939906189525093655330214363544579923247287272959041349330555136261691505037025810876567670121895645640387627250877112943229091512933591081997310053001092942956813479874376801023763307499983617929541561923584746917522739234266614139743095535499411833418954695229103813591603710810789747363684818615094858121962852858075590400039503645657514193002010904162903325879397979834947700574212055438777765896824633352147134805377679741684710866446827973816415510889696358609514597234295135616966170784809325777729341407916802811679998767757103394035755625524585671364435203667620328041359592726244926032719250767445469193333348785614484588873998260032060098024159104969954133106843631736377848542955833071701873436848955905117142155048689127043306260642204093705150693780286984654727974065883847155501510832790373529003885836214699058566935395739626426450432788313069795283057938295637027479345631710071373748710510925161879665203618151625384711562832627076360132677100932216419560972854039595513640146800474403070877331942632962012773383553877360417674531236072302379559028835343215156047158570980544742821360722028843947823569182593995034169087827141642867139098295016476287204165557085384080421866674326188941639280890555472125128509479127473705272129134756352483880575580412174947795695441720724737221919115545671070590958759799788777956570161322336850370368313565443418641509764658149396802827900686119690863158893403193910077019971051997830362056837920919640034647522744823730927348578098885915919263162162948394705548098620772707887858586753953919570004942582856986922890844873715267313137513646406504776240587383524931209981629769143643295819883532693882078263725368025367904734353131618871319028794088697533954936225861822282310254825978446010627279051839094065355743425585525556546477246820964580361793552540363672900376021357940591008428996773718567265112894320791501144313426207411185599460777964386671094195523251586870241917914457658468465801270461217797922396799425444871725033712514235694118674439996293013795584605908937468471853416562922473999781020248880540793455963322377413656743102425013850076399485169062070895905862227870357778403307044301593290156371893285397985317461446798773779872480749601248521687014069603627474189968647003197038534310732496957877675925124937181559463002106197117715984893877179605084541924791624351255212731986304308110915401747699358095591693573305480074064224488801752313385650677105023176298333150513675884735820661076619343236485445181818437634722541959277378463949516309602177990895330067594533719437758724506876348656763044913624243830907214046882201971603558657373610746861845894661620060505938129709011345445588823676726223663919781301588140222558948171836609551158232640901877518460220084580109142309545783648533711539144238572456213029109524599402717722816637967976268824589785525334351489861464340576873899124764463764625247831989575993562944287454704075635272886586801411271729891607373541931804379239484101071416814123842336958436451732361822007620817078837988346621116060906212790834922454038362819130863054493035329749091964779510739016206657212900489356703281018534033611569903408905348397397627875981789928888502574874334826472905710586420630129164090250851373699344208271923732833103512929159639736227181741061038788093632507725271084379624364769943935645324007751353503282664121063629448023050700870590752367675722741264509732931091673597665880253366325239245304516289356489791170737119007165663833891238548201062627229807243688043945822391306411652655400936856871194596467508117482262630965521302575415587591386298715665451985274538235048510013824330934208178640939736901735205799094063010231390317387432927312639590742163141508323577582995111593687183155442523602070291760802662046389391426925846018486069808622827052289386167195300279759007301967272014503897043951249633118156658917929092864428670071604100119092049884582932303897213945655806514440566688725344234375997915817641278518595819796468537323116987203459735429417338701573002870770974529751275489011061086669605459557465011162436775624330898917271438667265129842828726134411186107872453399355920462758438484790506230651524183953686886839390385853140851161543275600305986861996873658381522538276949411301148127127461566354637407438490898693608693616478298158499912866381893212565966454240996898186404925758557549599206901903605896411360179055512999426044639489012503297496241194218946353270121571868759503249571663497780760642533489197756987353434350021291707007739717110559015329554483922500134076643220329694067628608889187823104270540390770941654394176753592169949857672941507627038574578273507658197462957811660967214109215909059150810909071009158599543887030891453245588761899470725592051385453795968353884666310779475816681855812777463700200906786651705448786333350821353677673944318740161979760062967001519226642204344531131222856071569986237164924462917810564585683985292224589623506351718668493770503802138100129316367211754607087252677153054689103307281768054165291355347890331491698326466127197806533236808500864168337227572182541454490560882826175517637020038727985758863143174175621452533957221031168600368356883587242476973146831197887547265611395720583660680390917245596346682603044922791374841411498100883732889845350257539995111191002627089905046516878853723242876085525791712419049669112427647969884496962741073167554097999644872261229446803619041428099324224923079746531032081034205700032322713594592234498145021365463387624094991894788550628234081819116069860103293459251701322637209895249593535223897060912577199775948561853257927278859077607170557140023017594977740916257664079093226792795399697256080866287958679378875878301564085143304864959978931427303706290470053479525155739619425171038747359282822812229566882646650153442812817540488772842461835502071540753259323278826095046211020171933013715894451979211935734537508253789712574590764968088983860504946166118948428585470247027621219189728169257997689108926662793943968493465340240909102055286728373399152225327667101286401324033872922473591806805345506949527239568394407107275881871951680079919137937712651635171640052922084515252474547526950512999083301710006834005784523556686891738008336616786183387530351021308684467570321928835932950905971011921999385258894020405782257644189634598865552428699825151038330839633759011457932887590344149146991157096135418069822359299758848303560003933403522251746566067804252679893363260331400058974728086581995674716466511783175480685493181877235751832017474977140460017602995861835120123191294356155959902621274703144121446850891862280673217157069228146849740236973070257783843733055353604540085243466546280084347986027077294517291082957452797458590863164966478475873521068803426278262153913614374100619738726364770377844963372550984361447744426258207171461855886126501340239586544150065475896865364545941842665620764860227951844803848407805127288863378947376446045365864013504482895884080393665270350634201718476767306138145220979558000998892808170678220103579450427985459287948122252702922148132843634975297388629100514691032521649533174630763541882468973949836423165709754156886017531590850493714169987212717206430839120886870587757131861256999371544297155344420264366298938926705327220176329146304402855201527947673056280199490538266187136844802801668786475159147499484531197843885312617483754892533833780200371187274007505420830764405260722516894889498604121481471274062210892173655712848819989936270375775323206036664142826475296028143783110753061160347242786812161419591981507935648426139264560794586250750391349762590442662680843639350250968842772316405200059976418238795073543044217223366357163876445351672651899201593046956504081567551856665005530386247915828736032288978442239489698276415108789548641284477286193802866939330039649793263105355158105898567355163557339413570498991211289438772716816813067071154741580996776468404691273142544205011148916772587077427371672083773343910877204840476905569382752170703957929582874794162539097472685030043069933017728075046076138628312753610852265039180826797454052477335323264770103021112447456195954500686254067104967549695796495178584719492350028136067887616784544420559664734205194927146841982043435023645747274448851361027478111045995456511192696524283198566745167453588721274576646429573282396871546127555101093574832382002457153587451753939006091742063851127621542020928784275537315786892982620209546183815320588722540798683918788732310520183234856579394205167412889538275441206549575361390935435588906994345853007121430219165384707589722456365479698215009970552556918927249237034809734156732687055661895938391515565525480935424891510154406640619527289803350470220500087878582582700254035083631608701312210627135021690604153547866460949547204802515400687971068688240163865792364310456087781305027777621303727723345054221345538704169853047710247036633965020042962421181930613725239867427512827947262090615931684785455341938115900341125510200437248374194106683559294510769955784529622789216890192997541361598783964974426490971396592306850469560325081372933454046840863729709311303966588483607985766773524893127760333221734993389042029293539371711267067850284640767023045895704264151315233805080425850146699526357273129678981141998531087491923867176644427712274872369860130856663259438168000200507514389796452906627408222203819427794458713775250710716511731286017603087192266135412242878328298486366762533723458423913244682107414114366517690275966851148555593722061218775209554495614548314885395315938905878504669613116514342164977142610456756671984467583891477572150602604794261872819429290713609095334162454122313922551109497232581054258449178948741886109162867545064338324696186008300055510368650916798028113860359709409466661271517560315879189563097861124790808104450507722256110573402851567448194563779303597251894419242141713048344416682025233445841886298152045138369140828814547076553317984522489838176840606871230463016166839564247579219871570883165192903379809529371936471325322325769986056838593124771536308995000671730921627698521513653382962924189153832654457761842175867180861921797029208700876123200510447160409030416426594283202951651108945705316130723838511341362989146749166805511516560324613569820256091263368284214037961913272019429330763071517417938179814037901397763623765571056422661093305860640529400741076266419308122435753742822741182863465637268679009063489159879010023028141658003918147060632456522873519174856213100599993771475627322334380904389167281791637900379563966085751028955703571306345298784357106848098121239012906233572633492267587770633765075228774821530385483775865072614276179447487968383591694301212730543013895691831650217943285547272257452187696781470550812170457707986890913374171571465742598746701465301925174633947233720789316490844015058469860841412142047318525064311987767950690815431732766322054803887183576197042101226931929499309783736296132202892155491668562977039968794893179897978983205907493245707003503591447593675262918173303554832870670021072937683251000429081186471472388670412348041428025984380936760072009236897943132056131187564038658780938955997056597129559641214003224669803926103925360348081895552370132512685765217527463082303860858460129403645618734722693564550399676740023812504431896845728427468625418152162927348043039330305138033383253655979889225679811586607679193626917272324995970645938220053795096187405950414766428935769416765296147500027489067318957110045015742583514259697428214411344985421513738015599181367639256861875585312909503181462431692988621840005215399974687388472773805056525950805675895411705515522450467650143142590248945200069481312187975224181445847348450149412063330752855866089302792107218316830652050178553209910049716964148078656633283892236749751909452669219337745074101296517043328519078429901013467420146074380104701462761672358118886241254068946223286059384507208366891986969197739423332890507587603620583160400595881773483418737337094083110054131996818490634284755090454701459472177872906458478174818791197457704616009999238321880853791385262417067738271337586941635464309812272411718129391565220521205963002752175203556535926077798906128637532832111448032030903690849932769355732341398634922547629672270384004927608017405608332983216927426578618832964037101783861850931649240367727663705141607806855296315465787716835087315586251932558840566501962230419821248046838015092807401639450220875434898260487104514908964629501506997818363981278047069628324249277949968831706329291753348139319995128294982941240546928022210379718322027162131172926859855175725589507873325487448693518507421802312901315619273458058948853670966596807601072327923203032197515833599567510733381518774989848134706878845992560030439617956331981444485522953705109101606179782208119806184531134699120582003520717789824240951340857483237935574416742156110608235520079491718271848563487787153473404889162324551418367164568831454441438325385556655335483910987044970226707336149698745731128799355755803627358011967188322792138454941034759932967249293150009191697919726861765910511278175032309959574960042290364099259140110227517930469631120142876399677707768289211234085588771952117715550709690346795003034299577500273552399181847458579563657048644873985727154700895809010310153915817048445374457362675728451273004999850290471029800942441929485402324050524333747709083341464650015708127940716647476472711765689335153691316658466233480613264464642857574446329083182826460302077345116433962809329818890062182928396204203370919034428240905392565730477494946144081673248277247555489901501787719255347338824754384794277742871134332304193004559564344400417769468470616511519825973216501498558183954496842731235684074281660397239787189536286928002884991782459153025475995908028041351212542169830083923053023752900329111149874562757083847160707596265013178300104523735333248937248489942339396680647091239683382527074447644057972742843694973955692064908610506085822405204096837321289312244559827025063200167664053118861232198351536994691261480145944441989341277754196479304481247793350645633704617544116878687530489360634177046837166162312970830289195925320103120504869734299703472089132166896008967154777156970702192578384815278998136855937344126444479174322593584067086743267562673154480127747312172308896058944135899971431430355321062261907944017276888024483520143129867862037726777192824573366960263965520093512994880707446071408202381003553719189640880373178501711329541272883184019466350718713276149682308331180938083043291651332873318402498475247077718112310305590103477484247593634760282997301810828482634431438918109353976726053163165393974158792092049150562162620118899546619847867135457430318113282523494874582119251298737218240859385839729852997566139079177217089601383851093715011260255015721361354580357511073410497620379398935923250947089096719386297786862535213834678449032212055494695827288642661024272697195873215112392558754983666709094380595627098265289770485728112353611417732661967629033940239792759904028127708760140217754048225645778799437537021740835956904070168025813280805003475654396698030910567708831369608043341942189283872670751820837340953812387819526636589089284577395438567226473148781990955590636774793699931769017737714758595929646596924847756273983330781298089764749344925275601751397259626844842134839054624385860528916070194755434157027205684181170287139881260083784919795497595135804776636656393232998751747320015097671160459711464916884673531731995306728737354964298516125672486897372238922382895448801845455361764862715012754738388572228786453515685528891020339727572495355671106078218282809461019874326155386863303956371658567127467036634412760525075228959581268764527576713283204015299054872431139332522121855910667094484304613151976772462463233309335869807770852450100725454292478594410277703042058590351042703088243520654635753426767235765707873827017661579402034857623735282487214140584276233640320108175749833247423273255479096483359599973110472258323556697552718864930723700061175332040593673451291358373722960866704137211068542207255313043912080630418269734546771382312464313047031372704996262052012626686686383526582654093501095019996837591855136910530418699947905913048738441647398868791133192372569895601727528409056137473091306210067000090019346417950674529191289884134532595734426671117436226085589241969165716358626112390061670630230302866930514584972636395498578594125921808285331206690099063737462683226383281331393781512220472952454797909037968037963559761732305181256766089269943056007762896882048477645941128808470419604638661101014148756173756596080440760952905517257966853246319566947605908446528231895857226759034978041505404887094931649688596142070417730352273073781957993110654124010867233498045530255900868256953954431024954349077223853600856017276364746264188935692114524671860967978958007426462614862596223872812350050668760047375704850362577897293861530348926850828278838528406738022051884796119527020175479278346433671662426723897781229663578539780875115186794055424812795215898030874433763209897232079966778459570619582738666608503272303855595444706535114266718333350356647764327189427317381189287830482171975657879362510764190505275072277048144936972882648325343059480655016321470874277609851978660066124975991763924200816342852168899235966320064353527958870097872615516036626382472791176355831407125449554283665470562028868158755686488636772962534919839704232066504862014465471345516920168264748358387246390113657267910271556966715772432247703234300151428283904994937699758794655887122339976963524316657105504782292656341729465307930146035173983608074917487077896383611588209687867720681074238121703269304233205988610017632463163059481126616185240496987576994358757746762385879971848720926404983781508153582908378703959634668831564668255078603722253045931657066063063490330398231477750369350285343116327799717043295644517856404509324465344367759301272671206613308048839238082322669734121573034341346592997257818177725033037578812643597048785850323673838657470045699536717441427407936878837014700723691291061522074831408146694158342347960730342260857669450661704058393546646481963942875034059874381191986194659211008229257885872158331748227896643214071752529750548753059132705009030206964499937839816225973596989705093993383952775549813757012415362230346869737979929547059259216813015855070003977644248732547770972583005031412587735550758926051901300208494775151616964952562068222299620912591167812511282590138980087441919914768180426467755447555557247976178456431933062053904932456530693494755379381212512740822402643523015779131401767257140017809190359850814919706994037712490854845718104830368628547923505563999734203430250530269890088655419927109904655084079564236294646056089686087177425774923986448441538589790204293707735143818011644724831612502091531150991622497660775890283971017932972669179906964949602520683806066812540904936312607484285451840332573030608074202035631538041659056870823610749486434930741118941237156681932836404019549850845863165064321850096012034914618994941567330298125726586952467511744625549867841940022278114451158571208044612231755544361425212504493646810216251110546307080655643119425367764004803401190429665740446613196494814735414815981591609018492091549575123423791798800919117396721630064519097148661722745900243878767808763812134996050099028349378525582670915378745866738475980144364433119169200599501426147754124033424456354418703547048733374805571344736520244828864319425899203128682992893529121884824519266359450285012169561916883843230103043182363455461716602315540642662870838984189468258677884341501068804519604999858886172445943116768648219582059733918774942169398323327834704252229075580961529785924763681036000690913406212951471243619975199600292068701782494343711998577164144840839949794391731998950371098382110167129380467121482644118392672441145211883299398855222181630484148385187863460678905170709505156610039914600516622260127291030695576058550082370781042957422775399777755009139774164777129847378632719111365344464439111503276814849870725879251564993069052278666705029548151397697991479822493374641678594846240550988547486803843133637618549024109237454077993618050955065818578359587953547611152468619884351572576932588014746838327593654868557132777859112853421111986305916908563240860468597834533906642045050882593591750791879104869296424056245460015073274846395361536252821168599522059737727709551014592632759427747170405055296138259378163707360803836864248573798843480552179090119572147614058041212451343873283072184412007539033320561260095993713789464927362460761859723476064204038286780073862781656688865784607864975545779597223564958388825589009859874405549694825541926603903989973711591884987522161901452224892760162013989904183449212681221255650110577041429651917136543077727723735193988186166534053219527200780617558334874802351714969026354570710238465861750924776094635785459119671271404040627256858213831651019096679277695043965040551273340489516940859780288167013291135328166607309900157203061760639218408191674909398546537412980828848967323085802710686043635222651164808301719398741903022128824039504413445054292813964746808115124018032369297489845478552405089556484401315455887170012395402856905294184403432251581312377912181604982208816948168846632317505257428920367835713637032374108026292593089500486666394169136534533637931367885760508486832995838327118741799360041538429768524249482200245153179873621386344775889983647900746736491517677830796816841956606359948082158744676659243681357170456144422787065064643635327489379913376242691726656746891908640558644840390851691230384628171894719615257411258683092328269209217899136155590497617174872925912828477675877994920720794387298312381371451046270284065570349006585508900681050402581532807413407311954972701180342002561254550256967905821809320122013318193940668179403467748047232897714348194394935073842539951420355247859643911764546142438450743109720574708514043008764808739378911961600712480539452070432900577492264928927784302554792467637665224641035417830092552352272116650289466203259691136894350567383581560176922598213740526922237530199158230639295961535683075797033985559075958223833301459358717679206313602551654048388769684182586666160759777495278915381883899827149608104915870397002030615514218950797173295059350584629080974120116831901853772620166739401776468839670983646149504993344818035769709264823683521531484261795503149702187500622815910802840068703462918943351296830272949840938977242065121626279092464743434838099352953702006487926269988216400728451020485116403493740336556359632778718911690555555523958418625811378124603223756083147454123774626501679489669483853298731955155902349637438025736693041204995557011680097992557647762107312559589775678960356014375529562836439311460282596857364322644209406796552965258991137020300784505574391122961837888970499920374517067109652852499601511202936348965280599215870553878286034403470431135286085091970014473342726086653861609969370085891692910311496957464941926377603501860930465686696356838981856502240551411647302214275216730090948378620913868479307750685265837254148370861349268930159322355487968854014822756589369556114096947944771148841203938153659033231909561408206792072878977037863497507777709884390295230189819209473379923766480715405601393405693911656796641771737453398322556913978415252667629515955747477897533299433492654198867373897207421299587320965426079976891272629650153745842561376118387204134189553407947117797519514042413320928112959349245344990434197701166676917915172184266998922122671527726718724978870886505584320039620633466587317539326924780880934984332587114189271443382297236331656095167586221693722132259719899988424140392691794149402504669173158780403681674046947398226108564527305236733880507814657650362026246751768755351490457819193457144892522265721809311760255894124056198048223489488244204762137270559771469437483009396278365103684596951927793363144373820052032335844202494302051330649021678919702158261487226068688341788278002984319959899565356986867086321266872739902997610636028036690180125278643606316316428821657793989209708224738142695785982130218719088637359154167809682828585685045550703475027683256796373147161606239813657061007213276404969785088900859996862666703263823005986825823251422219014106901075489016916723176864225773116888984333965903065408566541185769312580404502808624389226761701584685081353569008915292327127078426931169252545743657256971620400475232260320659070725750349935357286061257316153751479421345108473439521849737329069192386796348150140315886862635885809151737137557749602330796203184351790590107299741647140145448850404601750563943592235152993359443044272124657798101534983610707131528171800677312605991438470980857036170913229042260960639165506833693680382036807176731534570241443497035370000537495945306425993578045875550672439928902594474232151966248540996086780839169939716511265779604285753209039012562509339053020861742785911475151133656719277039994925950836565694211174143578274649708319325527813454586416764365877606476961730366080233555346091625967009654278320987197170821488049098412306341834719592365102871487232682345371898894105367841775661771778969035892204223546189877424173487190533192772106405999881271559701309319416391213891927097042328095874814704267328765297673425329758342637695149504472464933048534410556145686090761685244185332845792710812418024530583320623847961715978761403809563524996789974097909544367657515074080260605939569981919632804857024680445703373169774059222547090721425192098954292628646788647128717163001596939551436464746063151758182504608779916473677507906329960415241931558111397846376320889651788707394632204479175927864282766496212564087640835328537471552399158269625716730531488361679703092992949849501452502234455605512856682265070881725778685709901596354470935721201374283773402750245071515750182325768518549264953603706253803920537038206756414777866833138196285763558261977653732593283010000969395375532563386343671066239052187234653712886142876337358204071342787016770266922757774732489104382165563436878403769273897673227456827121865147412075243182614529074978935765283950650110078571224348717853395377009977880553591314780911142820805287623320147708985787571997637970024887024870447403565829523864238220049693541892123716768981987402102301547159315550378125124961069775260805993277963076610815177899436569056441167128468273955959499670435961539893856773744676252499571444752655991462101343383591030106608348302482248113546150400354942969564379642793475039432505849686030910449822227182236201083167578637092810356013874409282854453379219152237468475989247687468153120802241041963635312184828200496565488638690253746177844332307075054068427478732406112547919950887290561196730697660072942448129691479383415008053204833655060198769465295422921293310997610296435430293119802287273914324728949702504866218587186832748493949490125992721963999242154280161017920038604673428913554364109435324288477920105573142722625951226918592432924664314160664779441016653418313443244238896087443830273180572723290491908197938605045302096450033255694945712044610254449240244127374184958555581575423663470061467337892862639807245994950776999286516335917534510802427091603387317837307349239097291621355670893631620087624259140872724418599344861295115156033586371733739910349734052857583761543005757131177544761713417579872899134468031609778155061834136065427913200930900768699157379765810060957155637719039169676730647202663460387596606511226383014224772681996490284263100136953386407686989462220991496552513814724705897161135247087073670673089073348514367932003455697167487059600753015941681353999506439781017846027377015266641844072393708358322584505623158700704040635215837377463397707109225762597184680902448446933651564727234780310469541872019651642404720095597624162710511555987515963734296555307645515986158451823238379582164949662675370124465624111852861262236941415386335273812427827493475647826622578697603208992152296935229818001264950787761742684573389069257112021982185113902376484063551626065205003738275211205639329210238686728422888942995389797140635289294102181465550498088708210991981050201638166042121232970377325360628042883995608754920739633886187378996499912954606996717558314194553341167647649946490226291078060312172573062631570578619080164698252988193775549542147176048848072455052756256760199343860738299802545373404719476620355586908721891401377243157390667551109292447282070870024509099767335973622315222907121842117708469221433243245830546664521998858934471680908148272170881022547603034871671937090164953233769753516713034414335255330108618561148652854663278415896986194416716844964010754915229220335909215718350615108497305266222717355039811412950354018152906415202471031981117840101398056639295278291301208015777649135990864145058990723666958637215689423545530999702364038467919693321031581057143348569225232576851653128918657350958101690614050350284160435793718479382108873725655892820870147832402931578915791633308599967409496815567027432957101928424626094587438584804386263439989685573935637909048195825475348764985993927205625557485556194656777342561575669715582184950441163048872972837693598018775331386620327802836159951717719922376965512053136516343256332985322015513883910196468935026586708275717569573406677447333269260507066620487858152919721591966638196345474937937866799661775281000863844576387630188588405511962780131429551516519567512494413079421479942871329485017096089443191810397156396815510555497349986243492679733067874619192579519148558069031706518988680481261803890447939140147825073381550537708688152447087748137989881096343027312200033060734706514245809903525848341389345419399049649398965654520713856660765993618668376108577653934041697121104686294568540897591294787415859973249207657554032528080252797381746181610388683317812400993531884043698255986106909733531331441087182960424195763066352671378655166013934785951756749719051440000231927340802799440444074549051019741061978179158993763194767469918643410793873520653215607361340521178736483757845909796671567366655698641982723614274614635825505635060658055932966482111033197447483391332020696140307995776125412262488504805141573048905765933763950369047831351103914965103059458462762631949991396721184290548325979658189401804213766238589133785028184217235813917757853919271717075018290658662383372208467419502564546488176894639468843529278498479749369340765046942929157787166568826780559993071615078511300818775566670582538106988238211717548417274963727565467839351539563036520888077781509132876180777983469474339623899870995630614437641786153116138720833486884948666686214138870447170983815195891584394649469217046060147034609357457512836482532051023318421643822377292925337097664445230512469544509264821970568937231312925352803330316437148101902022952898923158480259331857101980526376544815140945578440972065147592814768385277803331618908070938955488107667993087521859006971726279751356063093300787310573907058917596187185958206424524649839347748016454202374498378054879767406547975249526220937725866267601735823173812358700885853357545001315127078391038148162554788467834351831637146105207196994726211911128327636415944727634042610364494614993014492768363069480078789210594000626269794958072025949587533439170240620609345271755027382687839848567909717596293897985668406757599791985838896281058018042627017548923140507106120751062053076701749773095528643939039250105085330223653601792882262732728560915370263653444238847417894939448900817471182457210789577336093122052386174837253886535937506809178926756118953520013998809713037466087825819500253151443669010465223604866757760111828905982720877618605988715321574847339654386193302171055504654126356949220952771017445308037186688183022993952027594760750436187000221156021903931354808065798403126769097558748395098601865333730472790538290779040863032036632943084413609967062959451699502011226208307838085488590420888810171681615121849779993284680837873682803033623389509040118796634630576116530322194072095289642993329141199424062100337489628228147977066683247811949608523071790876194247915848633531201107890905856495415467842911616204979598108118131927626306156858294525129732114066338509393614093841590504843386294385324088940407565820912085467057674618629153459172881707706808773094302227895288506327412691996216658791312326147024921060866361897178050079897064812379271345255961512391813083511423728199591889649907731120910102116519779025884977868456596554892520350326776856310632044881166617730170282664918891406672536637239891126559130288007514861311903543009887245390232824406066135011876701357660721957874900011541265364323223674046029576119356224707316975825187496909732450942625287692251137351295280802572303539773284869126727906512042154774616878840800543809864415545760261113366273139175339639702300162600067419489437003637657149488013570140736206180318414790950029300652942006633402330512500782157404410624188392567463513908656765710805826421652757906022865981021108156840029469455533324946127926608728710966448690019939955795753679303806192825627531312768045657809497218739295609862424868336782342989109023054058604320039747454699674785005186667996622040099772407859548758263352868926056059663512049327393498397738651704463127005176252648743611961900561939539816475974119402199836374450090489928416411166739321015273247390862495023413332758431935652760432683797203882067665493073148481389778295851998696340773960951803071154218693809669157376727716616801273367135202158872917066613227753441268542859258810012929127427468753464127321239307931213091960280632573600644292714797750430535369818032111557215976541990006716292878429757926281982732141340145170848679671355679165823174681047413038871615671587875040879323358429735850539767118077422586884715396268590428549984552358900683315228500945744885832132489688347508812744500819182181108917837817917236470937765652607763117131932539832141209366374316100580974442569153325997098430549349881779830344175714737911394876578956134915483424054173618741928198690576921145874852372514436357763915118286282147741466045284405821211706000650897847681389949659696607319366324605393975036324263832981370559488337327581509435272964278921460034350932590810661770309841696800639119414206194740308289520556871116052155885914456239712631275481184101657092321737951546877169317618816967018894059887600772835213645890639715798933785710488764632894511908272415009315075483286785497114688253620609102127573058280141832404048123623366500654930788959635708238947682703126628631930903214051868079142295809028832493164667945270265637219056080415584503216311132136674281475699998494922368115904198415995721093950539071073009281219029315879405049710285411361373435718985970289627038311058534883541997004655724085047008946480087754128941459412876779065912702243451711341100507455514696782300889467327156276036758847441689998489038020691873577071212626824332184558190903922923136192739666072184312459639087581270177248679861481798672868680815404569159868690897098440832733677484931001545406603723080715441794538336819544421132754263321407342866948887803795999999339805152049755093119951540920973640260652633729823655249212025468585890928008603464287289128799363829407291448582995425521468229086267721209166848719312482896040604923889911299327824196299904897438029651292947564861848690385129808605885700463639200728239625688250183423393881486088400131510231751524249986937938809181231544880311543525452582027841160710666169483768581009835597212791710861657043461553415110259885136315003093457403759071219517201936141311860301395434462873779939002683797323307733728668314702068734941634303390403536170588641922519526540565408613660835405022285915382286219232661477739070133576240248852147807032376747951326122924913092174823598064593645486700154440947251433830831994982850066082879070028160875302616156636364816670993106236435113718016593807662704741285781979056214786281119749135627949196527545042321975455746971648835252560518833957560612956235669818656901998056949682263872682320287189532149624082829491644402391724638170515567481687053752862568216067134649689120817238220583879736259827455242173834866085286606065887444621756905554257498701121413928717828853544541479276544276344389864473552943140176879209727473116075312185525332392558599147667926258191243952798859793366770597385673350359311641443118163451227758984323799597352305383822187696285564936966864849998712702284532855119736016059474235800181011369224304450957039937717299626600631761931530462797966785518115183036859785409941056720495135546634276415300894724741177686565901293798685816809748163257119035548439840679688584866240175148059136937192553679822158648201475869201414529994890698472031147634399481473541626034538820842983251501800273411146891834253336935676153015773211683783882876602501521981372013772584517056020140274897406733304936572002434118038403629259306901940003580466373145651949035512846281091173939936293100952645755797828836481966729291300069944162835939097598048009112364848215134616938075910520512645143075070403824683922419132801554875656331403114148676452504561461608852519260939111307475108700646141594359285949186240307861287174867829539216262462816282337952662438426120485616310229810009831040188275267366930587503560078703386869519759606601578526239718004863712373232244970504441041094326453166141964210114680406609241271949560427274158781263777406850590752643813207732535994691205307060560788476712420976943827925988009784031491942146689381877690335427317915006973090730259282075582791319216080848890314847256773302864926533006368012226296731165088841666625088982522220443216877360764668690653472955183717219755150386827976084367263934600486798550094543735077781783542070479013424534695939369737738027164080712812336016425852489201169239466829793241395039417598330467126842334346744215083343566164640123675055765897572613643845364345502772678720782586452188750923855080974588536344604958151258046147347893989562051314424723674752261122549512841436702953620966791406126783184960090253696092592400550388023182945022763113175471625739551536703867612245433149029181200609146379255765233453446647400356857744478061861503531291157196667152644605761300118901489304873940626511212872695255500009223263535731734190984427337149140380184726376834282388838853912350709143576195791709304571645268007031267943076010746859831811440612274625576391521285601281228459719637257716071506992992647316943965466796886333272316089889754851317252535518389582249243864570622360296855999549081272406051127509958648801421364729019327181221547565298401343688361697896228335615923399589562788111180194061488967135488826973451799925215263062504788945390767334833104241419171256926982417493348169539308787882476127327472435446047931507007447724518093109938522847731231668766431916136864513325824372236945013937933797381809271190555500189321050269359404570800204278457480222060356403369210173282181018750806361112763691529672136465018559773151244995664275633180608746053941877733659066520125866104511675527585848288112257114165342777225134730026093230676054071594297840092229766930171042750137533274999461854884633077989197678210525836002114506983467597279114425892254362970752102297466221320272417290039320297689859280589219502799621177917217240767789957936287664020574009965366984569260129144497142251694033608387843584309331934187302593124711106899732653956999299943981263433797684849831224109273274769313396635605975496802472728101346072985121614507665134091844946245756610689282348093845512090774419686304608811756289779652355941969121662015722117675534980675632581023046197929941416040748298924898472455837070916339963530966460150219715582110723615324374950161493915518527277742843550660016186161317292840600593403327271235170304518719908702883017654375291845408933564634542348136438376006890832532483444289295610808116296554639559643194121527589063878022523046211511213579229380375609169066127508073696492044325346426186238580649257200917042979219806725531227333345995448592866916650675766004124958473597582271358012850082189618042750730412489411916428855002194519276630526934559700764035496127392746484614378281306898524290998646409408832732032782936497852426555040902612110066390143691434182911673748854514775929637242695761454269496390407036992451243000566397159402352485032348356374499684597464645952276330720290644644907679030390792514275410799289598298996098966302371914917005082972378620908603581681790797241901340650030503145550952940368529554917824570340091688796967752393973671944642833077814445530558086081239519636326163852634625287282308924632355976602188800330770987632088862421206861793075001853550645484203487344207562791447398648391222687452919217141632689257002901997079308893385008643245202269546171327381338285976091372842191487386399514119393813768415118974580639420617366295162618554759890467698861524362521392476671062518142201700537872775183272841710427520665929024911969934958537572801704988444552272046191494165948845189711799390853076806400605124946840272546200749763578409223712500862559560746651691180026425172820444245612103383563538025945672978183022699373293970616051806763130924573435460896369833503988218253170978733502084353066816293119266989474740660935786631460088671529496299458580955666549849590365286412738655834625621110432265230146567622971340302596834825233279573269001526427998462319914583020401031363061837191403410231393983827579756786328301326312311587052727051388607369458089158714926298965636029126670460578136322249424145801887962107349418490368558717484883316208528484238324700669767794042246696886233808428523636655096207155008067870677062668091601238636775847145367213492552006869431476363607276119504284070490105339437000717878610751830835578597610811622150700666386817050653468242999421081541773119300251525183942520355202595528135152096181135541084392452178016996091110978259239427723339812439857171311829238111209954784860126829507473163377835317709606887383339852031239608798729510910785512810635931981601194509282005668942961249759842265439325903974203074812410959718500167290383959231745103127276380270902115686500177643807441469834414211546293909354825603384316526543130124200637936919932857776339062306556922746688956430646374687417549504204912660903855259838211774903224499308134367620140070456501333883666884007574902772149513811532758080617794517950203535058781623071091278030438317965545357579630891077628985296685636829823828050663720260673622230938579918201966987521504010134667731639824205701914678790582583451477030192568876656789442157723176177815782509488790603256846119120300197075518329106983222045375167322042894694597934775303790253254463588571792724405247023500469130750962615447164568906544618620201184113093714774973657257054319485447769907660454691311786790288440146507648915041479556547494765976349752017014668321228711688996578207421226108601072093458754051475056687481938114222612580884327885261367768063823337499044012906327501510288584809450199032737285178531326790950667702228641740835060242709263254272944680352698871556394774030924207808367936833196584798699699141300776277714080939860009020326141321525699071589492877976109874108361236818877563273920752199305758586684887804261838250033427799727966340089899064990915814664231440666439380906793607818504450156957304515252031567904179312598951554470206935553581000894482698034206366269736711337149682152930861886560291186996569533650438397286114928427356119375016018725873220329963320682400885370813254262886049893014645395007570478715641119660474960426305289794518539539062188647072000072425082919316654332722497086759798505723486286758252597795514911168042372678585112920641455834371626655094712948809880199519707903033046634852418648629662515984842681500070639759560611150909695169806757925435810848555897547391909626218714607198729283913312908227180430579696135319414637417706797548022731014832773450099561065193018406495453985070693833668258969751990464329997073440596928870881626487561858055712204051177294831494134847364945329087262797366085694959701126567837588539288613925061619832897659158376773139045152065920735877356684343608004598570828344410927747409212385934984444105404642435412901659011716239745450845698987257318601573153744527725275432098239121018249731645235496203442856089055709154629045822485132628786676260872823771524196681114675604117206765566591467008321295178712759159278028720197228066886845158386432545461986233768067085827069758668079684818855916256634925313233804997697878183426883242074880652607362640912484858316505934092338161255435743114760727263257798823175346540156006824570919770456488974052182842378333192279532959208387289038349326088341509564458286469328912578968558342700526183246504151000664042910994773609134538850995116985390519685971948037795880916094749013757637718361701266488217986053975416146833486707227149932978850283302864400024442304815658905721785614340357006478425613038565054677964111540833197265724351971170121455250960098877148738727751891036262350192498445922748857003777381674679910415122626814672724489207527753337525399507333081607935864285125587275468629104175295701145193788734614347610056307445116773571288712124089688881553223221316624222018341973502709092955046677491212624702349246261284633078525726275763399711905997492811146713754702208127310739595459683598874020604844136671054045268476247230242209384802262119211779879320313865005700625277577607937514664455025569553034887078780572809793379213056263385628114957815470710016817788583962885272252612347146690319341409047705501589270332295532767335593580456297758451236853412211097676098742692095187916430010104215109246623660933592216551945330131868092840763804726581359738741234484721527620420395723105523215242009612605148466091181934831197414129070911591726178331817371204684697710624734946893283573798562408591652774688413882853347223722028240934135555576400774570392376319065518323586137688209081062689003085600825939781029590558425415951774146452621959914593509523842574471801087277595503152755736716195597180975203777918713431311595374898253920220406667184652291425555756040646443975539149646169358450506149249138943963749923310018745307866364267104963959851963389203714725604323002765144755041244132584533570220275744506814417068183673662585630699652812018248424804937376610298750603352885796757539839977495015467692836292451993472066052831273990925691120969283199993782565682113234305370545217559150574243162731774693119371957269838183670123689047579305472991234023996985824998404707916997757968297196816498689866777273234558374934855153493379219299327072305710546138868282642805285627557881175035248803822009955885971028284202110159792968909741596715001364084569190723776389260613842626263577288672970211390456368130785702256226544334138731560891165448078329559325617989591083807541743883860027645460296081159874780075476525674021237645053250048812112043670453582534292914554600790240309658530862200454212592222881952383533655455655093011997379923150075397314118803925416325155407512113930602016107103653844578471247928698175649009823114262530932915000857305888853651875395018324220232345725567373679977101544544386493738550322890071635036197669872454164084430177404889978106474328605973477624248882837617838678836085855720187201223296410794076311636895244229851190273633610489670906659374538197174456233228397622569772765264410933004679365942790361400580029208658899600212198096413215556934228663164051609374508546434563757356468829756801478640991975379177004391542199377083835727830703670095803954681321820227763468737348375997384626038870992794274964663403236786810381337209846020795696124901173739444423777441255647516053367216489745764752883748044269030759207521705995280007394497709438812678191236256414115407278003493305783649876863390022330552542079455747568169733481313040062206442134884843287897110069964843812947434243037785999955137339467112269824437775952576688145415220780312549491107580263880704421830318250919768735321136770017012843095809925464558971680809230042318187034375361560048244256027634420491441381787047596153516085111275836817616263960441016444068679949222703905476456449277057276194647075567210008730482903795868499979032826027734154655785271254951752633466443100069125942575975613173424792158011838302382117231890573919862908769578157231333830149573434300341083121141392613020519714352319413225443699718134237417598863621746838012287553510859944163173917586746447855064110412684583461935661529462167581584592838564369176649390191531725375139166355360958276311122472247018912883500845977169592466578851525656067884675730758747739089359706357294843549915014349786049712966354394748871444574605858829888839943707500410759616772667608233090245811709207203651233243344498934635192306912502983637606149796154086634245502693039160659491765942874981235020421495050058718992573517983244063639367644829110496347566946455507312456661390956868943300393787759676259832050692411263985618913118613505651406585098884942355505663989824791679560407683873393886065351883683007508186287815418487652335365001690467306287297834931278767056142151357646755824447592423400118938508495079278422900208745177004993977772320236770790359461850262164096693074679256913907068945370308289352478261694897955670827639516629399932864709126986353240320768762591500361776987911484852078053546005343032846337901274952655911779684630165628895368597957102687944496906270954910288273541507110120011077525106693415209080403259829313969935648417008398648640453753802185566577596267033107686857784745477348086232439158284881589816790029014765813248578228098471908896954772968754601344749520942180322691108761373575161885113372015444133967619531696427035394729796705994712776598958631180504539130877353767617446416337638891647822065166123308073533710804186789433166577716071515923597643199511025856607610570537046831640893973192219904181109755586386048305893085936007558681106626393236488891826741569116690195375663915134477123537552149184360291381472181688224162438198823674083308739548619913402590764257165718007433892617863251043614192345540315840543791338222346779078832580342363877457397265140727702123298130046198508366955517147244525266869389193940330566363206800682940105619906501771560221162880026650319157195331776385545910051772095498432494790228595425571808208088845070476268658561012559761136802957741202754348552621944925721653069931894933846440246333847420595169176085470113430656499695312404137704914314106729754185445532166858592982522394976217796825934503431970559781218929369217433155699373021825017856217072990344256091638191129423321764942367274823719340699259922191549002356386710917922113979019316063885451343610107828095532624827104423938117722935838941084069660092604307655676073433773393900808005029850076672653234357219467316742395840111449416374282892620395910454338817842080737544890584002210707205972010023259160185802768648789119382431590190691735772139090743416883775367003311077776956320108585619292210966438008911760389502749589304258033929178895964028304434994069048907603189995326524970949656073593631174615619781655211520061576904205439179053692073290589391126673458379403806349086817689268544316389728179803277530715128634072318150725312353679762988469006039032271857367409909190713879453735437715420527933093732925271342901895595670304854538597015158203659300891836137664671967303172760493207735394188592671922158593240967513738598166945083043908590577682757001663787078457072082559252671248087464300091324823656613004359604411933061481153742215558310993167694501042338474737289246738675066065205175317331326855697402626002593883028854922606615833783156465282041021132393571426549455204498710995224142743593073716875922344354166129234641977206064079467276721437080437434093179558257379710587737506912185750433966070873289323522598687496664341082658286632435152099877407933335518723688723330248852773414311815360271114278559992685965286437920116212846874962802274742610907567690342665709217936801099466336643487894627100823180514022961833514997865461305661021588462821892994570921614384965782230068734538698039378925990653636411345044222563537146639347017085895985570172029922467395885056696045285052482994869631103293052108567251240716437417802512407944893906430610026230833482236588826431552418293326345918874009000370523026241007694786300349096366945907510935956835117042785392866333453971122226490045421631909152921016910503743001307542660884460876678621602533221918572174673449228077819783921996953477544424100686684143092124097689195438792612748112653345704558886447505827044284631811805471327390308565145455244871339543935033853728768705561264477554007561466865834100497058733679376348425455462114529390138824282470896105372171923531157584347261301710440466272827156682592466929892686621367968630561694879855790735748257542878067474667061012398496647361699815675472511581045537751063008837110804484442351555940910785995577933500640610176453216930733976352851822503324375546013212015965182492900273999771546095930038813736483951129714009369546210390825563628400702298484761065437219570141989069958267073847942524186847401055749661291273236212155186317278120596795831577619090193403188080542770026605857258865928325039566231128247562468455560189806790766708579958466589014943783046950032825138416430714733136495235080756772932859930580819037862905904531763067452418869846467938883760586246294163763356932291376794590693061926542802819802498999591452027114143860177818803033068051539673882420756604197757826009695330327315523219163021635892589537892271025545786857216466900362273391569127876853904837952901839311850227197773856461346536935320715162027115718786318785716843466884630542765831021635584487999916906974796901795517018817353095863710422792971888718583311722160009939481163663543780157588419191233193568405968459224770801694464902368443307459626243192933431000293750370278984531835308993285180658134396896877739760163922206563147113377056081915558952165937596967122836003363750499682695241110822314702154316777817460857701948860412992082699690301999920609014721957888617529950627843220852264273718374967276248736885630035295675107131627817088697308580929287536813307567809865330491630618418290766448805953640960061537944971114290970038170479259909144275028181679483199371806386513967149393885348554736450767998404608117416033017270265590931913551652634653807278528618559256699921397650755108831328513319596382542812238173690055049210962876097839839408375147451170533492199861944809460728087785830885791600518426209074985407604514492057286488735328053475265635226133194874160314137931856808997348445960493077720540318064981677622829757413327115256591740306432788801315506394842968296092485453061529140522787314561827647531427647852591613530024649260349325029001269250016981815629995677518744087566558751838329091845553383829246437630939836928493336620578972937558428811717049783462613511812317661766681006199902210579813220039926541130346443412094564298146367141360498515298620962626749620152146218619325430657324607912178223920402044246267882166099609582385174174787678930692340075607191671023212725857773388110435559023148968821425216124165975843237991196431519860713169982194409848489832770811396424400967298983669753279223131165702073503578995588831415062939809507637903135902092765007209526931175810858253207147760869251974237633198832554488070009792561851299454263150246373107859218253111387440281149336425696773057703642148494733021307750552288368906903929997450164008810279110713290485479135468323709380994201919527722756872134285358854857189371467977280970081451185591890805475969983495472774944940612915817539860342594186194393882563450840412734305340272385421528411451266997206803464168809887263656300692685636915104922418577453616198967889825013053305226473575276093681393506857096854701462923308845234568115383752455223101239222420087903726003827220393706988253146662826241356889574221926852104110703869593605980761583710290985798729223010646134790839143238576803399993630425354254379206051798496170711944168593842485312002618868403225715513358701801046341197784588960275145371950953242635746116161046873025589672599010408425557796161804426289365779122400070255022958558164350066249016148208744601178403975887034493555214454913768731085571434456574775532864332097610498630700357518754609318053116788989813536577016212090956481732420950278536017060819042887526868489061346144715556043268397215664477959883007791693070851787351698077505380185461343757723339893472989076294067475425444215074039215904024119934044387988280045923471443565054859328251585523450791945839573243095601983849254133098473741523453887769068418831212026210263127384101506108539886021044767437782837962401029834393763050421859550445335102756887827748061587522829574971029512437234411608740040874142212743108339638870956659811980521406556081512171860606548175977760403798569732420472333799795292732833255373231722546547258306601163876933655144673123162566163413076692029537677199467639630982958305687924685928623553191618664842840613685518247798167681680839624384141360587565443822914523803377091226992863747256811288163389955505146808787149433471986541088664798398764239567409687622892327109495610554388756282298513545274661122950202369945336449790735029643466287359752140835393165302394825292980688093346283081263187731187817772395740887702993555372921919593313798364022976395597263582547537668571876971204669541128509097195424866640161848386470207094982259816223085580944764404745013393806052005706194953018671041521523806145979191437435036648863677593036041278751563237116021831143955115248856526297093913380465153948108993181269555269496245027019525685806645568649734862403893039663653495012650644147886828043563633606530511406557621394550091047118767055967866882410974552322137239395237584080428252134101684244444432540688719466189588887463498488993552584901840204059008733606284555342357589850315572892156349780365743162811865798131362325014726953902691747105808646825800814999904518013872263476287905308723141067807385163509660669213803594937468925560660333977998278172942199551769801591856462513605326040536396802772371957994343027855561315537218129593510287433617197285944084094321673282136936952794636524554040436190259302139784977776770082937123550185200750658251313232972693975189697365882832688481860514788525416987951726908545722841406610209919205212713758815290577874692603742052716036672427153297143199701403799623071495997236207105145642054662011620504424871253448124305041016283424273560518859736167985444035392576226487739261766421188122969846441827321495576347779330257108294666196997902545308932340863331333303792677113757753766282991565623998395092921737463864692279223960931936765236460089494380552829859318749481017020504181938836287165044374611747453797804961492066813726214398654906323811786215510598768527133193847204915309300500057457049827391999712390350053307419833168784910626549319542910764667354722733268644129250813121230874770070295359005698095153219552488276136817467668897185966997894663633443897876490312633781965508106656280732612872946744781587142022920634289411809209290772903458015273943371088091468532908442471193111830844049947939257927390261974500994592891189172065590411032824053367642728326251755019363387462908341310676895192921369534515808616424045625235359651085024454582951883957951461483224002807323125483278626058217015281729949676699053969039284205641094849296930612224540992769752552684170376253485627745800374616672888278787975846136697570596049631341814042809486019739158420442678915568263278822635555325813411928528134673812965650015380331752449644283826898173282833622136520057657101607580258754454624402662720124464216758890801986531635287801694601652926239699827040131123202801404377886066827083736794044817546792205987200141143017167288165381574329154960094082522737986548375089871916729622510134516990927635577830285930830079717534251015122528058053825534721003656700432068174384204691533761029024542031773972853602029388000034177031416588448284545513436217223577382741613834962343749427986376979691982139053816221747898414245452561807478592128138269049559196728199341192157476785307496562325848177270722668450916403070486019370152143014351919987945893721459705857263332960648940135036960556152987024833704040272545725125587182797850817138278174661551352086829622857680103883514547628634248285314531372680989600958932558347968801783179556352754294211622951777960797570374549474704494928502965022596349624395512352156690139264758824564710031225754298399783130941098030302900187508740099357124383863636685975338826464600154915966279937251199645052581108190742959963137985559504689993979281855170691128010632915485730898481548532099263060365484894114538993445346612211127826629575328920788726273294725604992074175022155719754248602491976269651923329365757183701752140762770977373252232221061884708029239043060547089089402639515140454090280210434002943758470705298752046153594687554195232525072891214660683539918993682677178798784137583228910555868271001046609215782148281437613096155377955998532277912117364136299814088919411905231267907249165203094208865912267794163714079358677784444539766776546607125232565841011890878598284910256735350574126575217398822300256537168534921017600924359066608452494378042377070365357919057951016103107769279814128330680404311490787676593080130951566659061539534924357742514859345450830149030490288156594296197704395246518778701073165879831297259875625118375623629820160166334995759811777788841868433647772669527238678847308933722527547547643347371812249002939904196880470763592527286740144624404757889256776509010752778877841949944584248177080260655125454023344688068726894650313076278406604375287175962822857708801096462256462719255642732439352548636631083880477127548752233704603869493346634829346124963355659575496189305620494619441639767018733355998028549959944108312989343000331481018461809954969452130962978493866190793368091912129519019958786919685228292237185844927216360476992040746630583939004922453730095781040500865001450378148474003984439317436661262900040899154934437797010611136072629096483851567227796253343098230444022488275956629738132288606097738448905676792773951923808817774453820874696475313456165913938625527629362717177353995731460160488783269031004188101042902048908050630686214390009322791676411442832533842199514688010220965505451867578062877682501095038417483121820581349870079483935044419422257517931415468135131174686036113833596848301509967880977071408453317237306827306792957446710198209310313649223281036251757558809838657870139210274440789124145013537135691562729484658060640850628657880260753428928948189315025071400409142850088341283714496740871340137416300561631778061265651725544198899548280122239454843078440852733019986408341729501368513514461090960602842473979720293097197156636887033880246650208271787764358061104234221317360767252282181776080350240748813969212479534768741563866940559257470624073664066151023445036758388775676237324760707972461231365577016790846700521128183429341190379935509686396972750206470494761047367344964854483018046637565036865454222300585467218772744175917687964673611381998277925763285313358948458163883084388193686822109094667929039829836038925501843599491534483964815846990757140130938355666403928139644394565120623200541739060010599865895594614808235871342108148696675434933078079389096605834484677005480854460275842150949805504069134133414208191390416624011330487597843213965402419378613226317788147224757767173012708243772522604294464688872932921553209151406803013641836216208470374918294502455966732289877133719256848822315389518044654528964517080192680949977786953426782480368500358689990566890551312910465406519586807765866655543593027779097952974444776745547406948720734144382698588985454542544548048143687478246736971373242714787853115590139698341072867842498752600174869044986204689302966871924076499988312470195510778702622273133047875454976462114140621844775335002108406483006949960091952168081572235244405884276269775020013884022195642369264135722031515115664063129572902631811905450386813293268887410734945892942390783748993288531526112559453512530692871330593017801460283875464734321693136426480980733869841110527364581063442604925614612223876621165366489554716324977824906827642858617333805908948040287493371553494262119481764645587282444347612558098603744791610984645981956312456874349092073957743285275827113335018287089568350763732845336778375448277241910270117980499122585461296200219788763222717487277925274177910057155601344589089201052999685087899012947182788789120755722229138004235407782400126612805178372142668395572552591673519974035466433524972011004838637756554657701653856649574634644787736166101903442065039618580704745835345721966022647950790651981788567898501605032133058521533391900507776910848780745467251705514231074360964489583472876810932877299487376146050655146068508105503252040672640685431682479603480305770824208479654147850763877524371400753629618477959175658949463753716662763685023380984249636109855325597751368445246819561283173436677722246337307502048723692004004306365042234301910135086429218504852278162296005659844255276642023387020366191229450708878568266732194099313773948242252593135656075758350386873827982073577082656464076371589306076585805614341987187146469891296764526420091591767291193824784293522082348778355359094342304008394418596187573810693155070053731871420726131775578672853998999045929968376655554168274312999000348090121953070068745906204830576710878853649680154559104309977594191965314992364558255900119533387533611502075570948476008541202247067814586789868847767748837032383973699747884185920146379852217859530728573502214344524436739795985929179368526022135465966722957439663026130259013428361687750851372071802903193750795132858289288254337285400043714096605419525994714569381621324759845440645870421054390898135175866093018227846457457715262028102176485091215746482643953175158265064479585656000965166498622508667551408567385289671151177913824826655470370626090097039846894310875346010342756618142354559828992112319885195746880054644952122237490619597523420645533555761898300899574549508304128326200262798574331790862842500044101544386091915514110251831314340080560317998268585195554142189529430755548794737598043144268904317331516868235009292763693125850790378253954717900279038162879304909683856767633683427865816836955964910536619707273040820279983104823571121443384221134027145202727936798974611177079411245541371518382297221201137909501888288911892002458026478689698454117726394223023304501096683651521440352010796775091213132686863203176645697509264894030706391200159297994016421153928440660338125929784780840377270661600112273492644790560031915486011073718341644333918416964049552055155291901109775537682059647620696716176550365946405708428544921075774840726758679797734391563505841064097205805701528314759533848932017272932260214326423965062366941354817987420864832118522062648032608763126077702330715094050954406144347926293968602961271405771380397416734580241885298005403535964355849537106020625897977069434436937758704269173614623973732744585367097358827835315145330892255617427751006870943801746841218107982797543092050478914573591093387894906272859066884871857993506796300702660278490015915318899550411533181547240016802043469031459187463546285328759397476478907250547189254504211606475434276934934207608685871422731225306550839087283713082197105432811090397075266028691178106165171024400516769884480004193464397138277503305371312000218582085286967948194268463007393949951085555108126495472090877663521072326866849000647254317086947783353912465138759545983226919471382251440975204205826033982055940280560826500781095759750546716947548337882297350687968437790417643624694774733434717418537183919718250976878966401590724661684504867958993136995195272643688803426193221039539232978023866729878369473304629898289970424041433269012007465750585077806100344037786477947900109046547564482635775194954396684070688250779050549823764877421473287555563741369888860277046330012507236007965946908633759223768329429077655302067762206499754386467733577602251939109214288089509024065683864959829143950878078627476989323589599881382933571603977262963983708402215462966945121260823320175394515330789582691758890714692657464352374487182012633050230064623456122687413212000809436574461064057627319765012724536391334532182677574332691664418705031958511510590911724122269985460249777860768655710034607550413440498019352540965939260797431110550964765533424498868197388937656424470796272984013102810656449639376642080092068168590005098883757408646734481399357841940573529660121167892821177636225034972857713633176106571557008595135937135948359651704351959107281219292864212362772226107400395645401634875812598253177869149409476763010068082303692233354300945532125934254867363132229140423527706925415254572513213070784152365576763565311793644630174731156892077779008149355468993419660061770191013565242694816224719523759889842073433122622799091688143392582678932300708998719861969609678519571271318089187054836061646215214404875186245011326969251754902414086104356340781823021699803583926327720586643436187312570642884264223596812521144740489201291552857768678862999002536996652521572655372168426320576888575126167351012260584821985458572842395174309537285371229704554531137302751964028513308931656458885528333430435811362504855679005915510519226885725287626154700453245212510006731986800498578965101160545440915233325651734124919181155833830262552923426095362092975433685520221078409561040028131917964229561689994040801277450194860514665485365991731396245374642473716963756735086923126862444334143499649104232319090174214618073620758427739402338737866333305331790608892389060119952259200281070822895792199220217943346714424090017204741847962433808856419633219171513003403324703300167269460532454405785893525183455384378037983055444713263024324421532829424171786774311090407328845998498371765650181399250924055400848820466502471413548650899441568225262947158728751290657473703421923970068703344911706335520203864069683336460030266418165608630268914989140064490434068084330137344383534400280982510487885198250916093888308687110184090650250005905799971915201157809200689225752089884012264572444983068869119820345809716968500869576333139156690228078081278628199765275014662680973025907849299760951875728167735882612648151916980912055505821466287953946951538044373777394444396754544501688994373697317243821332652498233549180855928367381314088190737431131807587429372545583284932171961859607457406586841829211826629822696240033501779543072616856109044460993438588562000723283477270153325938789129424406409378068756625944941171872217460097076388998474581859965626978974984030782460020902365009585256056895541724117651479146845212253597469417860581644347561833613043713355200956413380411038086039392413854219928183358639833722393659929504929013663910628941467514492256269576028716129923443473338830063804567314930770212020779408599221523341939928204413252413983425833226830120643478684351416107041376446581207147059778683754281315010503946437041002326633084201327515072141132911801467102411734097265089011117870375022253075619225116343835666405913527527370670396850989954327026905206044659551197957248925262675734912819160454997466462578691172453649357703430056393424670767880792150988102518611977115492063058855777340619544752953908038355982001034938473895975623692035720629370458148907179136283565822527488965756707155688389620387679846874868361802618235471022219780452864412917014524321411177907028520777201043326771964859517886170887268892860208386923211419921115618530340114382975749641472381995362104637057327347363981820700169491174624658514198287013337187067657908445844260460115327744695602918993321407834008727646099601287421192017303454435541204132376567772758421962867204779524698290007239877517634323119670402374163254603025136149495223413514277453362180634367380278508922007412180315477866181493009395788285067405903622575714702490449013768304842152296203316765827121872429734518292357274449169228179762443576478231554810246799860314604942330944309995177398308819808925546718754325506637529019880920483387488107159129216710293087997780209942435742829708232654384539624188357055518157581131018817829415321502999135746934734618283108645721057415152995694948428616828716338230816571645155250657016877424581775161827060656784423321804413438385438940218933346652651937815257100912852083097702411457134152205459144943410311605131696660781010697490937048082976852724627883688954460467458725827143971353459066152710401780101223912448874780634763303289646100456073551788440598978021792447269715505765452026541240164678978349587206990380831223740955757396182153742394995363039473871855839374309543740889787326379543023176282083005276674312141846294836648544723597017186947862631064810659047769542134176330062129567659999905658248193938296941834157625424426370065901068590974254259864196897638333012267278522344914467044961136449529920960249065654514189969283592615090897775201307493787600761653243410621358505323510989455868751054295823155164640208199250350543816515591806373879078953438398009592297817267137412413244537196876993214709447656763190738199953392557799862569778196272213373459829411562146108173187673221990625344256817836023778562504441671179361726122154935816871933376223144208253194130660622871604526218315226109939318953240778717867577016211570009419956197015364255950482297481141014509927232244101369697628968434535774660045183656548524898442229909889292918822813294108055590353067190878710950318351668583395378070359578735538761330340165199844279870818202955186251981719357164849053006525312617677470921942926469651987765948328937528053747228879952878233682605480651823529012283351127053140016953376877501834141854908936124261109423095187058569054704686952711684086419669774186551261274685205478775958934806235724305227523007830633262817676978001706504140092678859522974862657091783370747897309790909782971636174453371103005510910363311847249436587916157413794928084858340942152848139442661555026934388127170890141255014330742459246298710449055835369846198963113847323319203889550294060774882383678783998741841543629345638695873789226267255694990085439647475341860148096638544300741890028110443305186410471860733516023353567489736056958778320186168731399951213491108309051844225768980309102863723709755225898843326256249125920563649146451191172022323915087068545342508216876898774853207477332296765975556078177693087623885736887388338194632001959113255283898920720541245044829908294629166626812522736984116604429039705502133977369410640102927448149437058859115613716703896310945809332665604464390412583850307419285493097510377481771393572351960904404152218665973722108337299219598760395100325270968072038754795190696340848973012920420773712396872623366039909322626625873234922043975636124361819821142911842869022630269892736498923688436369434425400057100012746708398016474406992608658838691265987414304497939329083834628792338827998807173645753604925808615361256632455115067672256366327966275449954386984695102119280002720984318513332754987328281781110067722037362218895918764947732879398790290318200589703129531598422425294639202599183560186738570271085837773662997409902568120684869199045056238868350303396753301593401557389690525954439500745195728544652296385127842404203495403062558741354978944409965249862967860903926362047795310317970892188095682109308725205877089217420483967081302624700242078594870688230398770395101712653023703448742029345263323215429680351475392941200819711008886338506305614531685371768980258738590473613475092835877572633097509331911195195388895791522911456870402796649875425382715642817980263382240823612932881345251926046904487555312179320831976715744836075700959072000923985526778380038347146085236075372613325897685288499835901150807156091941829486890497594592164046930931476221117392481977926553466270798185015789882941625067735762799406342854875792668825775763456020796065588320041205885263061849826511943126773921311010812047653835781573752856033598301053746914331457667457348634800387585256906149550193024107692388163591000362353573969498694575806798943425232481012599900973816779458696444824226393192245139755410834559722951343933795012707872302759492450886987914938416067033570756654918162044013125528112363804194959023252908070037081734483614770841166913541396122928857279319199307460820184266536342369628175296207795658645108379351712336067656726558441041119793751579243777397360807566943741951176619177696003361340605970475379762667468491528131493863203882571355642935820564634033689723944161771167479409494841764709436577665830110345126727048450570348739321450164706293166835402373804481406924336528772079991326741282451714624663415409674190384548738773160737364459993209604769220363010972857505421483585473091350877581441372074799843535840315773221558579665802367217786178054588243093803934924632854529869015999718595327130072194937397674494099080262759654270216874812341508418893205595189931098658664219521177406243972577951407265993563608144258119228996624318203534715345955536252146561826997858167956987465215309841338800951588640045181468836625956553579742010920012836645601511727183695531146318718387618984383216022597912554612843308743267967352792023419589414653787369813300840465503553616149278264012602126021497507691326435366637549912959862745493229773409220864670757459712187920026725143021948300763389500864384068459816226255668378933322273026977766922408040333610362914031160353175738514229995287359713254545147040492210467811088866970549717876980877519001041381333504272242419367981060012260072443685802012002707717983946841236579492956752043374501620267800635318030215937430693573879595460177000881435719060184133054996749457454934899813532746503160370950182199816402575003940579912584799129747095052943644165853981600740461289154094688690872776230634212593797414733405020976280591778079277260243720443506215615761677802387568250444382854050499107584091780607944245639710809687664593437840159423037559040301960223757043004521091848200755619016039399112524965077729807139877508541818475944272918355510786573483086292180454475636773696426904596904471754695325435093800894011653133453987962933611636659605228948872775725450292636445976809597187399945667100033025209034806301072799407397923621112809325130532768070454235845918082011238239666391261997129449902210588179080488294651585861597808877697801001107434367794613634640674382053606161108686584699264174114397082561592578187612908625498047343871178840688600961801066290189249978274231475021280451424540819931235803775690327999757152271564492242243627385949237300998257457974612575447262928918950814059152914132347157756713720042307665223318647331744486837752786966546176320964913167148989080234166828965617660433272306064742615061272699267530733264246218022392374028213392430129087723067029077004464374835646232394343309338471819242829761062638296501128027667056861991189003172301886297123451054463973251338045683690463189111726349943562384371622249614806073512989587327581667791154904190277451834741986365043138724915805715639062341370470198546898300149672618407566779569117860978269880915185463435250496186768190543205632953439165393145423115385779756172624267727609266934581645570086401209610631517040762998867575818323500427974606592702535546368926420572683898888738330063503660554653203849016323860554455671501037161370328341412978458254412493613730340181800385530684744623304043217431648528184669071710807958271067216554099728193483589485669542069907112296282204106484060942629861060659768389811018554636461920641835808019663422557510327516422946838878003715681879907998678555084835990811538590516331774822254337051554421323020306462982673270303067546969461176813229068303985456574937328609923433082904416820025056629172360062456115738809963819946638944719434922336094545851752026359997162740914821876320737571364290567883252998826868383157842936099286616473720856369209254253840084108160519534212738776413745543509020213380513095494260719252488983021703317005689308500282752884947552311387079538628113873161486665493923927157970131575749915484099731473062282659786717008814088382999216363264968163456207040347536983392784134949503227732950837845729710913328414648997463570444209630429772529384792839178606041959079377745952176779887386688612653218464559707697102809858523808582562548368434788582415220870148937789381215806737365062520852678261680414490049028428194084947342624196207158538722575544963609227013359096093926650299773691653343010571773116837538918976676998645275734068394662201804911597726777872085941963354799728183813981110456480568643120767523766330843043639004693219608129575333410065621033038465298489887928626693210535330203470239019616609199054314186567015927565244066244911586055467098262506561447988605850807999738122832614888147325769855167613324466569065745060942948119506778896747064482247264846521989289323649121773057392444104191040523021082634297370341335929840184777627289280503717527996953113044991831641795689588356177130739312894686767992501908722991660204532428664218576931533393126838863802046468090786814861350075790461947282047054181547912189322625077702401721796686996226208202762219615572256940178967078250603627929299495552410446800066760314894042689912838587414618151460415852714124118263110662900994184171623722462446612822229513477625942826197122829487722340584735243115636278801001542037528326088539088222216243735452074640642663944367335500923287001326558481263346401293755217967666321633345115912946709573289236510911033021199201264192465865528335538797713736219977096130853103839462699732910010655276268379000107598861677469289854257934087888426003475679543673608214706070620963062207141799819669283976705931213108422863967131441691392457907023819171342189107184877155636685799711082982281690025825970644698346091222273244739792128110747397819349024546999233624419864022043316294205147429370941437027718613625111045505150557274815074997429589526005751823911811679354484262117983124423007778940078242635808309685622382760337308055192219692356943258149355221271820692724218407194016405741318449608216072992453803834507622281798996254418832758390791710369510516484299368456494279213930838156498506602262858291681177388041531708816257409754518049146458946937521630722854366915731743257606677124478127740901792207728834187100080010153481874888124508920029427864602237710202151353032412099862164737479966035529271324912136456517325948113273717727742731940466941273370525633251845559592907468241024360731632990849266460736112870338023868176520472754686318686276887400008649279130957772045099639689882395006808587725397007475040053438836842251677485689949172915387811560628046579465677376855096578071196738195964211691897311508175327374390624474841820543932985851255614351500701861432427171724618329428548089702713203398160632981216695477201900124075788702293581903402348845780176674233240586997475887778499037550758542405899686875206581566501696304331383482583411550737800311177738893590116449439397381579156095765794296051420904305359947450522456863383975252560353770169453916746278574770300677379445597374144714663697400759063676513525174360340175670458908349133332243575383190234198011851194154870905076350710647593753190309905793900969144156424645941282012616506035363082372554319846766034372593831586625728656958537119959433098333779738443786546519477480479495876783465186278910185834359802730789448861965729997619723909579388254803565701891485185409369325872600346481771578252853632219379517617652899048599261211754051096658148472117600046240961851321752703338473286947782052476926756409198545739369800761995895260902968998081626332217020647817241462155281254162397552062626214961690892426519341497646000315040521390689811193364264798204695952251474507099930421520241980519536292477163641564382955902824858564265266457694694485462747109647964384036657649943573547506035366785315413767476124256506568084488945909107139974522278726843254878265408458678534165697042938735242115626667685054278848179070696802988938172320556720250991989792051023747630059597814204753686283086304327865446790320122003423181248638623654625190347083124426779317030212996876415497865474509814500682130635158666210823544521431126627307191295714577352347786488080102521532784875245279833101312951324784765872833318007142662593400873938021299146464304114483733332347201548289003306258136318723836490514219305770600864947402914225393965411942964590472490629659385283010182093997724996524260137751869591273988642403119508601835424048341630494989195999743743549125732733447326922079637788191078389754413662063090233027410751859600965380874013192176037675842963862828916898770716574005281490760777036586616645831452858304347407665664552323789071988734320429838703792569174565970884321546242018966914385609014552026768598482407070521217675610831645356937022602493631554016843836372956800840886082690463904101921510760063573103945120706989933074121327644123659863676132188556971424130534655468807719935972438407249089577069010866869654174317943299706491790023388097142726966414881230568405677327742896612748681341475037592756856522356717502508267038253987269481759058623500005935876158433430782068561660010941853032380847056741893030145623655472796982797737371965449922647653534058216333584792966279370384485625687810761743302332377018484571239317628339104041138141810790210232952634831111380543138079469059553328263347989799519697824229300250242523646553306264842576894789986366857207910732406043223336381606100592972554910889089242362133944576531390693758390103392363258814788201932804378599515528188753002373503841683487784517503782538189177134510815565352394240789133757757628956697325575272951034082538583303413633139528326219029438088138966803260553649957819697358051810959741854701816097985989897167816515031728533684078298051662149675452516662855230773844886271443786736180031428301723252117815682665965219562280292359398004255086788237552981890718070913632619966548592317797467735643426412631761277402713316028124943924896302299305477818697750808630763875964580704954680667335743257068097039409620671298013044852155675428536283803271920007047860666525395428132177292461289928875605946101843557704737143468992215136419984196302725648652107552044777622103084080384974815234187313784706877479161656830903237104546214978404901614891941485362281027626328424542335275373594173986608766586361700373413896549676279574708239008581799240734124227785801780700359640538520531674781329489018745732946907577629011515299536130634718578808671179750511737947343512430061324990004898750417900183249567215295804931068625791796820740279889874560662556723317528993121498524582961569686462392943322237914348498516218279051744724065450548661169015038402047557115308453870189586948042224090786970505692801421633532553604263572326368254828858729538090937283056652224981149770280289247581676226008439837095598585529065038301239233354197346170913281409225137427280154701747111919096757166791845231388923435386809859784635234017017708146793920766858599031904042989587196320088651494318952580584449789772166875111964831718927977588756412571992929923313183987720438813409309905240108208379123980038300269658632266246864166226989840816624968443626651719091526472039567284682905738538765437240861339322578200386787009882128224383137567370900736281028953339318443913469595499524478511493185404954768925884400470879555483517849921067842691176798597051901700531041812347494338244859031608035414701107818983730911864276409053872246792120339585649025343888151054232464113871647329702869166451423671423146579092116763111335085857627818787630862426850591771387541155062451553326507328430064199239297459513617880128614944381819583491221813138468949456405588164514761952336981349051538757734141272027233206861617351123202114418682825333171482236030164836859889662411343524669219266177962270671860113380224023984397919381937031974672873005944730889629987736943633804237860637753636182488524242720531324531689403050590118206009696372839363464553884985163010445093599421120912355311442919125992007966385539828239140567263600453206552212801884854173639557316536930368818505035990113247136734014044530569474944879010835335306497619252894735838183916167916716909146972215714224253126114308178360341980583906005726053536732133725607279453277360533383478247878591180635919058273649182561560154207359514969383447164234779113444053738916851403608820405993926147568019125364188466414734998165776766490448791576189081880332124952798432539601235695412138179111281699649594821835647862331385895753758175160838032149850910349866967226147594424156845511775486642867477158673664399367311102136880680027409813806709297256035270240841316461619561596236219398548427072824410046416462615322231761614242605971188738381159487607028886557969866392285026338740395148415663304434769409618136236445098402160910842771765309611726012032783726915169421521568984505156669665149758250887143955176291492620548289925248096059212354852825490073825920759484371117602318990329983759050390481698500830789517778737502489234035347183390839749919784989094250566788539220525482533846804498115233058731892354602093447604736171729197583816857922229163185173268766382183599474944860811660419823986315806319144319101477184613725363451638871661463273366724571223954747104348853804266953599642222778023458427029766985975909225703120906279929558574873678093086268208259479714440210875818684500457617256561289606316623929383616332037452772943239362822964145379053575774987626719185140484651254465173558821948868969598385826551466075381599395884514461794991389754433787024490738927586272560601261003198250184009200507313004690216302900049535842422991642645808885684225905931881091854502348906456802982225278635886479338280575205240864997015512092920527155918851654997563605460405254486508483090014654568722781401322507564577642562661677953983510681079317829884445843897140246470038213209200607968939484834516259975538913657564035631466118036162589734343668263418316530107080641182340960472466131618360176896834945057452398236212516781312504376234902529737952128657511999387652686980751042942381388512771605173673543861986449084793915998524891775265326263630855405313992940280100300330562544389453214912365297427674018681611854926421167369661994809416517268756423244601434990295721432565539862137346959754185912417752761784030498991668496632253597430668748444799412800238039373108325486868784258103307280169048201036205080509152149811454097753865226387740667217044758159757590754481922784598221332404141266932887860659368751947162236329642215152602078925907308401197053723489467160851701723796807562348991678157462871593417577470175006091392676343824830632123373260499209839452193864039048846802460348739929903497555969353970288758874948735131369007395481658211797715161054653212538353265437046635234872790349132171252349903887851112978574677406593657710100544671825393792662931398864306358365587254713912892494695843796459286587872964771406904456932168603073868417139357369807992612921448520374992739227494708718879480430566901686617546096114729177308652941061199850703259753215471060742214812807350318965525390408093430922622147682372333514667325740107342924190788958668613528378075949699050095311336399994591428217451281767101541178036150112404320202019324969932513941381062233590983441014451905070175346043494307748442447624934076913360345776077046322642520983880538739434132112295367964458901616660475785522477494761002646061983621782724404531725171458576617576816159693998315709614110099682642952233342012778900101756025929025425668370622653236167148355091142174118983392219659172540938528904542929254518118608612729454871071839067847923241825848104061723582279398889170658876521907538031682762740983813636185959718625264641901752744118207532784494222129453704230122335872524478645786474773127667721351596207747040511584652980338193086410725211185751243549940878355169973484498114467724041591129428413117412435597716776594144130423033487703662006678391721597957628128891245192282123428209689418395433127011781779281357997889871257599856898084039068758106918739454362508280386799050115277646125291468660185767903015130901286337501557487688927507407017782869832928718940578255359052227228571889740974663441183025901835254066458864720005777190798702076745437293904181603524493303000924098621254572014535480434927862073778701201811621221308660239719016685054583447553060293921117853092561047228524133166174681178966788377876138002651253713846866050195166658748359005721352596427654700883807359998253299362664428019489464437595553006874777646023317089461624925634334215488840796092214392734871394699498870509998559419972052070132880213012945566507499569163918475730929581375312363565319125344673055079099449407669594803902946240763443412873728681528421775823011644095713207475592669614606788306372029084803239505900210905949208401387863116600222503798373497730931163955235101641768107086994581591550465195156422061765323780441141344279466981732316762174182350440987911869671311533635792419517791200254483817609683785480126318566139275626327340710662607995224512323334775996147074248077337633527159925790879829009745824491825814034464469948739013451696176806216870580863598549767990913589979728665513825353417778718827864843354649316754118583631940105404928844930900814405570472611640167737500274669475171728237354563298053386895063808009946391947966289730123984857216888093701339004764397722611697200422182440813188601128982618421904590198452253779683598130594779690984324721570657045235456391024420889854452468900111479133729554730003455971876334455031299673978266016435848327916331470343369310001028597972608866132449237424302600700054278590605170376019604725499049915779084890005751680176332056287156092378184536020391146343997567859625520302416769559945294973977090850085433731000772716567998751249997649982675221633125243551518922014445849540903363926475465873083515206733486606334864854009370529475971920875499317705038466731887891097158173035524343179283918452828959097943607832651112633845233711542984982108160406684128480304770315986241173838451717655649173348198230411102277767984057950001267589390097208625137907184059207265295464591958773190071913710187395606332994496537991072173710288288989194933889952531586401226939821917725984918151599593970864636368966506700263367902815697452581905796547846556233830659318674685375480071217266267453574269878902269271270510963186181065369557132046495095196693068400203537285310485225697606111772245320637597354926720555111582939191379909382599048093281696719295859758815581032744820809649288875830750484322969776870802214647844644694584981471584526614802530082768349846471132309313266691414567086038494225980143457588689846035457833574485860118754437350155081367330662257580673255014736473542392687741177606517168693750009700219473196832881037568453720637379745824213437864202905844540861107987782309913478871641957638983743923929662615439188053290230908749624703593454363690642268160660319821326822417447418394724179912154960043158704555434469571784495826479455573211415702630060856279675497282123345613150106272932947624403265583955032847673719893252568458611950841623407877746471225709850326573912934335946389690257084324289013228563594915913438924088084849351221622148727357360103688484490722078768701298990209055665072987236612721189452304715386558798153806857929486950505917755570291694942097706944924746629972400019965715286123431284742671403818744816221222634048006478733577631247122279289967796751303249439035732209630169878040316398413903010815925951155476492371350823384589067681874147811078171566499391612381630965643930123478943255379494437959407655677659868846557046452122638348591040128218562250970089882787210548082835639314361936806817168231635450630727610046132471899631944396308548322260534634619538574968860254968786235515211585218701660318658823612144144481291369523910355989656847966497648511256174672874855007959484435453036796346712489509432815154240547589281832793581212620511948167183751873576882749684675258882417909337163799367248602030540144504964650167338283141840011727287220572681609583945889851623930633549846861719050708080028438411536651201067720090928992455622191789330276821728145286005812149079724008194111960950686402738000462887704429707794144355899054469931551381393504308304545203132356591589824964671083666714357495922164571010348849995684100748314503707283602309025235540242164515267687397199451107183282276837894990397284664649244820130022702276009704876281102992458795173908303878258528980810761365482523098446833383135473838749640619246472921546868579472035971345193408091899329917736761501659144889257967509039166265273513147917980860537561178289546101724442500458173656208513228086391013561436290447439572372340147074727148231532129173271183685802364915285133508230953556852844718814762112787802980366443615737798921772086620225288971887688343244341489181057698582653076769380876227799982256281087591544859590940666438489315828719663314570653410552185312593990423655563615521201812458680121247287415512717613710840872086531700324726706914170361588244033183995237669519843230734261698761705314270675485344016293232264754776128315155986525719032046496990106226892379531482962948446084835514947373403526440570798133441494896248316177296481610119081124264365364646564065772540193087261916062475575888609417268775165111970870500686340709487911571756739631295041481507736715860354386745554240122629023655361196364866565479940950549213961056518868745868186016173709792568333933421093979733889009101902546563021234228631776240926014764252534148998700939102962349385255290758864322552594020681355024795628870009469300623672840017501647901505115984445821100994458153534358077360673377782658227059252663692931701052039323387399913794694157482252962964296772666214923718242399981247536153545130179789936765822032622682406419285882812731026515244318796558056637105886004383889200546507152721125038063715593790393762224051368039591816275048077343697827393066109708372080694586591163925540893897878427677618039957450740293516571563011401456451966748343042484347695288133279234958634051265571758244176564646256706109616137073820518966444817780618814756303029845090955441000488578226057446959090398931656923543798084880624981096872898468678889430537117097649660896890883700618863903419652996217931137264099292082449388147691760649835615677462889615464828141912876783837854555677403595622173711638988158690434513717335860776908277123264715321188617599364981092051407754457471320904683459812574501658442109017235309129035429679544876525865732829191006976737663604054461288504438968729655718204208012359016668772627077380411141353008758088686607570326184696236179225073899282171855048181322422842840018046436054693845385736130843267130981028580903757230339589588597291113984727786141847040059075978773891526839765221168313360574992228375141072975768643045236789409367974904917729227706614517347218339427043349251101467686424883536578701485650886356330435933301356933827216624208694000855287330618661754239362611606554394173239740955996936579393290628617549022221896038381422748082919103066885518080053489084464069488851942868860866437030631722906243924587938045126813382781119999959899251488344472488721413962820885688210149343711541027976516506927885197477866441874980806426176297896129020862381136237075871841984390162109321989873036885512019271357958247321006210870528142709670101199731952784460726508576395369271427857800540334589686778831676164570825793070299037050196004878309686299408807288367012031212767445547198811554284435314290792096666572105268977626011567119019253324105596049842837968328013554440218192277258768269453138590267840003318092668143502938873961510524885247106155244488395594678502784774986658315852854125549062454180629158513160150223112567960713272764841251544639149841180882210672088420134941627707022421522229941249815019150182402851209423853495881746344047568250642841872736550380474724650671651875161840442573238179602652580726326928148724724042374728917041495001642743428368133448157899466309336253804882884774876244373006661819134284309856968443221015171355747976169585504204980775518035957073271282725470855819734043963580940907235871155826355948376697526759525719687236046027378213608230693099359668076754998116587299496325492073199060516798543467562632625435910996684622281614671516667895930965637074003271408755837945249879071812694353476206848419460321616741691810009847951276285663797156296702601041525998737709145928840019674531046834357938033157460872562915159650906888873133948283111096054141315345315893095944717133511923311883935448123271278979600160354623077816736311276258498284552372283220246898919938561367702524841393913917898040961721974043557793166173861415190731055927356628827157026737407764364172362544424790115156419732069508975641198951660276151936541816448365725499835827140258955387474844942666171533675283484325340434001368458615212702791453351471495483644376208327874638111740150811401492851234526048523678339868755950644248793054889920261281987764218549116447867506851196355511055851498328684778691221346562080991863172028704916597116979025626084575163341236039091646810054541719743198001185581236819975448333377996195820962274147911985754144483886593711183986038058532686432027041067382197076397356889263292353059649596391139438546507330039162994434358836580507221069097674010174107441160468862067907195585614671153541239966270542362742852304116061608360548031675329841759110212916254025103859532211692423107074970706976591945589316154000086879771268575713558957695059672300037851037309502060111732561279118860256841520978830954803061805089623935067485353209118151262221090336256268814658859758963940004848909668464159104558724872793410991763030722313501160963871717051479428514869897752643062660580463610303415398298831610035134399307723155101484223651081593275848032354738211886144197318165131917700924446139160332720430362912626640424270086866037105953187815182699364755115263338484721808701874846392554007869907854073307357082986781958092756258549551198353561761629248368083540154465526692749912532967652506301208089154154710641452543400431185870220393161708218959417868862607072030210066302751230012281033167329064422107334100824014161254602721307225576944108279050797414371944450008581557123119265010693855340182551793826093836596196603242949459359358118575673547649066295996883390103507920447608242581917112773269266337383102429031051448087893129748080799040942273951801448199455383245273011256905930607097591254419284036091423673744729841293094512575770516639206722149211612227873162248557994949014412576881144629669172889165664784739777653641527784066720783169457830599003331101854578195655180038323952443180559172655021260283810285110900339613970640612850700669424261643297423251379276215349575779366211722394437750560940242689515148184446114321929060890463444879008904135767438008621571448856799366881173405505090580766901399887042320273496566790549388609045950948116634200564912600350512888250825922324327607382141062847229167566882144151172577042883027504130413107378490394015695561374679427404861763429227994848123108710295166579171682404437557340457463447260641243526382291081660820561343917120025086133163344694811267508936350866092259980248730306032696024408542684621344790689869449056325515231856337386293633141241401562402690495169364239693980634320753906129417588388250439331680944150579680434534988977332466052861131457823019515802486732698634971548961802826083755783499480847074047778950586914189060195229255119501284972109461232690280196990584838330574717845429412639977358517299327513016546889719097552189658057112402900912970025389322189696609885111786207798931818758831180020815519514582639255772905721614209636444335027883388633506825839077950076990414276214910417115423293459257710480282307149659333038242884949054441996644917236428956198038861836393400250767618877948341927368586285157231477954438623530868202476733825724069950342729228175692445035031336175143300803711571553655814415848916958886240788291350424273598252614581088307154645085175129040509161363708614930057085895308321374013231172731656338004100977150872564381095326476289046065661460962859783634483569748774028064722612284352368984362361514906112938105527936748459634856743760723963672889174410390472163121359192801864458676182533671890491255768307524178341168260137839065705279893864951432374468343291475703968852802330812154574735680773392170786223292287269199632308522878578564631208156743017080591854357777853367131002654549199372629672982298321308604898842285904954599144210505835145419420027671174508324747482102653907107580035978686627460696818963162140829612384513381927909614690591843669889019172893824954361125239908432000522892784686679562733003067064839206660739316558160831799069172221682030073780766351975875946269594010077380600226669502962634719371439868040371677859117340302146759009345164864864751840402448594224284471810963755301425967127909889493585848356760616081303924256980428854051471400847891717599542812243913631197601441478375123695947659264543046417997388500315640890864156014281021155058986622849895211286190624999600302398726090021443904449727290401294493403131703971853198178259170962216291958886864463541210342020144521837483672305815817455329486478101017626024632240108869852062827598734984748549433553086779472033906099263244417635738730791857472679010931673183850161039073499683044591285968800892391615309680649500263375010844233375468162975138164660849111136890084627018893793743527883402460073639752556095758687241289452250114428376203995518930923442809796515875213872215328711982068033202867739478213133462745931902841421174892057114228317668581453665030930285148515256914264717364149219845421212855476900039074387346582629796281665196528600635192013800016089526270499150530563113482343231263944542313878386786255326928343407059554279272052942922875242626393950356050941898877593729619729549797895953520392674889264447156157513497323936950626967099021371284697566237184482369629365270814921439031101608677937891104670192062272248994246313760899547460037547520896638863340198165324683738165351158044858624298636750417438331393539402022047037669994919165808935974063562581985516166730721923301709092766744973919586050609856960497053417789663445548811556227546384906988850449553117492175062993533860782879438594059607972978467514923399729321994586085809927228581276241339753430356417817760422214116361450631782096569692071204366788465531954858584422577551607394257250562592350022433120366623856601318284592100278766392912684094545436627889147553017551730417693815618135328918390141824964871830827952766333492978695558236456881043571611807543280793357892462498509188332780398169873672741902208984496335180054863539743708215804180368210960261879215407396737748737308428804631317246328185975967120766524547111902551666126016042379049811880088205079784331509586309529193178887751180337312037177652101527647967089097795875835443682789541952295223630552356344105709733189760383813753970810409360179524418859590762984858585365975955861962756579666688975521502224991910417943500636065737835544255062005209341299461459802172882613061075186259559053188826026207960274018447889420020532383857916809487190431913367884049503656909575004351594331462257975769318321973767357480111343718364056056889599904282089698935609831743662931453297986583195051663013941647165675922674084128487538374349935510309703549391005467668339749821821115038636766441232164516947911604084974979987264469627249791233189482000842960362916695665082023793189212104070140282403478344754601374925862871702835719499742720796645021028784833310233598952526763443954234812360635396877793467019895060275107889745277096605531896855555840885204884163043161123210150436679428323879727240282521543511764039839567972955824087488030344421566522648699301553218959152720897571368630513556988562877525514804344774793934982506732186931402653478565041707612024484757696380949688080219794076358006994486393351314053524943048361667588519472664393288102704124221477661199162538562081808628010554969022375003389354226713850003279657218176561809240371802946331191299121176216583819323186173453125401794658579709100297725607461099145401363397043122726486310487441184724213661715982935610687260934505374978214127864972444465220503874250415742062035798129739402550518042348337992305705928032794667811779898897612290862603058720395131905292165397999392474530390766525392318630580349378026772186579122805164775780418612711349446937273666266680644069961789970594530075436048416375371770791546268435322815174979721988063306363363623760491290113071966003195431292149930958036572377325634591444457657911615904244326962056034116912331739002808192692303415373768895468243138218998465868288238368418951457115344680780208680853649741423575416714358374420017586812260752227495402665568088767809519713546999960319696461894947650246438015269377196569359997563734287818093816214476271222523383264437311822125335948502083749052776912484692620812094609604608536000082238558880117081421826013866952368304747522447031429247840856634673710284221463275953738450816666250337273415338013013999397595300183796169789747572197115667354927138717147833900165354028638445309026031066615973947444412059946027424318434898380057818725312260946111734735325724549755497687004371361542765133786232938321634587013724525875579426793978182630610310869397133318468754244746969861124050564213634155994767797499496547946892720154443394001398151740729944329781505025121987587717934118118710407530521375260670620413790908271086499728314877363938998881321989351577175867007806238441978787985365301025449214305635367526185309992645795874582829728563473859500888575586935344261404676674460709770545715872568418039821654044981929479614855485930061316972802680494944530212633026837345918628547634779618183333234414786419020865464643616664748370416390320506436666079388581024401038835149000529419503660900306306125203070577235407445723018771982464741793769769087070463312214409068133396275114467273912149098101613740468304763317163689063080425652545630888888325545760971477544602353696634979750630865881312112101632973108642108455210631841055486382478180616806346447496394396392228593858861279217130321270419063785457483887260937503062047590557752187752852530969402393317416292275937109988704079904409390561157227703973251236989708857411184494131049968237192830893490220890944155732077388422821950394758785925007735815539894765561804738542620817124639971819317969271619060199317826914843158333546153595608604586487846135589244600361125818114595101437225970276314285896738035011926661899020443179527886161432575328996763626026888061434006020544633141435791016142339859073726249181077996215514887540136532527148026098254499315451158501046932295232372670683944108344912307047897125086478862320931416665891032072111887224311943299831368825403751610159675694557878407736939108150695664039717821684500871295503779823251672889410494189218301913503791495662292793171818464083757845735814265425656719836215759197785268479424134089645394217548661847464416862444804873454864582620405893148667042185062491570663546225846585969421838245037274522513821371564086594987436213089126894755362048557092820496310719034611751323367967013653277150453767817503661809115856296845125285532429421849681911452286417762147004743414021230864823257301092511366115622673106563601456290506162021124864335368779005574466275121791568540092591461355057572879388651742145483489918826500807896835730750192310714341195289024729290806458761737561646936503119843771903637931771114259807211454081190276752210057162967617407266282041887557617694798269835784246766790732519697086732875162661789948344515481376788532523038389895485877432373761877815507615885075672314593134457436799032769618573952083026489609887533970644714392749879597500459634065378172704182131009959662105957086222173065479995693985197551289325534357900388685733055803743275861990089714950058534281138393926476737253599837890893916813022166715739968849840580767940106346354068657807886605382479129185696334458503943711097048012817482489816967667963953223299728319451341373016819945661802681921154145116106049243039760790460037809211867039968929489054570672018949965666583035379921997425801912767692063626798054714837244785719642624523263129649793102153645051552044808845828577956886924442052747755951562307574616092111057039971459384468949851262525629641988991866295729643446094613836637970453804163468462940994768492253239698391895582206660589263969394253855908273456083001060625330158933759604164378759809878430754595028780246707235165569230968231150777512655661170915405210006825224755964995682612124289028740741398951347236947473190831687571710614478717244834448406696130578006126968891905684240711769225983269685380886675746240078067431739101554633858495054250556239295745441356254852507384363700440841588220697152174173927387905505720383154012660112231410844479853745647289865149221284200592827883695501924574071331406829436020173937432024706600255630936179419700408742119010436478774888453416976525784986797468931758045115423411528172107596889058742679565556220181600482209967180560527014249564417415593816902295077945877597825190204609703949273977744714019130932375055303274554932837511724911666710218057869384536513127533461032774763496197202237556445604495355141590949887289723109947440909834408503399198106390008801987285357967911148945745147643950890314454478439726527827289564210770867181787028718516646673212261483459614753207673770386754382763668855462218334021906176008046617446243413854620396377664157889984583766506141685674774978548112024499872678739574645505674327224791229999678945221669369714978629596885419888377638592494806641167441122486602994158240342466555160452980797892858766346195438787882859659879636560603247741087441002838271037700281433512685527118677242544875979763905021749618165580113121038083985235145416050284250039009851187337143668502974923837407402417598253322353604657851158287493730412509461731179053968697115865532014975033611675256113020105709455798095948168143041098546329023682422889969968385526257914256891258688771924002006686135280420269068579450888293965723889481764603346582472950411888562316972385882391647136451498966392723910429012886242751569307431844845971219089277194703950023638164020679028164539669515457718027589877448892848694145620085869859394654435908127762380016470563051979838113338316620063251892244148867625041864182989539635558418713325419125228723271128504881005515119923717829108547349192697767531608981886091288759270294030266596312074388171527644161760646770269606219576112985734414964109318444077877079185136262940943605853170063389305566578560260019706915814017655520932995568700286773994463272120297725520003300765785630744762871676956669752469730516926219460601950796879129865141364887903856666055416717396917555383132924934292394391511593939896464503628029799994302274963036555382252233048504807134352076389839564982281816480714556043802838083697071236340476387014109777718697236472532910184873534797694746081099505676738548457506294349769356727023009587242813707651874883472090917432583219539375892283090064878604497667717699293873682799548059109731416108870870035057431174639313309942038677087618428999791130791718755767350312864102353328657429824912859997112926153078763814948165143235545459305650115235527792681439818618367245926689215246666382447585865565334430683107596216042987490780088360274719020895531451178289394889149858723440183143523930115690285832394788911854479270270338442845518677921171360536676528184862207094078851675368951043440758762096849694212661299900493261684861483852605601865071749264809390855192878010250577855756532192076715744300000880208851261788130332739779470606780468716850590621975683434331886152674820850792655087631001737041594393970650395748354778684394879553772189037339336606434942189655115458584847741136725974136123863696132021525824564734005718006682413196460297227081400714523370172162684624847866775985333604757734040863305610174731355256331221526483136414156997240166202047965489177856419912034416987828281026327993431822926096997675762712639562428458779453618673886187317000205514537422516935724473825656530372100195797956453376106871363278732159400423493667887596835877117181058033080898364211887301655572111180221049170593458636443650169181332292631682955489106968976917391582539787675957341995977346005199001422523367772151958811735335530865485553086714784803906745611268090188454182205980976999071451313073920978493155895111574953952970582093010840053395208495060955339216964942498422184782133024530127316840654281191615111604851192256818653742578412036034199953139191128656913748422577780365675598471757638613200287488437633364911863039432233483747073715617966680702431950901093187262562673638548944949874307168242698724126372573080032324085181469774731307390602688533902328456852051565850371918087051408881950168388716634009060768980685891199765747614334559255504528243251715143646983965502222319408415577475536446966660119619423784531616064803041648850973600492612683979334297995165883413290373306259399433959327436694691635789958601062819574576599870478198434836404470786445875226135275579569751536032404487398552363743152879668023074651901585298558290811013913341072676022005606519692602344990427023949775871116583574201359754113663565818861477413289344368504685004773259083001982508260123698631182796802818082049319967095001099742642429404266482609638933463130208709075173483354532018057956541511938110141978316721608659189994341082288414125480317784604662458118976940725224026643932338589969740423387742958479332187630599712994752531287746415155464143176166233902790052786895398654615169770141053288901080024802359635320207816407210802116641570792482101471241509829944406390255213965044723035527332055743166463514245274924318028030534836868588890167506338375339535698656344645833656051213323434157706512226538066005495285587710075539377861630093966310174897260282420026202902595388470788555799480298082927170085936433874451159797380173637674436607485367949286097884739820740987533578925275961625486223442119551264204339918068558990451839208734712763844256557418982954162240070560215374613027871925565405263403987619519524660399296691754803625319620912898583846550374525426066925584455715027507628546389755620786117677626578282124555229570045144289745970988318985715623196001004810915549162045341623030986937801601142978476047975712984900074870830729904000150574882371519024102906648199254163824242035737349679712972600982889263166367808930074231620519328850696703943897867094638673470803080388461529411179025226586086272078921568677955155381387034152314613359649568570804039254166834480590169924964439040833607001696430796317572814161908566986292997629140974479078188392719439989976651713632110404059016465608688576694071127653168207659656465565784863412980579180285581952802020989143085015706601123007835675984507946632023433004138687102125464359582620608852344033195544948943708651606517689933249409973348418412464886570900577847854077559727448076493472431678420237290290096013738127294490891394163540057947932016480631669551938425195932076139336604537033431203644953770312371292482706093788220250042486346796435386646473420274505372677812593268888907955105716034815741442883662930543054329778632426524646949042372182321653884422279915016705250744596443773477547269785621328994559934525940163175406260571649128407677069927936038085945031971514851041004741765657781590490541132409067502715034085067697863496356164384292237024818669005286329471299356272359440660060209885063451739672662199359668915183767978983274390869589957610978242352328077611182751987116038719914000459164331373651891870372773498803923084240188089567031862866225002518126182192460206614593690046307245162920281029298762194662486337326572488009458648632729874970101468741361172707721763600062537675094389756245677286055699511770673195230297931738049152762893410608580460532094947621249371137212582806012511936887065547930721048106149586236116445622161069652391762107679614225685266467902362281761680496906622630321352456590942627579188456985681427141046844035076615833011712010982616665702518033126432897493399782777802345521708573570494190737004915371195999917037183172453402893760081691720030915097470967334267924111604978322967429722814339518342928924435433158712002789682924623061916774301147077581738660041705475853312195739852240078332094460654280990811373079517009355931038341561021151415145590865399242134403428636650820866633710813286430253207690406507296147025479985576907547864471999947563288966933111796377009868931658922597261868311121707177125617725143758450154000928061216133543366593525054369504597757428467921241708895459967305679019755334948052620142167308644409137802551502806374185789503767332824306205250615269364670058509366074147295941472111163723959420498348122095442532512902777864454750206610736252841594648770190626199086698020672556517914275965027686332814925372407715116312132892229115912784724973821230688175109223429783721079279835341542423948599554610271539844463481257234632422226655021217454285369158102924703901193923517101682591831649654741199118480357792017168236518335939044693713920979124705787962339323754342788634264981314034002132889851148619774612137756684077878278329067506005265330823379637834218031289950812576214055726826214782322690372113418580815001874302218695671260036704516257719799752147423352017586404788462342049844032036424847794386053067342744668458455443637771091000004433026916677746317972728127706752379576614109392939997063024543992662351435657607899715750733593477322318517721225372313903383949132101510530034396668486811499781662934195532402351002517577044433408425860274210849083932026162922972836989047514095502271103476224795369097439535701655447476986006681046586156148376806708836297230165282531185209094396905750140613045861881149792794495701790790585966877726565524206917709692077371340539208729871631538578284443255289250197894307415589866350427518021480703194398481251572796055760211088032312310147739569233504611737742641683778808409040569326036241930896486697646890407020356784076707946991012541513177442817478408331789382850891670152576680390458718731411927686146568925864547138272903939201683702033446988467724884307682877571158365321607625847275492611526815755060452730961606324186566025134431728168734160800044626794247418235069513655523081662313648319763838558367944174204016041829384090966681813946486217319582532484244587087505363278019647937150689725127988512537788037129895011474102736654134782586746499333606149771188101718430095106013560115173130407118712675586879523822954945802235135485831836491233665876896574109228868217983547150983991595494036165051333369696042780728725475358344587608746940268854853640185899780533898351627684294724549871607381655705312163451541123625162975298735460577460481051896012421025696309369212457460073080422866232401626889183809809824745512116108719220161436646452174084999463172775932745725037622469394659276531838779486462672545606680983965016117749472348338374679807996821123242942494750987062383607710267479884476161975217676367144616109845032241017516162341786311588771500669371890135427879559649065537448193749048318828621469084173213437511030902481007155592467038248817778401676873272738403309008510846267529645072121081632939403260164524505077763222030623987383052770220983149739660379869113735913499775686332230280878392148737115386734794118410290287655794996495056392246969553176702524917771604547990567715812324308593742605042447288701970112484794877103319080143133557494756610624480145368170708049380577844989142081961601342021336143100779129025373427392594120317490518162640101773435650083297643111154967820921540769794777463710200442824846051785522359241541793374704508497322276407996375630321572789634629211154171335425460010709283001475478962376563465632769702819405419635098190678256435652509246958847689790119817633088467510102410036574882692125978368918528943169030867283272411844965173804783605232009288941951498832041978598083994725342883982266291612745762210542458742826343760816314349805745274720164598754152136147402397530027530297538758003714703274376876331488196572957485188022998480934353211988024446585481337578362172212704093676049786556554920694652540536057519856722796700319450043588604255048220660230381767730294309885266357286168326139134203722567615230005416614158405335462104205764078536635611747671450756781492554697469368763718664878293561940430092555758979920952302508512668569528010243665097400026323216934955417704530952767420562518989230189708259341694240266387202962344229752104292613668242176484430828931611041200387133492596426903425079077207415354897176423296397645823972594162497582426619386409728628721960514835931962189462546893752223454364261234827784007218998058969652784122737394378128118298290891782443472929468858637849084544574368061379807500356821393095302358695465088197309572256964435630994992862963736687663483225109548522642039450236391855993028745718294627324921669673931880675731583086375917865954642134143340720930904490557287193712452983241727625292857260467553038894821396458111274060717977642736683843668038275222773176388185394571216884915943718374886903148085807040504146764495840692133910459695105755889977284518137840773549879095975314401945263551895624838492983006274613005218701350061614569159485987842864497086645188074971075858287948342611899046373120786323407386334630895452772127527199492639444453393590657073781684195536562945245120901565455679653436629147129349113140858455364982253006220862723087584025698604240282151857955242198734451641315345960825988122425994882623557266229276932683879280068553812963810782311731576628600447038952992425211898715460865588814820317641843872314474957529675209388642230034118016507290063730380101861929608675143888595592267723961058400902400895577178381342630142928771064048453084026810093338222830125937346700379314509581312462889729365556845212829793331306883462432961819691486285533774703360717830232933474052275291808400776031801694707026815148680874455667842835217976695526364836974653866541777904576533503336297311243456498355273083836692759962249006600124023446896803133524610822518102670163657284011502518319121491499199434745127270331603643457192740000120226408173347664210235210872794608849219069425481205517547715172461525215699457948984277132508678996555550702820685827566793094479196212959670327125607696766589306636864307760772399187435278394637793786463455933448076302477031428609249744063627716408910881828619476553547018270608321890801002027095398453757166098697734212998083186112544631404886697339129751767433115744614326445779817789490551069849435001409518023791279498777853642943780338166484902053046403434539253392868942613640773513214463225974889918431668429079337686109002013057191141922546168002508396313626863534232882282560254383773463630892861748696952119024431827365460360134587693614601717685593607062836767121412176987279562874746703557696268920214792293759008939277624648575223566703372931683704333517103952349051143497599055434653061616826503142574230805078981857435658467034817271829156285675200631985069537161455239592772258285509666041576700243186676062775259057490561032082493357423977236967878458737754081871717537647208819011010853653686521410486802316610343796557527077000791222691600061016468259647308386337683388194576418058874488723324112533842471184720386697751951233405475212127261924417858363419646180567431997354775107063965614479748493050945207328285127163498317305547831006205248814813980486637088151752917839676844479331820265500945256698583846122246789950944380203167067368518750419426806099474720859850615105506121658912468166765576381421859877977445271010204313435744482068087362157452062511383954578289945061515790709864648949696271502058928148968493467747939542956308067164431919560802153075650889094920571019514356570337336228114482399565945064574938098535416888866694575985001857703512164983750705769187811117307246661253799027461648098990588973679864822991971483504324529584425130455336268525800362064552531771011748281786097738577675928558587807950759514414259501905999347290523166618370408760722747240457268220999396692467477687429216455989378975704416316282769712016631621845617561160452738630962653137492902006009494704963380139263665993926935309000886885966923717125667136623479415042452877910729196090815494896392410144529592181632726113163458290935308432270736255838853714655143815268468941950800695422263374726537867501512051112802485583758820335328598013471797226620641298780381649892170928939839563984420479007069591087684741998781063459972548246953309079707839612496350678520550371573283999199930009049986580374228079978741311280322174678237205440297588117528711762321377137834791823955721383382101748224914187093401281512026249459475672472681283726430312548541311077251605436843184563507071169123051394947006682916462766903004117776936442025380556247002472550732549789430596072771012670752600499158021281490691844572791476651068769717654787685587002000712715317436357293154338795388264557431845182966916081824356629530606580680739808599695378796033937163205550966621631492054113902126905330646769314838583724985170342366753352586656966250628268097863975200260720153880323769507807368162474343268739884970670006707476259042371920017216825242287356249478994104988684037353005839141730865338676752284840937909967084077068592522616448580287713591716821233053589188740590813707437007556015596644258452131062175975659744498290250465171070110877516146379864593077417617621856326019995680370698244699220113906941649525231362507741000040374632000472696339446885789159545393414385571152051979171038597514303601631880275565984304236400311161482102401263026277333583664205878632937685352496905038051379622369164767811576081697961859799988551277706154120824654314167176998737742688378755572411707441692872530226214148786507938687965785263422140054159007429475540166128498247767969308014188252510374415912849169009548982835631486751594096638087548631211627603187753567118194938669730667115404536132474112768635393240075488224112518011855990896110382185635730920943522046312963183343384694805997160131356237192240334905340586882785934515371527990430019766208755396593852574216741794921317982005202231256777200897012534586745783079211341219081959694053291080205180396260404244170228529359809761302224150737366267269702698770922442793005657031990562384494965232301183500102342473260943315097449821862729308834953284802637574916922519655447441617560671731344634428761709470058000491247329947469694826113845497722852148677683118357695874863340985802458355041968136715040415968724365055397942007409089650034242539177950579030857810568461047441159412746517904188234421149840987614302705081879207244871423326843407349155827135989066275689581309742052038863827167507319469431687285417152479815067787897481684857130910409055056523227560844027963617728179100540584546719596648085974495489422423869643517228349289622326958637402708746150176927214501713069447229934485504222389766619232859397490745167905167282424140179650713380812533061176551666529610931223756886920255842794353411908066932713461798279275937328472741772414008894321231773075954270631461472861675950631912436234665011432987782794807869970418847050720002300284807344946466056597989199690604488966146220899598115705722412836571640392856304395762405127421934109558948903565846978457040271618558265568013000427352250117108280437300982456235750763111632621769622940369196369092503597070454825431419619810462293535736124604699090515718855388087992400941516720575828013795384642281570208887367721864816910315226364333849575402398753086253695330474925459796036574192255653606025371890649759953037809453559462456417554126864195632827013928515730289552026970996478059729296879415626368247590073827419611452894672047231127231409079912183239279462420278387973193141845796262628539976201534762316762652596742545319620405875593910148317437348680495069541080507239299731740380651207763450939378513166202978071830446169495704302862659005441466018844098224554071961667915391720048988406897144502953671634888822643220537366022986867951011918633388046656431790911563879811258909729143070326022723137537321782737252464040999490777302595118890806061715925684790577300501622276939237818791172715970097786564560685839952418442035548312420592732305422415298624777944315447789493729373509814426743193221930565462349195190552818934595469875417024376765941296132058124020279232156584650195453340016868678555616569517576166998546027169174376158070884619904637145126693972271530601370802969175550703999789478444927172300173912692161625460398601066539712616647106533215159139598617817734556877869835175807847487005296474244749275005205453992174775766943823643139975416816049071233548436664369429810420793791324290904472483996503790697549424687690582660719360187275491085014036126556281132703561799807869734815784880525275615586079691358088407908588950064192523584510644210706336979686642391487644920270145056657394423170644199666119568390129424890133611055118830614080254585378268301570549355426335003545264311845671904889192168522750460429130967831581764471194485607932277596029987050548542807790237166704134777730907470398689980376071013665020634989897262994507241464243396668472106961253042457039038710513367242238422992601080117984021473967474565571789813823325226005415779019064102827368008150385562335512258407693781327105343844823263600777502604624120969823734079607298898537906855105245304160341007599527880875563604430807941120723854721907006344064101726659493439730485602220826515189901208229789675736735296357823552725675452258934175896658074687018576502702925203361124939046082370767553554198167208806315564040982429486532959008511812777077658772044411519241215197964120551436884445386626172520140781672905972912905037750424406772187207020944720359166565869863614683213411698566253368657933506176661893102431047563092923012524702630985098368426802541138674250917483347084736712255971565427025856773573737943939749909003660954149588152240950120298583607536630707028706804290113162089298300297850977403874763547923239312896019863642325270362228143774213773231243724304713710823804529756157382303434226870883092182990022562147913314740481575640926670064105492325036175368805564801331088654537222207562000922538364230782272216925876188398905635922583240961823005499158065056002551441920862656975863783649844258429020220993247673009729945356555040447881295947589121865883851346646683758393881971312509231175221398126358694417343931047671585963743134713281628676836316380611520695839760529827887958853335734228397486940558091131289897017128530703357517922264193725580949492935735157935301955489547493241380367789322205034108137620873845901651080733155304727403642470298555411792910565001360140639226214288661365319597965767510452173351132706719363839975867171444516378267784359254761432019832464581591540310154600813249261899137345234175467309280371482198739781460912748126278999445061821623291125909267079695755680813285288162609306329325746052656219312820829332072239686822521121245438125423895301110628897181062700736412650419421742411347996848110704972093773930071047547481241062899724337250766200465992314147450326219866916362598325065423071623008512691956710276686749872033503660579569929332640930603676409829460363970733238302904178887461093404187022270400182724457576610940381385166772347675587173814144654912645746689561593909093701281120237266440315703931616947249466322814584465486454719864991064819424731473392399747637112347301580684934017758674970707849767330210001786067784731774776394176460333736151642422817654320768498755188732983561072866335834728418538599025894778958173271397325117267634220551853999394621936035284110929168020464381508294734217901525210543964880863346060221844138223076135384851904702375025652596680428750288844621668746316547879076235159046120175112090094964971836964868424124942157111659850817419413319661672059651477200772916602393098868901392870301656762375741681605465140763388072252514448283684004155334233797975455590521315406821455193481714490598250319137937432479261841689700415328502120116918664952406762189359877930684373047900257196084748483813518300158730519053837139516424312177119437289254511135872587183986813423182207248313822732752035915782238533057960990489709750790255346647690642829169782854146573965192014313104994306582820475735335707854080197643700719031241422231756906461395805818150931914853400073672458590339340439950809856710627487554147003644129582334590966896363692973360729963122781346771185521199789965316666779392673686177368136005947812471165579041336625320785028753938453526654426840139501947025514559149470835364910495779209881932543670964232392846803491843400654634492561511116651716848802133287568618628380550944214916701955791246926957576971317965816646384447672559927313774653283067701648008989162871992518291034611514059827179568775525152683734753345903581759540946896794630532709514427899457470514301218778805826427425258609348010008947505690453652515012438754558262655295604670909472105961365619034944860156737412343726004683372384356623034257074862887570109791826532386752077469440572781696148376557874739317639131818176663068304960366201162982229677289914177094480777898194799387294047396564412847302343204998026543258488657329438766523128075861873647141426496441218988763886509554851358957360976005545183832228929767089666095582173695647114837421395430549395976177695704174877272164945839452211188723946626739848590517404035492746527205915193230761932573686116331680392149994548464288353774734068262654699430535481318840694447751877708765669231192127882551816537808361184402293415188207300677232253754109933982340223629373337624522003675759026313517753807022738726902052484174394313676466441835498377694524892693236619949893355676909257466048716359163640936709663031404217167558324829884520859630184485087081127188272999823595588478437830237864017212048775077501738139119066388157590494599886445304519793269399436383833312364825703079753814054984946413801782716623540349489556735685174069567214014028765227672083631390108179671693424518100775482871030968785842724119567469638775463387630960871823806381711160378373802604802680299869084229101705717326659538673449340188476806264757832292666737000584723072063652276781099269222753796857001382596249705933732143058353133498301380241390872894457938820856445798884402330149747367434968827604704448937164567315273305382549443734607685841570566491798368375732455380031033228798366806855508895049380782944125421171042106016513094461776417789673277972782900794534256904053501119211494741386202203305423483407810108727504816967414428115355739027034602377849057557585051396973237156260841340710300100386143033580682231529027112951528997532360628382357320992270673400862176972998355677636217333756059973698072405166869236955705596708736031772529098787904490714086612476514713241987148069744703639995833654514346814175200846546740814554035868447657993799471471746471850320041470479804947927383790847740761894933141483408864189268748946053872006420469900386093551805213710721532925245472915295423752155823640293109231743741315885448864911799276114458683123005144350382907014532053347672636934530689982310202546504295237914883549673025710961850852363523583634444412780327233104605766868555489535080331709942476555869442536482692051897213742591401125358682647497437156109201743664269411682311165595389459920957037811856153852469932600041598082507081413762879620784482572023159703539855053607416195383523884859649871703195635524992742325072855083668674558480957335721151087756941633001163641968629012385072935645010816084414277752571924221663187919470913919987226527352570895349030169331318659617489122547685029661506532939077892329785446235909430914327550470194689330867594207675116148011053571706017550653133820699043094528341272335496167481502337233636667002543781343039088355757068289665345583554541819316158933614188408518895699349814426565842050593436396890959250044843029005191946676683785057918231037546166941799787745998864022676332619232264259528932337434689375197814186567548135998574033099343806354282192073514107812301158148636270174325211699420866665465120422023714403356888617804150025638671011985391189754083944636122745965936231964889775712157150546817036827974882866013648765941701439166195453715755195580791498845406790831572461826350744310041424891754605821801216825975776931421662108312747160666944954817210116576875589970056959655720427291974021318991247555805800147421187777861247211916974100492415243506033317737755766779844802325654128084908757981196125010421973708272405344811267869135973495384077048514547631466919618375513322072533306765378112864816130346009832801156403388889516409878557827993923069124987810146625000427848940817723917473147144977328628508802159423045408617200573686127838440188267821269622363340129070014864546238290610488985552965911878492966310739378852171692894917477371559144911768877984293426150850046564883804277254090271522381026837340201619196393701450094016734860481546932089056199731915369925057380579067536936906123798949640696038844129309342159087940689221885278023493451746934762458977556850619713191607137156610414669618931504001954453945014310194515571968499153983820832500079796458569808157250188363660047000227153828398946830293048683247656858048598145999695993266415380588118246953161974983238174648967833946170706855458299973265767395375573727131313083639234380315009138540451294322768671434127065276202172817735742349893982662224365239451764416063251160415451268650891357732765273053069453536584327879795523328890659836811423354720251084726909071695421816253587990519116868537223599523522434093243770690265353041518668918371848419497841690413860920157781962048650332713453134088502006713196638693202226768735591197418535928025553508265994322414808013116995849454107892050359072645132204420056158470916845894148196151155799605641713733045801057741416510506160252112442175944750856665986861062725100366353421914158731810783372058374729786176687212242972434004096092798296229080775681382354005029727274830252102554852171692700794343648004476831537814074396265896126721072777918459216631160624776488764835470928682185954908733360004775648796827734671085567582302383011279822267488997801862338040187397884460428075746785437401003382865605185999210333446430437783762230856975481299616661007081711492899281933367628706768543809096879541901674460858167897765636451498828144192620518609064456486134727459286171434758463547463397916496601504120781510298820611777331826814500586085938247394259070852482800607084521282358102184285314459839117967014633783626637753996038250765649424405065625405526764850234238590118174252804096648340716259557852372369517300991904750724546120023108896949528924780365676840435079802181514542077884343111529280317159735047819828520843143251707782314497480678721952639145369013611836296174992605760408457568642171629640691126680556040942805404432900900781913821588744976813482832013711432403990014242939840169411174674448116901628758846384856963582811342433167748118540698390465100419468554706000912079209328248732128449421668384070601210807894310750696076607469389916691672593106623204107333156242100592382742111675489498055535777966290363278684385526539458799393238698287638928223342117775408791459813095524180522441352624109624316362836523241659742758814776511556729744280163967844811424715207883557674063177078578445582109613929324503092662512444812273251296006301456126566399217965424835513862441395516351188028844943104652514109687975175320700822116404431082565174153260096249906651065830963207204777386583505215815885900982657695678117305983510720080215293261851257616489258213031424883850010911294738455669737920411513042121742395452620303822129456465224469685663520294667081452507955318194063374487295223154920682716562939643117626806271897284215185587631838023981066140831293240809990385517077719027874701296529616996753028326700717902134019248659891975550896599446197128520529207571475924093175465304693746934207531133186151669191390417798740343883125092146149545761984039593932952252187245430303822294334860665625417756106248235550969554956299432900942711166311913232398278615331905188133240629045893394028723251038953503711935979365024486415666169072296726664033628486100975754041460821011925333227815918083699200225177302481090357330310931284219451000140138245389512624710731911657493295248578960941006632548762259056464839814846643009958207267754635126186073994446044775948571483189603187602265258616498010329526685698427550449043544019737028301100088798866842269002286215348370420220441714613801393043338004253516321255869103347975458277753207668439142333899556578608294834816046307747907778725567159440680407997203725724682246677730582742477399066456747321082327449462716242492430259107344963224050730745782350880431700291770427458126543572706812717376746658442280809618485873946892640227013715602962395662618043306416791991581562500356792447179247792837429254989299813438544021355095309704884651079522885317545055605107721549377011124318041165123065684007150003641872579062072012907744492896612172060008261993607935934091025343166846031510250789979653179094947763085410571551886461294136780875641457314529088220128120085794713761197920601441921547383656861378597231443039756245836640701066273330208285837571430904790721720807738392385384388131658593994006718546525717882147672903510701528007030542467866758278217540983487819369304650063944152523221128492063946442919000566667798320442494739011037141247672535488716297587883298006428274958379753002010058137387472863598353440870181072906887792496297934341385465925825899946193953445101053391386190917123775580890021778770032566939273337116750818324466773997446347012093174970099830396761718436519935703186800304990050498663624516843825102443519154905886856628599989061188753503744892358875107294211341730242804742219028867234102137403655341083781650750674406708615075140797317006888643067305700005216054194932919979654893821411424868488231563060022967095692915770827007409883805601010714553044086300061101534142399886614362819698648059388617440383920329364554200489706685161819676215306323701721650011414354067503661400070811649024528697149509863117183174146672707683928947544104375808088772677607069456042005272639906886872507021776532967041079826373910396615237181973513380854567497185824103462414265757201252869522348635741616513021941526319815070453435055517059460971741326169799986325950116284731238348938307751317976233743630419833799759922215168782079115429552686005287067334102724168581704555603139256970435829917813415890291253763109385666233702184416158023966028055386086200525582366179863325484601699948996088165951191197385626797268288950771315891432633673431325251652906806072264018563337147576413267522144313579675493783800252786175128648709134909500022787299810184013454476889496791039764908526432472148104650759739421035828658854126881453258655814693972184669415268280541838565692725326016215248770607728879819079072151199134154081398113481123551513769888245199331694738329998010064573895019028511633700055844731853992103778213074569016528392127703585602500493959807308767353378569131053305980750533428721950866336098749491631771062877260624957742499372806866858649908407497937809426029017000705831538504561450583255289815329731343521479336671365308560597625386129050628501260146532991615123582476061368389583075237310482180806400045175716009563020575046587101430500387679570332487118832456855704541498532820193664738325981857557854337068496038815607586205064219100068184596582751192704401896188428330509176985526183464862992551754611247863145570674808148764477600202985971658704172134593342985046478270840604341205516019451676592698287424834318263980957974382085280543543858771152969007348018927128905958405817971524136051578031695397807417912163611102526705640107015993610389826651057555655766317866325249817860488297878776869001856337616280839043967392817845052719265602463290615374087921770411090420675004898603693285354664628636871604441402947132221805084297822367072489495806269525623953326548074270171506102985142875144047115943668110228808773603567247711183512930631776953483897742811042859813991522947916939345658793759759680514568130512802493002223923781702414941702084561739412415914204539435337692340861719990354870277116623115382293916750205877938544556014224489470549482981198538969974160278854628321986250213852378664540726225386179410888192289016640836444101387404679762505736069474723115447876117523743944040610488880140833020178835769861499929147652879340771234226385463599665777005806099388494716926910148001123718982376953906268278179772637017691126767249872436491935429406069438702468700590985453530945725345572421591594686965993061018633590414832909475198153212522705622767510933627397448470163818024217858031305827318603881183724551316043133735955842088747433481938354563249966117917030036931758101909700906881770083646593966068163411253133514805828000263482390308772918994438875804772287110535527092232039634996434492141514701933298470646379658773844486229501221680498975654766837424308965071092392562028055196716428210268174382884266068331084585023316404647001070728130247425706500693278486984527434385883275246107744984740301178306601558421706775061694169793066767628211041123269290793011530641667488828210545327900809314694155700257496908701732669129341161766890502596866152667135687856346481693575499192906407046542819384196285070914952028958709223078132203590807473179775296305797995946231744910885119240852417874921816571727819480250396299187262258738173636586112770134147816870482156881691708688861426758506739417309237064172225940138547898446599903677148730785305555872592655018226009650439109834993241325991630655298053912218586677827475950144932242673768055291683974029169242265483082937138090125515286359464204147616023656993574694956774400562974529800131225033015312220078735891475310330172770774219355725261802748762353932351955348767569225916063982545290901081100826427434926728517386357677025581735915135565436670694697545358378571023829468403760906161005934482910308482877592148198028827978610689229330883714696980513105688059575040436953362799980363344101446540313052701111240514486272141546172300382567311354243911164624724158052461398867705445877654314754259648366062366619075135645129132442937501420542280748208257456975154873501077560534926142542201483680075796893641881660489729851477818048536490247423615359002755033153092209797537068214311394169185404773735263486448778405122586438255002995293698307116916902168822240850014039063856942542946440086185480201629608564222481421048687475013146758178420822880372584160139783599345825370165252081867652604751886245560808477330076878718661184640014241908145133144757758111397479969708690452153306903740924588127775139579169245608725325196685029318255771325431725247965738975599670114152305402911366219986567402438812106062954363602221224598173789575929972634233809566622121695609549081273730945674739228243145111718802942358953693487330487256278702890593886827004310162006125039920621015713499111145949306761137711401095619765687232572919213796188769312439637459352650999767471469579705021771993280939890742181081480679421683092557259127023281232009432111185310755040618363699468804453566515964361447295486473024846088572624380217298504152219041992777340458837443832769737649272241518707838482200180443882716091019947252762058219750365318062553900186031677167980960508578608328389725267338165250633797545048491807412756450918529567508871732101885273965505010824732205025002580300011325961271948223935867422464700630769505473362005229701737602655091962568206272479762635390518278690133914014455159855772750256822581618658361420543010627190302570665614815502763645750872675769036180476721805695281694947485717927914561906903139516432190101834152111522654763805151592592288789623424073873837775863191522754126855377527774585092604591205788222634125763612179677871805213794740002730698575129073439323402776406918454553494366485450985451294169019121949947575198949376506270922475134772836284722454407903515477985001967013316566010714457882146485294539388842608060801387087473778620258372821204567001514006554681558796430501252436282248936986181737050901457416876970853506386915049449705264248576311401052031671243856468154859789658203868087268884458551060667193867636850601088617031489477684382588115458218407526551412846020451259270870099622698181345618146114382850662208800245999210432744066426672752610720243375475931765944656662132246763977470378908904720675962454984515305515464363926498195123489607394140163484694964463416751966950024527822233935272677883193048094020557953522009725667870359548170568855632842392086112208313395477860424296617438249458025979372244185140210188522490194783822545665319785839401233597465661241507525215563459966350216101604533691960863093870750210865150546237019545856446647755777259932034374908636069998377144790180385613634602325577411334500032869739682885389179619101699113704822353489725295009925280284682978451784652565522468372773149627808579987744885508236923745433896120294491607609960162130383464717304273144393128383857653351148657246874494471343659261757051533721971248210193891080588845867957635256770412377882498936612294426858378891986557863484313804582849310685046033647883763293863488257175136831552676117141764303442102100770972579925050656422010407179833129963950003892361801797520587471092330783628955164815313977361297211585397645729892733149204400927108899323467578832288438201471136916071346959816480753183879563719552190908927514824376961723282776279718453688340864647042549565211746305709002678972189529309949370390032731002827445961802956756905688217705453374791277070972179131405584533510459862827062245379519892857712251049366044490732509732465224984001076849926837246150235030206978498811615704784194112934103486840995523368560552036339813039801170791038209624891569373304623539545874931749756351921343135617669786925228428984702352151462596349426047878677742301968264407912089503251435182036530869598768663000903248490555305381416148063794476750998352555517528737356817267758501598979531415058427027003675855647319942436763037064149221296004076257586378918300876927720749679343929335626268525129167122409145486105248626921602228519811950128834838691808678653965062313105359205798152359682516460008941614177349337658105688051172818822679426094322344104672370109614433707740188415840234890247344163834124080441592289200215979576314978023531416194294024022312299818282804478085127583830720975758388869188591531752119858793265696429546717983756798197511627547732478722890351363632706177342272412895621212266909539229443914310309652408232838313893652867921266703321322352320293328918348422419399929895588262600936780338716133827273358291082439585976461485823038022553782658872231506261514962353907782935236905312736858156389151611962714363077885597812371786381330202023315151096869716527775145838761891905607959599546350207096974397934847527624688470716614666065276299561381396569112534303668727413196091708047185731355249664233158850615551239844461466816545394853184543505035817693208848537151206757619830403007673924979476748061962070004676695013561277405073556751503315525051235606147908833826131156799075613261203438154925418322192799303826733411702448544057547286209154198851737949189384332047699743507063642029913107271854029984665641001639907463131054253718989339981405452094974742710713343684000630293985839013389181740936263292610496338155607104181059048174436564073024027504516645719122774631102968924816445978064456619315625339394916690346770569337307942754484601368309273765580224122282535975127331771305850921858897004694080786509599397218826669998125270688472226803253226326416852529581184936901557201530720292018352000662529745569115533375502197107422819006810608758885968833227957943789848808585530851821540924270483801760087548360292098414699062250857365229265508356363318942463018582629733843632311775110040284194093880524345451776826907646982117310929766297474811249302952866794838537073290654107499102723354324871927073837503287072507248153181154142461559713690640459800110135874557234808536689101223798900925080734646854949286141899797324622986345191535260170650312176372993740861494780398170479852881672035399035773151278175072573501892668883428614785639095502922140168833521630995483004852960333589304592596913592419807626608287653303700805618591328522679239724726317534946940576569334704204638795168618775096850209001454655823941964215299692490783082998388643203856810949470980412559610069165002262395005766023630587092217394084358859845213631818487843563568983014516931086988116769504704051706164341692354819823542591426199417188752598936255731320651502938866612767677288144112585378211089059862545524638414501218271507010184123415714814098094654030696524381751974459897666336784964202754557201521833634982846875318411963157810579891381059292080986071999139335907962604482913727058798147878016072004130236379705648313971563901324139274938669356858243838662314408432830126266106128101691613652651328302577588982068699566446950344384213038611440868433122786046460111528834428145666435225867310609262758911077802120133696900497854804566618651699394002362999921424377113650766869669453972175372958464157061510914517780212867441428317617141127975539151233075299926190865811738895810377302419455947916663603322893829256842619761125606358074033414725176698006289330917901607488157723687578636600320976113494748356215391081596950251533158555322089310249163251647061175603598470536203529171145980824493538533167149574971662680106472073416277344486529307452409339758583919875023068128730441319565955006294875491760482581201453703373772255169403070855546604129777562712767709244577031502724515045363868447539252137497519697911473839767633953185701927846795543986950620953921107222634769684730288468031421849696296214425323611546323649940165545997410682955315222158393534318426594857158084519460407031742410749795725362693542087010643780091419331188864968591741108031187024684901230211184870615901455495509419416207954083308244609260380528166232680899617260115199842328967211789920457553206658024158209795962697120033314258979528627474214818955333754097646117915785349721135157480420053295865887548661677604729854250130291475635840245367799381472488720653168667092307561354318121832202858565302019899157113808231498375492872980908813576303697479164634839606792794592675228444410430984819101558918523908378498104218557794264603906712958867012419323003686609161295940063652451271174709809583832625260447507815667427489140399722908906589360496384673512263044668643834168008351710369684783139614058518935123088026595951269303997044541009471913239529505574103086646093606985901762362617348015530555835061968581106857472951797525410956450894060657039705222505296961031581191670387410283197494598680127489262105473510307246104139447992823208846590425127963315158254870621623554454137369331155612911878799568731530855487557666420469732078375200919764159428454366568721227679928362010148741920426079737210159258593520452847936996163511638202755946282408841703501643310738095102231620317923474116168694041986617899083831347346024763395313886681892963114716296168937479096240556727425323264475010836169404889033738481348860715733861244688783871324853188444316337198976504908722308065888475115602873343221610925810452524744295832016812499000940524212035694177203184169323510107965912155794760050090929557842831200987633441066852450806543322365164210297444050941520221696505304665996479224714764506129331226882144125685995619556756688391341125971920343709331117201129554082097342500726632619233421401356984280324341668671806619890202676429735194631932320392732309319222198635610496060208006565654830932934293019223903807707225046166046207537912990172194864353566935356922700784603575577064385446389203639028419111321746609948258676855494107031708897528698669949735906983237980385557838869119287444283708123740803082900495725261180217258214619214602080351584564330846690382014867226810226803792713333831989366636249427202715187839874022697152076006646680157373064722606422034040296885184113875179137745651271380794198561299058029788811825869007294794836234905155407264217990907512545773974770053731253057679543007316327639466239443717223396611593092206318527097068430515918048460460624377946858556667054088644415541988541382922818879469315028160395280307739789370918721846953240295930331964836042343168845589353117921795975010906843716509518753704818341474616777757020115393658299304369922148627230938622156797126067296306425826998558685589772157059758197966421192429061730005613971354436705010727065765652731282624362754471766509254599603721462041350669967589779661743271079421260582349006236836939226360136013532618829864507358940828987987121148606225158522833415213344271353066305151405093062052703725422726447657688488147673133983851429078872158138756590614999641726715099193172037727066565149225752086408866713862692402555195156799300554296402928054691872945216197666880090111114560979186622555380967089301026820165458127322198836189354529131632346864400630249185325428845454660337472767806441312131246677336542955424154032626793377894441943935429536059229994575273567442277803445776062617742889799779971779948591192630232432463827878616237374370988134630090120005300302681690529325702276915955650923225395308298977251678633851244901655682317084946808680971901536695514015929974402283904336028325470797410211950955715901335890937376090742264244435501059496140503348088715910991557974121527245198744222331050357315105783209143815443737410459877783511372932541617241925452201326526651065136810353274296441221600360344957113705178897354112575871861833264809999366996818907094468718105965673523873419339132302956768021762284951498322371134238544977192514568802833987307997479374092279415942262107904690757748204552364668118441825298230563758280858886755450635884196222532268837225836866411492202054813708460091601409806872833545555182100569977664102378957910290185250006240299797826380997250671560829164510125655586215384866730658662857351477389336347827806795965040306478519759998738367118793218972199208770295282855885211700971657361529696671324011774574460691352905857886744010950864591049094952110853858038979271376903384718041450927036342632217493462978430318233878481438994922560371347546745500424691364387536244825581998462630965440509354009008644009139385989872420253207419473796808975048676452008723687780088036342530523495129868246797013095219009284355439574944148916047282237376581898780705134457150497967185764625605582077496917305086312238883825474189299648601979401052361000698066204732879297060460834854615834867222325516413814875578404949723665757992611167576757460256627033404472427150135322188805951333701433791318004099215000698744685907339813079816585924152142645540587356503694104368510134079187302574424527186854351272860707334573028257378713275983797213907414434801615752390975812363258208488830644407141626401850674112042248348198630084113182248737390790321301836406846613038888708581916403752777791167284544320123671470920177082910284637810422326393873899503971109006670269060609888344379861563349069359087714953244370434010478354486208206269572412147417538817350858593858839054657369513158789350828656789986598269260058878491443455802140655026074885851088695277267069403671730905763554494518673903076305633125184038538028409854862951250738717385730013302992871665398800050899317993779257730442508148730036796709021207485876092655799364863624193568336774301040004286384668324874551628899312082252230724908450477106514693765348373960168456020811531235533734885017394199219675862917038473455448224397812278354357425946284472678945502903700737275808179169645672644243006611080467753563663238183451382000137719312396407937655669865924752922755843878778673502515452667750058089974233623075682827659774270002748310206870799177443790757895484500004549299836710560988656663878821373307639340726586739229591290994859840149569370991413280015846397544937992402511414102738751915192391694270197716335020198337817773694518569024036579970205234891012146554471083417318123575507377993367637537590104455467335422436616757145876494830171326808261322996123508429347069210650558655095579175236624755590545860700275728488198475926701284381781749851208599611252751361655206462873885335719264510807211269976902811919874455215311367531138162208174977126048490275364967853439654237166111545022236570913005979289692116684178119498324543212135689530720844737429832438861401220543479590855994011509124936469668968582597479289602768777511760903314381267649933555760509064281650239130265006075346441153629747902758370178150157514633130531506537393897567114991123460686796830460767953486814939485204724458572496544424612606476559357751331632887062392200975930292067880246085132016033739853874237863211675854216492445779722204597849883445986075651680498108190501165170675866969002506593393078333652640484206951736309357887838406979236641250893253266982878705824009492927687279307194509633547249309490426251541293280142212662667877272400648291812347155882599572980694785880895092064105700670794077217913467937896856171043229022927077697574798721390418141441917929819848761273830582361821921233130019970166348576969251379034842468129554578722123617728355065310376091464376911683414602033506827869939800185084010932548548291238637592882399979397351177944272343782998308022434887505870889048808194012145627362329179455061505447515252036559800423734798678612668245345053445686523174671591890265263523271173182347867984771793672562336196876962653034225588440656590697579887785132262547711661905184911990754324093906901884358157278155830626077117605167274611751668050542588325310739353080024495532535085522229347252116725585635026620137581721555741416201650440326708208850662928825464052348235746556557728262458331850955282686210524861224087165250062353037205795548238038741372769776401563881712521241799491381123674303944929319941599220421065269189438359278358642326491880456064598883235974496141752209715269466484463531379295543796164176653915493399279540083120248609983872673992316167665673639018390607278634867329637522862745426958561767566205654913651470124331311078754078756919919376359180591723185337009012066507720902368805359656450693971067190057913869146656046700547289845844341465604650239640541573223106310438605230726307896822127779437596144655922035743289047843005277706287092791763240321022998665003249339428941283912135002116787439856680643899206515454389983839703926414709171814319188911706802680575836029209849261894093750074384235378460855882762040601074891870152090460711042376575755601863553209377153343054308274403606066823494415955278089817111279740305141401906112573993452505744556238923676908970472621171472012999099397631734781387532833495967355148900539672057655691021571234627606505697073343730738325761226764645614768615829422043413315340852805400286014500185339047304824888296358500303898990531128212479793229979346859207655739534072388182821246603411016856742833382120387994828653063762930791215865102169209518291596023315697021753265531382219136915901480907254212658817534485060695572611538716771132526276080351008158189482557547205135913661417406360494271165988976179092820140721005941454492734332075961996230042090696371274149597976245649949774104512125936623830932073426842947328625553155657169722796148723242424261506673698131632057698192973348755394314960920071235870861553976071436536079206407513993716750599865253011075947457103274129900217900605450624960023934611424378721058591359505095007065668809355013769834178168523874409884136093863506991984837010919336365977010708080227253364744389343597582778300860074362236215276432690648016944516842369248577125136899570747086389966847967778092494630449469275187193147364146215520123012887043533000454058720371944243983781362500608693098841557250514309835502527527251521291152724826988270213728066812757426059001315014974063915100576316926371316992420953705395725245221693061309980391785270445989954762431313138299697792640707464885736957688834730078632029409992379479927402635456402887356048514721622425151177003666671812268306506925477363796503799808346846127755296809245174167026017272344964307103763845009307504078892977912105669390274155803715456587241791936609533859496005843468516765301925936402661640828322376944348976875625023850617322931544679058438672610631952728391593344833842292022527454272338090496510065170730699878117772141692248336166343804741805414738241762747192540533970819639406974092828411504178700207395806991002544716885522194677751164365311571306169609542500640353641300452206164074365709203967165894083825064008625972464548465259802728878169261118384985136032373779701942698645189234458688636666159411470252051802637508708744659882634145762330330279609493395282774661260672825392900716567791503273427863529995827441434430279047676644250132986075619282204864271056668719148188715900571889709035419919076190716087441117573214754144050487760157445845792207089216683852024824694468068568127435119367793574871406969577007032194078946980822394895494375436155522865700333318472418642101857430393756576573887489340352453984521229000369048477899868940402647867351204278402669834109534951273512293743424223606246177040002461643117645972473096658288701232439991730785047830278986939737696089588629717963727385109162284098683546413805341212914496664127115069364967358917684717409437586360117199027636520296506183687005892899980758131183356100197963360787359115485668167540231644452625525471410839337757035253594641424580004894846722388114332518981263124027095388570521116630404392582358603560116071020774345328180463455433822166727362449592112675369676229481756803263721782842883456868835505510001308386818531215277739453739817638180027813965848846255340040640186826107407954167605317011463540656520527588058635277031292212978887457469463223113976402253713740177943549487976637274947735869739833728145391109995222782364986727609044136839780191341280081982738578434387462466315344805074103853079870586188401857824138670231014995663427525990656567420950738474038692088066266735656384816191198824190882518567804100874404245633322545092314671697445809661048743001884108999761239848149973361070992729068570465463871301997907858630815778157362159240870227914479459452445829999014420142122855601333395839445866942277724165265915070916269252224267895047956597626094746485061815803139154700459697044727635497205604887763486736988172165671561717549670722826401315903167448405424676731664110626862207379188129870197367160263699918311875994516347771479756202221775636208269935791783622762497418471223875800038828105658820054560646151191343048034957040497328398409470144658134996209760229669195262496755516918195732574954727873897576859043834146441792394631790364125339566649698789758970248062944423170462660844564636487544301827517760719034184351363637668042828115562800904304016278210619427605578351069598719699797746248002395539507160157652131300475483410320170476939487191546800788178052671726469779935367832123760381218951514223753599730745434319547430858028026460989424945117118231127138447645917201127459122693986600118386221334450831999401040609678960658714771662427081082667452872046406677594679063965073499351733506881024263992304513823822534076645638637254097567173957436051666197208404925273436682253445086155212118623058784946258812448869990409038410073182299793865602249792660556839873968123262191786925962769789680895141235537090226553737042590038403068245941366545525629718043305985863854809395575056048724327509958183972875166460541544984008999034036057949702351153515132482634265670778097229532453277794143945380619247504431903915353691215334005325171210356857389172931890096406169714879545067101258186575402250343719991686025542796874273345165951796555738947977061099816879694554656444169578168530049701644648510610758931162132894324603115829923939083245464752832261844308446106482270992930920184525092316041757861169960572610902815514251584962982325722519440845422013749818126277488953713763936459171887482987203032406894602405409957111278452809399820812734583848838422810708545313628754822930743113733252438814274877835396792677367638206525811586327455611677291149047375812974364970707069079449888597360072300522283906809626290948956891990690352144058381620384883299093168589317598582157019023378419863249593802371728187711827139576666698252508074784423572809306527118259982121279023557341023550384216624127669582511565938342885137235254681008941028801075770699124919301583496948866832557023658222332480928893147634781428020715421322491853275852493447378090801003330005309593041314639124642879751376883775522521702241630661435655263246433428689012147956729147240519733723340453026572658749629224608763149225103191926389827851677107756703074370543244470867761446586972851503565180057903080780569347119681871068683312217541486096448453849412650760529133946987149975860149476594991819587711587842521347870416229444884273625945559200557655011678339568490270987548936759792734235666628835259763761322899980894456410539881946304998256573137664060856425157168047182196718652659274008249619437358726141168501540128140125559703306775623925249925876080401816042647405543547150633920752219327908307762940955719046854630446760004787262485195808259701579000821836788294599202455593992110260643468462795592860469253289416455814413640149994806889367855990674332508052545030441860491333137369847992280270106583684527132781129279632486114377781189438187896581619361447320914249697241364936360178265240865107213059041811239782188807370932926850724235225048483461685166493150978775582423858975747186732458792652757975766407234561597742850757452756657749418225579608707630573175397576469545227260113010334581380698854905488989554284072540130824069623045713141720886588274139389059518447153304718207183909569196978375358784789452888599051811485708061815516043155471358466007685000417323562535543213448385247031807078731751443199125151482477219708598312321977958266960127695087335371714924377511196776542110849488977352561595736220428319444797732120459404649990942260008237624855981368111545427931303130432272770937196633735693682199099998465450672237586155553225578413122477340870517681899368493018883668634220037584558398707390594561822622115359603819077131439665774347734384813669338355682633254691533892111197225838637411494913680233975020101452659449741756417613629762862044128578275953404408037391581376848487663546574831187450629720585800669569830937014976727277141232270620375745803561252789504491507335131592528395945891258774374337899317234172643494667757445323660640825979680629678449325271263222349266891022212585112674063640781828750523159090970331908091310761968463051090346374863596560947843709096433086639061227915501330300950682610491600414626470725107141438237175967196324351548626243119876944935506705368855696296904827604275850167475062565315463303089316730558174648258170438267309719640925271695473396898417641738263839417910662235159140515361698871730507145463710273357004443465963451254921375766101144085748815307344614882217633299567209768550146823824224752657598695875101830872573779171223994638170145911381187420139013260692081676397903590558796817613388279427374974164251754089959303677634535753157619512508357380072436005743145881017639495651805624145488278412670385056546701564726470744700681256497898164990672945024472228895028175147929151911346482099905469102236315011862872533419007511526485727051799697265711781778258592519375072342507305343620858590409186835627537138959663950067896957343984183616151399733394358473041445580719691800274961560729297102741412968741177276367589990101285648069385974885059761375562372670716554567902638296962866524417880461449146395907448673283900717509931107247537202452968474170799181156454875964963560249709566722040805531582944820822017341372491934820748367978728464712618018701524734651382660817645937772182240327720357037533758757131116715961456750979061463742421687771223871589035868111564379278243210636466445616758335759380944876670481662179887265350282509619760553340567134895000460147756241067616598750068151668755727241258750743498951739381358559264232356434466217073055523544218952401871898335185584598297880958758481570846649770517611596818132805593129775942299040186262231619304948956721034391497796657190846445698828143037003377325606304835528296440877121551096331558909835046095908597662144818651278242249405673329143689566872593666635466625961452719191045590142677805297531674699518343541743741737818384105181938153540938522057727224289067411897829182271736603601742269123883437241430059900130263967164525739698758793712667945127848567420827093792051957625145934159569649064123430468506445347190136012516151068322206218291261446322534297243656229400322194258188593685385066651135625051046581177739189336698062237335683040128461092090279940735291364119575942540522962017315716919725866915382848026979514871047031096650004438312350858982242323292213805436995461800647678135071189347728811969528920515834365196399098567394826026092223856265593481180511566923152805169796176232796382323563945338798798115586267261395856408433227000886851721605839882770990099056566543126176188084143698326998674600021828195761123512156055912302809707337187575769405466437356487646570639799072298353153217746105902122629958146067874433792697987158040052635694675366384595824175055866004799205176925218052840937785494678120166499604438808261305754762284665809518759071457146725421386882144588434366150512360178202026280839867265755175449587268288675820895527971687620060153413542411950240346316618540884200100774485456212907966738392503791628220318880538087157163404594941608709579135210362471360578042521205300341646019153880704687296770795551013546869441817475135647405692047369139022170047773505144114062153260868276110917150704989687688238062871681012505177719805909846597809396678468537971058051424547994221524478276589577675936464694731204601324440153265674371861641702632770517510024745552136766875528883138190172201030492194892875056529491849704813803388249324981221234293744756850022666487428720472935259399575452041342899258567526800741190618936983473512208279392617946331014217826961018129922346285928852566462942261486417745020559662337299724326493982762070242941550727984253573649164999807025988578718627923649302390368600589263985123209419632038610810353532856089602100471615400491650489818761347702446401794902819646554687552419107235875689937642000859199992116230284035199398857759809999858591308527955562717208960731199894639470620764226141609664076930018840434842462297480036251391103046874523536495462865645450706269440896893893577996089966597403609589809782305567440407213234224020716752834536834410511616192014033913708492456894993628623059531617863629050295824127662060941575704899351137491435936921007843729668001277098186221636255496026348313993701591093088623342330878931969599560595169248660980930662948850090119249074989743865335773701352659307605827626405240722215438702678679496279836492742196383418647748684530832101108671313784552852770722437097415721593951944501983917680746095671421111822438505821196685939536941845639872945069899372208315191752895851290443517683663355951500634506026470577621232965139182724583502686662156085172166339532972757483195199700768163513016910286824779508946759399290316343119275934715206519985677383232395269316563044323994410566579656289940523339020175009687150990062138774513206617373966334021252648485046518954374186331543150967147900474194920194973278081481471189688055589290738621342106117078678729246794699988101501853208694599097196465488465812630637490402449957032037214449006487437154919356504597427207078102227626541158048991794134779298749348762766871280907120457570005313300149585973661708118846463128880439288021076150846871888505721738084077364363075109340942210569097677892102809323446118294937007290295833085403949611900711572998131695692057533437082927670646293904718698606473894738530034678446449855763572956285041881480350482723527988966029318377037916055586286034543408007386638767066982591626289932220234867856965218972846599028441129178454558399442182612186364591491973642510463583848591041195621081743318261008038370406590134462584382534296788255438902884851232539419454032331361749425207563753601506268233804970791445174107616377561839597929385279096163810955595546909298588704447245659917435397234191063518889702588638424705313311711338559652079878352819739915940369553798183097182184428413531396809518620498315573925779965514405240613510834966821761962340824461556560461974155366801153607293686884117052124538239334833385862292534569189018459955883866923896034966582107210277647247520377489025400037121340934412391106706035096014632054856745830117672965166258947422668384929682420780125395486612610943176859330476691922558693138770386134354594357107573106742370824705792410036102555011633228105079230844110350091485888010270403394750786337259897418613929548672607737319373574098153944403277526617931058321194662694598698389157592498064517950647500710586039561371501914518348217940214119651067401070672958402617855206456808998367138592724314599735212527469929705097494388223199145981495344082734014271871111376747553757247749069325757840543160782777731375764002361286357636372126573522107789334285436826035327178318331790068493388646996075609174622783862299220486290472286977979524207438183057928750600445341752182959286706802947260185243918115447047105674595897603431756287652383343442194275598818610588582370640558003434106788333296537192176164495098629385587307709355226418851476421606396476663973753783210480651261809233396346629699983546785723070131025581192597249330470075038817346615719947865598512330456720880195421560917091200148152295699172647587893914081294143325938479092285940338863044506050446380018204418061226251892274293921888190888289797382067804754820662514897460876389464441642555499232141032969566774816791922075586359449107722530175817819440622568279765172734739895447177684354422982639202531574302030961940923677856978915033530798424487197900019608425442022770987930282981414357748739989917347176712866261739761326455809747283560204882681780750700843315859545766756463136985618262670479180766532674776476719916811168545917709262271040884339696761639179703688843427515072964330822357922564233096774837206049814006996566732962942125591319097596887122738731479251914969174746745461787616065956421809044365599333155487555576991124109580581485229590332833371725065018830179998914628246171589133913515605329210596118657145906940026565409778225818303367326653005871485669758066683440261495122169311136907597809847792670275306420824769364064043161954408639412016724778664521043985679780930005930485224233189629890471533551179277652410588742368270997394845284397712669174099616570444684143867271708296215072910364062051767404675398445225808090491898337055891545964226319875331363134844918961302224284234824150738790938000328223240841536717812035766033755811304674694431881883635846552637163355375074239967337974625998258784080965111788594677938610137806122605099648271566216286184704408040642112418451097828429858026940516144774023509521428132898056996279313395215850045400062992895859541140182395246534583184217658454230863685296411336279571536747379803591071864111780764405600124802797673709468433666951719092009482074600908721384951115262338694078672154136450729990545387268004905296506634020321127028443982739216952460873459316783740718128869032005712986664052757370845550541926377947438642117748879885789585245561615281745617626504059580983620189893740609100997867559389946953375259219700446490045783131230846627655464583610814875890053227373764895689019339877251017191347366956511281607549358655728366262311832145649331938088945632339617890381640384495440731927615970234563577057976217588977363035362268279785304668884195533568642983447409919074454363611315116088738650904346928303679029920810952896775202854537974933349087492250143480426254793677229275685639152669946526247096434413815467695320027020965891058556549165369822367225575402054949560892008867503505727700214961675410947959743328701742054803424464160662345832367378526494042996705253049729244675500503061713394998344840963708118483728544948631633950395788801479657779277680865810182537335608008572457913736756927102692642469931918855323842822456379969741532824481323872657217573988312992943866163620239899723308895707175347217636922650736655724364092282274812544933278746114363170699432142525926245045588569402358701393014756426352134295212183531831850262674849058161743975718499399641417258805447451319269469778159527649963770826410513347545096193955227972663627347777020951510124945849593285350703113003258150438737462090193783497263794798923060498015040218735921223867626157483305384465857336321782188382333583374728946338537160941191989816878009510267867305398019681345178835941360306275526257391698943881485917245457403566970710731160199097470281380018218951739127790015405855009004260924124180130664932491730602932569440074417746206426019161924958468751408488107620336440893276688634869322422643723645225964361325220094157257240608601770879409746516540362096860783789999649633271245804755260858675642472006431113870995228657594739933555034356815843470156217367534188158321347005692993694842158641373239456504699079321499877274672897678659741154272844852163734358874051849745457186684568298572414906781647470093849256778069137641591719801359701633389240746227155535677315002232415869989953719968039686169986489953741279410279240301731865283993169381534938683885307274348115013486748737028802546813880913247400538254996101527313473087197848869251354750640131327640526694919962011839715775827911526171246021895130743023338303324764069207985793664457368719444883382009393612729365059834322335156379919940466275287453518807419106509873193673059951015813630756508413615747481930173862051908719190009253018591276976058066176913765206006270646388503884348925834833196590174904931839783999170949665598325763115914344083472681941532785694352913356731202072892962149621047820202833051332354233219146191328624947299262061611128439474150015874848517716458634852643133943099495471335642298085239723256780375461446585524122452499472104268395672472580652648148901423921046542210171986172174728048638164300690011160965364990255838926400042394007795250596449820442856890104209316537390216090734886531259651060890462035101187791771816508387048708475637666709346758079785642596906845951791597478386420939188894924201938390657737488293289676723784020311543619731334479235402705037100861525905485409242202702524339437353531719109371437090054878989677801936905304293759406098446212374755274361488408921142821061535915958087910082148202896103702305761191060905828680117060918640507130560960113985435343688997789843951207146437466265959798357843169022749667886593586773096919461965350189447511366415614267015956514557424593094857090619018856307376368404126492824135458713777419837968617734726314044377402188987935613983880682852259132846435884945411457071940282548478796672339908614934320584814784118266006214816298276675107578425737659330497994805798562403664419476649010906723615328915501749020387351718230385011163547538970398916496976812006167956461074425450226537344842425222171417852638044026011429411727097736103876581541413175286489524232301903103645904960355106713432050363307958373042437705249236916298961377320558548020387805224669002640937179401202329902409913609510710276246189419459267846984361591082113375971577473190778645771432936904602208245701170314438229461332896978156002392972231432082423621356152188351683984184221426735211386853796053987817699269069605252151891709566987936652374729671878086952224854066929139112233392065369541231936414867466658315891958491332081258556469792078194021759180920969161654426607328315128091809704421548360515734603764003594727724904485377413015349646229867437898910460343584478002413146986652530056955043462869547842355498391303654814525952233656319451373052421486525226288635304770293800023014068258098255103111825167307198620353065560925925006851824222131260304653214440869032514058458735564222576194009795027960421616177094714765733733760144682000870016524126950517511406690152626659716223157560803923207851746840991868084003000883387389046213163082120893433317392978415777898734240517667836344947070392934041066141007527749195791392264323332540157157594913716134005320847433211558051382434922318180525763160332258213356850910045262580133552785709991944992002609382059824972319572273667905050962111878984046497502087257688486255570685858646865744968557864997498728753223535445983177873362411283030425703314866195851326314047486151918067482995641818827418769638444771508408066374493013691482505085425471352176532806480937054475427837807650718971653285466552290774246571305718741521605915695844610955636820743902423419608867335811810685077174113559026346079899758882978443218669246569514360825348860620395864658982251130978013760308833418230329554792744274053421681727368865105763500191181612771242963219283220675899175281485585064989539032567748810496809677064058466419113635404322427168219264584548617514014868775942703473130981175822621610319880721555595718514413480470997595309798610395255203264124202095392342083835545446445387951434271354738685702434236760485885366725012240189942114382014521094520765150725190184645665298261628212550093010783883340611672047887896254492378423680862367480896205036508931841501430196558718197280841331205624588774260770566808757187443398189338637012842202971078695090818830768960353188751319243194990638771735290384040076881894928141443681681119485941193091385535473620214998167854573761338833998679661420636460853273575482473308862279490968378248011758038636696033164605358092132985113610353439666384103756419667656878435954037298970976390111564808576243782887274700432005075529882056953272209939980504047466893260213257204228698303479861556011815713763775259185353812087390607309400939334505937240629692030344330778253292538038621720519280893263420327682893885158659967072069309466017262926405323002407609471865304480709424010808219896218099111323518186771186624655264861414232165653024217847050205407556964860204049336124734889377008597791957356759490771875457179232699102503209772510204722341038889498874018227482462101684288046218594696593097304901422901851605910425300141270929765037452755116001832115990815128878228809758867117371618035838421677156345480379006465762601718270650980757590027463168431525455313028947772457997847840346385086252494044300856510312018393202325873370365337279709622382018081042684915497063607257040012164408113871451342129308228939147866455699284607868093081400620938089724953185547370642264808369234861933417778654249551474285839155280619209473224226646987029092770757388509689327823409317420502052766983971666385817864085567305414852395478726807453032364811222812116498885326839452479252425575426056471570432277640147445620643192975043211930539814662221856185453480931788342219613179156765633696420847514538163180786368632137972341930279702920300218949626648187431836386389879487127225583016498931313057530730190308391261834003810531566018884866690633330486208991397776300138911632794646519809430681868769104470759329291777259984118447118810448845233914542328733585781491018284926684609334434964822469474579524126853800387335396019488195786797134382633128614466716521808134721286448218617581141969201052699344935990374624195571659568938440446563787167082634257909853521294414977283862944082832214625614917131597415743455784802803335006494579782360719548670583301564354979047577591558548873701738517664646511388382368986509719436973451142012827231717562532587872554935402165920841596101849523593035582294439773595983490420899888022202925570370237304163472956523478735100943385944077965000879759185575210067158604282388679094416330858880730175371918151540103722835416018961733414492679655549750538349283385569254049777761133107584861714112133134263892365429013969739311711639855585053812911119545891601326889594592716921827988031420434838349847818772317455600156669749335659106083981294601577157186400534023622272779334787319352285184497185474751545999131647353187580559835532637694958581867549454037402409377690930174633177597388431124764504549744017229461302346602723206474131905877115847510545139164057335933383017377584379324781200350312079900591315147687382458441358978331969918056957927710101862651694436897203413474634533445116508534984426492946978608311034947920808423948740228270403068732151351205163107027898355119065534243411181440736722832168424096507775884557068230097847157944728665232312058277007335487325374042828470137026954469317444036193105462633838260333053779609580013634421382377016923310194478742389752416331628307558144833504213307615372439955946063128614817223443561101210912065008372803855555800159007605944303064647516715087814128476630358874822962214164845894963080759171678247190297637851663841100239665263604672705356205139659857045711711546314434244186052231483063945679041152740353069144819242366673273087071946308048670631056814527790499447292279841882460598527121242857984566223797527040216464086821522860866539130605322725124160628135676519963034278326842405463418093381038607987557946771882390435990160075772812226384978225441674616054454785353572049184840197808632638033369648168356381686176853171332313888357940179655928832392929292847014970939564454270537146775757863033432023231255477460001450061380796952056007268560098290448074832826948679851283861205335516268634421414086739618607211324122026712988581185926805751949926137454213098310017129981565446677426405151734570264353486503038907954934151335375519629117352623340726142590649049304339601829688806773219683299964515032856124355110953919172638509814541647730207850245537445573622905526272893656848723462429481108920595811284883553699841185350438137728879813054651547344327319976162763582198774594138511649768734935027645008389641344218930066411411756318199061229063730598248543558378475756525686713322580432423374433651914320500836143235706172211269466502692297757276978952597502674026211388484123386606911658236791691167381070391133043954315242957813537258789165339621311623572486804388778168517600328278026286305801345375600751795151636508108164553235716862276316929110505525475703649778847962396892253879208461524180841311619511458501504107998205101841301921051377171956300276585101546454951163090976285932839345292933267411782158815370453442666479714050192359988683415060382979783562807162188306306833555406355918421642574268916011911336872997580322217156378625423232506499780805342131585435003807787256040500715906507061133654792005429265049392223041949608615916038039730292409908686706181167559776892493652464107701166700322281426182530365948095052790309376271835591826281738801898431172313942042332024312365860140282082755912929460244291055358460752219585956633046242893121433716797262179025402849550912036951436576134129411739937383779160540144869955984107012754106142603080431395299593671302874686980079596112737441093501500919768744603624006490341475292035363809463486167546980529190729311125295504435315762235462169594079574526336135347993405955795752986767092795753523086530555339241652535549381519612516848248073617381142895389550940906706084872696447212719150735392322575758848617184842921583754557072537964968227584643026883700961864796892876788842032821438830554789363914191168034401738432659862351446219238796553438228564393964916236740653332118321158965007767885653502799382120655843104984324384444466727605563584392762420661980600377808663115073331260371876801451658499506119282760199908034618586940559766644709748038593412126347856200434193781014722628907755746246896991009683265614771253576124334582054658248630288777372709898273357783759010511414832765150040508342046636797368122958225978511298632633524640712164262432888353162459949043120306282423619860047906780170811230646853397844078688039780568538856684240720386069638936714260279447472065542765685002897527331317498482631837023371174013623618690280344835218594615466006974659572868783695770131823066188557400715536739838782943620560910564528737587344073035757536556351196575993489195442811626646471894752720023152941403507435819547958238221655119987749117316938305404899458757846370593579037509006734014682367732991609975287585355847022864872986982956095178935731009192119772620115459197406890288487259906088183954861627215268437348604816361663941985829898770575948279391508602498907666088310111030229935895114825471234696893195235209539450081791393049246902703730692388920402579292683112897309183618028489566699650164498867432956775197392408995503512472881559514702899290863822450421083900387214153716596710043487585675434424040555437977153804764980379468443107885738286088469316956906732156970237123962645204519567720755196296434267794188372364738963234140283602387102718477396734267987992117885472904275026140805048601355958505396624869373263158344827702256317048287708294771712975615452884173643904202718330678529512476194114209913404327623132367007152748303860628694028974314265922512357146042324133730802845185572393105171519489648286661759246616807003301703322935170961609259109983965482379052183581305656414185858461302829225274959731912139622993421024987372562306208904070987261266406904452059666465029104489942938856436646457342335816771523886641440677110680404392255549617049689630774379007709196811416873323376386124861547842505334493468242477313293229576186408971070202504416892480563884374589549208540637913564150022811923342954865965594247707636964416095810620393576852680575324935219324562989073621144546302715925167354663160848488584401960817335451228202590363378237914447278875737510772104792711153760245775828930495288554436770648034716876174627702359778275475498364800150690619253509962810389943137493235069476310855704825246818111460390900027759625097050378594879037807133409695803997365550932952695783086625258306283144229142815527632898811103073030697637441006289133993400915684500447623738566216746697684982319483065270157403193250943906800248377455253248669137661547608809987201104055366568735598692887059766473895076050947567831474334108372691238601866164781918351297750864418179648013758414060269540700368198225628128349978805413978085826590254972113241652345990925521367522147805516469457522565949068398777333267673324703595328861734443904821247799107162487611302611094387009559546504661928761109331988087202330850067515201799195738535058041912849308340246236344176547311251602688523885190533996628868820764406672043733985149409136977002094697704955258351053033674409371782881504948949644297604713932743281178476743348929269505118338164811191614604191828090237459468417724591682829946241221515658783996960798820688041805877049356660632380080348182549972628420059533008385457671073112276800785420203467843949148170431931708914733886153729269909876778724138457963992701643367386716166289023319667304436868314078848541671245823096908325153384942870314448240613586091850152893886728418814555644723044526785952477106281782778869730884349804303725902302568783804401231330424975008988131895799916661419670655710432495084244768877357393051511676868444434564663932883529026632969302369132823988502488624634320921338491620755283841345940554233660790216630108143675772576063588781493767374870187813488467712361368304712712463884728451585541497559642098585445595106663919557400955283510996375453281514656102746391290870219617415464942559561868376934436998822673993020028276895472467580583993311095800414129696301463234882929425893004087678482320706772786050954935570654802511293570173665771022663960002976375979681488831367235678142928534539245571480125444138808217826912091126125199895341660121279807761138007054214115857273687936790057684569176205693734691606290400545193877668543839934943350279531242893962800222718152860282118218032681117515302605032898596805513561030750039085501029064670755930190846626108425007068355631592776244869119012703753857632427502788812170662832545210746454985789969511734718562221860521704549849576847447398737660536422149429157946998832818263307009194821018583737641137105419713742636214223186330272281038122479707388028921840644341612978231127573934697375650591383814256090056217973158150948853572844142454546344441185416632930505421061589713991402910018328307937145400059252140129494757992847930411030947169918824844064810751450113806546046022274504242529486909114047136450013568663813728293589625160607225861082601047566053846558394527729644499366620366870316160634979476212741204584219512129888335455847609874034760697143447479326391991285470674489412740357348576828355078416689340743043112717229196085714990199147049322069332224279143818317041030038641882826794349549506030447868021796139363390523186974429986443470396311043169293132552212970191530885501793552381650924602057093667041196526862762020906523564452058244347854709511561200631145502918649353843828860393905349700356657987494249204117184321378917246255299960342301899708898732870528569829048964608905960483119695333885787773560123922347740252526134456214991329807826451452154114814083318729746838575025877425646928062361785277836883245615050050649776616266936011980914339419289997866015856086251447623418474536644704472160396763640639910356067898766187226173679187362836015623025869096793265673426883566405093685742111580395927841892511392220624882753884483889007522615673245240444009592439725715840000698338938325849269197337903265495427607078414976660197957296153522727831238572187895647807783710148678858823880058648654122483830119035062504348258500355672082573295407029913027963953403854525482380756785965223970842536555023254334910088820714819173144094908412336150962742152562219283549038403559402724740478975402524698819624540576130388346808942036543454474285962604544061271786338076909669331876400399625737542797144026948426567647402778113335507096106882904391524629061530694081442548147349383518404635030653137160005400001572612857294755384804833260859323507229523462317315762319085913714228358184484673275986758919751343206757639806356675317633208908541524230690396094201406615650994866757104913926397746255166458285793664171148007804825678441803179454831794676876933852924402507198380980050697965909899435768793725197656972691490145468071074393598092128281098386603102385582842756449036275542582881102823891720465877177126724462717155320087521059529485044984898869732865410666807849500401909896380580868704805092310573689906427406151107734480870291773285178295329972740519807170705922004606005322333282868888163452624377062767653473167556214943951811536163379040848283459606546427031638997606495180436783437048046289233047658581661093069015259856875835836157719345420684570920654627508519638815400887874952774794531355594243695238738673767799407824910236299048521070378345712364346562158921613087720017369026043216760939342631035758923708109745072925171659472034928661595694274561313678753616814308640943579026504411840390482448957473882011263407380592233114663286683461068807006514016953635380063037513033944277019254626679172385269568781775571761159986746728044015915412936676394276218296215128345377708239100347640592890857736516611233410899874972999671427352977257220650689072894366029818933469221584133834607367117084661691087949645796250304508777380791250706222897226329537603732766299585708054566199073913561873378469264848242412955378176920474095976744338338370410432989452592517497055951082242693001395622416962116668908378757117822942484609781593145683491336386385536640789674521513903679056493443461320650720590509938639523492218466806091199034129436778133482300198330250477362988341620522502818311475623187583915170730361629815847563234113179153548879553339793365360300848927820735670018711126539066685765969763849372847173126347333127981340751533483197278971306031633475760131364984639916733862507389989711740134565226581508547272975087303831029496020634351522927526358626104714558433670233994647922962632081673267230676424242519146804973581890292133804941927384686848238091183457009017869144997676222966969800444109113959711479426857487761062796147350592594397151721458135140958850241262064272402970983554679260720298825781682744640456013174969714006620200659758686969520634131435517375280456076754856405819521239956510055746147923311479289431270598824096796510529747047974679854122953535247354533195224231992751309962498859001580240949703456689090202521080099193369049236340660311676963910662295522427004472930383181804846488778145820283952732799811416129908914727937509849726941177078835378055556650131000439871086747846062435788710158358045697772421468708747951609788713267832783087089513349507656346087617448716569504738208973422538232986053355745935842115171888949949846794277004146834832364411790318256270979214869303895986535294196353779822362606232720649323307211779325087938404925977849766295549282628099899465083202032911408681276080910090406601317589330486607393713689322825613079773078619886165893745655897541648583482045290272842166087141486657194868062139748765923421966084997253469946670031085137040121349390218872733594951851251786297303444808782700534618659286075189916908949280730703389246360683681288047883692034920840272154826883044048763294880112780201999185827955448954016512196848318961177431032340682914974392152888863846182982389388406786180970268493508208955176344091786886479786415541751796735635672755452112185151513555642488691795916260555128858437458955187894200875054102176973443187938727157218010117373764461447701848986470416048400912336297353897690822783127083473885555158716420149816935475440073187207863653777016010751847003739068762901055837667825317489708718641657228618036156549283695785511068686727132167586552774450034933968460424034385864734754911238808340568181156569727551541259887966347668759074524505297303189441014821827096646738436204959856154171100247806191325730053814070228530071220090976797934712949995615248586443020440532552074552252267179641563311965327624140852851013445104441671457982176672881007021540472302291993772762833296135777757527225867828209007029217635396832831159316255185873277228491033412578020640842763612892156185774781587771917911622571775986666299126856779700113935292230398744024920801220209915898483693071998849506237961723385094302646277652933440175262193842276667183261994927692692572196679011101153339841173472811165057754561569740762101184908684450651109357685368359947777787979152567203868817361966694359566827537967591690297822097405241596062927931812909498839771943347800634332957526316582974245456515098768174945838916854543259318819119336905976740657166717980715285180088228944826185559896071562502518607122074320472868521838329632480195102133172072431853191023219643148639183336232896456256271388036466635640053564007336159557383779127631070576131807288001433016664957540346118265052369242242288816921329976451716423829190323633326261986395629703920936137284499621584028994769947672733481435959781924414762670441625013880123758617698862827462516540727194327087700235081610861243074551117034461930258689596167865899208605768753145889175808389249286064494411143241308236300969901941182584256079470479612911250808945850379231485035089949672915528953995870251284159074783722326387379339398968035402058536531081250586596451795953251566362051704870818414488530292371958078474790846042291843391710655432334981912392915466969167795029984248167218308056071831737317471110071362938354562104178947238371197456778278184635762732444729094998426430431797155617807744359190681754291369019848483419184408300790851449923778574929960029607405430736992221583274823940965038400276974677044484999570301546588706972558858547228948170896210120746108259248425666192826270623770796199967302778432024096340965005894198264682645498356708105080425067758185594353761185246534112602598155965573896733149680272888165812399718202214425274086504005578813741100071259484789617853439823802838274496623248233864306641661183501825729315204759921909276353978270544226547386080309110722533702347690553656533598724106298350295935230453992759683316263489261295108359344199176882328177756849606025757809656021650191262170839209576427728494782815592320960464398696199125169927273757441647004705941847506332843939568558437664841122457762192044856142418949256409353653542241409561523174700372807773570136741692153835299294124725409282714420786153879172103950496876573294872234871116914266041687548982271415573375751266863578386402182140128737125960225017935552179273875880217364442140211932400088554915914235829834515258176846551726891568841489107124252209740652276191697549199810298431552123642533680627767112281619171520249809708856034356000121714690973757111868603529879475748393725975161018791821653259170948653196055133960854342503589126373361727907463841779866157216408381658323282318902656613452513127010954783727927674096792092491125521504704959768338357521526534990426714749053827304791502183698123822278620696944375625378511532475178580139293568836082796644653675092990933775323944834914574755019053779144746995007310359755522283652308921644052629144097454518225279081226183783906309661529026344663719251470295814480034135107749314328927614766953857150992505273530443661588445638668032221075712357531021715999665507413469601865395942864744132589630071683883963284547524079116071614520909597198605515584490418019747791303124720538176119652109262729260929225621295043759396315981694071192655754666935308720469150135457638960469694193307407490701196963192000055422048062005395329853540285201821871544551995718192167363165374794713475709987781142488552782804513033570374999520698087655594698664849655985647276723454814722967161015048791194323104116501227494448472173982832928047662672821505180232177926516029939072898399091407405781047705720757596435631298382945636682647016784135254688301303383150124187884972679189894269140294630342987304117453469857390221287933271763064039258989068368759657223977262283068826450268395004675340466904149309517435291997981482077441002774870644363125225435066046668230816645193974751656135857243055695007261449371079618495301410655026723840339075005154443014187199740813700819178529096979316719491764859683531778368440106780223275549954658139294335284980988941011422458886811213167868406660213232987233191998014083526667540569741371200757666892825928780682246951893618182417326715834206581324968070490431713949088456452044789554308433601531358270230827886178280574727801764287254265497082875467768928192471006535015958503021827540158198318314314735270253485100546109505656573834439068829749695724689916010671777460725703017227865888124750831844101651132739870324452978209069151987254264792279187688184630340151728002375909948881665958332610600138794617913940905243249277936606446967575311242613395439869664736968447668496073293644319450463696376078955811989394694564876831087490485014313589344674236084763080886457765795850234618123666060982377572610665017880314637371911891336342594503649478519141038502690979805062209285699308706070101294512843818348972236494054621095904735880487977769974634322042842453408048121097818392197609601893835971067406051217457191792831593876808295431063252860653712095881861768696643106930697457565573998754003562551876350831796257835952025040728994221033893925913133476432293817163845852542493769061899292998542672556852147939569326795630266666197758750572827508241215689774196121494682448537138987563160121489129310472408550773809987065724887375619291167728778185990917067279332294165151001976119970523528180119111348974037632372854660357106809912315150761672575907240546347084066584093801217259041663947492730976794405119593672419111473433459226587896110129445032181610358125133120752075187344386267692390428259634783946758687366788028257105946145112775779524842463616235287792806817851940686461567680735125901450602269341940276218768399967115319974868074503248391882931550249410862219174834403891850081883614320655512790209402508026293463610947339187840678596855157270952486365889319725641089650695606651914193628887511744216387615735411996116634651272568507938234619304209569265722488300011692463479398062355391837671262540720027608260470949118615545178680285982784620890660414916334950064285963825075399518586914806851123382527084059281027800444290618658800356825292767135359553702188721062418001592491076611381165379380033025558814454943798305097817940560039480377423925881768076960991579604802983498842486195395792332821256268226203065630454415237773602417067946216628123364475734096255462658322820206210765346172364177563411581794478244687031099121198506037958956763261167081670089250635233972365771392482476127279294736724854205168446607965075501650483425407032664974061756925088845003417674898800149480075404883705168826744019152639162772787919429219920279108574040339566804613109602132928987102097183112535176280776676200248641526183491950915551090430260016549385356456384182712977724448964650077899218587714163080212572130948779737697969964898053929643939757960608422426605568946692085865057379215430645997773403546211281725672853294359618006535198362971342610078952910561575253117481483104226352604264409474766740564651017863092863595239452788900912308514747865217015815690287261756072292176474485054625678021896052918836264932437202070189450006615057126649516967014050810459213013940549773446340456665647412414678186434619252747827483095305008929787315590550388056608418832960462844765783432244888369380271854810514708382554124038863620780974780401125742997873611145942123402309306054916853292408102855405319414409614148133396027306505707336096234023819734939231883702892686710498759159236237388346867325549112578174129543382507310830990119006635150838949655289704965506164738514638290010347172568009626620066025802256982700963082561960814897442971464378220047356747674034459296928385324260226962116715621547343444670601522803840122524159241281299728753175725255044817693953045048443705757029227741235118100655402235760553397306078633103913741827381939729541902154704512140947785233357177303220797068374726808236518990330502773413248084075436331396704671408068284344238055480340026101234604593790352310197780703492976369402860900430321829153290326529207720780301820281567894223237555394143682491492508326380315498920679463598620870641201682878780568388134125584738824462679082938146693299616362162849097774599429112141696291898162468334040469774714186406010785335550379625458784183351194293370698133644648652955836441900457691640996361930444897900185173014311682415319349970163447998996315783890279846764498682210261390823479202068486499927575801895136896059912990240309018764239525498655268814743269610336628658713439363185538416076015590977113720710571571321156740776196960553045321819967798082730002960239238121250552520728167667440279684621771249417235059713254357637432841189932729196616483014060645708117232314149247248847979280214791859151979490265896804937977512519835179585221186615595180991143214666221136187001551340879413294508964159096363974443968503348188558307364059863023297343659000208468081337308012936386378358942098490021536401274414980814584232799835909117668722014771835434910860563526219788913057702173196427803262071733975001044691742557892946007006574791831518766252190229358336912628683737895868418363810154643278727999215469162467193787440328175449943845016949898251254942736208961460810927108596338158736704077462077122859778786648793259072518519968057187450944102615560756285862506673832637085870315966112188281343340818877314109831105410535736770053787214721722884626010308991490145193080577094911054509698179409012263286315187970060408178325830813205361793081322694401653921709939214184751117445836016030192946552280950371839962653440811086842539084438845797032869849209192129261797389877590118188024642118398755706795425622558223817896758169417073597009090770228538268458621069938188920739173802056652270905592910857820297604467389458475263142548283016005158088168549422293763173628776509829396863872285538125182476937592043487220242448327382161889780844709873430822015699658436531192916047702546712290317001313082011003337960284014386616722995701934447669600970469366320095795222999410377779110222449039596250262201338841242016680244425285283058054471401042489850195584512978115353244148224571903852348649005278357369426614758916613832682970034728989783036654374695330892017303922785449229843760646926974365150622459368066207571823469489637200635986212403505968147903074996706111290496633032467304719556129581874413418752324188413392527871018899901915889492990597018420624459012130288113575740057917679503948036188656569197839461140511100367809012155730042687392488777087825813171335263572678611558362797731231020186624330268224394720839863160703848708053595866416735819727582948789310959320966874259684388904884593105235959220216508473662349664939309193279420910050254631521635926337575682383586098119546707006136920341868306541455816197532686261002436236024714470567473153066052910733714918797631569048805432533516175437395981729766016452131340306376218495051800299989298341119425268723433279057451550398730537595539327646703808877428332160102193616669300281914715934068362446102044461013901182844269428530641319775395326143098955873964240481045429605321305939694522677772071620135217749831679837294318653744320321227630284964370320580721571111785515919457275650541016860240791518990997290233292424208290301044984936360494997917211901993643510164529807468897962885103025855181931791158471585315090639307963884069103769592325777903752125462831373962944813558452751464372852311710863051403851082385758504307735409804989428810127720447030746248218972647385938608840035987665359954561257699367715771698873500116049881276285355849659094879256797589045887558339821497652406651871562592702191404190058938566048954494773723521732606345603095567601825766654943118907053141217520268081744964914889068534293089538624105295358968200008967811895750059926512806654543204743048466038217580585381325343157254043829539919807779940377244593235847818057940637240028565990719543076124982732954103011631053552563140609551401741985548988465646542992913145668817085989417604585136475398829056853945203902525870463861688156123246853965403038361490292542487701950012845776823282995959953150486491879936215787794114799853730118414318309070555202150081886223953589046048385587814712522635490096983573063238451279234458973048036326483874618463715769420724810951476913728397461570280313957917327493878527548735436430664585828047700726434190948023839706525735460232677698939634377460269458000395473362046253220500171854483376232677611737221605401803177231600172809586579680536703096860570632815198233296183938566289116909403522655398560790740607078025797820730401238871151656605770987153834302571455950785534302101419375560968603625321205777857819786362487073120226789812537805637157363220446800439440131860183317196410657963311954196152519202863057989898665878999673310027942312322152571948862753193009020972543862324361417530225580563952207883176383924848357729797964291180131154898528880293856492409313820195745196258499742505678886850740511663009345563503397343252411520187409674268691513239083703627383291211028488061789391851521560762229639423069015484308283395662113594769761662289130423205288730897159195409708991402598235898254173512993370530041726381788768912501470166415950235395585809835020574557271504848506427407563681724088063943842530318941428292391811668610202524010015329828147226485103435271747426506375501405385684100678336283153450424656654612335058026272379079030236427287805214615068577252918171298741782835884203022001052230187881475903345275937048363038770955906301544424765678310443521534288623437752460313710169168637479697253195640392805168470434139669333587801669089915501581781103322073798111695301855760306124404087365670305437716890449065376575584212109365801392547532864414646904724346905820607891418489797634567491180949119807902865120528250933656727334344672316016253375653043000794615232370339083086271208185879672533393659125383193419388581225297040346400444031286124927664826713561695405384962908378502038684276538977796837312991202272721588545816578015369460537673671612292604352119123538196233590028282699263606648761992986331792120217569217434490053146742228349511340420226463549540790695560801174964866730460328947726258208645878046356987431747812037959204559907414586097574685517128445400460466958009897411572023535898723961478055721495694410498225978394476806544368808535992048430441117919429218458084617972530837433712638383560039579936496025212721320106226621961980828856090137005319115745777567974400986082951426294201892301195651031273945300655539673236188960323028193426547950041859750332545490532117140961258254365642540143696710043828647362555168013920577612017294996672948262426338057862761384498702435780499108371515821711827184943825862920167610006601160732211220018140892662636398113647478372836979428829520280406192255929759627084938999527960494663419668282893575257882654347710411987403109137000851123773776145047427877623504023963118582208282942922749530804240687295755676828622131354674066873754073211417538265788398903130355719047162763795282215348686811037834538327661927365230671865897375535945419690479307517534252225942537878330760603168068905715206287873976795166518622057083873549141022314873464863590529900180021601962165974953933576469614272420733708326629127068141911584599195006556874196925915486510430241004871565046296338908724742349795844395787901640133178244552724535225584760992756524454112410311552076044629580475822944435371148067683344981290044718145026790543073550479956035671128181717564150579037436426677664723339858012093150244392278021442522830143701101112099988622918181451035088249687416947267402274142055342253014827525701089618189833591124995446418190820174808489333761086527294817251486017202997524217365572817856778076687811610671062863721083594362557736403253320713233712643903578511060205425965432597159954006851604061960870588685527105431100286240243198133740644550864692159439480905554743027298482025532351719744004343550018447444941497658131099477243550819480810127826642232840681236159547073963036661649071164052282859092835017411931406157700948141746651754043314016605928999492185602625172442245779246033787541820424424813176867641462622741468422152679093632238918491540629689602468237954758592802310583095788128777878873849632750432334064592630270842629397782760529256130005474297278452437367944388380821272267405725889696083286334556717013201481235006723361291543393034323781062880265604844507435027820014205605550476174479003228722624796996337381356694351025515825104137732150848168833449808308678791310248751367955060821400148478558361613421451250465040316700393420307521061485674712646650541000412608799071460520878524271558987543941420267716743152344204343891227762997286405636587684752159531076124661944352691303669919742378523311089419811969335239260381419834076955512519363253138648006778508686057124801950630643679309114527487953510558611501556673572843780638791352357408331448669402259823699977706793255303168788546734100588374096675887204186517512501050292327609244806312052899093991545267437867227518165595020745561844602396787455143174045805215975375806966024535145649763281444941946022195693619579343852007115490398617154097534045915905424520919788290373213214246767134478080536676390476139997001390520398420832880428173623257563487265683084915819146133699305200935605186635679845201996598340465834386539094294956880567217023686550849219519341607832214696275440050626117716808057857006932982910396867014105857195567635396661278070632502767632263117028682342156304649595494266750938255116452080070662445070529805875183063995738998090479604991148969389382339000094259500799564628895779251449129771924968555691884603868568260811897021495239387599638797886053476269293356666963702984252098441531857148462662956888703275022988270197637041190052540849233221735129485194657898716295771090620219643234187510573974655134376823015484632754392946549451288013117106508585815507100660790929044167220952522397690866833719789760002541405999242437793427462587122810764420679279598394706027523725830576807765431363022263344238687114626707129298345745781732525432580829846643520443616606293456570804554727500091178599033179575920226510053388471997864534256566429309282839977015160564047560965451828629411902557441512899014958154932873003526788545133097764590129493107364239013343258339968537068991430418881219233611029648640926250487974969011559345503479169052868693261272894423407931793333252381167700406858715633348276063488546723548828765508122297574684929955854575410220563163213282230838497834917157643942174641489992084896784924671834744883673974923942843154571059698669701175543184657738070105713751368300060271245952886218238101931545422369839646271539628391550657512100621161805982955041735017585086454435157272445854951711924158503060161274124982363733722942062639828618264848967071202480621032592856219325244835043483191029626814862283901066488214067963248151469923729083926749690274066513085100679767526662237739788668637114966072590530108165488105260017950423895528474663931171512747700553719544715421655605520920096182002265772385537984141221513465694376880005016980437648461919623655725195587081491989751327970151474996682727032223426435454190500426978022981289461036348984875128647639866509460502282790505345894371171049324164006429898132000765394952773748789428582290940359154676036182423237695651796832304798287574135452661619960028694029253898518111681744091687277846390359503475119224589195328346671685437923542419998780879416353762401396650615065178112657379748110103339380532016734228150258524621088604229284030687478021389870575184842167663115177017396880342381273184940766625493257769583593521214483539172141152633404000130425603429980453550953482337495161830678510299292940062656013783601207671988791562729819685327286681674152164788605463155607378301564800063033909524794156932701328420600448024466895053964286260468148871014571552701812287098549187465886691451887227918028350730628945931120800591142157341460654344988401216070862701531024293851021576411814867285889779006729994421644962497901705462420644195773397036854163537570199053674579656838653645706771733873022564398822983514582245725833407317987741918620059114837480295623282381989350028073831173632566055724170508506515112025029194950103061192152128843675928961580977288580676508310859067340208947644456610982664244364258662983545446531593957097854438380859196149491454890729635186481446009464785630435363729863741134273417551677560393482312415681335713227269664866206558594402715562404983523840687697079302452624060401016280772063812015391989344495584118592795197230475731872394188867860352326740545130515118194938485938996497540512224391293992843957281464461351137646484405191790949706308667740721968480555285066497791032452962120693995139152783187543181421976219920577070186624837933960640588076180622015465629443190015399387676621495078840464700090768445167040787335698565385548975523659625502925058055663066187865157731121296516273376083647264442399356738253227823917719004628683374723252889898624214396941864657457974072474893611454838497879434589868330024201746081206047682114298037284772744122984478072043219923739881280601041465655686957395819922586586579935717424815234485044242952499914604862049805965589774478043153496064826096009370707261853710968207068044162985420349176107753745806870837207505940188636923265777030766808187472337878353243517170722725477977189468756194181407270561289660365848791352929308553865894149802328793337333400209356965955645800271580091028045419813177967581163241432496901101218908752027476742956098757494713278828237693121928711633325127321944328562131531119958830734590707511196167618889839662500037366007235052128586963317074546184731048601943736125949025260323703773146586109835117171709061400241684460315513128582275251183459592912477764034505086127062610350308551289092191670411129443205271797890744682607566927502166496985738515632740861975807508481410588190782164907842135898327732953702757398893636953341735520233331744328234618976235562687107394522929537466728821204733996030678372691206740682417790291302080135857314830721819945376308949750090391453622440192793415869837348375938760629076119633165441845866697982756849387842745518795251649331558955638141845665057546686201370138616196984486217429585125718101698214647341735407638848337246723158217961066509947879197050678143201793233476747746423456490856382620000698451955663082089738572486587368528010718179541743957468639307872703381641754046761626985910242242015007923607986968992849368058828107104893858301974646250948978024170950478129010068509694465927235525947476561557701828308993002566646953132101430064895860976595524104846785185769835170192364312709851776937887135581620245566784396515780249922509597203629859167254696027497328840689837315827603475718570364527741606236603795102345395385721017605467952040192690596111061881805830637181026974760367614149688738686098508498417158133715236018197845055149595985361778781010191254794416642652729546706524094283834089935665559294712838450306524564985245601112161804423608895929652473447414140709132237044151671771869003790626012176940668459801910472065573688276931797841770733414300512475740695063010698680245589113051748996619875749877316568001577113794379087241655352836405063424608810708819266923994816376955608507069509527036534254799893463401669943328629039442484400646149191273973637005083352804199854998042834005650252746497271805481597611006349345143628600044975273762509706857055176277030784304655731189145327439444397905269157364421927921932032834244681732870415363609146267777279386200575988269243619585862916411013837499086431604503028196452274125916528082699930559356050688126805502403175077202712263834085623882735593126498827720449217162029409492416283915354607954141772316466505904595136577744089069498062978064732803268122483117074700695092494373293737464940414212317983972698196799475863577868042130073475856672294036483341639252175944650586131693178837557123847364894307507241993891234403691620164316045630005887068523716072728035880325853172886043892627885184424748998042337164282111897285087168472313596940359571897944806618066653505087107576213955221830995249985372415568046330604022104751020899069875019965662024335726698716431838163814863946942433446844914331739037980609939487105466644772771862167079403500461577794772474033283694768780273261258444293775672267799826981837139717150723035367495547571407595442224466057172252914160397511240334619610065990235822890557434602018640172293949833791295042955167720613626984466688889573342009163174131576752687784870149072088045638846390517863513887045052092259821845267217077674203772674350429923986632781866486547647451560417955150223792543767810544092605889643151467152780609516510135900730398151501813382210190319178967348996491649148334301864798713442053896123365510287760506024793636361572559325128970828094164528383257716939268252148177397217764684642840042960735435588166159861568280626663654477138659743622123851917641630108321524684999704505283774202009116017035332526291919879677288172759262541666137193966541644568196276428038319831119311915239743912073622528979391866371905293176945917745764227614851186043695878847847882486947731619780545345467517736108566932792082692447794417266959049121479784693122831166910737349013155385333356183639079830034813459027833847608377084483967749330311779222073180750660405700406961536153085575898752646928050402934887912749835403007467403651787726682715976242644802617005519934970367392735127182947125140082687867682885341582517699278578120978794072028481690546274398516734661504828710272173766246613944325644841003778053956710188564502516831694791531830875438277987714234402429064997924477676684902526599911586115945352976891316048948993527984703191154041599601568214262274913527829743047144217642641075821378493836928926167989777368641325459658515252954465001692063047349534231843882126496842508681666370582907014423699800209340200935794655054176455382751159056824170822674592472695915102777114640423699391611401937193471528904234646758025560168697591630337146893489206225951258396185003995529361917303596989995590047007270276464076734513942469830456371488971201012908556918672914108554405451190151824606377002572714361883258733438500257540703421662053638555204220392008240425042990367252146281970367685961554329662389343679870782591570173404282015492192092746144553253785437246502301196951202725647974356233138874903786404111786376782368689575721839602468839987008844362788958892766345425389254132645994914929423501906730983704634920528199965155300076564125775401991776711721781671716592968896523885012169006814523323432616476089766050302600532246242267566558374164328784392884369061540381353203894487991276522603610557181013096451651734408451506193366442585153716423279443153624673101928922376949746217598737939151889898790734719805699421992357525894128271950604696970540035373959815929988788557649691270790556039032811971827274612834208110431625635253918023004237295039815841275081307686547384536993494698667514683585316956090340507438120044843532809759303281033437314205972374091008624716870299669236686206466703267107109486734115439030687286091483863784328154918786660709146613464264093979785430384286021396531933409249905614582691770410737969909925432210279888721136975908354904072143123025715469072220047398244791921870203784551786811222389191269613993045856355890602573226490839634479138401563827436074125433827298564187464742774464278138080450874258561135835167037814237887925264709836432195579930993677994862280850232877560491488016909064553955738206283986404769140584479835428456597455112228454005569943819449005799631425094432638635591688535613207325694998416013803974476436919686882700009638849476798474028286850447243719385398118105424651318394613088621444527792630380117465511326812490388910315477709854270334064161456097963532202281227865390446865571768125548527058314692918360999233076322498578450576986653536237738020838378097787855774382177915863246507018618113586893074108879618914281569265466489763956480891549523930403976849899840165643220122863691767274762085424184058306125475269621853641240418022847457399705092881541495634280875785660451107796767590082150879439758989078763238198609247347182095459845052698709256539814645130608188771926050205742924001674987133604501359118270597649450036076915623985653804566125463783023597324406363869875814344831669949890799876908617902945287943321881604012556451718972211704209994977248767131873650176966446831343048132228505374607205119594127767723092681612870354460902387375545309866714497068885592202866571352891363869503845241133654014334080915435743459929885935873875121937081430836380844899853548944800631564644029656252644625078543790024333685853574434398161934201433414827628584607841316275093307453497834029498154409660303301651472718786359227651382864954492636486660728481591872324271032735886836661254642216684422511064030561345604343928246015260393459859994265458658410101571478590090052091150071743444865305311074735065721711529021614051747277672480885909539282560026038106241408782762635819044842888729018737319096529938994054617231373307461143170676021299010827921641651319872592276540400400082621511103736488208902271196053866898114463672011424080273046301137273596719091105271758994674198566008443820812900731492601623073233005198596178074445119613520687146000254553496635651391370344989256516479543262579622528796022755132594052367361979871539448044700757458386476762287777312078738187791581777389918239179610473527513499222493686606837209549226225358982196766622093341024436072546119024723871058955571942022019672255602524234237145643613597707446571882237878831509986660790404347072995847890195615735621612352028470883307593457779690727508892728934489733027720451226755932240142391830621717591553399258376716600023104736695209864436549267985827257019721708766156152433644940786186487366680349557364880990898882600730410188768304667317547275369257549856616029731183940716447696291591140232125475275204581617294254343671386928818094137782607987754676672408904007097977546609603994364628912144250081496378559748988821729781272172918607734052446512427803736102465078756379631389662826917548164222344874681543079978597985318272981438987732785486196701398199858141197255278692178806896540561480264253226411671469579517260578273006912837673885552458593919718894486351497741066389181041218100842876348385756688783414777138159868822034962978771459557836790488820981274579618801475399811565081731479943379140778886877234973834321147592278647752701575426026476566072865584597003460909992920337933183928238469288357378342599869031006258406574890294018337001935599834168035909768430198732360118133830627226242548586807645074858206184730287130629221150335759943530816786474809842417091473478619971468206859870864383906800757997901296405629444783490384052111101032029759728343275003023659095147671002976632971163463610604574277909790313155676590142693616342855368545229464279103609616689638167426345253363843212701360038866768829491854476803256479522388246008895682251577524179967223173552831890327517848645536074099885524223010474185095782517132124176075969227473202584610409612686874559113569802397551083873990731127759593908126238630827700215966934926147205102592180758898968302074831688606600568777305396624883676685228847775179665303861893970451266677842692827255527212920954702566126781930342726604582427813684071676025965807796461169588888762335835219074249458004187589751315530283009022854180069994434746473380961417242608727164761275529274535829396390594101240945867830205014769358914874841374295626411873003907255850744796241252871582399789937046955932805201125665195936680231752489337227919581782765058452795961405101321126228161023904445218037466371736184044801475767445847181503109840709668764105925839837160324768058424509183581434282181678654201400199880311444075327170130697125416052477481068278492317013762644144478403496898479349009964389325926183503717978935852443485448114558635530735043836044972751971915520787459599160532736449312690245983137456272341757076994432241729044973678986119896759344493743427328241601112612248512106010654645286342618364472002339016162292669529636908616699859043404422290946016490301831707564679605510003611326333865727924246107272328937726148218491008892522221201700917994908158159102899071087937848867628011073077111479057209386001387385141596773578232210882864131057873949116848244534131789480789917261349849907978348284661257881768546649290329579847466613182605300413188430170603377833257771020003657452917502271273111468007001352049359625861170854818980014624108473021798661118752450687856091036775901016792066120018082610971139777177954096971821069054018510301354163440689481423802081753514505872961702930420760482834815582211750188181159695189842142320897066077196821352505526744151583899904181467723585452634354373212903218918919603190183043073505204351795601515411261193784172418785323370069128079756774264555359476585780266397876845208696813370344957255079761296009079321488744358515879479563192165887293916032748497420826980469301133311029125878310268041683099081339171674740032286719446896490720501840979565436673859933269385632450828935816802256417140025684513258392704445176186865013134004226823183093444939616694838227299647639939960423708998416814328450741910980018570530617188523528319168605567198526392235760142452695427076697549645262857658850193195072919694713373130233118895640483752898783771202628380524889363738875816308711273460092078309925152617208776611993163082654281757019150735526127642493125122330833635649742589026474181056608485653687034362146506659871229038551594237681774807648703124133561473277621088889628152901678179827962692083238900155077198418339506972681139674399243431500983268748947718208312955396736643338132779626354581806929309805883016978919305198090168338569908872204159842746825573449815724328197008838431348746389088915175045427316482091613937895531469983068256237713980486907065618387458630275290575544196081443989005686725395986049685347128454678615245082751360109981338794091448350349441726787806652774853564686186088277221288424866735102270487775436262837304661666966890609308752984947744128110338162415778008958978013812584211159153320689326986753690412985601033896327283977284109976170465138122627585791756077860221390601104211919901892341557072324149481131375328312811265164928833999269180135967115514174824654267702752481007793368040030867423271663950790092558427707668867634937310673498019959786365665699091202850095292522090917730581336862917814482570401700782552333756758077823985457298750008586209219476813660694384164607975210000403648848549309047654526128730331886538937210723658161000815006992436856411929982092194113074112009748442371699709223896461042161867253446738076878020525973681418739150051145989024388108614468022761515872019442932781057720826081518302916534934266813816972190297818754693167227624471364107167580480327292865593498457210967504851187209676788986865632703433594890371929823535434751492495403530174150403515175842690815670264437547594302774466036061374344499712584047862359329569766981321675162173546236278752859220930431701397716305525088471596882551087181364044198512538762117223815150777846805164421258307486106932438864980482080124069296438666901760708444440380226410283835718928235855058936926953759578736102020686322196119221556661566594328443367159455639418751295877810537114259657483364180706089171567493685247509944861361714212345632379212701661957792682920032253444530485501072471031424101362189726972291878227084737022932543680465931191840754125903485790003587399589398047677740951504701192152065027468390244659536854028601476645705239160849030640718129166267692900217879878881388362379444297204146059209655238158326750892710945988933964488453134971037129646720193831658353927800484883537811650728198129091193221534514742216557159507947481174657773601700904342828657675872869404123677297515740123571970420537212617599069377128267112652291856701336822739277318748279179036106950751461287631232374624421252679035238035238102046290764315088988483769112808015838771267449474562807334912421173061482050335200996580041233195201656694560389552713894451130446491229555390983473481205602607940923158980754781320754537612691506245288745759540429989472019905696087557601577449747095468044170734217462411611871919385451629599940259374511817663566834981726644119220533109700500390755620894087867667426963814700712258079230886615594378399170724488865990354834324077966984150427861700038733143370176614539482830173079117658459250524087891880602726060160691558412128909216060811964152967809139101858767478214731855416388392851133940885582298889112629452680862285753408833162634933766865232946885915863181712736460425387448233311645939292043309609578965064959934194940608106171621453520930637208034474461984744208952859284264480737884426744956078110940380801344094433603848309095547982593175259588857054532809207184488807650704997550204030282320693354541604446952318632019890229959015725797211402472661861348205477728973449676143875963154848406011745136478005058449030319970865304612106420467460208395085386297967949787282546907974820046331890984069918434236599057432366147779975738884883723965492494003452994372862980395031363147200957887068754806997878918436040671146951117108787106954129227759511439837923605344581255243709647670306898502016980066224167442471691332414036755557873537141577528467208513719900566952824667605719318677873942654696251549791149351367196343184928152349242748996254054669001620747732860134074366671081076871226729477469413295150701132883656426993018279169568336742763098027661343402600191995496334341738898429584389352723644957829336129275393740322700907928442030082185949577643299842190914726214180954639118192788866808127525039870889207637229778783573781781773627591208895697551062133543988524640847262156203239053962092972938529728234823612531546458237017162918917091891044715887800762761714457925618150728797317276098406441521841671268762995331711186130861327861523874208538736310986602953665697810763803565593369371373290230617664280675082005724807931624162407890678312747944675346274939486785262114601156914229250425359675189043259487327352365152809009133252696124065518086368070523019287922114288727726127570151683140403276554546729943791342894789793921193184355457478096196759371861855975084662833898001573559906674038767076823569709525753319936101379073262748381223366625421721662120330930733719367715763875652728061541159008612146280834850342641664590740094310550401503842622564481834649323030917156059116143506902227012934878580972867951732511813839949346244079783601709814283498225897038082043215572989106742447035368664887415632212832449398363024913800144540547633803600677900078551306505713113845031498943391074844283433480625600227686431061019606661093115763125604032389103059300035973186648195845709652700946993198628425990892710632616296553248358207268447634475763429737203860962960405963395328772072666511025870105267543496867317508685505858215736100113181073950566037296666008328171944978364020181396657422897616747519939872484629155893255458634284839772377251775519041471900529545823962993560551161606213129053707039605844889796429596415806970528579582081114335921280025823579289993150752322240259290912506577333997017961839620694707445742848108758384253327338126468575131758271602332735261963923903664940281153928231378455167553210878413661646639001653233586209569787378424034062949798792435126204956213290221818050521009886868849057427085699234079595002527704004733243127567063188905883902074203616554338529372638572879460770084907315546713447175943463163998921205978996994991833200405094411685352997585230265392671667172894284441806137449172559538562577883207281257143436650350267157716798868519088636807342502337594074219963361064093424660764723766367853614660343663419658848287409830444272376955537608643958960670986826378500470427181956223832942262024332653231385054020454902802511838148142006834603659942547013284197055675306083348054754813678485073039993510698842010491329380518449890227078053205425251259007718953062895947301060836001620984473398988279954178499061785393931499980838926747690658628738464812248653116654992568334026139436142718254838939849001808307470838227443432050385724786339261785537674239927650750393593848466385795196362385813519779784987734486484988938981628289120306030561916638420961155221210115457102333035909112811516081105763460677503337529194866715391461379315309935695019604838806374034303105811091746686285259063993937219446978560836831747210946559959277478810289689903527106301187010589990051718664226014809484524526999278042954924021424294850513037985422577054086839578017409411810681035555182339234011190819979744427510750695550937742298300868888273870274754752832321747265990295071015575725004960650216268259616947965757486344574729770357436963588070725723066119444075180641318329689394066636981656625145073202399638864013784533598884625178054291144581680473702632716844462317478076982657163384957410737936768554424734022377143857738501344862781232713767388423781029401096067486651009677758777133601193369699942780143196273677727804218255569331538901189521369234177766061421619008041802417515104706032236345969330086988058774406434941503482890899858438058390417171370306606326038864575385411685765828279606262811252519891344136575271445967426383816219052806447174059987260294650816437314026809181216732853144364029257017080756305710705334460993274292185906459230868577306819254934739626297870406559800151052776404251873594133957026764666769844649424838207965307666201812054151609363628055748701081324852775465584467211211994413788679092565309675213798100943677404403162082375939009650280399780883292637186762618771253889489976380434579029857148559068471932065417081210024913706959712772922156900349378160068620272552850582722721039885773734961702947009758396042277219761984714905652182593171895712054297696339795599326021453629662045225983338024051497498832401004879937770543051213653447950358059892159360551420110909315659375898706906678166325020607748126138479406304330932461493446007434960262528410926810031038849565462848511924450021985210632268265113488519976531461144822617353531321121662807630886431653974868487946406966027377809755958550679553818834440252561490182521296208353722346109716792154861345652735440125722618571496824161911810174928519108970717926818809872200487632391227820134681753043077495120764328944155094053520950784115860089124340911221745778180405851062938803729991014461136817706147168048711291215689308715485415907047163054460880935234975993027857737966601920111719903134890886118617275976358511123314981823446329847668102196987929181247551875622523753785528316668072040916225486517371878735925548078525249351100955050627071967400532056565433485149579741569883224477854869373548419068762002233394640579662870189430630630153541578560569019365433091531970050570855592175148376124661280134017670812811386186262293039928123286527743457698198923084018411138444384144536494730166936583002230091602365269152838028896931886818873644760805916058100947983976004049739429454539025700295470151821254639284485402087345706100031535002759532354624759919401162171450806019536740693890714451208082698926250942010069707858729354157771764758005679520853653513252060718263528849514782001895316251800633581610151399326025677377616681516090942783447246861381594642303257693457384034290706004889757445037210420431357371601992642536595185482624268739849757992639866416282223480905829425268428659275414009590349387226279898413851889761273684108770429721890740165093125120832302785454009253399338248962840641271436434491169773300299565022724356583395850457783490487071547992908405791754493546471657229771030363591960741379475559569149674083070757994118565239990509987001033913079037801767270068352754843983175147946313592448474366073180689839365953562883197810878233860488441157291300023444281283936144105216027609806426648259569739247513223640165987162141271819699317051147436008146302604825524311451667634028674212287221917511216858240759049771335434974917892281504816837917663359578516032595011052207867795534793346742935508777607452220069257489604347116736113823787299842893692304780844341576061767779744600404263449746524850275672052760835961587810527813039743206604404000751851799967175408861151648156322623369415928798453137198968476347741493207247057876054853886606644633708680678041878797954098000880431482139317223041781990506195778964894310255003867122115516909253282745082754208838647172536051896940043836110128606112137365209150239878639262395688300082330677686475924544794395137228052778240542551180564587681522795205857557732825492044532689740945182254229035921168351625481733001892373847498580174495771657699599377290704382976150615489835217781354871885811125263428840953852228050245715585163850493669607636679223209197187312639018008790503446487466076795695487270035558569884425314406627442267342292949876512405607814748366019414674588668603580939636113631347166220068754737836259973916625346997517147363562010337777896997346344698972104691986307202322292719071175525565871066411714059703726406731001410961800673642514675267776924563390605196834905208604502184071568981635794079166385884023810752080639458176681966177111566075020630107687172878126806215482818525865660711935295169479929706434587227810992169966353971015473897497516000550914569422429272308794601951382902177706338142649423512984704928283478839733504449957490717981340856795146560623421600081762479594226381871895324532491233343874916221618928417723563641525860573670340006326424256329273717496998606662066476696559977675659519228940656042877415695574402731734011522728317892019077231667942441889622528629320482106676089015361120090354612235178036225909720234227287287655414289817946691443275794040455890649442023018696869069571828393845874717832655660413828066311852195100629183192735644936560599495649141272989466023209449300139290265427643084228805371811346824844440746400416866906513149509975413332289823470046821332263303321564242661232210990787922514382561182993122518432899369408554068689151368747210606493444336898546875170035924614542868481633805372476944696858630503126415538998778497128122224718861044203173179516868541074899608849874879069354299416162636036051613874752326514839710164339736770633843711064919958610560263932690739989774355100021510799222597041405009941231188790629836282227661863168158012244841162272001399785121751670413044374207470065034282005385053372787851439527462077436042128534756000972778261465061579697101455863860812671270438356929123740431498089782171663406104603908114217242159461472463976253297746837594169292214154080968047532110109576349049593522361209702893550975761823022088848302644071292164781728163844531520767767462439386920597116391960557559487897788334160629524639489637391938485635979544287937548647227312159065830310516445755258076938994331218148427261615725189794053004889094236688986988957263228596869847552728751512438332475311273440355229803710512597949482444425671041317849639294320282659989695362846170341105784794620276833776646024511561331233906298574115771781176291705083810175105473827503780282354758551032249563755808542932947423419841822239031806022999249685315526212304324684079355304067309585819877332568296086896097012649375685998654980508454235033172406094035681689587199820981705976306085941540651671558622381360615919538118240312117523506760838800923512491556503048059353401644150833407957964976971353206121855913406855551983928886992839536207575196307944437805260497763664337556179403482339854856794868545830063505004607617677708072383874860760849772644507882965515347062938350925453870049402136230041396190074424391636639410905812241290072080546002642222802770802415456461503887934140044913579269436360038193507591998293795887865735169758984670391778618792146486467255373293362650348570332186489177906357763425921595863750068115989289185959496511247875580742363941788524251551930415637427737504533641165400320480634775202464997138597285397089141329974089328485684381436934035373020261641259458223001869864411978588940851749743058734751461074737556561921577398487446705520602083719289090421234269062880808444717682634304487164326247269867618434493991580446372725616450468278734860116710013532417323371907013029862883251806437312847928851278135189831575963790718217994452192343493731839918653232776656106572968842047365211890589817242567207810693397438433100109968530132116796026568017700958055060694979277329008768761019578693408453282687946916232036936114218013621412061730006442548901571500868288513643796601473074765500505923219606826255921131168045811649219127519100341716395328889579331940793997048577812704231512954279249207381448063222298994188767311595188173444913910408329497027448897722592209717770611396510954402218342797088418389086751054348055767423587691747751876756652828588799210083087625799084984922228768364620746356707576168593687731781474040208893017326173759347382785973640053661133380294958695469755251717048364096214897300688206657871231521147774588893850815056871288019092840073262992995116674275579221518115382503067155691217819053623066746659102482527242746408068162354279891703069861573046275155020147310035564551944398183153285096996744827987084475738546041155909388581104956649664079018614665616218629604358133824354869710900216135518382837249216666292011351682738990959842649205795528769287957513178992059187042535269948913479153648646025500103290834637712036700252232656159503094620397506829791564497804531185255347063225702471486711814479378959980670312831176614318210794472746376670379981646805758787583583904236608008442081739672499645624628671522275482241565048594601730989064526439231192691310116101752171293302629076076536104697498864557508788337548896447292892608304069204564902849954572270621646560004989662418806540398565601298093916495121598570609566500586914742420851595015771850472614725276379797023659921275235777069061763509989794240733662909860820945878239044689174700469736747853211811677890657983855214243073731881110093676559147901430488555702207671833993098614058730134284014453087828430222135537391537954091058032111127384948649550083966810274319891570163318375919057259631896763507908700542657737674492935044788216721153954952325581874118624734540096369069435707620199789869301957896174376866407811482328292259906273667824401516767986088324393037224469705097039676197788214131721518920380452073624385300627394423329058025977242611716638321725345047261206366038681985403324222150873732353056143968284786407004892437315796303124460064952358773120544846239358108561409453730968072396234510013546289322362832229544238657805497514253111840107592005716997552276082373074663914177456302574600202859396598431238414898914718024007682035448488008304737999911857563889280110774741427838507022301294053867481263598491898495893358893796552083982993182274742721321092054550146005768101977739932882912530767853003250861678102209837584131915854554865350410569840558878619775593350600356890525533118832316636256064914613096040562205940551507141835458887002022590416969834072033661016376507851475637222747511113220896661376177703274623122953112630606759870233747767093234721330138126402860520606823861312052420545216122713645924067913890582815326391945389332853108403264928904305527421767361103296766882835150875634741919101836445707310660552235692487521867083846815268449935657246644782227968379026461215729345250627308881234381739570794332289575994833299496443237010183138788384080223367188886963479963617246851757432487182389553615479417839936588598047202810379951490421105276664951996831553080523369295394168453411723051934510915504858528309238242574895324653099397113871396228183226462913847571046610218674601794214161232974931766077255818082088299145496367465442565644935902608225393107931066158855694175301880658716629296356178840009044183690764975851556368259507502591390615583184735559191943682132146357628677402658855427729356842918099181824221769656530402448867582783827032064058770073596880603603290874455654709673188875341097388983579597927774513729330631025161912158939715528898149462873578265839275401899459016438036655733062845663547340782629944217441224246673049660023183236471454667069013766843508386283530568587408933424740268313735401781272798963982074118449810246999518255538907865941119772697457979136867124384971113007329854136454109333844519377566537553302450206784545901131327954754121053364217168306684415768003957765277824185196794834585500027082937357844521003651898423792120161733276251281702425056201057284304470067800576870212367108339462090561593762197397613707194955733123056289958572599272835915678356159659263301923375273160917683879852089041716735806162900334133918427013763565385226553983238128821287252641661225935842232081542428790935612088654443692790705450640080999844000842406779303096456949818914379304941511373106715790120923500733785636123183464876874960086489406021058684034151029204693868194952658504670386266299879403917750742170964131606908096121466092102528878231596927700559240083743469278574615064958314628117877468667809465289971561290772068869542467226309085871091135264858347734643511345580384571945735614367867054699795564662965016567945437524670385602632331405998190278335488251422472664282051111103372456229236700660695839124856073350377684364168296083626374948556832537340273566624585728470660992290785901343463624777929404621025765875365241366738127400083751762657741979991014462139298044871012298638383166771120992576976508226594339889128008751351267680874106104764043186753418533896973520593463282271205714072746206578232809466565218589506380804129707875640039687019089739460129144677926376162765129450178028834914635276522673351963347859036461030165612348282057873510329737946033545128888899427593330786751755753922017000106499424305259680504931308973630192369941788287417429330030576692738916131391441988395181166672848704754473897700901357978846959041772528186490939981341927418138580773835606416105337780302992479118235311113059923275740320965646931284617192529208257799311709592183643096452017017899508953993287460487364296509847461668264085916647233560433264861386665653068826220090572193104759534200991369020083201546951347942855489801486460029317593324211317650401963144838337959718442823718724057774988073770369468664385767133485590259290657958736441591600497872374522184873146813126633225552703830192469069734589477306898774234333072786592865393111864540998726533341152422593606440158771497402734181347615277294550487885350429359042687379419462747011848626421674031224240767950722379729534943840444726627872112331388303893568273080173212371829091745556697490622820954724290197531844198568424209922441865783396526200583274680202110964637497366360805346645691343344245035152810233359145112813515799347499408476517574175779360246388203843130035992817723287627234084651182888229082431996118707443361761331942263177424299153335738962998279131162820890555596186944043817563786149258619623321204783970345302018658090556187841748498556599276283936229202672532403401962238047833806903318826826714313465266326987565162740950996161297409397980850544764337394322752513303362794341113079398061958290559093498339770124153347527463002444735070437269224535799771714888463335489914097868585188453182275120594063910813117687716298710442433905731618012772549917327117582433770358231044615488063572890859789875848714257555398511283743859281650044484154914826635263229097747406599314731927888910400318415760945272140876222438757326586105627792061841092192130570096335865704948089214339894416790236823521486414319224444160425253876738812624692906371736822574749932474343215833431575259453857114066897516158925212044432110518765158205448803708582320040160358445373222134288825972902888217992731170430201706662366362672366669059305454664475318180221680354990091660647593694539407192508056597988195241871866759784892194148437726408370384581073670065288447295152878945757509965094521180640694970072909828923638739662625118995660185513087447377268253332144939335326725159564460216747728288808820721911589169261967485034572621627717319110788729692237238649541412116077976045340747715694829765714409194674028131636947441839626379347013515096747699384322842891608737093608285506365706932299821615217537892062909584585576701463867264694400420594381643482086892463983486536172353036611106842986003990829738918529363028367419451822996188818119963150644084612001588543060608595432714502787730864322204990486173401375019539333909290733907296490987985367655052066279118970492141979162937617157441895190519868511678476979368258365480821674556632075742599283655731895508416369258164966206781909605723579291634740522536812191832840134764480350767541537050304757528735559242440778302839274772735775499912520457824789669024463595838511296832216318575397953837975982982807016045645289257516836619191139880448567053402396912114720762846704816394160121411201479444754845251882342843866483162798529523110972662781567717255238792300670934410169767522469010036050468987196938883489692361436166537081170061536509386474563678849057370663322511814038538536716926001335336686270277496499160655852355821987448513808986428847269215681920683847950779575536216463380428172672607675023622415507353937355417887321140133584887963734288452029064393887474113567563972134147943218290739706249456050632963688781119951824551305935363753589909884630839555978571125873988263565825964270964406875966733583352505614103961370208622045168578341807750529711628271687039440996448698259646841577686630822309138031867668576781961569333545886707627331602817445545158409814732153842706027557299591283377345980590039384047640359446276395413389053247836923744563285074659749909776536563750382027292398135828139986716530396607011731082278198032131139813407071395668302174479640489324566378477152244959095029787775265714071830476987923759681048379544718223668987374334074264000008473561522607132099766762299755402743737966794692586973248043532207313939908088561651078797679660003046428482004938803980201585331419126364005212449622655331624112804184622875799218396108886242562907802403172120651996039264945677568068224463280995565414616839629536027757452776667619247303681069093720151718949473461499131896877517282634656280261643336360802851573895595479321118543269802105397449331801950723770756112970372785357286864805735678997859920184249522809928192594997843072903551419385193659100744494603849142924352086737871840950256168038696223036340531710311587102432897621217423273813570511888056280532728580486720532651061071180863893822786095365285591074136682859383886446186409512694937355567331831363434811200244336382096935739251275697956736249202670244172341005309077115341041442526740023582453451798204695929138020745712986497510760342042500968087025706645357913669237067318030008582577212269982185021309291291777873907021295032945471848076951127232983075149245529500997914317213176360636191833367276213564630692112174142491271091266661978955337715233177836578809765064472339516601866334142456782991329103046489643626818389772602428174011367936652127099644276179260332125042650399033871922901401128801085417599724625868740894888242305562023196346883522067081811370942364095703503191869815682231544616689332341378490228864086285098352785881276185775537735631781765198304881269728934754809922125934288994504441520564767527895251198173441272915278123674818931013578378408945320868040518166397632247598455503957445431432135348849588297158829193757870873397317757336763030691239492212612826367163187040503566648996112429685621264223165266952504369655323342959323383588302575034655614868459164466971159333092365499096743298128040373741385488240285204109868643597338614421881623429566752347566260816691601368537144622490165184814902654145903939205505334826214084954395019826812223409874579193980859860028467338128432883386868533673034808112124993342224135599589791568608329387172611375590140323419701428968533831879034618365712264113153555369466965025442137012316225357393768997217901245019954474108057755042559913568849475326394437003161673010565388508590339647829766688383236739625018214041703397485149425734254830542571174487197651223385539979055012884643478243175010032644947343073690371437368174612534670951177476117520764925654096532201258151433431541960245683362319385080317881842558340038796675091123552887820397444775261918709829618117008637382205610666572883146455158537506022018559099822839295458745511823966760790241999375062702055723265862516445522144552740165920836578511837289239543112095796838522839397091463262353753174690278669971891181967200220334425977906292538047966737549156404486307539000346202045601651712637073178035100141275108532552695665075008099503668515290542793603071038131177397660942206043734552852144319798490171515637104687693740503091536643101973183295284773563645995702147830394117059824414158305616529227933163619435560588413095280625212032763456534958335479595029263173716089980479910092589015865741465451502975545990018703635360680661548530819918658702614751795388939717533645212579557848910828233981673706845309069120148412662482537987946832007042119470991191838929396341391319301610886795770645624750540671391076051079051286678152812162585513091927796905587346830554247941528293812778924297220840107680852682795953013342081802950230980748434672163052762233040071105162013081681613762336168500925866614165666903880349853467184350985106115968640436741552730957503795913144434468263989770953896753782835307497228462826354241158630637067034972433790740131887733332554150735815751725519344701766669247477406341744299484398079588400202935435993245144477157358915256042626317995105303145051229105322271381792878175315163180617308032625286429075761214439581541039723270398846937561949013031053736951776353621522535044642063099436089679009398251152336011136041440450597800710164299272183266404168441975526345185100466509106849084031926370076797141946385537101014779018859273993365744919498003388619210520347577916761484837760858609588578729781660114832122629312047379909829426681604442967680369129637241220823820784844033899640714334919579655668212151412674096020179268148164008966535337626598866322736169840861001050277300853923383946114650407921697344121404321495219765605293184081165134908400027211860051261569449623856254809431147489081515476438447292316552182157981238735174858555378217269252318872886281512857204145456340790147840664694906145345711427029407183372849253333641548575714926005373219011037751502099435480279666130459498727271893837532458242937660250713276574844151777636683628701768979109013108557493309051926348939368845302381278867899918943306987239521891950663721732653101159764852554043676200421620646282774202743165865026067311834377261017127558472312481009995320445772304380314789700399206198182461269117895004927812985671895604451186478165156768630941878776942455034908769867447890530963438313666565694986122847070861373504249521908094511767046625160438132355494257450167683697291230794885201416258557146768295633948462944273391106179372189890800781047225129836079671816547366525337444939078503691413329815596450062996102860666725785558368603956686331977305254289890065972985605210890494747747461226883896147632811771317520646401444827992015204323783205488794220088805451158814567000322334168683951792997841897784282121204518413700527993889030059922533390465989981191938614264711983638850324443332104514695899268884608619152438821847589062612592440029315899247434722507484963852461473972523374716708684778266524846577444108947480223150313031978901214504692977536796975842963974453678245872992697172886984053237846914495936550017679078726491534147952034475270336920040767612169886138868769893451608416327316554343020864235606264595156931510785445474561869268886714948640679676000307609755976948179435727648904205138215405182652941654705452817553249761034449107810799284319736543320028603283822376128978775544335064964408393972852694118637816159753466751824816972036190012106112962376405566475661871286345380644992418452299882361267344003436480714070249684967937111074696215071327988958561908380910344410899362438698562437847489541632810823420193229224383519385886837742492786118850242054909947756757357843228932166052429888079201232892610385424741762364263114156261300453346636219409673317926942387877887254710492900636337294867927513231004044706643498732888244383535761063135025638761950764390538712819368508497388025154525856241536314009301758174194615831114138099334380970160699761588910740075441283143424642925580304172049572587144366263554999862199424429276762412382300031022444694072241771791474880631430919105569653930351533960186492098701805870709827657623711813791004835785627178709628886994421113119837215505941046118816448254935481058071094918945071850646750108128493920184729711140520623734983185408306760212688609813560902627129982889134299487184947905068987707695403455222757015027153671182746409230060918353702313160774147404646089002649597648312111841251910740205814059162246295424313520909399878469828505674523561929427213971581500645979942728572206485632973504382784421291424605639564360849774027070662350740610182975016192696180201682685713386967272690701054592718385794661120934258340605104987075566571552170472407122792860939035631785992852856077894434743793130985035615292557629959256581883601494629323452308166914223369845796221158762012438695874227422500867009651378732679819118574165853756820651567601508416951797792762975410832704530734211177387332416332092267679208574688947838653000789679788606967525645480512074137513423590089335220143067681756399049908117339379853992668853099830074289768437100090278163723356288641188992676375465047275205449274044371837382995418258069161311969598349356850508282207988404493122961363114890772376032975926869195117103468455622114211237871406985874321285685139986793819658994019790130774452328268910954849508145993741748274835070145806877521675447126448222100929363401615327751681128581574236545987788401221764074046029821885775344717581737950475126332852166382062446802960413941871234520628872827350294642941380841634299901892995560685486459955215466435952346390393136067364663645009039937620939637032086514095613358088272479981341201528835959048984406439450799507514251413613705382094455665454232331881847962214473838482467848405775401875698674376260128427677132367302116096262914218410468511969366586991626170372864588557781484228985523643341612137133411042266304788815107045727561539619249174366968101963773893579676545295775995274609116262857393642496922519697165719015415134573437434752392015119566149288088816552117677687767449858823162437002033094903193357461114773861092104322562465403647572146721492743222439733765229457695860640680442520550440815726546266546493600641466519066596759491167272019675492541004326740756283947525675848006166348405082090615167111706716015157766639648502784846653670389326033283983452558602635141830735865318448238415157628444743376499285612291844512291291934258568087938120953686666301582368958886783353288378523935513892270387165720608236441373841793145754809275983152320564485169400349086622611135500352276272644506543071080761170014171965216759403869604460192455771731119369175018073966381278987103692697929386232462454315018597414345107307254558072173593934107379581206197035157093252049072971882076908432995268307866266922859541948869026640907819172077527394652136888144181590234611206165314981454520293319323580314432568893694132115316336918177477663510182605621387718814461121352686223683445850305295162952877451652639131990026152506376525456077496822801393162252524516328375082997943499082992404034844256451224138504915062485969724957678632738484288544791657612263342429648127506494797110483415976888026825522620456008811059071902703134186561837117954273567141911595057476499007686284978278880565966133724777638324648756447995118000801244006852362528668222940154147725050690809696303809848760104465904934378764682175200740019000115611077492272117671625686286162744703961848842196674275599826040980085342197513653640792045881741020890616205383448871809520256277730153053584803294157914644271331391361646463465473207089744346470892674006539643148117869282074444810924960282723675909408988811159951417056356996048791095250509648304219971884320798995856415124333836817763990482891940090004156881670083402346152074034445916444764725729798376718912074101030225987718832100627651448206656771173693315425523038516954825034541154231435755411368107080819374753272262027760774464327985807529114813898368792046384217610301304776590465153491610356792544455006473230302857452896124020463680767931196735512341623213838463763267233436547860389564461390581672075147211037726863429914728893421637876624703909042498931924667470321264832088390100426581037342809773399526164588910560793808021135333117689768205644714943340795849247948887931502633596609922455241720142861952326266580585016059799395095169853115468259726848412401911357562475969207998307534171880863091108956125418742371626041296242058159496866963419926998335659459621673198700031283125831045225703886450887824874457171993690611597274689872458917349909384627482066398138169871781505664137921126713802440213043434089969706970729735402958208863670218238950832271439186132072751234495640029768923025219447763221419039490615158962892714987511550769066843122584126916737136147520091948238657527218618518172030020677970841238059708548294588996496452686402286118054157532190637907599317270479155551829800868183332164083503932676986836586429768251238245908292277024592142067748268800358274257030558075420934111219426231473489152214444821649478747951159263041179673768432170231561030146020687407693945835824903840367050674837994916343934758032068683533166477113506910739831787993081592724638812691228341382906419982546257134734409844512436132835992718797466907889610888646789551461095488152351751193486978696667627994451958070513149360598139780025708974922772445092482179085621101456509177898351958556628079865091572202637375153952600810186194233071298545664270471167056519307036875687090934271527867021891919043296480905264118454987058336955526225647550142498493824206598380816645620760866465541662678582877173574661454188751430970594079503178007829042193196542628389569045042252906523683294498754165429313916579651265920612144248376783752305453690745668663291668580616477106650140121564518475504638245289138628441151687842858834243020839003466318160866580632732032610859047580581191929654159123288911976676927842678002525994918953176781815741947598222590107760200703618954648186492041621585258045074584648369029146112179475917082662612136142972177354023048126562257594021402638547101799440413542869575169307074236587819071400459305599988297676802414249246978741701219503032148715784693318358892832516250041611820161468644892380505937934480010544617875462136082742997433268570591292287784029555798215213099895877163436275268843229419554262321767158742898586588405124240071852743002708825289364745221063077441107653884383899394287201669990447886985385797888879714123241084034295052493693022461563963949987583645514540890631132900110525172611522199076980357650280476875933969816320123054390595908617836398896378709919029997854735121851458463776897202501737657943443667108255021070820402603695798498493438833287940992317637850533579092129508391737775047322451136368293171121990650969773438365722102562906489946773045885759382099317005917273689749268583902393993679892475569964529122485625556574323648931911242276731065140042481406269472610902006280166487919690588455886073348223965551704819446962853103246250578116117792379609408627219498099114990582974202454271007498904515485534241426645336167565435873872801542862934893732027586179104183491216779145538690354229451841755928270025847006288609994559272047626444765230148005304293809121419018758030010779995952940218812338558751731847131317292123283837173278979211396967357540677504654411192117383002330839594422649816023807723553394064306062685681808986755214802518670404427792962716308084105322136063285194968674529793595413624612403532493427236539003660550970596041153181084371963020512859993316371450332128394747819209504551341045598743601830558925413993993310527687548760017194118251744617950241154894267654330594320268569158144862455260938203780739221401923791108836919697599449519332807021179975796635898955212240164061476180003680301671728227506327951934189833396255724767467954726251979103237673103817872509361344581970817278458460399733709518758699453733477818773755627217483988869859679023370903493424983097905405938769439007160332740474427966203660435735918139236339167699704269353966241886074267047415251558999393783668628130948436157853209414913152661125257520999649112678713690459467979399878637099995136130995873786440257215874866290370807401864904065673682029167061700673153136277654995029620597859259819315715415552845842992327075776633501605785960718459105279926410273532406316093850366262080824001504190240112819662141366483872452773948505521297852023777443939616602042081116650258920731500813609668273377168574916806212791792336004546786930048698772170846170069561164450905759497152024819041718740517054676421646407998093902183859649498031736735244107545750916041063449462269192394856069770373452970419192303941713228235590090602027822908644105477211274064648822114133916033938185523915179784600663633153153167738953594416583828060187130064636069382574746833097364147819824803148313950548409043483326620549275366569564036985078678323702911557955527153747605052926748263587746595067228843930549973470983075641369260219839403065094398220904185692458698921801057649156513719880101562761827606656492877366757106246386625989525059157262696531395846495728701819159314635902291838470846916312588208769661661793069411445474577385416942664725833756070230075303648298397847591140909747077795905530648011065955207291458703031198035863298884016603418226258912169188801014292133400257028331142658337738969856764103913808934609842658370658827994004311082314917250688214870472640814604352721623142569710585514998464330727856036732534502719360678388152161124040379689373725238699711996655689509085470520699645620678954526678855467883682211822226386243229945521035874679173819194972446223420889594033088736626607489131223989638382643087916838833108037255064168228109704512861483334683864228960663314407261480974083952491703431877814864362093762298534282325067610042694260649683447638897541109000013840140184194088846083395144822104923401388526931102142387125653098825826062382132184286629060074572786924107675662453683041885409336412170463743312007319450408697021891024210866166961153191833248135328376699100623824852227784863992984418512011531895261876133527287947089042449582282366973031517366919284068318388431880242529206610875421254511013553940661530424329960192835447378515833134389406196212800293590467766363205853976218136631764536151263453907857333967299973406670529740440577822614347466487694857257146747029933115719610400725962540052859578476709783656018125687698565574643519718962808533915015761322776777777734058795344792269271740844133495422483329369982324778371251181132880201630433475371445652856716527076896928190204747314742413633138544161577820727802474836033205247716947996983807985134361931770480433851195564720898634129184822927128310591893117208849472754286437008933900431601616997088660950859702744607823829723309456284396717619206249220103794015180818903388441271400145373295528183152249986727458448912398230597653509505903037198535051916892325160367402145206981494653854610437712715076552082650420590884998656726809937693688547899751701808098440895590299262862846555906395099399909569410494521423133948222024982434812577021076310511080221025092161063756621834981659089727756633264644948542681327410475115215134144062796526347333409698296495886395151400822615802621156047351385801399263490340885688027261079346727887545347600356240886380903970982488089552722768042584019632114952042525155986365603514484743893043049783484946166631513082897058299675310547476623638780449844420837986184814106531220322143221951315517704425078703671675784494628509769295496500257746063775695723062558549338624476945180296097822470224438331790098436135137946053634337156468741890085842762675434450896483337637371338233363365299333175662486500893211571608680941686321555470898374186703289082725059696317880025116299193627610079340137390647436019603045232774768473769742729608973687373884679860380961864698747989435465438604285986999102629957268238874862528752632094737733535650720705229882431548449208312327418700544538995154541918319120126312884218187454548882824314732455063800702459312365096028568272684480105979038719103514928642020009658251266112972718918085354354621805483278998196799893955826287851938954297456109880886648598979766079340100589746816090275207401051891991834945530409032436821849524641963044628929138800529735870168634230926283350785454232869508844870160171714332509004959132455788252347302850359928648801736650784475318023171434968161702809727126782012885617617789041674084965001897998677429151779846406684990846901192413967062127618928671090874772462339698859024977540817053581134659186210954299886720835522869386360605644986105331793350865912851931955017077412863545106214645320621889141765101541202824638907777117478390967613164526129362572300854100648602368577113504777153085740563633556887247897803737989284126288658943501608946211652360782476115994917969571786422366102323658270190948401425826583014849330494880396585221671726135333629236605233591252717910571836366259417997864552205271454139489870125699354540564070144524920903719339833176202981080337543668984827584260989240965119747782904072339052727072086856807784254120555798961396946481955725335336735964058970826141168846392692485526608805380300929198818220548665729742933093330794344535077746488936481933796612981526280029575348026043677437698484437734146552237197864286975988956266011466070676273809420895558968823436194323777216093638149887096662738496701035021402502376072831715004011134951578413196989337539809806325704033613913364172379820842804049378666913642158348845908871700533281105416009374355559923637349371561093358773145479801789821406681600928089747962401673073484185747100299331814717013708751733729673794403012861769332483711787433042428215000051105584116290580202554565367822022408626818842595767068661652675262458945118450073694197906461860623451705601270041237522004604923187063878872243624638019743937278551028744205233454500769145987837388280625160417151873639914255209075921852289189738565343840364562335881204160583340960015032204798461605958916858110090437219800904922959287349590414943981801983294805110733876250621678872945339768810050211441416181884189620459369639208652290743881475241836234428546270486836838278108719888416614901290677401295960976501466473002317785660000540743299153236420919512561033064451647549113721313789234589349222113199994452166115474340076584626658921062323626227776330031822983814393214918744354661853585841987949455885872266471008941582608246322023747391461106730045190353769347429175583742527678556581475386835811252494818479889945653223145650856776397562062045664070705854757687703424661321614841249353432297288612863496491060429147034952627811380871928038094992774220568866497614687217860925031831687985827840056974743583356261046055023243617935894328387793372633690766645901539269306938625579659742381024077339192253274459152289499688075963071571083326146145722922484551400693306247177895306135392940322475526311071758928609340216199453500388260765901916464123414846876547088909512752720725137577387998330575662910667959644298900370798578345395471590974346908194904776374762841886357757913105186582725612441768284755435792620443208351547677281929149594185768524119873549165864764022837583513440625277826710664984416651909684065614644016180521828029164564438036089108384026943590774118967468684085463577276374603162193995223465306027716478766937915613958597684811071060911912834643679541580652084012512094171414791200551548637001646897863924069528871212842043174496232666012244840262099983833589803050130305622282403257218982615204672243349718435688509777684050443198860853001151708462144370831163444208070631715030483981525085576422222691934504413843133668756650641656246394727693304266039121546625445137553738897791593231208386295268756598797298380335439565228563623935633698417403492033099655812996130900489186812581421720750858059746306927769257661096288774239263295816789592498902974324805798664671860742718163498648030646248093966420641673675439481401451722685027311918484816605011692233003813972190648430020234033385365547590133651325533743061059929684156282889076564810541889557878814167458615197428810315940507591511300591235893211170747365046725721499729502415314759938935655823806852208376970487756048189362066195098218495658346152839284726504151555519837786382185693901411090752701613438855140466694807099582592839373416145641258075654596644424124869561139463802780228710028613120471075912048578276456832051837364316137819253688363295860207049196947785478722401838075080692961274874077121690756542946916694054818742374935501841254839424061547461004295313533590667842974114640143340274687922485505462981077374944419065179453754860644482718857652647230092938772648551768464624247494289680971293322568266149964844582042018055406237488114245574652607939957464917879986561948369929303353345753783983921990438814045299558494879833713015080508600441679170091376346159337694573035658644152599594799330411672782838713359944673883267141899440813150166279668139905710125661693113423319685364701036472827457726356138894131994378460470162305194208281432408078915817470020754715549219312760664345435216810892615370419297968092806389678569327621651232748972598594147192276416077160990638487351450936937738511009811815887710401149383471774333727173812881342045208597259073305238076255826075312117571642741584245598986758048290474299500377773293584805441438298362427512104471759589119900084890517936941151717440305377896876287692139458313416136975902310474920458911555825542996077491172225723450466866159502093647663039554855058788810865214364286511182719670209796585596270959952076868326571280209236302372737070680861769051667049016799279174529162203383522733973905621979641826739951868134599757212424757448062624281547786002842104901415477223639740381509415859726049687678843068375507648123586015632011556138625831039910070690557571544215427664847164153783809462745443975829138542473237969714917107268835856345009520429842902080148839527534051652396985163436040891406876003190805308723674638768337684197030223154422122068112135250805957064428906007446048356288165938265282962108519182304917033706474083391088226910020211579310722505682790614793833863626168194950702865128318238743222062984231575000720646165937884982599152891678600502132343661610810998503582256284338328595731041768616309310007287964324526393351955877833145454449099114508192153166800397441955223512844793835382068569376541011393886296775070702505336005034908469890204518118524334857691169146069940700444045068623792689187325504438528886739563404339576548914263809054716950478075262232473402295176511348862323210361196902432870291926884153302222641837139249505859549724249044872133081180345249481321529776978060576423694071354485068689284241211513624279850450549716522910156898565831433213465062767053541512276025230856229583803445216000231309384860468998286968975907825989960213927806286271104017803783907852334359930454904441990518405771018433604265792410397334026476565530773051440895298953351283244931493437870871551660924336205861911271735941185432143510435965522415833157695230603740461397241476649214777772743188019108633394592830476575420624219816571677188728143153507579084508370402303808259358536466871596669918151194771091578196189261135960169029187670177985220646246636201188485872104184097762375729245241254690906147027108251495632146220139777166939014337741234940825535373653320006127931164137697593970233074238332176216021667124002779495187148528652676184142158413244241567481130141843927606556538762950902152187647053463153635134644530162374848612463909489135342546610341750354303102766555643107363828591821518538766751464228703339714103525425640848343741564047428020243348688562461724737281177162363171370973985601431272117105081103819854764818313643926994964682042893319396312387321625654833520617801119811573858308850871691843365205222232957528713634891531830976087661730266827991832013757066794791820265703535495831605963744361751818341554318789119200243631551883243775075563855254026877983430485974164470458063039869437856689952427819383126476792193666209497968298569389806244293697817408139083474095594531285564336103832790424495120737724831637550647162308140647535528928948744618972253932311824055996599368924593751992113009248934672708132923904750374341058613800929739909152637076367016183768330168552479292745039680941034675808072624823636787810578857380828741380402713816325666419913874142463675180612324092714041110220052999090843669684669246568176162450555166549148123602563721743534000146567526527571104346927714874470100086236563578663283945363946532172997871221748995336991504027099104533135846135645160021513546595839921651557582523115142019062475015865777394185677674488810765906451669711987988761549792705054083200852019096573819332429127383468877648818182386739262823210421820895448609403488073093121820035359410508241573698453130496867733026355296202034706500921335552353805797832558706081678264593078595352329209950911430189901896798627325449463293924053687833494682609367687815888703886035789647791165977560755385640301900630721430113120231621665408547706928293818253734224765339416419807576521172389230637607861419192216392219925160751852873165330338868514058538166484324900302577560835558147651488651939332858454046609010232697847627743503858949991127097234943966418167439601001775846767452828997009370227735627771507253120150939840690540303877416230565198582492592814608622359383101661091406047644873195516512130196122806606684811024479707240355403620750307308296064518498595249957573709861936351154478185613996416569331036042319649009349063045798823542075648283512004841178119971516137138795740576718876331635624014060069581395794159848369498490104931630554606246987957102976428538951797784902592413092211492034704994623149520050951594341007059519352871903117262256188746004508037467831255783967491578288514235322287019469186815203057066468213570562293621831251028630980225809876879480484294107488456616576379176965399792313157729409953546131164320801118690577315791218011978221373418169029944533060491098731192515895169741949015542278116865806586048469216488211479960813880981266664130511363932828166494964525279816617759131779597444849648457784814545790155780857715100930976984843626537495328267349570588734582532493762821825129587674204155772944610111533767242143705458561065294643031637499277499534248328042157326465474472161564140131332142607089248814351249258574048930412748750543626434361190888254040338451453709524878658364381891402440479025884309322437471809135757411669446191406145097269491706469335251830322726183303104923246405765186703284441526733233430909744404719064448390416942075779267209641251260295408278877985809884799538161478973069184562983321892175275366848920277331724869258865376016560383339777614692587120909985310843742053928686946362515751346931010873951079249096793438805953045889791073143336570600797272235585805933733442854256914077025843535684111750743032443504881314782685018457727251760192691103345928697772666088230475300240641974790148875944375890540797456276121921570831351700892661417489346127652617032506023936445209132166178821158402027573270057478620355489895805516917725437854825216565407048421378850629720979038455067623427045837008461189169609603522609146538596944107479636032169298785018311782443563378529581813005878503641448462852713563876553336935932457204059625154426559648984650956421274774020979212346037749271974280805940618317815789335276341764258207239340377391808765990138118514741092584885764410901797369024419179295643720099729990303343661975537132248242768284100121349019021956422098119701998350527013895247650722418825528346358375082262089886262925508728790437353927749399982253727576215237310102030045222975144291234786446397856575092424329061215042010966640283303303813447522099763274633772471307000982954589187863181283909124617837241051010377868887214652133789311629866929728333800265064231314955739185698009518307368082970501765469135104476390693982056654268467806667666470804240356229417477509470893872177731368946996555537056816064181990211132498183761989829521982382734991965989354309982463493182667722849517680044435517384730409718696110523221734527361634846916289315699078865287508384147237707285360535763768147023582311664381136613389952583302701181800083668304814534931597054112003515775242610881208282235028860553076980126211495027054973483196010604793510230969574307467091320616171899209386694310502203954793872658093586794114029678453426440394501291490426152651336990822025054373731223957829133830598603215452442009546910437372419096775311339962751814043757535101886511335241977682341617035842176665792130002586176852897556864619637711641175396803594926799960213058590299662776288797831872571846742325070801868401681051041033827899774696501445938097848309351119541018879988061069781155723154786886955753886517957621213862339171336267999374632142397912893470737244386929414404660361341780626791449630980338026602875321071271904769794280006125041784057688516409263300321061250615970825648953288417256348976771069000967070547331784513803435010194582617731722285069894355283557068387241373735203975765598494832611325172959982258065771861354464146686953081782115616082767052582514400929104776809700025776364920773328283727367010616615866277555326766492108468131322344875504050619510881571205921741095318066032559698236307603480547355536982836676362292445145368778896387703064240825282741895362841460994661141144401225410117446757980587508926198102885900796218424168042990184426934536944833126394544050272606279507624217867159103357134615698016925377679074295609672876998458114785709900858357718002293126385070031963611642516839220209029051386762075998102204772049242288097051375646134986937670428763206379622930060152316544883592139523449759747949914557089665183100784835821498071881652348859102116416049150114879151526800551774781819075878000158535033926949339079283299529648270893696021645640503989269437283919323718618700383218154895602402316722052883812870090121242653111066401816846517576732105075909021951643131868504393026356951158128730356552177820070261288680407726214460482302416672944207263523640241393028901568343108477735749138432243602314586352858516365921056941014014319620729234610194978187169262021066741462995989832984723612761984889883622688921666664682038879017758251727775267715605026393616711384564224402741681893980420131538690705524310382495320246629653580424249586434276612691334622218056156080912556799092321639565679519331178868492768160777396493479228678446103582496502975177935932065417193225848789305450246408348188312476682375684052231192846620363182000891135758418485262216164643776606809400165166004787465414890548718409171502101645753922441385015315496110622264068235889873957481727624247261090164184547275830179895387705359114693079233027748346266734588642442555141405380594024915773074633345898728796679558619884361176626690323711277399668932648741461907374096881565265889889899231411930950789874895199725381845127615152745784824551500549647764038534581348621218333751036930600403300933325546013131307167400583669617869603632119635529989436194510586515420152983015598376867033695655592005158867508013132897162719153363855333941729244576247274347499465494663471633836045284244664367305757369097680072946984253843428408708110164194172218716082506695934343746162911471024447934086338670090693406466372353805444414922068580892566859963792772692735113535985019953541414431090365632223158499584811042999575183319644075817098905330588280324912164185434057344477538102450233559628048314491934184220097382267789072062312641442916788858896293043497415006375802625027543487108233003770930649605001703575143878839208538025523931400223583682357973609118638749418182855228572519943904706367308604275724360451309397269979071609865344944114633018268385570233908555955583186349705061186547505631147618198694827423488116165769837314420520143024169595022401550822575675500864563008874500675188198076876007316333819206297738390648037535547320316172525692181792434567912883586854465453795940274149968115470524171114764207949509528103208352351314850408186262797832676345870314906829419953404124072593953741485925179186929950628776837602676818314316079114917454814048536857110795800217940835573096802217818716838309523345452826493454770301366543549513406854239745443252670563484007454597206697844137105842370826286890306769408910525737387088411156697803114493252873591539460649464511273113032975677938754637579614070693396713658678513867082755398270761302128479758727525479061148184539851623619251001259313269051129324257370792777052651439971420570707955054731738296428085147365765017107510092755663880648199043186536740485009500272754250102492538795958182064668140517930133495885213587438938329154639663528692254904434940135742949731018186923165435306999768413504262545742881832970545838890082142421258370499760510392767786849768346613563455278499520347192742566812226094354623501894105602146181227950235961592154448674820240922759489967895434495802100789202265593266018141734805386185781037139766004847473855240070262995798008249360831665040664229996300058411087969663489859579204046636849942120689434714588658800188451363398692161559585627794784508385184226832218721943815005819897503924349598041608761248335845832729198792784144706101680842242535173751527792830825553036972898264695685283566712523372296859662846163311829426566487096679558947417774776654371380904963371406901626449371320851396691978994461955559511802691808054573531286916440430376819085405815530631797024201713453165172143925662302565735812166760029945633042263762060781086881106686841448403910024764968598141640361582112510059869783385830090935988919738182258794204956228129510944199478470519844608177890048210769940775735056437129679574934030914234507826844014996700616899344068490875484900000001006745658040652798399010043061542972789782721095922078440755550537673947177491555636078032227685806082742170925670203263801914561526595379585764880224747308365181128814024519350794022168105156634920697480699154743924923227341451858701836207276706897912514907983749295999206748176128096712444260114550749341939169598931429406688095309210810119827294738360439692663385406048805531599030304446307593719062246161648838139945757713547093266627105953670551980136735727855600940610279496672539308417388091383858578617196032467548865699149934168478477357599533599190416941514657563323907927674062148181186238397557443857151645841961244160159053379172710948644815524660025652330405131538691335283282749867380267132050451802100055595506558061796036937108925868944810825013460249834600249659069953564382330210467180058487240286183265143633928394912306763213962261340141448653968074484060291873527604797068886734533436700782362874285464103151058800661996598290676180874429813187075096479885306585147813535920162490048018446532213150897099729235391365951586161485165663887848811096481777134450050917224877426347525371459950639111719124625368594452525714234976423567095118017508173651937067786677230339377821998405883604214329415005137664152535871305463669605894884729552762191328818442415947118055896601557163119006437074132096326575917483560914203442353921851804536434149487013486002556086037018259359932411652966400807535016838636587220229646157535586688682873801371533948479263220318422521574355143240127367479207723854391392295686367194430715194709511888589255669375869159618970680382544143590677319662180383235502048478005899987999146316250602976980620049787140376938831400258899565291925411290687359679059154730538252446469519943711554417444665070491141138218946728970429499637962508927230693268554184463569330993422881800079876154734606747211837516506645414307177402681532196614514668769910918796576019649321104481374629757233981029224326322180151331506150595785069870432861261570136016641320287244205428297044333264658604957511764550688862692058457512583718977843901912824748280162809492321987303967246711466948535459869524041708889614416202349717050662552547718651155245803280683244253048747076164527970200742103725943182855168305135884337680964901198121699829901664455566249774578649578486797674100605438694307774587650822517330790053916277999071201163289952846398857484910326245540601509742972853314866727262778509583054802478918983298510980605278016465318529668408965583561469714042704963198764121538261665995933497620375723924114452821243254078115678175390509439848637215713959394849450754479808478490726654425491958042987784506034482463483563603255769185223634555517109360323240402476383709861023801441420976202672218555474413384899753189166962984391738314451946775144678021140696644145955544598369779140300201268806867378818929408191937540206816418038297739543882374809052872155295196784232684468646960671781591964409557447415481488962631473029427052242759184169573553432214076439370770009988915086937612751856826587774087790990582930345587656306748324179735374307217970085930242115027077578105334733970239216403293429267084404518923005063528101141020854297094771511265641892792783109674631807991377580863216595750692495750325163241978269001251690188385092672651612747768773745089765512196631549938047617971773122321039902565889958236199518918133889164249635764794714292422853303650977593123931124808141148454925210798355576049826143134259531474512109865862976556614572472256825087243471039018571397569205657911616102103628689273831025877769285733883130036460009871766871288629171308208046558436223156491703656466623699267753617399142406305596660528210514076658707942736148928935103528168420778596429224189558739244042891465619659437196371764814435448708623836682527009010033929797913457036409417428779877983691400306511418661798087026318119079948692907191229505729751741983246870342334172680256811070242430199533673509957970036159536263984692673895511501629182589514532648348582096290911142199898931656141701752411619668293104941208710490252411769672993127172475957167930608736730771511181358795727605853974852982457869608697373273150957515182771856670694458807452436553699099837275965122372588672969273370963014107748829564015607476062947447381127678900347062708677406740572531357449830628110323022033807470596713982627706545950195561497416003069464451387859892813621110226185427693202850589083103141146383774425363998926807691227038818097168569156419071244437989666484921598035057095920519799542243666026145939345143498635378199905295757445809554490996297777157944555247588356551282938898707765981535827650672102054228169878930107199269963426739635866260599023107672004418570921325085938573751546494690533159235989454819895633589678645185875499737034418395116755799281495000455519128750970030580187253949842120027778514618363438164842740258052346034677903293102927517018458958446577378822196388087631795141489429337405938084833819142966683091255564665823272833516311856184878073226383633214076689860173607845963789328399745512432677935298898348919784686072555874079332373094140298427549020076170873275054503942919670498303112057603700650046678860606517526610418145681637798315698537328684161229215867579293007699213398724211975454457422455928058936500417573837115754282879640585433271810727261754914099318710389137740734818295052359524186682650443498556779914765610632483679929030250342747512657310280844381082426478417976598859661230306970377339609731823260337848060035471272948227514565048527923446142240152202572048049486953058847450068343906471718215125915530403296970459479219031257236880629708624656673208352511138432345273283314431287760276694437010834027930357921286788439979877261013218381664154812430972785778945698590604435066161462622952206257917745002654169828391091316704877893415200345571135457003279862298997293341165309484416742787085205145037155248933323228695407271037980193526497012070355036853974123026258786194067238184682994449248014434934037699400821311204359029607399470802252407009815476157717503235054518763302659841392594699298453941370365519137598869045880204593185947157627895921146363156475764981200876663298915066268292438551622973332816835448570059054720773873431196881217411771568385836088389382333023891612556317101421430758230697991095190020331236452780347441679809393825159345208283196205765734505144878913946160556211184305280840016347394088323468102505744292826635629339402956895877996376959531646202458564570621661982944572675711630903807232896943089897349795718324088776453453793632452684387201544552323094081288681763605519146238636067309837197516318817192576027891676375983846821646118549031661381406579021258076667894908264600380623624257704792605248787803415198447505122927303330025260294395895968605115615039184988139474621994057806765439715006298452246904518629555477846161535849717834951070837986885268310044877099266143458127136359289732625463417820312659406570983180318076864194400995106494096089482038925471278664916352313916611000237874693920818225909387589948527115682013864841606142386683894167481494361402098612170324171982393193600292220911974595478059138631212194608429089706867958569020038536998796117580718453562024195332965711607060032899923907247534791491347418824203918239693240864196384139235452837374185783445667526439529296711568533153337064368431325224568311459252313821329151397362056782270223457900087741762279634276251192226816636644272042208977025598193565692496806672585745572432099307406245303516391636307734376230270425774669232907958170441976635146237100689369819296482562703349673282229377551080309603586104131141346541203531934342485649244886368890556019488097304755727319776479792719976835566859078532979556315306034261886404206272622755891756592191027805149844580856798306197004038409249870757185745241933389404121593344891550434414368918550900219758187866994783285793845675664287530194883648965721008689958761885079572398145912084505556080282201953938563378932633455220075029347581848100243782906454453727715075431573223659628304293958347504795991718289097177832316514123611124574155966324251375895236678745701724547996932050761089984720736388918625407364377058262719067204349575853068381672187051529881458676449326220874624565471647872208230172069214151730295934052746015903875489861115054364498450933505243157028787552478219569962797386014815305250418379620599415651095833764823036382540549146115066198132860553803852543968284814324573186762075349072234828671036212792877715675082523821071165081274136899250499422120449170353969094941939823479046514007474382248041953019080202468238256484275212836419845006244285775236981285704733547286754166120557782102171432986936200885372349666719310817002330703388631247546098068796439134992449900222056441064684159921527428995195411728396525975750583214995632788055033268196955872906704984049077879643041999723031366593055914830992552564310683137272276752787609331385599636443378962611488298537418303018490463922363745671002672469864581181469776077326571431320849843762894458295403438737100218870880662987577184125503188179399962301831758954879884917267867559741883567166866962086579689149155628140581256197133548164389015544075076416301246428566467908451882487229652559550279968455418108181892013242600231023825886377666040425958162153015281341809919281007612030191067592125484010972849032424461109824323306245901973485973180344429101253932935742716141050694647631198766883749128418632362299478435377790282633354034161157921409778393643841051520594225457450001588884591446705280663793192633700880546586495841289928993079126788717248286863040404399141770098510599876570617669562236408696975875892782859275113172423378622818904244209148476030910580985620667590726977995992863932040329847886094437808145053798192974839620123631621282834237936568277655711102026316291035666120379885531960932415962505322888817566815327166624314903654601799389341906682155029658595064790167183527463901864173065521167158225976093489385761019230156081349703010839637208239408098028096142808647916712298698556806742026729972903130962279182905147711615393760708628388322527011266672989747465013306236633550694950803498584111877264920931579559657013385635172670829265947711558477071940146659345310265936214831602826884776697587923027264698528551331838278790153401386995807390500394107264264057955116387310443272677860672679532997447492620301637251617656084351467026269496395537852110276112914267216864964244281878254686685099672006719990538859133066230532332739003477425047932749733629908789386227500919658744896573982064133364257704450756502172576268809652241227882841130553202399472103126042156001091803505638566382246649851467260291448839882788332025719296834486785133871785103832146410983164476983702583983420195823300115995540249025796972645261334079685746851484770412396207249175054811543860037989500142407221034896270021963956483810751835461175856213722971065910050708512829726182450134198129850946402428186447867125347745627822577360412135814496531142987246007040991497082147062205774622187014281255903401489987873791837858195395700590922438050655807226497654068041235720384288858713261155434624027064579969881101517545592539546040101742990096357892427615842772105568344384954195518572626064206727470183947486981452340414142165388068412027613589155749617057237184650790676957970138763453173320620111027016380507744612445069912806230952701605671543862911519247425740835326598320849012409667694079579054706085036631025396482021485128147121865875982854090125639748773203965578207525716503714027509277312401180587719032479740782924840345342725493353672846328160371779047979020800758766529179168875775293989540939720974792589709741316498451604698515406256213881256410613581132933581251022081298673521949407608336904179311563218794642462266849112106652142351495511618348696910072953018035929488320097440916048585251812422148830460388108818443590972624862133280194610006656520166780418021492774993066165808252498639195256489133979438520569264434372828216118345376047774515525534031844679632410186766905302444582405933010623964174882393653263025674303165004802758873078403939956043815875043335054190270750957085948519320781437917158207915668348415070009713983258469138246262573100183480158945909178608250597686486273467628128162460239239514820940527746804267712255052391050245163373774313333356738875213264151731833994473512762584211757252875262236298087932984184869213153479238481361680846178505471333134275145992805173951923649736237382609223557319011852137967490958182787135322830228833026963852222942030079450361490504825496959045240439411497212066822522577371672303376695245014930960183026229789748294709331956453359410896526265328217267199283282607657142110984129704481061849788994819648830818582679773248507022655095274752650630812219631651655523909243253550848794234765312618679328825957870842249666368202961148114898021839926127574085344380215437568796027270470227833743841260392128503206755779350242962684660597717462972933878789594307045058990753879346974516369152874614366540639568007414507110452045293051750572339376108298582974936930035274404171247107707182598460633878778901896186430190722154192918265826154547706871879998635599553705814045365318027815871932450044705836970661771908946837014141461999722087535099195215480371347421786373084228520467928597265517450131806008724384812440561148108593099972255850480007389844720584303869547816239625936701838752121770323668557621664098105679685958664137213945409185855246073331799572321219095348046292264496198434464188978902355837526577323784905291472361681633355495470495468367073148023632891488482423490158957663464235150330925813160830817400187198890065495848615364239092127652379197033190014937830416141073492979082376611840754977625627501298038147370138679259900216226594295527467349027808504685096663935461838863678062974663277628294166625652491022285620508579749818532496516832780072065895406488778641624102859494917497822956809772101501012593870163121015636204749389646695479410614354917028251131496170882322545902955344668151614306653555677238376056732986711063096283522898131762911071682939820681958450380228319854366121589886432201159079713883271941718089511304654394590025885890249962840404380080345534048555726406572845812332596819556648839784738251289395924580051208278613480267011247769917293173461007300489691535654334546506572469617828075078542468850350421159671334880935660462499810443961442090337662121994034446797477707892246873208992385052178642504429704211546619936176439201373570772693405088411055038865474883887377406205538163220888477039303601464611661874053468120411081348073749863043485295884879367439237136578925073676525388339029708335673210970704529738825104688558330806825685548973596126411561628540381659598488027414978962810361228767055072589015377193772262037723499739910095791449082128937544167380167147279338988413961275160285068850170791023137013518801517772440071368301271340992050371512489461034941104381064257445725201839023816369983124798954758009797505868216187565223265553302768169945530550348096502224617601747821300607382861616825122314138996206204135539413138066197253027203800791052574248248730420405793036008687141522251185119672081517825880350517651613085831975868314442667871899766422757260689965394391846595106036585870197016499154403989242579362403352798845890606236185736932086243334998518472570663169437929465074187712111060421722785213596212434481679285435527833727819808371351240920652692841863712357699752638537815144616096083824719458166365858937279539526892434267468985415696124840238807790202297156084126229367105470366353015804299211279735199057712645375098086821302428799357060821147629486573607077726343784939078635469058906771309879330701083532818276020408805424185999249378462558504298367421170007346549287897017900375806358613211652757141087255962300235706964983827637841930471948100274322181168714518919675362781624653756680970722497993049512147709477960688689239748980990469821425422575500641904355181711206620336177417678970003167090103130040730824172209848259419023823898626440774178382998645194400310883457347323043415450262727449893578396549837017781846413792575313001220415764702087526345242853549291335954821855335744765211916296421466419680114734676053079020967476755689041986602319758033835903050777608454949234867975170057778473183288845746249232274129454966174938582145218372057171836054662688571386261657558759344846677162516822525772141151608202438097716375880680563681949432760118439989647629546018298924450282692749592483689469356608815375704633612347972376446986966990332905040543376764285501957057301340971301526633445661138571553698062650209999677782225482070269077788096572637949791768025757261766462460908391216142453073653852035950956964259923403835698375949509019064148371864698403060819009455826916966068255971926761161056198093048497823193556081468681868612265744141116409756857074660738956297137705484771085214582586072013059521068395280572646469453396232790677996027380982381183229759543640021793118198112974588643853908681126891957930282644701979182218496004549222169246553397789993513363152831071155743635494896798914982443710760576183152887035450016403032669173073842071660700458772992096766586742139494435688198595379817161956441926229083882735299251854966724866271715043856980563621825340820140275646928184504001283523711281779652667545736036220294800095313747402144994974138357140619312453557605141050901881821507885982994194543840914057680361256708110576939850581671918457094130160884157331672100049270523247513730490316222869198498246376084510457147497592510630395391720187030876465605065075227829993999050211124353378725659498307604376452298848557272320336656657839920714830862189148077116480997970692190677359891842461076991181901072206576555599221203444711582610293110499846687048267182636853035067724406947702767753369458616710522675470339922914558017506992336871444088131330266211439042534476236393626481956094030438757652899650311704390702760734368507619961808068639701242938169158998249446689514183893566880967101891421758406436732713877487538539304800654731779222579965725047144540927537532753722823454379242998302508401425329903458493977360742462026818060856811006599974713687991270187377159873120407906666554493634876844101062893621399819069941000944601213908941797831498917858771505137696400606690544931932766475868241850100646372603795813944709060491341272203617237598564486947787522864062639607685248174829715248061876016459610912253473427230029287542945108742269658905860333581798951176871443438147714677734674326583807016331424129032052380751305110125245379554687611279968011244041303328575136447664804130210623780371250061373246056837747505742265437350033099998940857050300147637547705169952159739479251983585553050115716597391729071445239779322637082947101676642802598112414127631645996292501971734254189038497139863600278619252182571671331438014480881245162479550025647207690031079299086872048021230507686950446085563495923531126110893450647959187534791211547368738893384248823267945271617321489687801511630833636527862969012360743393122021085723953662423273215474229779882681570612837905050597875617672129291825869369582961079690914052854608973397926112880918686859067048370304232520658935804292118907505263796503854666666263958712794292847209592009692427294892147804880019038233440393922924096623796734129151936581833614080099652616321492007945067588260811162960817821139037367681385606747923051871962431321247358221671613084104299120689386277476394813020844269400477485911195271423787717312242032326851342330071215540310831913642265997196273291832654766753918757142489162962530779294357416951531308524759827389815283752783943427867231931947606039660374224085459094196706109655538276006234377352587554923667948593398447498613767191861157977982301277095752868231863865232457042903758936435468546693728744911151435415602429695207410519054153617889666085535251602051532597270905221799182828885825364706651641740402450916149909831670975273051314523741253187084221291746115450975047155425986074810840601900442999520450990566530483567925976543657979806479795474268909014175476698306443069154666313278637678560991839318994313814107608111755505792522405703424304043523348602164141522270305609221181121991398510389256942969266806386056725116306619207940282241082751064335848540950539600621130757406782886913649084638947159538357824797198752742912886184465933024993735549582182066568254936440512784133008483538626396891684270010335718814114767512564182890031873607120644936567947530687745819368013297910835808846869177756983630582987818044003716239529449914972405840294550482121820942308056297800822826691557943548525853892834446110370758906817524540593560523985776318840796455541172180103803585797189714544759426618396901265842513867730575638350722481724201245694565454690265741905852681310198541671314606837253305423402540097955536222281538255779160832480236649302545171742733313357836262341648715526777676718837475738864045061670848047018293841410182610656516137838658284128620452241137209975437629543326027212488286669821901198671997451696931587908797407668036228995651799991311387991989825638039967093354847835915366569431773747523711214651883596242834925211320718426284381639482984746489400605752971622647718888696307894181612140945539668981766102276078153216561827460092276565702700166145720247024833729705327164746524898083003237906618250877619652095981077260248070559369416339785269019853484895977413887622039568311000768534063499771158593581155945824489929329988659086207961527217487193088351384769008699233970895357359852331702005631939901491637468091677428127117284961305221441675912056948624699944967154862244154665302917488380718341575241672141801979096715042960803629815493110280294086040169290953961404111572460020554784668787178370049170890381996668421720716515026271387488476527511258454672128573104000834943370773143837480217599350754235838701115945408601709207262477752053658989407429058904525891333871654300346401944906044386258000637833631683008674977111562552121058142280360050887232120341666952320326139620317156465796435041989015990508173694688955177335828298374308672313756388886173304163826306477881433125811825815264503912570261380241938817625769026897603233047401894413251659717593287430453203197532550635139367657909217099594285100501724111101904064900488687042298343014245193375390287741412766774282548011855532509882469316268032952760194255911463493198724961875609550971329911845378246152482171688962753070308519343886576156468749685471394727786335153461788582594186290882886061072458875371884209642302176701944097786799328665727731888498244088489053378858997255440201378148498475103858685852850361089102284893033874508107785558002598678582543393267032062898985797823635469533883538941614277656695363972203603902281376877577140011602554981555326896790376500117244296186860026551281660026189443246391957678325700711543386606564111028179804912287831222061242723000511706105262523107468314771498844990820460215890709716125327636178035858346660424897995619816972410527179968819031549729941759122943524502676003804092289214403589922318788599777945874170279000676628226323113871985995949490972412347041982393771786342514779208021008765289041781040786368449563013446499730639600862733320354676171739869538955495172259086448646835921054754546639962182549661405518247032416068438899259124330552679662854933874511692768660532225075160008208516711817253106841877150200970772866065743270197448658869376359803064433861413007973428284838888429644581736598161534588305404492702753905753841694381519720168087516192440595533286670151027786293531417508299446033275913009629538818137444164780679217000997240758255153336998112325454938467619507969164244630097757168417653795587038489539541238588332079245077434321061924119602278332768837037686227152540177907740410807621141017479436481681460966908762092030630126880277308808436695802158976154750181046758561611516049741925831720212080412566069405349193272213519939585087233072205668863812439480634467248928285308424314556520804965707636452656151232709819460550595291889502922311584249272302833361392622575432237840266001020546735333446468318451814934758942020858315663322996932842417713560771454547648145009419544799745593345244076228950319872320174717146357628339479484057131051996835849745634654670886798296528607374236311224125408516603287630753244597928553546816185133750934351186855295353569471388063186367781679523302352502972791066696755611379311450620260073177362493276554647484219538116547224266717942421772573140151297377749648759100102184100492730452156285978280188320548697863944398357447015347478824336657995557626959179974738307394874622102381900612576293949404245087841604728535914058026822898012072038776388457698051946086672581200980450156376641782168430217774917824120658838923373190441071624298274826994389667837125215297796921554610815545799616066463785778261600033115081834386382281856171324600286314974211637870134165184051540454304799252691771899664870387208878381089595631004076487343303955849192231860841773541841762297142936780007661476861713191053393077358516066388536171528606030611763376973034088639276372453786001786435437422993577704202351161002143973940915962855053543558736565802149246534941223616120377213182606259539231681517841296813038638342663033151374910684913584820827914455654575303464913251464297028392687793403714774612519183801348163701215123292354756020636811026253221095552559932668792262403738055722170274472206794752019558109322181762786134699031130943441550923654719938946634397588106703341878539348728573624471003321670390976994073477691007053992824856977676958067243141127047592822883414821183014679525704114822912904621993078140439277443414122284493996909338665125808858458081213942719283346967908865928775154706820311489783331834963611521018068668305864508956130596802789069209883909333059033703709019650112331654550363582200536668487186188360302127919488534063233868979044951217915370744123854413691735839148707152252547146222447656733236647515148394808511778214298401187170127083506126661120478527395355359977265211817952512255712680907288289231890053849139986683689683406113284534735316303687799992852573792992625996254709907580976441770404790784334873332397399597111745999819074082717987429955928829938913245182133124782234682324645495217247936327439407533154329954269069149557018715679890597414143796228085140079082054483960862190352588879920765802189937122824982579922828362280074564405355310185464067746451893587727221815460869174604317341054189330321051849798740221566839810332756139016139729505357355476665930567899622177609440747850331079324864121434376560212730826775762004121547674124729821459274298060060645274694878363985681808220186569000310607474962271199481742851852462367569650227768025184205726429215996933607903212057736165006526497851630760042428620840179797000487179821364589903489428337664682205227526684380048549219029724093129944780280631678014109937193584688757561453186284595730765532646705960434940287460591327077004581465499626959957857446140687466583814713073280420328780394323624087659554995181973783983421458985668818566344395640882899876322244199218219384360211674222432584726984169580075594086567791228463361971786482511089575169723459288008279619765021356827354691791039013326165139323743705158893764937678491309764212532860940100847821799682160358452749559874086461167183750554032949815263365520878739112117148290300486181125615775510057310394236797813865593442503240218045482760425533242378642398916184981764933429055640307793324236619390730087536405475753488957395764201223189734452473502205835348871440663360411419726262364320360632352923500780791423681726921452745428627474707792636262425295402572204677467651555326450451251098015670279916505786877644473025532714486702503150707199870823390734384411175941613924913469763750219477868748245916108395634257321635338230557900443065058185454731140623388822150615822134504306743402249385780328456280341577641955575355440756820128131734392699247750605985232920055743132545774598698290047348174498925309833499377276046000152754384935534458754266716938699110477614242033658234536241976446477813496116808022777741903000159407460135312745911871189682940828647551894515335833026070999699409704102278867513499745721575564230631297149593347839335228220048205936419207124627942214350634327823736343247655483786714179647215746949049053754926594095129019544102567549673711848017483399297532436005095059790166537863822743342061477814349228360830783731481979100764242676240649842814586153209446543745951425412469437874873809806650887194417724085301411442571636521274106860367783816564387575679942862779531092790713543867633087781659090223292548263376805083205588287469515530961332585431988198509277200699277114787783117242727698502507374184601632755895345206162608665749802579507804383153194167549926128514925000871570823700130267890838304643865608687529289297849111800988542478232549878452069958924585661257763240866914409911962556563197570503943221398347683164045139064935924231661432652203058804645447736005150290433100637654212732491305983367042586473932720021106659498892035258241964695470130155645299645466745962114507539757940668588648119881919198780191819348934584415148768081278082074668614732434063950991157744229111233503574063978819165619549555958896292829686736594142980289132227060385737884135713355424349127382232915551586894223583088759433334023810331483997992365267806381407568598809725141999062211224593211539895659504352444547421311398012819023810249228069722146541283458520038775983251325764247253487126601924638349754963281354192620661690348499666118634921093953352430309573987474891797744570476397036140936326397562826308330161735078706301241801784196316860120642738856466211849006398659196647833955384929281014595695112243751550728717513146532855280642755637929128201312860571572923149785319945834101818906025271487634412494629505295688919363083626023358536935717606903185311319235794195240596812935418634011877838034538031834215252970513089564257306074103502862570608079417666297700983782178618297131507451880326403106333495179023399570592823384626462886646951786728582364122348048827837114987710164800918171388810218951452797190593287043629757139674754026254950825417348899400408227300776655288627625413475897011174857637140312229214587001460657823604993049734239142714755335495983928162873128602983651958851654294292086334920650003297604522939735506194748995938856600911330834439264534546712341298695765657657512247440036195286542439979051465578740003130662329143105689317808292888754562850729379874651424989581953768164338853773607927422608222852636453062826142167845521716272027812845308124205413030911590264901279627087988626607914976916854431569952047253318577698648848035177603168654505774338815908036660194723697392420493901738734544599830958412495094167004628677613546233426654770720820739158142949673563208934517936883764538784514390647276695504273344018057949727642770935903685527132991594963459320521714295031809976295619400337430386924967029490827042839499068953738118798924377183247660720701590649162260525749818639155376367360714349632648018406688344952436653753653669979485079482801992838239316437874826436728999330462479808447945229177534007412615515167805021332120716763579935207082062510631209390979225318207198031425548461722355709056022951435935467597988667595027000012247414901623251463937258598236675834560160699159112955924810750377721265421131078641349466274630586725675536757936361593841263045943326197886089045786692857740238080270387429852136243779340644750841894556345353113606327269155384457226599658698104519124816684236536090198418327686471350947145885577785794368853511241501032303677276320409060017616285051416101986171769966572046887582863112137443272924117011714091604936754651119073527647381219127112076032127529728031118125608111781054190960352526418167056838154833869708094418208889621553196323991150651422395098574754667887365224838602228846322140725383636711985950130313422687980009309306248870972842205215964912353449850779459443270156303395421028012110030714145040051794870687620815946183511499616169469889156245866141975217885048159348218759828439383797410298650660105947154086205804283544259790401773437861339437456903458578581155151011770551730131864203404946809370597909595642235439476610516135492466957154983145097716268257373497320753827230270859531811200167070202016466105863268425378119213013125269198579342388563390761118994265336345596426994204410271964253642970214182277707589138940270988327140245243967701774236910201595819234016319324129795835020184962154097358981219585815725626380976743784438759388286920561622550722166720590170715100751923853313156437114487249846726429526398173711497695145496455998026740544459733872197690312429327316032864704414840026152940101748148437710589852951110668740716601180118159852801775669563137615613432673980354228366508745990514540383854660329794946990271056929471302834334669184093534107716289735978308437178515624879579928547420554548020439095467126861809898607586968592252050521818195816529411334861653114039676590462119828121402971872652310695655610161737021937937486055162953704808815432438657955181047057490755993548519482138309385631279996119194295661996981786328329833412479901884145269924697967452149642062194790881443327998779200474764548437612645585309185469153168324260474644102578823845319154613398244283265526892553581561906838823916264333453128006927566337024392704494164741976660248029287525505299686935056682976886939874468265576437338976187106574123389925186755323120570787331376460217156434575201177446567714956207851002038129349225045903618787166379067163340115058029041338319649813911800144936634481127270695304184259760116567700254238684641403499352248871100100420847900395883155992893202565871849375877145437534631217132250273673032707735673656842209000985474208629679709118173990883841211483906352626829618984378642161293732507297752762216738378588344385099099188966903708581032136605380740670551044463190288463433743462868472354418220261591880721991565129650051701114993569817600675580976392251329913948623512459652605965836686102636447281299773604881158144479138032688038039235275263147625790769737209248416139252818193937012199408506555359759439996939186108135828178149345574945338168301657763830900595895739369382923603655573085641261995944973053860482558126912632431929832914045262829997500947645581152761855267904190507126848609660521721431770777102048558943483887818925125558719207556916296444718235613008132037371530225894558799853463640321808211512327149751119390538805292720068335284918082239848933390956064239450924776149659999822232215477521433143626309027268619946300830096410793184029118901250203638024687633533249240769504914701805689773197248714929044679027261116807796270665221029105291991537451518991969190779874863354874853341031617333607687570068673170459182316066291942734417100472034783915548209683205794665024513530750411103477810533006082684301676735185869839204623659701016118647846907998714920423612135703602691137683889241343427988886283408155294643356405020569091920308216972555285103789182127212333996989329450356315466921180722940912049300129294352147331199458533349544484006376553446994631075308647126693199194469316212132473473008237871430342809962279811978221757199483858074553310929616126300662744129220288272428655273969571238475247339759280587964451630671534046064881132697046833333493513429884672916791192461541117740562801775609070390770762096643480093007255829463144424712638354690155103252555185020658571239001940168789593646138891598803057764721382627216652182251739601063894853785267933388177508681428971227584745504284207230943057395127426562373975136906515897240211314686049013498053937136218487591356050930608201189316921107790443436114220396898369699053903949050093591111721742273674549782480765225996570522982499460893304582188949983206371231353505597724994806656180126315713750502111375585232448027564739991611752811950506622512421042422845863448804969508863523047439117497019788890363772896753060903120194193356090171584504052855303595942435800908770809980080111438974121438448867551389113599768992310897090312659899729175797770229844446725002129813090567870535173919027639137534163169767117706483725482804878139355635429785024533722538509511624715914643121070627479160360935480914079296035093883497832614362257235668210764561295811588868190944557987034566536981211970888901991774640715377807196949670444091696758456707708718463523860688242135207840443723737324469691105993552258020287574374373290458217740115478529981367621060917041364861955464643090390052440314652893121326609943794112253331882676836245126359759612510823742902269750820356329567086239269637395306722504794374090328390377093464930109710385472021993205006928156557187978172734656195346356395463222591731727469859319618587089901463490726096455513218849293166762412722127020627838603715473180548798018643838051155164228428126594375106028860960659653442024131312439659474029413386022922057338426000057282689863195875380872420083851826421650866451086655964053963517884859378963693794780694651918593602593438371232573558349983980674391811263714437497825887699648873183941382885256408619795586230138298895243996303393433438594854199368916488106496194126402420968665077683048287209910306488453713210454442827621027988196504325508441284969187159719558327788945487121354207183139184743929587028996034471559131988651375042282814370342093940693451451350184755878014929609233081485689410024696210749555102915865292925002900023928100698424656100988818553695183984318756809290988482986538896219282970318570134872967465463470015973933922418625683073959640680609960605184619116306970620951663253783167844517285261784941270881031283856658013753923944144505233427650772523429389285706571382899429532905608425236243466523755500944250279261889457683743891813573205147163721010789979484707313846455234424617701021820738405588828092756649123881247252452442882380817106834929934348520339584053645575773427192417064727253450959356044075364092079806003364849647398290042890440693187099065914774549132864932783088352421251170525739027718812611764134191322080758787706699784724578886139850563519665474858227563110825674385331958225961770894121314080819325769079102766979075116152549840996793429781368168467994083238648363481808709185546085794212676990078797013740349521804090027476688759423297202538308405171106677799280815310919287048751571424804654691626926030715615240611237723350620217031769172544355693663708248671084306258666812640360760418691535830052234554793831194078771174840622772337329019677958385677557818862154567467090968551318890858566188549350331826342851245550625155355386330883172144992160694544791144253511853408009185383583972222183243462708449259755973730112078636063873901241673917154122653365377803916059456566872356437955136515151556458225454399028629477215668047916678769223477655409611699307458382193268084715175355423890237841340526869233791390153245515583349556191425722667897124412128885990124736198716740971754797205254951011091331506924852091013456443479624997124834034861223636481522339330939988907044536738614285319425485682375062354546964849082044096353514518136461201122795586826186537201757830253560667773662418556402654181446456934776561513070643363769235038242554612973037246559420559795233199909184681092133223171706565428623834381981424810780704526530769471308383271322009324593174918908374166179093602127616230498686204520038975469606543584934407511726890546202568479914747151713342045783687432992301723404985687140834265893774164125187475796041534878843988185549372978060503232183580001064438445475765690165043457472023449204104433762823267495150871410180479732692353026008194555331628260936417644550922763282875873714998042116596178740366546837919170859761573315236914168919421365113217696220707260510082471979871678867794365129794343764756195108431887128049095963889329783508703621677849075810139668019431310334877832521608244731271654203977965764715312487545305901805096664050090014242120822010262252672993418405241817494214379266944746010578498114835835189363204079432531149561862735690099415256660505088208353672967273819743415026376546692859122660382771278813332603915448987447171619977294697102205540000958938028561045031783738944191830948687147013795851957626579772878457386440945963339647299387533821367793769263779865178705355256309683495123150115183918274770591344114877763340911546063079910782062460250167501863389422979847041472056679942595306629884304898491961479803617261125113439355977793178899524217149306060721640686101995059251734032018151469724814333825381760184901448500323825511722181461114385829395294991197004697680869640939143567661524289493496473416269602174024821398458506071867554271195380971887476555937429656625523038817197679307304289693541485126653933732580393001133823486025916259750441277166632426370691552803504711522044031987079743730338690312173210567886800319661738617267292209481710198619507097047389030577986198284116120804705970259305502537762938983292502663149004847634074025749886792339297402439950362288435996708429988296613408007626778237729388252415990591468452461438818361034524367901653640919191259481841442990703321193399577023450493805518558607655106470448932472834055217418360578049980868101646968441105268084521650134997723545425902020979835500548461482620052625087092836918411564205943902479874683294033151280710569111259876756188511717063485067691913665207328962352921392251624308473023738852423954636966814360389708723683871247289246500863430845531913889723804792099459077543283968209908971960641037930129161581198789833675720546863760399463144550668275483414083714249419170508788135131290638451757667273368422225267784437888534073927251711391413728836914825562429094433351130378223841811066158311575203337608655335081162444070331513367586028406294474290451739357222520728444290425818126559000370104374266821908847370462175260358968932262802915120900438626601929502298184703161563858940243426239781654745843442342702577604135043463595411692057053492272216147605322343547651992754733124680578732324317170864901069278713025336549333782848920658508522166241900691605048805891812243422711168554267402615802414077998134906077619966617409763774092198364632927508514804418701830023970835473416889745480063312900144043411358454228306690899097541402313673379435986955421353931910348273924019041637924226225152343255912806437648948400140537955429142468922376208831505443649260359933339482712647258410115112378186881150456801263950810635863840903476454334668761100811139265264278811981800718710329539981003279116814780888762398310027018743077802100805928319634880643064201162405470587137278585308886558914174742343636585837466655218086750185355479547050047715078805909440255217328358946508481072401532026689230977106006835586197555067654082305518778307119795065116766340051475975254196557557172268052578587773191387984839411806737578090892383283229295558459915446302329628434583148480899054036677008122715134182982694632311940741445391872623360212454454842451319286195082638347641284144760132493870697674345529108933041328976313515381219021091491654388057587554953836632944237132617875857631314503807889350727733084305585511374238829432123436781801466924444721573189592027315278748984939847139405642088747594704798248949971611607384617064021853510617813151352775328903663334193009482938863584712136763835571760282940964521788406026729945851179347970626729002887915485839271423745793002023040155658420821637690716586949748850932852700619269541257949813558729556187185826993368112411578885313659151875775969027219313911475768951932030734302678697533424200315048606817362085308255766053709931281677801271361765559008137005557105109734763487396658441144342452995686738002126054416609859627438736270028745961938191179641561805370691653540825330791448541505492296506711254713116248093722740587693773837297444804969936457711293386237177603571685740347770318874833351740039740845827511479743393925030481407790397177768783310040162609253871010629962265221738405437546025569864609067487026983676162014945352748326030724883618709834287979933967984227354158994000153937360281022450657026197524016356157185092693763706129577907300235851809621475572403332494235735966576528201602120630057705864372298126192273231436490005421813967284322316626705047804924174310358445953682574405267750250876961838870873738025251733514381590870203868612576504998558102986855586819634613176943738509976582434392315572590913951999738700828247534735336289787822780798388788370136775410083367890538402223175699692302934559271198800493739830616673612054663316302157988760222277885976230744386067769422336930608788518591726735551507790302732630163822951238709112788199684396846447477793598730102134020123749805083308608447856857256621531296899598232275382872484301726331011998784903812349416291179885354238712409478770921448337720526661806817412417397326483170800641307928160053644839971960319677002185160452525965122400562462890516669888555007820025682553834357104428629166043597689469846789827885417516884227654080985741567196287874943139697205464268258549875261556771938393030082253936164041997525620347195107765034307922714049267027983659011469571759503300242966559280642325424294526854694394795523083344796928823343557294641959896241514570904481503800704457334540563919629023123564753870834295589576321508180056289957282492006229530898653965202486590549109938918890279823633945153995026028685571420494980252770542361418020447853030935236039708370488238217318655470693938807550876625353355554244053020678364785237784828018376812727776445025716148490860490803694465737052595007405810005341495390882110674680846240535271680007605409901815146260995219369005342496296003788293455280536314767138544367762567955243427320800723996671250941251959786749040291916681778411423113966268666691426199824295954766231874837997874753443108384884848014932607942787649961816635390768388921764439340366256794330847349823081196522544977452234367083728307783309251709580729732394536635351231761185508926009449659194590513554787091495192412214807629358386057696857830121761726720609008086587563555459908902255943357501098137962558579750923348422006487705182742777623287602990805775912214191081675547436936905984632554776881389262585793270883060182314812749075268068120949061694520108866835239752651307705180091632263555161308647525491831711620593548580462096944188231291160367051998852078555761490646111094963716515443999192319934340861855208181187605430379197330884821518500791185940585681326556907916400363522715375044067787122706017719975619178148088612787393523448315527479083053991163475014836534393563172935520628835896640788033073452841187112977671173436390194728120688749193312311435479827180359795319597616220992776014825052811838723583783553057197330404897432234192538328107954618873442982658316153587659103556831519964097863857458275066013771805580671389107836406051881730169405234251730941624855307639828232273428865862910290355532536641522717351603192449195096545297961769626250503269175685424216660085787734182184191003297731815756924025063082807278270324838580559080186416230316393106426522184757350748757386438378891612557636787447151089898494961348968783285900223753820225193367354492382050327639619665419831243173203536353170255248206754479466996121409004016180379782381596439538946913235739355878939296381857134984259420692887063685070037228884526229121038027189681066182549985778025975036625347553207189849644093509007592511527286978054353288623081002225250294960904986598469054293215013225000210306772800123305569910399089742233246116303064030004826732346436260988305104786996999008190954792765430986086020290753254413989549604533239116995950677678916256648087330235161642102102967840360631854311983380914283879822782516889231118982556871460144375731234621151908371382891330523854950751977917771018672912434956439815343562511485142471074377608302282293454860718061011798612980445619116219103101326465101811675320596591606980831856851906406720446013613662153323107149981268007778986931206506321306522201281942469824323201689682918870823307858263605072671473643563515357386251129987228110876447157968116258334706014604907850650907281282337508830426739985222337371975414920786898723614632507010844125822541698648368634797482820662934922750148965152789821938554617497787148831656611130230496571011651330973555318488035386615656656196561319474764296571219030965015270190549272568451618230028939386651498034354240557390449678386387132264484056706015598167391340367139638314891834606442335376396231147904109884617369157614806592858213405625258015442850262745190675526235402043817751292640518468196665933696780695879116285559302254575807083076324642131548995925354718453738763985280981803455523078855160607756301611332024974523515823729597540138831621559062861332952424815928788163754733610556195556825641276159495937902699576731982573463528262044895183425436695189841700981961091035621741719851117749916296873124331143259307202457264477795333201490923633853694973414204751669288143320153628881893658424839841696763815156804499089556973757271696563627109891552812145965667160139968462905255536495260302906575914031832317347030508467107518469398288098310408833654241160068971355768932226570784063984529116637120008554024361170715566522578993210573182858727986368539354299557911528617014425209381842434292984746308937583763924693957619545101940306543286297793045679706518384244819524417332021269657355089960964842195993114911241855115994171560016456016689603991068961480167972164332071563604353352410313852132302891452981321943453314539493399449842566204604371735497932403862823564789622851062601533418007903473048711180241088935707813253618451953058418538976402875049177688087818450846080196488332945230893780195386345489258439277326113376223585101203967164443017988137142305169497573248727702268583664584149132195348382122236993547357514692130095396482682792308835647546112322877374483672287367549129456930105065096560576806869749896847794914738821271086134553684401967701704010377991508924270986894289539803637244542886656283838885784813268436714895348384680826262487200512635463425534189244689725748437691434009258831032278921350399503727604065560014313010626636104924058935677543243153837658436981392174785673993870974028000714298467175333995094903069277146485178013655154848102028525160304005800702738022779454821207283703370839075563752339974540147602787127652262204726145182694656583375976370815040381582434472673419392805772582203741628936467276031767386000447390249567040664387492777532004477217086595582828483906756324223402555344675584378841101364344411544211637288910346583815482759512804268390261750923228019774496323131471904541301461339515774041221562925308441238072932511343988263740063601085150389926805193699514516743164233915320931926117454639137300069947703034766529182751255410454918007131812524377630238998395373570842960640048102656533490141771197539579064377013015326076873936713039846668620773588369248987660426634646360553471051281145360656683775937591527170264094536690156211302134942011675183536724474437930115258974083019791627360974413963536096317083281011783171550638345501383964167948660041793061707419619604453384588052354738894668613506752771526716253329482715453008310933071560873296994698226473075792708730126584378723277208685949216410782849966976711612988749399181944155885641428085722903291987447741489279656839383554402046510971780986243671994307412081449902239207477076448310088796908714465487733679409389943852660761150117955276966659246264795791120882057574656100073075058740902233878460834365135323548487347708476873198588901241996443312508793501145029488094297266064646456153221612009329836443439933204178381666820807043909987030510600620130438001762099858528278588087254638326361169638775760217681205710370068247746216493604265636916117001892554227847289429373044020810165162560934112317080297488127474623963090409809290434310502639188872572961923308889016990260887484981224475828491727687926055018764361798745491443879567617505724435615330884819045842240655942428417554078062810589590260905112132508151579847923745956952172110036034347813463094636529342214816021286574616143677362091208757212956984523471794111861017967896590004125828524607295661895041955221146040663750350301755442242255675746618828382480974931265987789498511469336501046034232937709196849740692477943482912670766547442527153308013892621404275613252657669948686218833711479616173060147793282851422912598224872330113634563928645286473231742616747051425909898726009991440930318707534111034143720979861895694786713999667144380863563172913082300145386022935100257916024766516207250557773807921193436746842408016920935585996939932347465195795888642897649882874818946469828431472380243853282144192579303750544172945330958471972273539942884372270134826648903651820001193415638476401305699130180949827009590395634500621234759458915731583850487446850987340733756977859728689707381263911467807571983573745710674834067668895534569751197716833404183834496084410085857802772913376557938998216460397066035338637595916497046775141829699253576978726734425750485308786517130015708994138196373056270095946891318863460758183399511956305567158169289526427177594021192654791315662602377652190232269746170537759971257707599401821118410114770292846567589571489463866804942914663011159203484212964619932139302489834620930350948660517712953303290360205904576050492204707220795235096320713037239344667747887558025738906380271921820578406005764260406986140320898761399178387241141620305661501517256751833275507252374378534876330814225927518461579582025532738731424966772347299813023874062954213837499194332754954565816471774249572093187545517123438457176254981495140955274954137886799674781217655735026687516720402662472712329838780078299174622198532193313549935827228009856321740244322496198420837532753186560533138971008634945013728791775217753733209369664505407046597626993591953622685174451271260806517721767553185094426482937179889732861789333628940795004388467214796453730221989962048472402127735127609291966830371372599294464048454339467372941711085185474258266707216522594349000528422697494740090323859772292993623952641347711851611785140001717704478026799978936194318449162526431492398103085141019295245317240799495795317202603136611448699498770383444311153046002115177924848152769646494117701774326948228785697532372878709641783411278712978784464889973003919475696905732528302217038528902969700116320474180550574555707438556948611942762274657034942077523564722306982154507598917403392101916444385956920886874305673721241947965478227875811125886270153069539660292087266397110043368208116068827904933022301953819747892639803019797588047313512009681916260688135307568900908929040857952917992705479156455444759159998768197651802452266607237275099530086320408876128734125161108251404811704916213997455501502567448934157582435932862558748984700620755266634277921857317088943129385263448310939210261468520944646164534625026533616995385061202195762628204917823653064046254503798228715006684177465678690010221627699151068455631043383043745673890346798347900187012593554122205970987680753349473287386353088050948555570054423063871848466142190426590374941782049684183258094517624718359638426800334769188969477127503640521248560733631744279715732759744571082049044952736180026396390064592093502933267475942986798660305789443678554371318329059707084016004707762292652414200048872065696694729299757676567883756358273004377901342972375911708733157353527156994326681365101716889170888455605207493845575611987110753536818124885314700526549228158121614316395972727290442895566665664600176544100214771723980701840881153017303863786094244544869168897689549511288621931606368446341288971155130336794483999898451210324753970579187556765348526797811658533543577204054632510019849020474653678510759764790724273219614275037083007695864118205539816472857074168241046319966281331880399522769622940481347952533265744896748002618301301588695737666120608072108816698913263359800545432873853151083810847167756133852112014512130384006578135759911399855454411353537112671391681469053120060100094040210677065740668943821632585402076826873790855477355152597428051062833855204451400428614782864890566067166071532747646690932696626973748833862469577794085720523585369666630355673257570371509571450568865428308213122284841165657117720022814908154513678084947287484921164743029062816886633195955915142695876799527331846883276513368080945364234779935374829715375679732022670589726688508831805630490617623120698628546990333013901489789046573335225590230173402647665025417876283094480259758773588890222288369552416200935019328777503899661931539066071332716203929451693214708179552167906981342513778986502364751611635670607568052097838098597521761873094998736331389506438382380016251786738371427562548021961892010671678423999005701376609660965317992547761350393075099438914168328841605584741461865681341274729628198386716387877238711928265930325530850065994939762379411063295893908862846816537115810859109535264620205619333867257451516404374401308502985289330607344133542783851061899801264966358029893319645147650272667879657605490662801056177789766170757054558591457757365142634108203384563075418758549851029299560451225562304769693955566055262732360882337060615840520810478370487876885238843062212218997089933412026748675198848285640955432536278756062837892407838688020120247796171054421007508374181309747526174278525955235346841182830675238568797192067095386728244298245007834784015953188268090015583180018458704549566231759803505741156622502918675773073300094029278770667052976711494969811514993420744605174846242033129173125442682301390827261228967048451249107910288353667499522407781252711760061670617731115475317680468007375782137901612120266827335971028640450839220733620847001410338271161519976434023428314948027867256300832416924228037141041174247753127998687611082504445191571957231175707593575607051554556173785156550909545315102430028795601777653373634447216766442560756127452824304822692855622811686808726118929116738256381180342129049420514985062430844412008096755411248061406159775474121361142055554381098061564476649078202574938129432804283861285709423309551834175804266122958381422474362891533602330716772237035182188464776838247365234847585916772335168269566996937530187745569334651078656663672374855920639626199945816788029742406557861336244242270238969007581138899689314047535579372495334360992212481388521938930168076849421404176143117797707760790344871010565848520612768136656418834018786850733686131987285815544419753759162735206433111515788263582337760175714227561257926575956420825839933147034241724276375515280142799031396282246313304498420492927745970721892624719873554403657759617645380382836328293797784716715621207421321773370973339811236143120184594547987894476613191047040202920172885826023342245424618888741494357218195061761968112382047813981667635686066528034538796542733003467547974104939624007792047310880361478375296133409249385884629886246076042731829519817268836669311114787929206698295292757913610754988645246741102308882327442979323884793362959732117555155060512046271711935564363378315056609876589800073178462879943980809078012274712764969998313114330887638151900602349474712932392137376292249810648123014904873738182906538368292588251023236747832659315085905261063759039943518613979828463031850311313218152078505194621894334764619524163333443264483656071253484397025203997101021949999292981368561334215197602987145835757006957468169988195185209028142123932188867286774623174676987874608808092307178927726436008870307156207418733121739712880641182184354446314818654809010000688759976922801448628846860286780229113966132615453307306947594540988323655657691075871900963814386605196826629545483208033337544101937069138531023638335103085128239949917132910238197334072085037309742462688120804959627809061758529370310955855849806870861945839764266553048177149921846219863642815308015743395086820833580236523771710272170937384949397706850096580470419818816525518824145827118749011580994191933377488028179216545111806331646189410997630639183929156369753737341642361989282716213001048670604480394540744015756825596470685763120432073043496140215882631649102431537284341050272746484585690764362741857076601755780339892285861664141008505634795910010984252454894736007460686464077243739838677952551683077681917825399231342082956609751647250868900175402743510974106992623283713460205579433637826932911745818060242220770164281342463263924451536761170181131928989034428864320973080682654010347125155706263391303653787567809055780642325617664029550239972219993217739462211017869259921362572979684020699156755403422190842901774518356364515723527071160693170009237818772192400802300610722619795013518895376371093431675957167978521969851877226514170130439490772697447350197096173243571476463687395409977929332302459998389770205549087757014266054890506992609464009289945433612219505284188930640374014626997505217345023511977018679036525531526347166436769595189305367129694417875506608657261465832038712982527279597023987752345352270950823974301626325176852564839224255713683741150228176381172400770474849401869284493819948303201595962726027615797582443690828694412377765756109084718954520891952640341304419760757724098166775800165681361740398867593572568487344876942365756329992074601361421497825015715784469648032252248692878271147360013894059197591624649418176918135510669073246335807399809859117024618807132597733265833608213287364537940036270844467008628873889653466856050234049395193691985376567989052623527830104997404500287860817736177390548719696242258944567142465550838569726940170085871346736594419001756069414424126630400138412241294963276258386375297425024733322164948043956014777322443298582202257364232005310256106966051581120496034864966095110624781765694729147986848695812226736773524262169010372867284991626190795348116856274331247973357088255907960703258185344493653302941241558805598185995242152880622753485085833145640785094024085397260595941303742087290105323779198281612609767876715193853208930346036187385140485654760896124412678837265436883030844749891717928975244134574266862424440945798551637039951050618483421077146916750651870902871086841825807205328611425527685461519271460873193962946515097355385910371830631788902488721586429490852039479931545818958516511611692568503842422655276355885102454182651334268656273986966846306308543647811218525963367731659219214285394813767226608842808391716351036661572256659231786103726483481592473225994883234487354045736623540058782853029125178979261838652485987093778182325474822242583530934597218900131234326228885817642834011216856773558901679328891043242415709029236613217629205758876655288357647670583966271973065860966752750148988586778172325664288466432675654520520904422163150941536390435815316035081517342932235047537707741250183577179602406388358881902164826016985491890923394956035068743016860067112124303714970439847491299811262903292753967023257149379337375156863950016454076304155229822386574699465406904215806190182175437573611443291489230128394914402778241929499908080058434202059054457665523500606554574151749307993657931455328574672066096672814265405730081466849809137070389471368366356239276152295031456177355220938878554559476865173703983232117822517374720208393491389084679386019883305209010747979322289159331422747169550970052307291827364927947130322293573665351941693725419933457279657417393796131005578330811237070024246488500540557969405576153864740320115523468310264946121704704822861006795760869940242999061148852520338906670760878861496979399848612750082764748989573321419420380405082795993697402400749642016756885699042151019883554688291368488480657343551643188820609208141254625329124539021584545008984355753877563848155798159892442264032690014721532838693268525218743332504150293742527399869204218042545228958409965304071078222914431080407366742063918414379254997716344427613792435147191435324650500543257747067975624551876528777375177402068835389508308285241085700584418875980916995048979315263469531427259621977938830279412242245873920098295728180096717289369864714134085060741613823021535515622048044871072339272021394006496807595847249180117648617067070211904236080168286455647284440796137748452310868170844228351133292234611816886743434283829673578248204985493718477099045741947798466689339133812753524726074682045082133118561649087512538539616461804456163576332135922696787634116644177327906635359597541847110441123909926788039924351004733310790799902677193481090832835884864289545523906043859308284567064122446721146119143522030272604291147194351924077369820585827103339185990419798893653917028255742404567543182038535309748098664900879801782877086832876369569720990590489891329967247632141940744415513123184614065377174000397252714522573419173789874759202111289492445364718730191199814405359057489521398432752493905562192042208722515301481839147253467721203367658523464064825233816439706074254672064576059615634847865714956963731661047562612775674945156180247459488422906689487653922536712164191721811047675174999529266476251634015340122533281765866915177452171629815790085010054569186788865754969766536325946026546999099866362752352779452544672722571810457575811018728209637395689504593775815657618557782276267737263764329859699641674747120388039271983304788805334003288758334785781755306793025264111525265155572361031247282516343814554725896726745838945608796094133985260467306191492723698729354527014385034516518389950726137102364626907678998297308217625155340513074140997504903065610008759626621449630515411122208530133271364231271060638020285073090169289966602094743618356970425050796789987134514127126871047178434712185500796447066264589596144580245838768660848574756393373855031913646563781308061679274857084951672505584123389944713753704149565872705131956875200954809299438975493902086641534593198700904194576707516879753015618223514791734267399362161078713924460254416266239047740890801858952447031096761703799558306029354551694298153265635234682847378894166329787061836001473339962681382732709837718377898908320395328791322461741053725553692935351285826545591367523090541030567757562853715216334917722061951965441311009234662616528699365878400984681547020443104704497327481522525198508737978801465840205817628020097907835080771372689061613918228868596543305563034078022260751115220136955814172513175378712925367863262188952879213895024509447490627082062969888368013925662621861975060162895296201489098702823166697340782779774345828863113645648647438968122592119729692841702356018265097351376184022339196537168885425363876639827173490393226520982729200589336420663246282804080700149685443992909442721836528466701958156494058819565090274001638081073236724870048125503600492561676560929824488540486443491285829250248121264743469420122267235059610962096827021714886881433364028016837810415601201516387369936126262062540517478972856195984401888551143026175896645011289896001437577082579378768616918738762093691426597332014657874930404499778810500409182021135928999928004638598457824024035791184070854838846146376668245804705570819198200247590460801965440308851107635371024007620237434309315623033922106173191402558038633803623622215652364682461724624123235755469539054874325762787341692945506336641030100230480240785809651041105139644170013292334861589738722931072439302083440170546012478777594811019908746636984282768477275275666572047528683548577710287170056319448966244263913287478870658949730175128514835377140031301491094299614833695142899888391139588359640925453190050809515401231437631821510383785131314407617120347221431200266026037496619543592277369503964177884883220594023569708727434328484936103485265848490187635431248482337105931378428765395865940650816476362410143019563436411268683250362742009410196572887932238906457344960289616265498514578664615645081797036681649665710081433702777943097488281884663724574087500552601126795901983493347733824656205831831515290546128243211313792913694533491142908890404570339591245977798323791358565084265052120945047599245927285401430823107888696033208296325088617612547175144203285094119948744097929048708422561233631632013110966455966056926638310191993357782424308840750134032285794622925378700981404394738017461992852285958100584944842398940937028556193889622591579038179945688091880017225427021818387257667551779029971983298227628960309731270542880913695453604247763853260345459823555249310284583661401029563451352925328004148123101760617096279061405930602391773045742947137306281508590391713203805250982229560997408497087278509496477125148672489684013620304512299404576493462927474230349693096629435333104140550508386299810403770633016101946812008442019310492542758323798088465971609875563110062565459717171912050837356870936558765032867640199747036913074002866351369970741685238209918453491545840915085597105893035632480160310405619304844634370254506752436925008879705060222606216313259572744851486394286970704404254186380479900113581411961533923432004201367593418950957145394073989517768149419436719398508599085485681100724545925150359340046817406447767471257844632741396702951430532665921836094713933473108466091771802754310153335954807621076765126238777388541518134593249136433237046886385370082822900032607139218615977289963994630346629560111565371982727188173796772978906853210008944459276830408434485362205115884362525421088395391870202936563686941850145022319021276155249281498875108987500305335385251063713419138593689652978058579965481857697932937527039065384512331195514170824659130123255003379540591842513929645223802141113011600510931449245611110052086528840801135785094119010995862965540385709515727546083030866173436351381493987116362679053397072156823692696355904870021254523162939954734286290360621316759089495046450544912221858530891132195024266713288374428390693610014724207119537039714269717109074066297665152913961277930290429597321458258392338343396809710174483979978365124047775671584690945650030397429113329048164040781228209383755653011571241268745201509695256202966459815014086846426819002514088436599517377028183274814443330630475488624823854904744865179084558319910109808799380207120616336246542317951965050576149310684901051359475677552648750213720223209706035039074803523081204315460941424747223898092712737184936334244118873959087694725300302116075158522575020988743102999823672833742783959396065176121189475024588664874876775701368109307459594488540155553307753433761030566128213450219662863565914243902009836566396539754599733605898802425207994193798038194985796274766045941906012890225508883195779014044657737863393943172982352767617801233795620183233485006212479969671740904062903482048811870316777474948485221720943662583492824332586584168250969419944278984039310297380391989202930757140010345561758654362618130240057578129178458945371955752439770992188650039963052022184853111128512633401008945453867946070196409542240452018854568607505387698517144665858574453022551076047083400943845774733818840225971702014480078733960491412912880919082571323587263365950851026937374521198354552326929933209699408768444268951575680393474906483468076177638051696199539874254193304930313760839361871802437965391435928673240281127972646521968824156932395596970874393191892642105230872151747607132272705254679858074849604389469033307174296728582223473429229931144513132399271299976991010173051060297308626470457307407039413872100767675257345228574748614571324568998027961612134743138807023900866353878063986474340167097390742677297147934288356942840646494857465635642700691945858398668710750808995429371114451513508184669349837306186270925554951153570574344186883521473394639369549324155783886934038454618118854997559124892871448797722005049018204399284219497644739509357331405684303358235089668701116373554428389920652013395470673874309700981651319255408988515186779563919245118516016925388230152313307825014080963628562263570004073375852642092921968440770342567082088287446223291478430096617220337300688796383202093299862835316415777713763575856002260240556131342039968484121608609703846379388694411334382193331159662232342269105695375483437325281774073944523900144947681878686071844817666221903641834876453416845858051142335833151182148560386723588676947648575828594409268023151633588874677953048235130286102061673882806852444346915043198481469015998087866479966835091844275888281394003824385109027731450044476250909570451804749490841354694012742373823687131748249505320071855509810411096424562051283639601495293300669700187242440035910271979552315498140425079907902114505795151213331255436003992022053004009219920888206188121079064464127785064237020677433235923426572936303644433193679407404589187501482868933564971147431236245679245487767036388480602344378729105915872833008166467530192139551082952931113429370475657296605927559956764882143280903383820347174768361785589945426745719401261748554792770818487600613672335171805908893396010607427484454257494630615460418555484925862140054302708110349136245742454890264208878462990780720785587781632421908664245489951252628629983406894869832525153337757213040040559562796215919566078644329435370878464952415516350918178909622797577627652707992855137614074472787414982364388441997307021094487789499648318532246711059785990828203362896196742895744601727547449130408033976625182714557514659930577445270382648908677322985273398788350086588023066564057442662052441562732572594863063210872859599541084675184178638880422924091495597788806163629494743814372921912570467276031857764917627587072452234906626644711161096019879565164327385399323395713971087940318105428478648751298671550893755286280706689432411306418779594687922947337081837075345981519431294248064831639151931415299725862016789404268639096692634203465959711456636668701149239534513802614731411775422735376869017199614687823610585212154628419988243381874282506238655294450670024939604672051165202111328769025844911426468864584918208730962752523538370071129155304973157411043494204825818907732581938176740519937264829494435115081602118385647273302955905254005240542678428959410705854984758253609137328418300431099998053757588045299317733882017873076178367389579712205886571808564518314188978221309011059600873817409250454389849813137228847845687740212634477989346201887619423330163323958954988660857830428632253631327650507866233739311845893784891635504559105632163153854391727175344148284252934172604756209541785786280112208517046334511805287900265673926727321853732993384196297167039060842817529924212409245279849365793973850279974641477841952532370816346128431608714931264827317571169032462112541432195928912160954209128639816930736349920815976195394513441835963801808651554284283874666989448171301673784926320028338534179401594800352752347378538991211042842012745716931414605031775066720999155996752944023768989737800301320197026019994084081416241273412112907026792288801050398891440147874389035132680092479631312929951836701183621668517415783949770957288865941410571221289616316683823462235645527524892297542839121321480898505062308818741712473775122787176640141076097006117315768896973978082474908827011664551580372701691302414363827141391431395819103072107258485318496001578588105521397934399571724532738822677218218260890111264245694172155099586392134996562848676565493459926276142808305917343375442760172177069545661964439198256322328046518036170466158617468219084041073654946512623599329480367879676741750244609396364334949923996982500441877011526079492625954990149349100584895107503685790641281296792095405050586437635292262795344089043279431228115640997716009482709259332016590338800633546055716205086039354437152765473716640064527670363946468571149975182449435080361558220059196398289176175901959936788327687757220677946895502358681410632613506925355799979698261045560720665579264538363587715290903244093789266722408945629892326660428670590830208650643073230860927069403155104009088617378611464373902679104964221728690896458120147091968667195740753282577400313193033407977712403357297083281176089632352809062931475400137861497521700840180489244538716286298794370788502206492219183129854421716004406722387006796208777857730796673136522423974956297413732138869343123141264928897537040391438853094194823472575735750821316069782073045675127181958992257814735015649379852115991220119313633718837343269190387394083474088078086189332033400385414262040021702263061410630019235519931244256687780184140438933944399639838691673972684861936541814118106188190751673697489191843082676996183656723026854693772915493298098118971970391538782232879661183002807925128393313356349909409245564150938746226525435127480888935421309064878341350156408210376835234410901382704512860701564792187491025047343533816877214484267507457538714632845214581222129023537342403169026775335909723238766137608162744212822315004117733370209368001116796979901900224218587988138018417644350761529007258024803071704023650976871381813577466975515682076926854433890436487235458499432315670026367053013938262779334569318896185801814120127200531110912753143764316441627498244193079035151544114394212947869972343165844994372468298583112340891526606128575981096016536422398562162486026465449435036898797278359737367677720511255924142433282494663877515948249254444090165237051910869705980256791572089109415003546527651586810435383910409166538408969032747233653254559676949231462955491241056518652783127314549712863325916884736054320111630614931164750169187104455343210114753961201208960047733657801249327284898816064811834060289109446871456536589487185184094242085873474848354631719129086038143178607737567774530686440616050130957351927054720997409455631745106508378423202629259510271673285497274664959247904141485485532102174268226769714083772306196937165905373082776026245730573003640678566533844269943377623681056037248229778233542764125763361976204158438298288398524594050980199087357617427535594293618100575578912413864144017709228064452157607498045690171274563549669522250009992878979702243747512373136216548404065770308687138106952388299840174073471880548564754530657139636842830222403546568985999306640609600912690393190367092809100830079806602403635660462697891253014446621534258190069078961865789953041146492589111239341081814597289879352060072770102750164195638945308662393856300864079274440286790300292895458117215454454239477051401777562476113552327882671639555348073884563129695427650551147926548304501867524481320928319785021811033057511255663546375578850635880147564460998310529271693156912992014854282377894972180827467722897460149517634778467447580636254563127497444008601521788496795258516809406810251627224472481218876181688583608918256837247807592239605732556960070089270696136209523577764005038517235502960095380899309314895661781399725910315851517094094247223956983919930357720881142204612955980697580386000108218817807262559692379544640055874870301749740329251835844503963082013701173567857447872489896937671738609308473927109966910485511874435576456709796910249656362129258021631686962457032278008098039741990267466671825086991187916970686138597010865168490060053429721276199192143233298530095336534910545039865156845283723607119004790855922050943002319376248743364198085167512283144448338418194394896682537312261988998105764564465732317659800343178206124814158269887130960707360230165395896568412297078793845953273414060034573566399173670224193114874778717929588242461542648440231660856141863257511201729452828189160338194109138724129334533784082750277047079723902605239635326234091925935664530132114589459582406242336530005894497404181100218915838857388322719659651893777139471929268028016446295517117896679323487013303824175463090094174617128392002832884967704843831268007540081086325336873521483798433639630896605902184263327604937988076349305519560640016920595705289184782487158548817582554953247145975636680310741511310071574676856358913225373403646609198973867476729842727312949019759991856648100929539977731315621423262333654301499358946955660172780810026790483387567855927866782806435920187624155610096967896004281597178239466594716340415348287566424621846290283691076499542294539462720149768055760412495157795845028716295955048947936335315967407117228756405663448983724395433695468548614299098748417371902650169103859641465841684312512180004760684327729727154080476175193594240985678942921723041309304341414482462153689977684647284669386356056791824948248265226586529601531913024606672042331698901430854231904042058210855484024388278804515491955340817220403288670536051889729733629668265642882835992680494576865266356346234776842597543139766889531335456899808075078122549161359495862070748415012854660200969927122982052771049132626905253731689423598845890559708659500230855762031462272601937333937933761767047316024828205858612992924256516235525754447920135562732650990782743597533784431251865189182305678874419726381745676035520120812463134910464957664702832121846761534321687733138039595702671940968584013266992632589191431970571841415584866030203845281511178182254522252506953258128767293042521191462068072708974377119721992704678026744361452958441767089391521502579447705731669145260041009586935257467256854989313752147636142348315837378083892457224951372126342960928651110811857296953425062064650498589007973424170150685790893476411370999950445517339671131936108770586420214485233313412943473237386488149436661203886133916239810867985015394139748374521122094088949487908448896333480265895096386327760652257014033392711803172730196079009130683920364138689553904604091508880602043762452435282989068930730071898503898700682068238622265776769691614672279300696315424183979021721436871058427538349672622817362492064849308021220236847106857194090285721808643962822597928708638119242702069976796686113388615716238849514846562117365518127323877802017152986340203443542068585644158401273900459141115437460890881730428121113262961343253153925992858189085201572388313103312946443032436808800397995355201029129567044511754884460486719491827614500918759560402462780493604400128026929927263768145566822167801058122462233086279528117693429671997336088121429174303466630170693803089602356086043600881610617429339826935261158473564863643175846793678652153731943606672173478327793750200701842611056413050584456421781420598726997607655179933812402069656044512359646933913489237643495858717218740578370185445181709861909223205523961955578206416637579219529959290284750721044501575262718109240690512423190176436759546839021137200447642210109180157400532933914292700109759523464086748718161195018383398202250274083030097884561426080474964005798519679876985047202435849841464000435844019767898550265509589854138865663233917192904581581789408118968172981696063025224804194700449361039015480732087550174534603400992866287555862383575379283346077937421945234499944156326327612889094808790819859251147380435777687330178315283044692806596335232761334040894498494929248368878286547121128625467134295857780705185300460561501089524791632085488650559656673883433817562908302563393782560952936283801341173082965144101105009541058446388790244772761688866880038929655197809089718472901642351341911087287991404913050223043607794967366298868950470866227848359354923104026973266439056290540845740624632690798355915624097903517966997095941951687568485046913528863173850106353764141167379358808952338907970626473368740308262528311469761172001704064784929063562359822302769154783327232764597997647704072744277210306788846839872043822923218566987144686887130180747603766611134804905479358278182958077329789951435569371569838825782271873427070410074451107330303483702675235243661275819691866086622078296349517613524887252666025376121553076324862272956230385240164941843788556303785020041063415478309647167143623119607212111892244582221431275431558743150411651035643258589873203287480330752093476246694163141897658580740153252052643678597848656684695815090327526754466719117097040548954230395222731547629676659914007732248566274143270933609713024191262781605248744716086009384297848697622616145743325080834653395201942985671132045827129303354188545973548841122451544680982693786831448466871785414933668745042241536565691514550008277035240497018171336006165738696454453181309621537022896446253000309596786307122371430559385688253973077813730720140663494101498809675817101505079876291156885656996180801411437978346982865021399563597232542855018223155536948952872821378793346886962749114216181202507688231825829473533405571622792008728463669550621579593958131558749916260522276975499511292036985744654018523717792816540722993288896293335863995751188545901316915056719364001912663077942284914344544085048110968304858583858018439422784271537229135849905391341883874394489265987652544390510932050543721676268073632590003666813039250454029788105884714200747078376946105878137765061373354857595057933113132344603639879286346750913830015789143901074446427686491314163252847027740200319879381698245146536899852013283326443226018424901349288336611266270660003320987796641131805255769796677577830100975834337884158768903885586388884223306806485198369225639955903907295870795044309892075875908834425869646048590590173609655062594451388790671167659810489183914428356964185868310552207242656094273263150594301376403279925168417594325956228016239199609891219175276652800226406056286901073727495427097560962362421671760869418920927260168092104166047224613827339044889594857956191170059339329935196197941458212178752804384322644325068202641952820940949986472708510404703624589198971023409219061188623225940841530489847606413091927068485305907220201293908933510939874254377555509226517219065952254970723280800670117216481913841754668124490820477515595906137375134865341656185621163953989274962797700058155003305608879292545582243874860031806957496479184410356581922696064312334869057170964621298959602285154671169352482394858043450447984870799854602852508209590207875893642309038710522435358770073258426018438153497440290169393522125581684612106094527115468209983935489370929034073260364859488783217797668888676970299346354354724132340413598520241031022871400690048207979503190195728583889231944163615274013061160834800541948828831469026283903419073122306355298567960114703901253637884085928848095264053513222521259735429623448200788550308760933453534345287204154979406515458329940641660183130648797856835140331604769308511196388105805109647342687912124219461937333525686396022301191443406073226560064355311307340427517992776549048750855781461893434297444072419838902558322764584726121701647102970900328150784829723994679190891763943882377591046770518707388492279279593950273713437526017287735295108278057073058835392033033963962267367763589799346867596299374828679401328190965116061589252198875744615140089879511082311484084371318461812188999052459871505529452456670811142960314033868434446819955990682802436653492703667770867614965079380391239348943020266742888014688018788714027620204858284797639201657815096175353330024830298161781197129955503756252520079944323806408080045458046553834606839696277373104908225404352816126096345919848726554309325853823915494020552382959209724027056741778659769299169179272448685951581835293366563848573140723977239954162105093085620332258728198739163593589284667660443854503679953202631061298478955061706921556133664142241103716533358270071779702728980368928867375360025467992080700445708108648830932113240383780112952958534186239406989532279510690024046732285657100890770987486856550526297253941326824656138364793474914884461241796089841362110660194038904080923330871391303348426224944513745716715537412571861446830612047866604475382209801365633861213847480099121065922738107873167367309123484040799744691982192142343941600504012750426785568243953577510584120590861467317682595958353607984049217625848498605022282468282049653830675566182249915164407766812194265983354803070433672361909912207165665611958942123434901581221338076183295536620482055940793346132323765713132521159459519454343736862142788012653520175778580352685326671293832794742632233178156481391189122544897291932824188293879171911646543779871508185929232026591911794543490497341623131351405857872034882808367051583360309803495158310323366031908692861067132276164956215322662277267569449961389109419098036267546832524836270618096142729102540348317813785700557368554996735554592343290955455827304656703618292553997179932692118163501956217232790247822925363263278891492397912669344701062421324026020836804343333881179836194675799933562579888934720499226207712147058712284858760603051976244167529308992711204432640739328085989534258974518394769302624923949352041348668160040105649620811598718896901138441943145302606892480059030695182837317304102905053296519654807079062456497954739072291956763459698256443951274197526132485460938088564776557117375530267290805740346731278407749402927045313741618681353054076904219806817210543100793251029205587778982668267963858324584980162822453484286411529294486726405513101854116197016906806670991413494834983323111343210705222701107840955933420334372409704116621790515151307131505161222620435413942435566302053536408573821172445506218990716132453261401915160729221217849264009004919920451703651338171013559605766815754651581486283780208373892639914516576624655822491795888275485927026843906168095376937469307051411553929567353010157213377881255746450221274326449949434111234599394100594569992718705323359242258093191957488005866367889032705683628583477708807556789822201136847153381856611789112850946908848747075104547495762215073106318416435523683968015970901516711207744740858133283620905320742128991032991970843386926779962871459185557845548838603985043261842227408415626338870352011229441129357215759158830903624292907138365471981973214662322432093276447314835474717136998114513530978590747305046271732834220548413090494095992274473352224432392962902266205654338115297119075681222075351517220647167150391386613603196149745569288720804432354235300699435326408136172999362401728470212280304079714702013055112045309008581212995397383646167054078861191116534356628245112614110365059818389857522869665070367198168236766825686098826264406355481910742282997268218882904917838993206320613773300166803777044396140695206564659143043819636809471851658718513340144679589887580502956396988834060023101546832580522539518132172102755800048380387398425690799917532544861374394459511475498890210741499209325375411045197164285010390254639195622481496629369912975464483683862448263947768860120534958982985302557971338230080039260201317481402338830498764455474974742834630053895634566681588490198829383859795147805090741261757795459267960134467898569318873857293472689544553922962650982452708535739882199239802214098033741417762673778437843021409119856464889643588573319752106990278970404630005686795352317821352640811108980280215394572507817697657405811341004820685279150652126853212627214849414792200812414854588905614920452455560887371514982796947168184737478018615048695125021775205093018992565160781210927539509732474821468623493257735870798741239001814618400345407359594362440608888252532754356623858171101269433097811053607623429869520495285825128994725498804036809581786972322071200564598316015510369748387075467126264771997491981874522529932643541228911571157762173738232776528013827260713693708420962463718603681218090892881990841875422455072318843627593846358223354969128584032567496684703744030121170085372056098292817435490024086127163685426559694068697214669797638762565874028108615838168354049555994374188847909185452797715992111669177263829965516758850736225379550930750781786629925039829013676524345115023096673074517394511435971496319893217763342556129919890486056141158049234632130272710727242134683026196910532657890404135790252049340520220874460530758447063609970118408573398455961128457770826365059901661628013738821417423481552207455370520814647215548342689458006150904771395194354562047648052847783364391430306675420915929330569697478527944466615731332587846468911248585648534584855130406384086450363550722780112011419303980250371929721003863672917341428692651689722680824714738502197728624885700093075023056280777289294641406711759917857456720437726251342465674738200949554729938668592290301703874522135018469529296636373331370893144820738533745395466926109884326607413241263925233905214254628268736709608240486554139311188568508201254311561942536943604365181376950101544306072189760067285411250777993447722495843197428655305090998559860068955699449717202651186569717736824618622209001334078475163277408952298204963656069280224751094152557972329224908701737499386991929701174890092614745524095051889765528552663147366739693970225976250077883463469420239381697168737571630315494381865289226934186362423969481838460209920400163812087486995594566745065346154194558683545654239975156022581094739475204555111403777433324295500154853325512640006731212590365955585451134251282838227568047266900700186232113570179577932737611019575961018899338812040685930194787321409701506756290821226249472510103335428732776351209768169364877837515185449988636318695156596358062455448394686738221421686460285185049165107228458414355361697926877557161383250015662685651357782036790128774840850372855721788898021008817962363373241491016111649360582150100228048906676318123235932079851095153075807726968621329178749057578272250417375400136675843188765221448724427459324573945104693523983539898114862066962003456677093606058441836858468727129498407204309775005893425213998755132015321782680661267372727695426843181070517453556856201169830586921719996885551608610404404607100700236928364091975951469948315012237198738942920458246893348145902425047221666456845626352459132359792577125046295787724689146761351054234169684669501963873679763184999357429223292486015405048693162907335857420625256322471884532734187437087548807268744956079090638907851781061885733840806027886180595034715176998134433694737519178847944867540318664236303452274336194223266717355132442298384711700582401275515516177712716589371473227216044878149051729795275220343121176227177891606145868504698875400775507302886622796606103134775415860535639179523902568353524957126800495514819013427233392564346060744279167408643792793322065361613168839166804128869640936221043214785520508230209529931014424338329788059856550772735090969533285354617004175719911317503315262165902336554137566577615690797858665089548333149517903184419895081777924164578028336670657518525347019641213800702382491450369946721958245652412770506380199320915110856688058801706209109226829427039844340464597621281635658349934883947992567385053035873750025663090311367355544019579868297941374076610782573496040700133419551408727004690837826690040185342566296009410229879378590366468624837907443266000902845056437808552864240461886290707676295391306655476312789207164160302353057882876830079048649733368944410747405549679372497567682429428905210555716087491846636300108450147755295018442985366115372287010670092282988268580473369127933995273814089318985298561060615417594338971489348079189461598664942617318020747259641358740316365536364604052040190543290868712424874942230484276860304459290764515437597545701366120708026706717792389205528856789686158536349578496238218373256261305893532271598054736772749331055627501982079766146437260735396672522312220011191488932223165959565879843746120854778380152588079747252379061244257902752556542619062015169316698157872252802299953039024979909041680960267137631052213499245851594671131242128848280688511322781151707810836625061728794488673812697084944343947003940400403991129571152383306806776277425231376790668629068523620740361946232102491929525654126386556439633347457288761644570143073484695454815798955807517571571036980739072919613739798349682088956287695151647059089434219638118406838015356342050667301176324614559443334706864752462048520026812934579190660946557763023373160214659832113048211157645165234132342524231119234225730262475015083661013679791446675751700320648495964384132895035985142283022419114622874039152469784853954110355301200960063197896968211668896455904044804384433756330362126677538855091723073141008852472569145054636430353320742187025679967529104697839657861079093679954704312431846881909073704963529305549327548673118151991580674669751513408880586851138010200101865017791457917606249493916171727255165420937838375902886910035280020465003371366407846214963383422120797440975222961994701517902094001581482058527697964863168501928057582832634990998398113428607694000453544215922027852164872442629793284704194333056318303986144905984606113557134390098689152408115127652956360350428508394809199512283920629275034810779738452017887058585936550339221059641949395116622143739012828281196992781130321018074990262914889275395928154518346373527240254017255346064540078760062387575205851008015539976796743179348225202466070659999172080057068968634785786218877334552299810522054759742514274253432807818868792733801124316097813321500269292114501744079830774888211842179017131343473670982871093489619590670294114381688381691938893882659820437877447739214944511670313556755382457638480979660820657396125122231994640400020957373067375576428629636380814794293449017213941544184512723051418245939457164982083457646482012033255614672872231386966500102419225893135768495657306874421980008649380904828316172967457902282595667928359283583275062023246048806291206217501151592819368364178494231876635026809402401054873823824472291671581278217929304291405266539777112475334301520821812641380143810485671437941607486549228845374130804807381410682456237086413117813282853643598992771090324980642668123473247085602195448788168152834915622267092010341108060324493656975951878731362952158926364113177596263551953455048380988963748155202256773248681328184973050888737306565489644686301684419440830143015660128214570931688829177089292489543664042707353842370601046830134428822729234220051851932664468454561461361031343654103694621697338856806820802770382519873962570148510604090655606064825032319591495050452629110580063949167472352240586722294631011984525196669202107367054906643298359630071626972523742387245351343557688394226081634237094968849740206841060331434252286143780645167243555765963871020908452928973447949961933031087017129708100945206127740649266764507232500285920799544607519882607718732795227512934879779079066338102047576499702819504110056151207275759817121330032371103180119596276010669785490260913487356521831373571023545970762839263808418487769641059672831196837611472700549359349846039053631411372370952588382574807944986742456636040705012267791626095115701420839151741674073074987168955719458886888070292450207777901177756127812898774422138141387365954723012183143305088087830986041896096727385389004831176025514869540324907137545473658485671059477438643723961483502110341097339461680800972834549302761298162389761182841901104856444852922575501509098323696704099813446634268525104814427071786780059242151839966902514216519759671033257545152550830203571210478949330084747055811235753336267393471780243345024093915741463307926771844763198304075393032900109932625089886650340920631538845349800988588118798959868741983110133192286493840145043699902331722668008545496218538079339010450216881429327571749987405073383355111292434247138332625947389152882538917377860993897077187102128970321590389337534504100168827398809956019119799474995554708656724882466062684325079452161859369451251723572331439255545204262760878219305703310492116837951076593238140791511531507345895600204867451146295638880986148982048820753171218079579044882947798114151577388923723923007745287997401308702553427783932443927093433128271236810774756421270325985384902892593511606144479612455222190722776103074617215646697965591532656290388696624122677553063811751486564860347994492403382896065299230601530481245518305733004796767815680743387397700883325369977806781382730375613874126356713924485559912755739849441472534223100171153857039268670879529793966975503711717325312814084353230016676184126812695333932485069428985007238507965990385464885126138072854728427841677290760894503868916351358110779963493692601934374347894493981219508080806609149776201891696600061871835851375089614605955451326889048566092644065785621385747488829875236619991194472571488255228686075214203092896130789281552006865854708231496044930924613345011521450615150989361934271582874541361838308814261844203161697232339540087937639793493887844665515184578379342903373116157763866022054708034232628994276746644687078782389081282077425364231632481980329668968295499092343081838413890858547784722887705795442234592408889622692702345797249263455475851068848027021766333793864324970495671517058408476099634089391847330842861145113015964320140336071069317220099852302877335140359590465491436311594981087772873884907635346311958308774348544465811662923367184163705934842586280681726777055871063125523094232906568941975459349877429277315585121686582729921213946090821762376676052715660299666485853347076407087058197516382077782431027118248183222910959762579745659843532742163094776270052273597608667648754129681514312248241165403519110435744908015108092781794131264816615041233918687529266992666209588237651993279110080421292471333889663708402607349173098442672768403440686824096009220925812295951522473061409791456713656142411316034076090943552318122940374502089627852094720837287802877938968980666280516097380389953291588107491693404206898316493916384829498026912519113596023301948871874905820457740544528182651003909573196637031028093700497951438990504684208695485949406886824139656315386810202851974209353657184248151244642924476101632880978765024767927211179149653131975622386194345446308781293049864255987716333914928835347758853337141692368272298428196991146336594752316836599342972581169995108891258565542572939905206609821527587584837961629396518659363441715474237729967452902190228665550649004895208196738150486587639532426443619118299280561274985688483597077511558036783438908262941399762302410240096879163512219195633327945618421842303538225714323095183116455632598545570579185852531953040282165732950769494998387600550771541656001580239960490267977486125256796969646904712918362266891708154805664346951272068985370288311740826800933947907707457589786382882299211315411157406546396932145528065059545304669263389119464594885159851645242639583776464983689834370697473145902945061385933645920323006415248553994803377918586490627696080376836768250581858547358483219374602535727548845804515062379370401768621499879449209670941958204651523073069384299334321404087314061745034750497697513521183539126331028720268733674106958471271636964305330087319305752977825034508801812552217041324967218215921099703313490983224277230336659334906843692845220011295859471697388867573591673055923423690880519728517374322605500082974755040703304244282213402677746551820891682449371693900877390938804117795764714484330050414813276027302523739227538325233705927213178155538313596870389665917320475039864337891913792513428507901519592948265923427824514257268093581063944396911232606791363488112123706945432535642635691560215530193464314941816903523862705263514548543602591795108811972303383379950386726273812437249946924257419094000891265708652470654701159329274556748613223348640836508731808627820161255481185990667506766175140932160325350600287429117557248575085212240583463013567933880043463752412616027001849035393029202223669407979155912045814440099095937793142099099688058115641741112634406588798402519614197051833360110127747339747058372204022360298858767847182364756352531608113509719746857878978364925081423299165419299661978533897509240805144402568977269690966272913951764119987463482949855534113629857523139234009218205513846832094497628595192337142866526959673379877504052716355715607525138016337515179276471826296664067222697527581442684426266417642344553704474516002331096685966629439111802629695510033508056188117911413376147317468141985660267163206993144414780551447405012408389399366072758051124597756547844457749288153167908554732071712814786809122263885246036660387548279044783158710503316869214890481609887015405825339821945285709173290342020415679886442500025395539768425291622010700672170376093646044113765083893796746603117836894186567539073743557234119070802298737502575477110533180300115348285964309813093035761004053312631361010530766881924492120741143696269976755385626880303219465677819715322089102676776115519287738130662638470158090780540386605070673472059272135967302298973585962033127668767726486612067648488255831329992525533132115248010433951223092838570533455084121945308043296738326754646350094891140620688727644376776180303010858290798307270472496032064879880506843644149486706385310026869111207046501534382538255439949390815216570937294912037529604081893743919580615886966180330845651062165644667930385605062732908980387171990342984458612034357950536438231859850508598678991865901275078182989092115572829515375065219599473118347623891575704685073763365592625852444635181765763101585830411341173815606686757294548130965148096590450621148430871926374295562970140165063417967529356995583004588403907831179975319070830986856533562386370687367789579544136893593369231219713349418980206110391485971301539634054425928325563301460367018461393691523573279591439398235105215217929411657557191323522299299632619772759635961815493468313025878304340185492884777812468776198913883819621418941599906465652817129152559258440101876693179920090029151951797471256877785289868754387795433741345676521449616878184036016252337054257287843114862948504120184323168109904587807976422316613982895733392427247923341445229350969046251078527798570549249798975417688893522851099332053131493963789778795417638301288878895225579516765879410132913921875436788004305936052702015136943384177257284312782232889466553805306970599549224399251087712239828940863585241479503616230079066910487501387401254966822283670728648094515905858454569108015444220437640447719352453813458586302187429941089433536942218372640719312251139639391046015046973256644361619156377161822149646625265139205416568293619991739688048307008559034095695244678037482193459629386660686574406893070437574455219377922403623648446212243886945570876396271767367284906568268018620211122097236405524372764924479851665579293305515018179638204134612755527156277727976190077621227867148117032676657411212335834316743841229576980727938443649047469254021186572638577359439202337434898588799256410965904102209831184563839080441211156504828564830832642511487583651457901703262910399267844947008331080856742145817490904365102927381027653757186531791272686249007976339723180546664855580617027460808137143014087366365708305385470853123810692053675821779579774441521089593438870019622384993684702222873832510866440299367384437555317374788476420411465238517127080319662852602943485282134849961236068592104300150045792823466996600546417906728967389271700622571391626802610975768337634451443778793231289735869993143579348910683977040397980712524786269358791370226299502721113691564220786726271826891175460414853848679707358061474835335115363201108589950445370217414701462910738939027457587145233418799053162723903837223334209194901067292504132200626497358393100530104447196468152148144872644168589471639183917242001885949620467157221817070333063213999132307496522540770895800232028116804894550949681009716280900978509483372737942465774026141629622828834128850312133467125160730961381150813089755401578753291616656782650543208556278350605494224793529284050961637319475247138942430978494450176980143735967150627714795890681103655518018193371579891322493546141637845843123533751916505445939057555247483039223261388945889347134365792617256401417346384275017085036771811352376642039252638745470202333776561028273472563318451449397231116072077577010738540405592866065173870164578965765833343974081237427004750199791430810787141149054979728158926184889964880799626227746991033842689962188896981911692441162228725488193017916591510202865782573055321901812566921204294643971107256517910727235376716573389515591590161414181866607035370091787547922039228380889269814974254119084320114820186780163955482419250765316983719438734399999358447829181861877376884115337008346802673710172023359782803975481684911042907748039919600119171297728087390618239850223599747613307263751204297554096026079181164181024144244514302754917976642422960536146765502984401958863026501203272712149665895302572828902663718901384977838856407999849864870903585652741338307797131382530359518147439861526645023070336700479684671093935599869079103452796203485178373242134913284945527068785816907196344667742426000680686382242737136659310061011353338823343395400115748951884896121824917051932134087475654229185639065912954099616532913221671006768937135384994935978947359802929787011483635956996099574068007684842517080949056573788052156215540787716139383618268398437529545713773126903380487769644378734843389315229666036707198434715879104674839983944056452272274804528965491924470066152362423041503259632738729476123738409221162069390150448530182145971414291916052554388233117045512203276759708593782587462400882690806037107739349987316011925209704184695365768038282401471080901523155836232699520200854389745525066332591945657835284435223015367582135648973627979440985848518539340498940066665281142687100569050491921004191785593151070868913468136182982556388080609745332100003675552607327763366343350144386449175870217344832616777324126969471610656586432263173821776193034458208434897927265871790857776046100591880223991242892881349315460064178527159724104988143976403414966983514995777125223946480725126686766961552618762249335471477474921911811948340701289960943443185039094432167739960160784465851430297961904988995779770292990011789034181909307806786422509865443742976469586202371919007367126608662203993234947394726411934036298844271778680516307762493198612630369659788037976452524689045761027582129418549034698905332409087300942675901639172262249321233740286970610207948987911998270033195097837051916356458544524418784909788326667786143637420346970585802714555040396335112815455749082391939029264959393120899223038299653003384608341609594075758842946630240511335291075740542118419010592994631645464536363969036565900244950253312100982726668679130549792030183428929025297052973375311077391455898969421381674116274308072631201304934991769947955823064297928263491965989174800092593385235383298744252595656732683708884515777000396261584056298703602084118651931632496767531456914845709342455083467196147762960223601719104222888112069012149686546817072881242612337951922568023987010482668532906075532933245676881394564847277179380454858206658743259365466384847152479144449859836920169047176809930850938553189733396015506087322029676890915601250416841028711648208604537550084982553710679530295970164191187910636998791413750585049951604923104389126834331593040891774736764010117138535876494625145419039477554281858393270942356015135217141131018352478462617176157495966598511280992104608428338944955851238513673675557522163480459116631259711103126034783845024930906318199398465523803552498725512984127183542796824001050168168054185205479036286095270781173574373133138893202819402835413231451662008117170561373132444108255145147908712253232634749415871673218728720598778289717182312292015740412297930973592735802414425220488435301173740487247491810091068402483306982444826420162150730761186047725874436369459340213030292481451132420051131305224829141317008365054797820615897323061894879636510257561547329479848673186487953467763457500652955312459818735845109249565349394912600443422425657683438089432808911016585020094284368910059938252230087743345198082834968576712041381308964729097644273838098022957344201014911768170606272675803854340739761878637274704291002283728809632366292206046390370082407838817368312645457471440333239140243060461684255670925567640681895110956376671944991274871473398206314771213764491800480476087952677172926435914082671109750857921111305649824478209205780107511055101498267247889845649836252320921144226450624448708070652941513136234392419437647841642247834085175032782186777750348796367473033496121256317967679664862508639060488054913304419251916996818405223696065933440373774277849031948517761737765783553088740422525991647660275608153454750568063188569887039349892277925552642856925554732703715490895341607684952841195112346817731479277832980838223786398051370101748382417533807696635280622916445340767082368531221738469914571875454717460848971747487142232552804947824596389062363896598000917895528258613580730411995354314966728568479241157106880921738241006600849478196808279906671852385916062111982536781449185842335949058249188805414286767810570411016672941581811487485485538212890608285777675184773919864852239537284209131700158126158424055486767637179999794905593559979367997524465314078131962222949956267180539648397275572593011517110004646534973709134813373205964411979906527955740846946880903961923027556983023774252200792285032083146819210811641798106324733553013003234912245025623136150870255653003419810250745767330882045203513727554465700254780844322182188298819164810203684151869819417500518646964060463847819578304972030040516429438927372819874447788435051590050736965908604262363280073969761937478441039007117508615048139855385904049602505214924706575477515082687347839175837963547898451098801422620883514689820097071070468391674793879269670677601341096711998204222283951244225087484911368628356251238986664830847945682901716224994883920340761453198399955818686374781474153224287348685011739404709244463382540362678270780738270944186799855418592782942152624271238060141117659581456724285390240465215405194626947580196827027059099823585583749906982855931886069468380683707938897398197326871325399177365771278587154947016301402453705388601422296137719629077811366005474413844884461721636642252149565593720909908092574742924563303787701740250835329894603313135050320436194094885739910468512343582089893864042848988157143719742264620821919116805217348138577787381737327466959862618200970804629665887402045785945454677369451242168041299886268130270705403381498451256578281693520033462531956223059671287589143371302920922408211916986730689760622500530015121059322238304077794780181654179115862354099798002347106415703510253048910276731259316831087156878765692641152472904948090143020482986774796213699710964226634362564033023631426565311759739035674691627762807857078383530327026471297786549177334048816184839047545507138837512143005325136475973548846718371614087214585193640646283709602244364906289557875766793291256611984796446825513335286341102213631869451587010931443314410095873548900636074627500561688888444169106928146031110516207997718499361837355982980663294477823070167131001389060661699495006570842897151051583457564330405709772791729645626274558650688753198353077786259475243652071443091777216258324163355345701370621080059559891667046666621055733653687937598138642974479627242465012931039070201154882712764250311226022216086398920609556161953542111691725389211526753166487257602322071116903963482586086583198266476249047298851375827299938624890909791707692965030526591762268388733730958683385806202207147037189565324443810472708917670710415017844014588349436338678080121796519345172454889834422343503998422520617381097587002674062498435150596796045294736235396405305313332856752762265341101928302468111298042702431670655471056870618687441382242566625365271946334332733637951525036370054730756364905945547987750699802865637182359388214749532304455824594836982756332620404037002481868822983293440551986264058272358863916833146000598114871965704381913781152042004290398513313249983830590348814830745814685484369494119503123219937998275953193124299418553813003210800788853703161295888980566979333327771457480440893304688050952516484656700536729284479523696385503470723976135438407997795132951421516137724605755666422962704023111545624262027925174233392581141356821153758949977093893111278470353629798412894498222500636824014337748935871874045157119053167437227363563771556194724542738426362825488443596256777875605336478300122771014933805670787004923486770965157849666974529420763670083360000554460843892873817106809132573873549172241836453001310817063001728895357573240138074104314148788361224490029187262568594788354601728341627940312198878737715232327958788452388826841338677521841992040305139140358388024564266285277437694445716245684907152138621277697132907229228331886121323219050581262980825481058251896180429344819137445348736481673863189135525067257343962388580825577757373111359635169301976624913353959215542881665637832066263733380577059545909072176999321606936209528638591629859752662921570811121274589220974252194314541691111820891608716927405425431123951773853169929740669164483588403135813587491617603477080214519035443439456666459889424062185710585164061289112054555170525299458757874744712909327185847219642350289275941016577972850476167375364354163340214312430975576376148313557387184505784222161043592111300706206341228910522897022020303307652887321391496549344983123915390663939878703758511060414543417542130374974327331059661375815851129890149422715540076865926835130332064788001496045323498731711158435113095633284150659144751353676886071742140272089039833465163885977334863929046655154689737443874902903266964222374437668619715188366657441166135404247749851028439807344322577151581074533448264080878636230236703173404352975598807708358891120566422841885666282387647894519433533626646311893130793120547598381953560943921894277080600435589869857271068734544280227946994522060184826883426889739405747357255473822628263686622201265166252640920016931602474501632079109674029353437337917074361848794992747930283337213379291092875256383296837281812515600730002735658200744181653216981312861408599449952950574430629530279036112302999505922073937905879986334232483444120094632920916483720270224145575542692048980328641056255728996007630839045676743775628710754755803536786317212980455718626885108343464089063389919945783944369591737663028116483418284952155377708565023735131579552791061417785692625746530380933485183427639273573091313391586202876007141485363233987288423611066832782422256333323022362335474057219205643918798032861256064504834378847199883482114468521419987075577654317587649163222367859830878752804480695646571421036153486479608200781090691799534153695492561105836542999227758244331901412751981527088971475415124418041661146125663833117305515875805181013790124113810402243527132888493509598724203658771553795818704644166034184464532512400463641628930502734906033778536872597742386997333911686654088865038514608726409333916638465035155485734353192156341502318388267202573496425272215618946801290853541359468197314400136592591155220417195234381830737165774549301864532995116805030643101950246376242911323915366112119290138790415736487191798199130067638924769846444375370836543588267528579614048208761099036825371779441312799585563843589459318194446645145511125536966167854961635113748188779700777905724899198712201206506236450518945871107013753708350229063192948014018425065353031571270232879390180726516543653066570391480481409300724827660323700120966756579299860666947337988537518716972040160115050469654243464253530199379950048277317145074772487099427197147268820698678446576001747268966942680882412513485313492402456299472160924624958809967478290095357499383474744125829499876030651784379248583597214389471041940031370388975103699643233974453900355932310464661326461825655869488402705062092600607203609201697890131407414168047263940319557337413662012845977880723088774282816820069869497347947744135787620307180133413290866935097604892400911863298272444994269542846782290680133349063312755441769771671592734917356661859825827852627587622506038672323250503379417194545915479442333989887955338082315304127111583334737266934083646789378776654752673222175789842881512447622008217043814066951068691870045540485460304286073373163479236739256650383293986468404172254027332839576928541537031020329185047922078546581320636574306619489600183867220583609872022326742990828918951585051501075421546785495898785572199119703995895938728947632746700605372874684680233264100124331570847251011518956200533740316810839340055060586484894851990400784205270434014134596211713483992765277295580843710479483085308858738157124784747876317656896215393224652166295949751749657362909628451465265392981254114018656915459117630749975404375741491609505676288378799825948125425833441315714142051831816176689357608777103351726655173059366964889780773060256170802725074389213221558011511902034655750402234588561936153544836742017700236064822498918625528360967739760060743346914605472712220787043011713799132874044965196287826888163697762732640216090348951146118272114658784862213552470934599274805604419455908587804316831414815717539367201321291124663843106425590449936552519130913919850475736264325515275821017492522188754640376938020306053379160145737793309126020094015649905996272378303829956756294483800133693717932815086281705331589458602113529835290599927744906618605955312099418242246069915307042195368050160547248035532925201094060345721242129950319495627772283236431743199412458304879721404197373655431817698297282969640629262696547407247729630711148249072144601579950457354441491590755155353273329156932898130706634642606005034851218880571205677450344814323106354407064648730240540282394976849457349745748799066810432413907695325136212486977587666571739444064469951390479642910707252283989645362824406884416090050633130181743374239958528988680835131068170466359510187204208659246890646412449501360736543837711418089342288049722942541876574220588452119776147338501321212950815685516644558276796772924749333220277862207349589711356757317630659727697236213706885944988526007428604444283372532892103705031965655085567035685957062794437686519642509720021002701234853107272822685008372213480427535429886916732203119290657241871739147358894811885913455887693488874128474470420489440201629610848398724275345766469007473567892541760900878500288385850856265782972530583292908694161480023911141653231592038672500829296489271670839257182247908305345715608102713124383872226815017589572534511980986414962214458511307935624042103221179538929999442817509067483530401945164793742840591669947662428662559230743749873748993387880780742335021658443334211939898337596792078326924802588886028314154642083693128438661240870869528250043723938681640743169941152207494505635883664272296364650180869202830015500904357428666985475775040691729806060431851431648301048305026586144890863345765980209312583938205999853709751074780668713378433356171845559145344385107031985644674813243895088034092485804441950681656748777916446997221141212017209788136716360340688245781782682870079965704376168075485933195841435552242240053106087048045347166645365283456358918465945671531269201050462830765484738501232984294258206063824779341974729028414189254182721196949432333277825262211207017627062857035056104413318338966148667079981761601173789241299999834762941365442264914636980878515550202439785299903681386116979721388852720958721782798699671251376915536472338466768860028556989695776453653510622698378475038570718354294918642615466513640390272982785221118349598839835885110665118519240224747615001724500188321062892567271219992365893414520320645912674254988888234210202721050950825792528505915799943366719224259811267131586152700737413334241434961073010255035292249862619579212345984762670007326997685589421199122420480946543266492159150716546586362877737209024837232784223086987973357060639534163894122047334688841065465878497068564795661865239307798821321920059975493221936910017177998661516870945975095140314874940634902567010879471452272837317490957399446407740735032272870582600087452046594522456865031759433523677037317023900767760942343218916091181939885222913734020566140471839907978430473372566853576508605319050330841789376263454628637368674062207563098761237456675349552451669799228524338115998130512652819638769549607160935184980071232005504843303963934316574659027579223400213449015545363755288383714290020592340928502079035318038112181777760889529107670309446316354108436080349495596148895084711983389983342457837491663008479415595273667520972731797947815593343080916761184457711287727960252703000058973321481866501710049506735790403031308450090164639253887092771282422380042335767873033489457229792364719722355711478722105432858435684508153567641557718435528715797961201331387602274425511580571834260744790905092319477951306359040701343216934353786987579861852340388957122536216831623246977143850252400703859828660314395343004138054587575804958408452721207907871382016865929262290717736050976729800283781521332080778594424316903412717641665798258409483812817139001635996551614038864649892848678694474555019673292021849895680742450132896885248177345260062420862667800570763072631268189426683296467642826055310707737079091431971047131721776108674932256322511921450444424607437201258237173303917084684969543303176516255296579140990664451999446163668281187259380617273151510813672329417156030851418322016941264353512219408742580234191701755751832025525862824449664186909114917315633709468915752405277740113057720888308082378622384056288642903684535336298104559927629804355181982337633845644456250034180737507926257986819628033648583753176353941629436783864472650016972541623498722912275878390026747493936206262780269047802650435037735387543744353475208719094303750831534524342210469258568654558150685061461375820372504018026706599838114440053618666076593341106099087976395493696300157091697519326671820436206524385484838902687812465085087292907825890565827582633907284026855871587606675227094573243829099753850528861973065891388386742695821871544481660767330542630485290220615529826952401308626817562944931903049599433270309592275356642884018246295680220180159924181044004671031502762423601038344667456373072410688601753628818113158033904707117534382223398622499949832887103013598946373145766941586483040904494631752504496676157355183799213348233972693366281004287306779576520212368408460188629683180266535919248831996183858259772460002424617314768131558365301958176703950429551128494064998095220042291376742289653952546783031159783582991085937619033691405054748453746092477808868701925990269976115140045867047480999136854994252071955840400423041749415943672905096362274384873745783318704977656810626079030515598373319739516204075295425786918627624427214592912199854662061931885663645111289396628518256050677547928472659802906255889075728389285163762260868706977207359415199943284978613213358060119532040203408638596374827836135188307712336923907364915728148178904147799564135222533122217015720313109622024538894971337061951359516702930081136070055039574056062046116877949370195201409173370763925608976051565213272852091147513811450591965435019185794625736108550392477248184355299328241975343093939545471179991097920109251010931457415824611673065269976556739076827679990639622040601598329856590239220784762481748358566964955627692537661039606675299677509543383252381965299249428895085533442374420027468454944095142640045518518182503705807313806609058254836062661886914560476902601510621548698106508700487291999088411560509248795503851582220945493915548080211546637787846993575095337475393231432092383243884526400856503184371550399894439539137477496707708362679410223823484282623564503617358718159984424301094721001274475010989490703866005833732710555268573219245373826207498948617068762804935200457311014376339344646796162044299782215661476612862211110830332667874175883403310623957701768008988227654967927060694711638595708185234284583280508985322557738541001730081517521156587774237254650113229420889399897487592209636507964890559571895713468259933051336785768892943064788340273741493820913964104768907667201320906722632117142475787900655484736528679342990884988725516327729551733846791574691948080715194609938350741670746279152807366876990975491816871821226438091145483928334744979011856085105426004919323817014703329744491835944167095100692785772443767500886903963697079886074263374859265658797993085808871746618964684901016887204037508494182139186394734062174666484924670114710430799945404878275918259771174092266395797679875296513992914897253629845280197388675383904916123109504467715712798717653151083037837687308424175949611930083645924590786288705173314203556061317007818600779000812536016714848350150039846935361946542574609211446304991176768336300878182310903609045344785750048843863068702568115792111790207320032103952502443363178295883598087119298412125059558913419182696096458318885129560687409397418254015846519772241089396358612777101887901903314223992239978482388272835572524042386880360898050525570546829015409317793468481548250252565636921738166291209026940041630121329969258589848079624259363874473345167988892279101828452211567306346835960426745494388313645286811142796956153431896510868778013428109768221019180314461406970707917336510966359616383566128993812806680493997277083418757276294130175458649406932722617439114936822653472562985261518923907483223685906196712370853257197369933438631590157230933171946345219054475465155859158579545959866087310591890455448394437853430008919336204204843867931560341574180247214148218980801366867111691963572915883231602783266686208938135759765658802905896658679421826014539357592575955149225305875714810344104669902733373071192655451731489081943182509464367459100566351008519519631543280214346064238979515945109703668125029704846621288193139527340808106175955834310507076129066761436708368310207501389904101462905942718048896343978554311761094578290508362502749103409348516077954898485181000677673460122813062199884807029134269845694768146071096429770863099764666903761846495510785286309690317851314402969209435956107401181674008032086671297600302252651393393036984566673959352585619469862618811505109187339148169252702565865658132194033044098093454369920028823973931984672194513473081300131943732173201169806380315618728808489004641551762774433453071431049439523068179523699306960083610390264442632927058442685336120170256879283930594163280454864586614767545825375177667453896215811207296627746943540247575509170881416706477978393695909634914568104422630034098867807672976742204166292075422345781317225595143648749369915005117668134451896368605404566496645663174483141912544543722690020675886704502086834302991235889711203866005655384489786568216753956990606919997555610550784473688450982842428232450849140391487406364372503668980923187142625604214008546441044149122202571933231374689309640261775630422415818072515455928980360643303349594325610780845309557806480479952845404930755845692972552316567725503889858784756151126540003623074307484989704283874864087028255037496821784341295831608165781375734872292752041352317261387252703068379651770614762068346583269778216793421409866294496538746022815546358057921976575819294444934009138840701661244323011857696831986851950967824492519736997497714899901044177159294595256277950645865902596861414704966621614391429678980012692369713852388868808819289073169022481848157795392843365436860936525218770017678157580224613235618597163370491290239936593769900467940397828692102199664857476742765638725842114966507118554634051220373840825980900882677529651340511721556808950124932794487463329522766982948386751235061492305925894200849736418548719770391462003209465427584514724809048485553495557737316173369739978155125817319668175605993333705209774486306678609658011544124963345227004183876013356373773585793879271641104522265801871855514447507482769401333910528217543168315358731436395786826745500631957325573898310021021759402919482916252801992039948392260040352442788224987567222419298487999160958816798602643525365776016090914299308537727316844771545146114275685797725468542089622400956058476091567346288006556055029644159971713187562614163302110379819340782651646940964661519570292654226218747970690005832746377952476854604571013516241248479676095545212430900391443386762809357554649298809670339603354019850957594473127181913168254299318136132820707384179310241593786759686938814484325154436220194117700544967989315725181982070076316814039673695605196452416385459488515461139980171370272422424284170917821727044683398927131176909504089466337524127789643255155154929572451089530694110769048715461062899876095932650597135169845806612966230696065466941715326693985800223687536431282157006308269023551046343325551840058826677982947494548836334886618902386409870862696876205225547586096430105336382341230793374131785223067176902231598446057327420999154364684610673022014031506993790216275713013033742327119880060760736872845885664876275232063979107183620783498156486781931429987784123569561761020777286110669628525877863403142383219876678623454068483050606429715512700321915934599496865065940553856025987455786860567443501140739903962593246155293629925648450182498023827208197023731713353075897260964558969933958038718029731457447523943036271992934371811287308411514456321914800072074154869931259617386349792898479163344879650709704873644564250889438224132943979899559510734983097761447543957972367279836441140274831614020076150791531695771362285655825782909827993268026933670480435819500775742633074763614001252336627658548449348458681065817792684990392453835872159172960621586253587637623239078204320576095969741813693764522362134120957233551885276705642688093456670661853613976120382471507644805939007925252909719793006184807480598918218422682551717348652329397876211575937068798361331772986345447520472536486665496260953705492644185575185205486775383709216706355796748310045709604892038358189618574999056405107029341880416524138793918549277737313118335838397496457525991429876844326291728457688736016894106460060451475253395021897377149352022706485659011970745425701179705065096119138128136170795508926788373242116120632897860085873305368792724155965281164147674254462374228571586769599504624382977058038239998255279656009694088475057027668754593711620268076206919027709821388789688929180068178983304057058358836432157833270114241380424938748508837089628334562025448898762959276718645054269112244950218291166277485292130871355325609813790831516815973157669439724632803584815612040082122827273374904231254862622891244788050351336236223930464644364848800166711339341695877254148652760511659093153325042465050845418696472326285101521260258731149715783477472532870119359890005266705000385906543411922669264897189933006906505271392237360238418721183310418587826102784673405870947520360502103344686882520410540777272114204036210234862567627082661690284195062236217461575297696451506994620579488698277262665135118407581061317034057497118022418918440455604471676605284146318986800908226013797964783084089340666892006153383855487943978932913018526967228588050955377649699361456502425600429140378940728334786755780027835353738600757011528441879172989203621254266437729032384788747676183451522046359820281827124393756997693290456656510856445954006840007778933271567070153904996747345205513571959213834524859656448485256779320849506786416137978724042991177718746612430963404075574202955928695692243119978370557511705057351682388422922134151475862332296066906257331296690590643729289255709314839587876347013410961103547505653136133124641941293715779266784764702300091297626557841040404775174672728149426840623910981088291249777147179204990843901520602460244012990716048093802187706974780874536748364353521771270277786555505405965721624757495818237758860962724184217238837494149912667393397414481126114468625442748089162603413193584536702846767774522136913956386262711156089980609299140116664403983736141526497333611304724994225863059944526973304111855049925186985267871891324803105393955863256997997263187726172866802727875633868966306941476345116047308465760805691003914277311581346671942420666045902777114461879901774928372635725477284067304502477005002574821078481329994380981313937836596288084173848910788363591129915342747749454613769596727317158151882685916554060242794843996982685846009475443736365322970173598820942090970448293791622469860564952374953852159263614768731475957548018071554373049806982658718429227828405172530391728904463988685083581905779958830508845283445359133614377474655007149908458133302328556155550626102668466096824741056646021480609783361401024943596728508214694141599082620796918417599785391060294007567655131024780369554170004128573866933521501187440346479405003212570206757859060306965707035119538383349185409156184534938310549817949082384045879176947352497722012193542000881081835481236804663945699077493217381129395088333153505247823819162680424938545983320264500267406366969957687871486899379341825674983863352365409158219416650007622671680126822134649243622483270421784844550401189600595947072217144761284089546365230404679363644896608960180791144760462087041620784014961736555077509653844477480789536275511111991736344938491822799437960242689097306126508503955404004274220360339092585558073654191731020435124398840626492916645674279705166059207565649095597822614515555847150349839415153196692237921505509712144532220577180784916993939144454493678854915887543931691128939254760772087971537598349818102780956487569870643404239011287421758609240150025289929585789979370231296060185651738329073292124648670443379874421636032296953372187884332353791284112498316034348243417966086222583946756384129527534802892865792028660549276395160120756889614830239625124623315571179935232263101082825258694914292962688576106186565030183572329731748047501009551453698532557678068627208378816216571025044619052155111787314577205496609038467203011141484441775700359464407287194561212037554807624261671341056138278126450633134578558948831165045260733936896177870380354911904817154095914132307782922424108847473476829413263859160782634217579578707320545003374019972988817481951330857168573536047507443233814004706505221858751959552072609631203637517750196773215275172469180473745215729837817275865651003291885654488101404952068455755799102748954306963797682443969273933784249301361697032330500447407989843125935695849115446376517264776522154363454882258229776821497148847895268966120723461605916737700002614907437575034396058384709196000062793122359590545916624030522071654605134369787928862037727827294847928233891287429015912333231913629136544052680006026241234484757572917494809405998061879679014541059571203031759922402552008928664358234246093692892209951921299140199829333751805794564527613692884133392193774945771289372908667250087414184589954541698339893144329903042085343480329052974257468081942823810470695785309024694581783994978902758248995105180406954552054191966553380097990678842870044951532137921996471358463866881080708498710561843637662961947365747855850916691369906128329070151731786619710798032175959465235144114559188947835567786955044630412263894001281007171216809171912882758122780447632507254780479354275287139662285258152250719431594078870371137522466869966787817139405739377590103950022807805758830449319066446593082320501398182457395856283878268000116957195740988711190153254391525963653377641588776331231409678602016481969701687991052149876363880679041593041967800732987780549577918572181724740541931113671699827979369231830061803899885435170728696127021892876825682738259817080625878690337673863530868718813364612058056285428593958020819006009053099958241614689862151742984906682610815270663965331512977054837031374346916464755817098105268672471532034978181584510209227684923587134439560900980536739100014763851780607628930116491669109102421308145034473560318894569046824479432490776146507054616031384087274100850670994557392521589960445726638760989430234279039987543819122292963746474944600860148822175802271676445900482786925818416944252716401650919568485651643133872934771955383072724759574464383983509686988428385607604720496167484251334584759476645084393686886157544122539710817193944243156650961397149905814043775489160872526521838449703247225332152753902984710119222388059909328579601854393435327876842445542257988632303730037672398089657832835133926732185093092625647511631863991381146741229181570505444440286938167100809966766508093208519841655753356366467495972908882088259452862810855718478250235975343599779569045716786243938562176126462966538028779800319646464313593637673822719843385512446557239868433024040355846467313063178359814966889460111594614005719054492533487358753014634317954675559490012594177984801310497856297974524612927817286949140907892551292051542383815112997928191169555778200588352584187449384796073727909298098313199824069449313838247489528041745121906979461091032492409372196758611724943798194620527245448160846448553468132410166554774862568619331797866059584808240742374567768910194503677095896051246772812713916895528637120139004834432059450739923917132942212207124696956047236149763588800085163482383553012282186616398176839537840549671798642787300195268094457777495638651920487231858155291265572731936238703690643516573281648768683590649828483661990637212528124697690585024181155697622356187119575856465335412578131049843631190819385782200653098574975004385604808252660380660545930427509193844744318235429223880025044991459405209048285542650992636053523415573054515425428480060511116828483807372379739401409403930552153475679247623081772571942741070377121440214365337969095565550096732849819712889117539531078403899857167088597744390363913609664429963608202960099256467747047188380067505790693348626119352610954809993369734072315007829957672195396660458886896833415787588264476569295486210924383400170509335169359473112340173291712078746646249300819502398146947892893667337597027120884286581046446000912624265831593162932678738565770898704028821499321373386530112944397896267572769893743257883291302382157834842220686302145390933324735399770606440333872794914002053937331578433829039892679237669344775494496290175820914481499666353037133605620090772221625864597805441759318444890971123550992957276514411660491236019491012200986616231680108715963729253498791233473322650131575076113877733195340586508074151003164359628609585029357731615622338323681526001204404914820766321837234516872121249320348119926241433383935786281167358888979027310663102616369793707092181252063855227823944412829043185529129079067939078650233901935334556685533399630514789785444773014335249284681864342385480076193507304637574924713773725130449415378792297829100650861367427046676869215032810056449120706960682983936026913328051051868048379116948449247475696284826193267910823420447179383479914108702004688932561726713322493898951452582866118857819855742345313515637015416669769049241458855995708480150512973374858850506017821629142399704017147747839162847805433557109174316750736267374551604119029235951622198350468023586236980274792524074484254397773494909692791611337656477397333485552387450950237148199622984161371946735733771238940315570819928786070844385090138706880719694267054284232918251927076608993486726928547552847047306249848319471089772313462182568463703005275921964725927992299467276663744557450518192880880072974394270965983786562887208705950729971984259229829265552905125308166867426050843953874492865320416903880679483245395192029120706307681455464627565282919327406974490793585896595710046811339090407239810981530769861520051202804150956411489309719942616923377114664289353170967904308356604927597200428722083831962693620750769203471177262762785556640477386692410447368552493495774683216452718153245325883748559112153952967143512418095715079853443346252259391944034685724498690228093378702294972534333277193177811607376206952930554325782539883439585458809148143871356912321776998224841103504278461452230218560535825618301693100116666733264749591213090537547588961888948423009624160626247480491711187681139385881100186761328936534906211687613225027032774308255535942010327483997494182211180033054703267963500847978971637782133713439820415312958699837252718459229567571467619011462270591501083630383427135810927643757225768531180124041890420233206027212804784529824182323274753748883416953756704452508789013405565748418414760639838431020916883276262348182365668646933840222052237414531309323812016774191551906352454294175758000503247693203540736272834619457648690348943276794629530745372533803337859243856201982185435551753221423402264509718597204766185276658306708518266529909390220077526222016252432818754856602577253244961502018278160745191934113932557454889400995963682502326162625839580167810109663267222822935022959627710104592769018192817783141178964179368939538099604688954100091641634872255896977182989097445545377991390129162494566268777308167721924214574191519736959829805733936166239137187909429507104498620640511565108241853662612475460652159537928873778696323801026293602428367382615396854515124121195654548728828945959559989372591970362680108744443187992595106953304554220779343441047670808327473022933675805651236418257577447509674254866361062606980676207939919559171178542187560357781786128208725199262033377208167486410653250159157476905387489931302360342965734031048807399582997815860678959068812215002785117233518285817226543340763687479165649273119840498148881851052945660189519708500200921814462792538246818025527930466215929284581982754357554591470493801427536972198963020692603876187882831858973491193335234812359103525858475528182129189746706715469497767570091725638279758059780172092083937325263803924269968613912160187099321656703344920480767440477847211569538536621338350737115523374443724570032985055321747387673126138206505800308106435675984860982552990261507294504515726646617212890358836880025192665148258837015330944223344085168353244983787279435625128051041729105023820211185426533249116245691236910948112644351240894997447427586994169251770018163752010716397394784433079690174076622689437208576934277478673034825224830225015294539397113341258862690297281167677145076698105793962029213828547494361621510264750765743176220143606749940762640229006846480739430920344452642059011553778531426474936593987824516056703856764496107496376904666718852007288820175700151513360163281930973360434779486295782413694089508697955276186450061935015127841765952472532245871909956429133999747197921117396767797699726285177582048798614005725228232256923140050415639505747814841388905881251990064941765535079866844020578615853937708292531460498752460136876921826101107009603329837337450645915007454101464880179558288910006221000303054756569648937282370525347631822303067737280023491110168280619155150486563528471139841116282962724940686679623159475294302686565308203451908399106197921000655912092498542803250099850843875930609369653889589314469212312443966001395664701830089425589456295862524840046685840736743981930581082392432073786956167150419375625629930655604731775341887998913224128399331378953556065635123023820048627088244682325987489129426904781914597593501460046635340531508363457092676608815801032667473789160698945323933730741636033699506588136306144063600928606624394304331319695445020403570002824010043553170403030596050245558055737381530211204125989240442543531672640373005255439818348362058185234101308236875166057712482962088844134150090097012201394561557803634540569809159528820031000019602970849360771261490744456175900237071256086829666120809841224432870582398695318175477434447937988377813897931041352652842275510668204701098998251267003355693433331424437036024297736572815709256038149619836492417081300767650331670944588404378110948869811400718380304935392192513520349648796610909107409459954827219026952259880576099082419873377043416710788177345268054998337284869219066180628207063657282017479191197783230270620740271225013912970453169226182002415967875691421531121489585481481828327262161321815269247064946477996848261875553085154597652585463784217350153784770209890488418906137684930777428297537249391663095563256045017725782842074093366121225168545638273422323527214703189994489980400489075956508289259617359876410896995676940428941998225900300918601247668991808454345750356266270892302913082423279903055285349626882016242397992479429171961234260386868093101958459301406093262821125461059696966175606228490049946987491438994598972891199334147259600790679571334267828680373820834481555688735209572697290207218417720370493684930170892104702290569807903096940892838007561151748468310933822927867751215587547468348769195742087501106541104352499525737848677198402596415424806488847177617461114992429177194606828823434642376870044670686128258381436185808697883229391028252998665208439821603907588109707249499375774881525240500233004687223258423466114702395991792959342322725152480537984047886770073615243922489037422697690165331883571446386416054275387496331143024168685486688682111580508768477595998411469807834837727572562641032584342690680368130003321054713514121284288754901594339926992088802170669725175485937115383833059088700313852375563216405104860797479836729251852104100416943184272640134225379425338966551689017656553999496111891605039866374111599435763136702721387596985606465550713228072333236865673077157166690169299370342423657906001743079231030331172301542202875071899881064612171435752259050418977027362106133422327146232844837906860151266747823119846179695476756057944101029109254607821777746334990968465773065207922681722802698038017289463356664477565504602647871245125343881775464566342480242326032108456771988329717805860970992136127826972016166266822770752612958923443481241335203684320805020755384962828470199473553771175157724797320904850770349346587524446947604791411182098466266048140723458569351842636927109788168672559189760301636626506889015969087540005528808376498744191607951071493226894329337369814047819031481899096099361097507788249548339811438047162355373818675237160304074313605054443472732299202504552481124897404771933819475312041699450374239629667892215277484034194964049511587975848420925389537316358189550204848594072786627135165770705686767039670217302586742795422167314102672856036030470844015431260356259459801266208387661641830850545021483219942631473269490010488945772981624158959392583741247424045984081896469038713186579448529595729011439862246143453021777243410549950650269050424866968565513009937592403483482122174604025442952047576607007940232911760583611225713336716271256510093849587448529892090212227938338753837394584624521362272112905562030635782960425403564045107420872462820235486891742766622192921790655181313942003138638940678245764266348336153853833553168701156747392396303051805326849902943742730302675312968090708126978486542090794536509272910564056151792351033699025863244110412416997628944383619937604404788705291286074791223962594705813013049550941654895323804457651946734332989951799988582472851418098013861648356309583936219703040495426521612890526091035611391477394643076463378240864117817678735739933416987081293390796371831691764374239395881597493515147068850515605572615551177035646702124871148962196206397323909915028048270273472504810310511642016921874895220040475002745093681895381351441351135824714271389576328264545239732289746792916177189975422017056156386145073747837095100955296634395004027775619509586045024585189671910258195307227183508469784531025479501109953150688793616672126580749811974208054632405885092532394869962976098769365142463724717189909212081778764115354970064531359052911667784797377662991976961300380819197993152015665994044124202641702014467802291560347272552944467960515708575987461260197483328256582163754325219724196541627003628331507081280967798207618374149766781206044377530366361046981932388019534955450545153141292936119675584018363642711739692781554322676635931375207343000626950331697802069718654532523340102424600713011573705386701001682421637476935226250773936223464755866815246386318306739475296920011889175069540177270551599021295496240470861914174431251205652998563583720092092173271571406963870238461958253731938133555171267358286500906623059462907719471910228762297108839787903935315406719949930911017312566892508846001395234219440862356663094634757508520522638626332884701757336960092034949036003181686066653002297983948260222585171577528793520974942069100166077668938867684136703556225817171434895961475120793701962679484593458651524810994908694495036675578872562202785067274269087850978098883603029560189455692450517370076363244516054233586704687700561413480569673291822458685817476633783966417605192362404367612999810451867763464266976106822224601853219535932444544063678793793873549724302023822036022462915523477079847890872930978054892295800610477246278424249780111407511450627023688196203989765766477709562397963561415530861332036129961470085040706205776049258030831982010128564693831467958192008367940816616179742934480430181369308333628745136419990591637994961445925632138116426234855508065281581787046032089462371123810022163677967773948061770615966680203311405769645429942190546464112649565175908465003099456056936687443068298374188065531640642255655630575881869484957311049741361571114806157872401478942785393492645156730500598639521061841396222611950241119952422457734813451143539122921661378405818224266212384965966239340074958181722399930705480877056071499322365992904960300511222827213135319164138563717261473421191106841535441712260702789934198645024969143446491777750511864891678478296843502986270701793559280165897767707908584670545964045890236187704836059344871993283576730390067446653176903471115690139519164488348717502637548376295233169280799163887178898614075696437538489457501688503232739328190352457092357466471976234733027691211476697977074132557876050723622978967231964933172060639840500274653089493274007440812140002253812519396220996744610355245038744708968590687017075938648523977063817355042228815086578030422228757912753721455157821902037813069550457001907616848449764004941537597513568452221913778922160212241584717724604565917672984681922960117624063408947780627936917036226185976465671958151057293532105793489858993791978543711897190622572633545814438518053511391541715719248657968062180765255800255200448629881977672980209798623008077372278059051997228336075829511235016039323839838376988514581139468647042160556344306058114217589175502941567280952889536050593051974430172366223822970633223336538519743203829803340067445784445185416578872313918851367790071758265388575632954471072668597150537619686274122547488402192103848026964695467631587817267149816585919747113975337190672917427103140129870951373511862555176608180533950694726488325852403733144980566889436154569000773930168047237628009719640759915271379428661285861919312010246208175317648947285611603835069922497490168477635635503884985084199901412654995952942803807580055699994909115415875771734921722929824849701233087424820732469871128415611719043560888434083504909971490010880499919353072157178906602784077416295125894133661912918214212377224794422589191030137361637517535816234999675135333548944051731915382904222472304898434607300172094965906897081891225002434810474581100178961265234563123198484909664244660693903003773473069490353946387176002670225224921034252765788381201862767441592669539368513404083521391076291765233469620071347014793191258233918403949918596133530234588057154049397161415469871401493451311313919299340843057469643370465444246184991966770996825312644416960904971754726793538808638942834864250407652281134227234482452628676723579651919724611218717873204502517023801605831731259077504468736437810232851476188964668890163438046124550411207831297687616180132088903075866588966718679232320537751212777453859558280599530313413077607283487054508085800499994171074058384666240561331090310683261806625849323880075392666248876172416321483716114755995591489296827882931984111397842634207606184719817215639423479134554305599112073966087639896506572498088183713915723470932965470927496108210341703912967422100239997997670257298531245633416269117802463412430632456932031440006750752379025042776453751950791020070056456800171726362436707108305480103098823864376499350368857198425456334213447589910563807811688531499872533302075679760500787822124998957817838938545724334321354849170171826360701602019073338477687506204183478438322616602218386913573028253236041989768252691547261023633897152608774960418203323462079307969614932495804030956822296868209937985108417248441325566998900499257795397166603037115733387487197259858982295083714948216781870797895276168307682210352517208899668127939295335343999939103214605951204061289447853918942880613419866824629843194177053501947113030912911882445184511205967622680751135613878460183285658112123209678627899806093663657167073288495715791953515658096129269099706748485961742848742234764524697727685652624525946190101143952080294258509789025959724758661992234011400542741353065775838584696399611268893712264338251472162868985161976778633552750829582804032931565225125743575816461561846714773412782176311222823368248999877064270826171054456862389127434245250724217931165674230397379707089646367658269925786417961042985675957177047901503619390903455516771998145514730177972625702474287783902057027638344128536521771032198512839513157003943973248593058523078517190989946126316801956349027057007261414804272770649170250461233870124136087876816202429027481765916497798903198786812162100568684586200558090590250667878109679605138448954957926925445201016714416256286364894036695754767866764787157509130933025003850485826941068937497322969768168030877987001901534233651823361558733023754903219866248118577165328263829078284109047777874210965145100095513205379872368280391126677254492757918941024204369149685076981601595520619062552427975348558089595283415043026010188113391233802742983888358906222248906770761673589828819437480275476709254585173786698881357941724525935488555973291458008434970360013966482886747167812159389852496457872993787540012830619092642368399217633534157011320771413915701577834261040888594105979642947412701728096997304450476880823872431975017036234808008732879598651410909544027269451276924450658207613904331052934458060048684359714581171026242436031501866522241813997957453947537522856584148702503404529710030122137350423111687875355096942764156496035915891027011449406606467169760038230675286926218108370149164723513005511929593153577483211966309758505115162856022454342987395529512689907887349638260488581182333504739728999687998485181007362673378284670643764387520595476837707471294207511192856975432811108218003492967499715500085806251466241203972579216113912293917528005580456705292500759315720359942992819531901082269001664204736552397519309266847229195134779655855191604514563678456350921674780907004995889829576632522178991026843352598462879357101210794929575132671154004562061306014317133911925075138548620450658424400719915866367314773156020227815098528079056434624499248341878367427519757867515875766588076146253231156501285453627525919457938757684623645398576859831713392804011603987439575349497786603295995251797584562541460502671893790043576784505198134869687999340696464966902765392359635119412918026568330906087932811380046975728969568984507216018421676989138463495524312630550900023185291330627188930031161158025147248914348551187096340976703748991622351681857546278129628983499840243327405554154858736226613202790834331027029365290188754067789358723225341694010682612345119967420582935309461550441903663728907996164273961358109894079635820992107717102900537875606584263789472044883079576460561451965188888956679259701017199001135173532727028528161591901710700340174903159615059690266827195168222229436458958452891249345830914394223133741812730724649667155336321117493596031497086775045736820828615325894659392616453173907377183424184715147451132350461324507011931165736102523922054502193692695853373424833861263799041547812062148013021130672392276988779850950196785069349596554348789748272244247510342938974937672912289286242580134230859678360527396836315016538877840984076465834540586225252382253764808474275121940734695227799450058125864827603669500518215659208293970269987411790996372380171884111662302740177721889943933506465816705621520029204993591677659751363925744319179046531091969364172593330122354828924879475555309491180138441518338877674132344986077803274764056249356623972916499734791768070260515081422697835281795121323139668949196929775762689761921926771681093900404717250989651027040069497097313558384127432880681881444768563375377489998246977820978682210892155515077467512082267103575900653950234984945016112934875419571445818785126452708479099047722651251296532395583191925576824273445013104129944510588381233802967734349456231748255024386011975187309282810557829324474742668659662221831602833989510973281763836427084692775468915890749714720990000216852900340996907789850838212794821288283425788138461796426998265254137817341140127202765756368145669178687162955102035831211801057556224517996981053234368633740387468242794199233066012610147493235567512867169888047675734034524037926158975720653827664414024359144837596657005551494671100193983062805423766942618418278159031122490917843615461549891036484046957482205327925269275096318105814538390101353172121482679501396883685130013951224631024533037482681156659825118839987013464366988079162847425322842694708044137970597049527039098617693216183890009623936345033648072835812166073678339015360197053557246456429905880686433379668638733259446907315399438509584470020878218391763203321872327906126511800374204586238525578446620124867956804959607297039719313707898588324612830070205288552559478074642156458509560968798999383445829028634100265725194882514482674769034971958044251877878014717649291992970567054187655786616088027865078129460397103474316211944970082865608713869781295886234106076417556172887546198739241202777095490828226775571923329464263583113936461678862100053319006943921290825299945307890563777770595298692416867431270433974466961882846480497143305342294098821490375187543002338273962315805763173203667459012054673014890930808111430539531520721222491049338482045138499165365944897822577047368636745291625853438429133735197916495842420642681779253747006822985549349724137667900482371982398698881974736899247983001652154114256995400679207665583485407573438045278539341659101823307673985585995141011902005744166040892648924024885874423405223501531268953664529406614043237153887077620052991386276409270282170547923315957570941729251193805209028153883890415371990591109164731576680073552385724899843427950768126040889086426798405485768011861879305545531562220591107731355467847624721418256235341236651682155144853869880117874155910921759838111190572762838507250690860919410152421900431879198328591932801194553419408217781544537532049026710712520582988723201322355489933569977037208485743040597526181240887178083690162496466991360120585439053571853873184063621350712252621029102670510045520709079976191630373761109549871801538327369553936744900538338901721891437889140356843267056437803858552367886952469236622344929334996900137643950378005921339561714559950767373888665388508400228720643611682836938455306603207340349297231197706465052463989137842562925333215963889304181303293488195213239946797624566854362378093154285717061495616426450165185568281376885534628685409472044325123943740395064710584326902272113729515738673835575845440613407791000170140342297679488595447302746116622058784139784050116668957553191159731780580810259115080755375704057489043122483698696204064577599458140472839516873934409066138068445045366877756851872390013363594234546880823031593554132610087241211240218421064484278444141904364933610969046731682915259195407274249264162614964650520226884720200352247294416314343456637133718705651974904844312803249876723001473832536810532868572255105600690426808138373171063551771465560958904539374685231026865779487987703007260976252677767690658741362699630042668664470962338641812659851244535069837376478099352951415679369292356387608699359933497252148392171638248037123619524854750411657371925412273484211332486302542970066377480823257599418177289864990360570083974395098285245784584094965108076490382220865978004210645211763910540405691764899596918569342414921855742639307663798999197763510619651251763557559789405433247732021310410343490170635002539930658724896691266816136518274889241048971655725837109900733581640957605076952721437232736665068311515038021441841947359408765099646040473669157532422376089203713846341869882231036374553298511512052582961607201273003706385211581687427191057214857323884905265384589809417638070895749195558606622927102124948367163520183015553292471463234343426476698502425338700186967006104191616313040100428832865703474407307344359108619902508963266386228416778127011726434451294112341978727760833126886029176887696291367065750953210964925996340045466646395417572954758461375994541901193795467988433114762994039727397327277774694701452013435171183866323791900513992904331325878950121948952301769762551212677452776203079401532854757038319595551276637391728314547861876319032505864294122014512160034347874263610965089288170507901310652827199469162245785519956591064217330168206797900153807860174388463816247440307786036562247399648349738636522438607170860590473499485638686370160334700754011483873565491408029570351635659499428082409630929532814816149613375892179796684217792983931385734379369277095601231874872580382593389731864586140313327104284993317525640306869691012941012128916442427213739918268212708560378373378710996810409837739418284063976753969693530681883742259949098545283177106598668673835860438645423863174769503229872011780755858683649699486908014090675068919132060147246038356103392871486629177032481816236740483933829096438417453918532736583011666940327460299887063357272137552898793776533742475181757558599354853894379277745676280317315259741611848652190399463440654209202245703541251208971971690382436254724417304159825546673968714001790731652265127020762891142897159771216313856735578945700397569166142746992389826154134449311816149955942425194532374847852186310555572925458908270600498949503183393100983909466343282845410599344342952868360934628330797219941241365057730400935717022990862669472947957170727919196209856941078879738711653772242629300515931513046220545402660410477450597940691725744336230839083198448231020049870562284015366914799457620390682480869114079386355020984377324267546227396472320725133311370723413333215879438091446242920969805895826962036001230113749427045804154197110741406223053882550445477814895584291335734822941424755433537495084781652922947996465167782785246616247232365833659699279314449841116996395388713933171287176709534405899551082928574030853609844778665568560814223176357272744403430574579331310033175192739046777090212543518048520447162829552037376105135935137357673294552076489952030808543300943936658517431341541467826261422216727895079573851517322510615078917088185685326610779165774702137341517627308278419802306974175229914328787462715446777024459838670018453510571983478093142916204933048549726059963996170376103711995303509024062762875827035279055012411892689497410765384502462422272126808768936486645855671424695517946527139484045831020267206935860555607406943931250980102016906605462506025952158422153410255102904579430030660981409998877687002983332043606796201617366830107646045610359050257579207382613846039961813538472662729116010582117999530409797075296341999425893820677022549049831190756143264196142660394947730788477826527700311936946428789237480942485213729129053983468459093601112600601799816245929602895220148972011489632565580389042883777340551897294871458304551723615999001071586346633267007694978156200024192734476691726545355067246500666902958725449405657668582666860859531842255879050410825235363911529813815075701068938000510693310090094111666636731940835340214724593823617039986914268782993398606772293617677125858724301742980948234979470768470351379696967783762680704871275972629329668183535967735863213444016668829318576815156792287556981003879196530614826188140444813853579645338462945576323647897771729459873074206750914757858880852636988516415074181311279977001120114595296039251227265330943945979629280894569085868972323896459254227515099280892590604170042575214261693858787649539705653971137238176769877489425716758548076073701638162042054412399694969212238880740953675872938019534486177232372068594382631324258018596301236403041013918634344467322242914367862243228228562918264787000055855056728032221867080591065420253973460367489731372120146032582371614488583857419194671013550270612822814679563507511318695858020939630177678547732214197767903391274718314361103885792704879384255289497027081545661182103112164309283897214736975661208297660908102616406152297132855561082124010266575606507907764108626112900537614392975868614810926401276751998579748382592801438195603392121850543655353916530046404830221549617212093632001352923350466353738768277604823147327105731618588842608850464134545042966878333998275878432761151253808880652047368755409372273450251218640572071328027526955127556793351688242653063418895591562653119863694009436164370665318159899151697329635045475945546736806996738495639681030275677350425273929514064493585779264353033716681078761250804190703594641745830343955366098722580530659536984993151101643100299246211179886481301768530910829233671022697959990408625607021343058518812918432881946356160838790025570575431226218353786992335937757844832495514661300664475422835488809309747847000969015965204056116592601626837987085735087543000101954529115593026807196421105181037478496548120360813483160696393787229421233967669694253722991622553900138877405032860120500661038860092363434382835666878552701021487496922801502327413270251875966916370884048527071034528436507170826117903876033407650131440702439346265503829997085881941039002666029969837709730877139655260070407457810316668024263166103362250256475378501085728437425618053263399301914297764602736160817587321641847544665630063430425215311088826470779220175575213570415895283301680905458540553710150628742335655280525295167607653677374039960945479444744122283900093007780087362804125649521517621755328557825704550062499742474083593957985949242709637549962427267448034644745728134658306584746982619329376386932686079630406141334397824887534607873432702564357274791159859841303257392670394187349326685584464908240100351385139334019330042925640091612496857442715819285335868648352804529201495065090265910025659730203990894754274133681092372099664734143004839891227657716100795044287328340361094983394716150375213955028526797806448105110898533913786831735353303417060083957544107024264779343228437273078372708146309595857595940943337895484592654706659351085628546900518762155962568794543417911462727873218579869815188364989146005004867250169673058825491890586533674488123220564743476773680526725327322435891126492001132132986466647392462680934701445269991281101888325375818077457322816202040476232141277039977019301287544948496425080398408622667862183904951052452710194187969285746337182837988068627156860481678140630438504023005887852352420037984390101375203162538228106169328739189764535780947999529448962311643146562634548432779012946864586342239704152194303962990862587966294218898893984591785769178990029267497658105906502260210396259935857943404995660900731355575417183760046548169506915594436325210139012263894018297405825843994594200105340695363613675374893952879311776134316194004014717434379684902460212203164740741286972474396097109748879720817277491518863938999681024888931760696879945353242313144572786372815167016843082168145116713967592601524272499907232179115770066873134266383569461303404568219693801353887605530705419645221769889098101602332579904896247326543101000567249136231656518514137978984301329634357279890199470388840846644451272511991291802109330139663253008543506114450433577243016831567126741142506119452824359941283117782837884548809808315804708527055863786763655938030335632372311092489867269481483820657229289620895691944829745344969298092910131252192594679411182675896662710061936894962855603432433487430352363598015123525800134766939476196552871832703789255843020343426846943378672442196474594558890991901951730760008680737985583678682440983577103688769168255539445075297466659525895606259870139265881263523341807062161715212065071947513651800949292143454780277508886904655459193346445420130640377178600462679363318818208410160971415323619499186065628105787928765917400324114995105754449989294846186186327047939009798015745038965499236715532931113241580234413288683334509145502306163071011121079996144028800169622185642741004221905406922630712683940578244582705413850503335664432218354634475597840405497360331183958059128704658249639047862325823888749316248557770672589448809997879626335314460297920369748524959937530772862065726912756788542331543941916901003886140059843321547613654803822002257855711502988231530683922063226815582566394318645194046655745879557427528575989973900890341267704155454452829182999847558771313245322806523881565617555377000889171050786284910341886192130745733237533420711266085353274660591846614163156347235548984343000046785076626107864754149712668637685617846402613620896851788493796270847650957848873069362715813836736582942394245726019082300323770894725750607180959071002889305258185832189212529852641383408920058680547109641659513753677449279715246016579678263452190819625652754227488689782947958142634574034777118375456212523226337958166736845845909352463754455674604611955080229372643126457170605948188214468128564355124194921744237352304752833302769322038870119073772620717504956054730809987316529590522681558180161383570661110464533505394342296413827298565168371486705302201630004160092454552175994472576199755091754563795377533502214124101279276508878091853580747281478977374937474926272615029445698578191010058727558837033099063417776463567133821029784448678717158237662083391687024856887674398834200575146276183814133770598848747900515827531388049423445154056991453278224912267162611603088110195024502155148985437767228977509146972009453243570639932513584621728988266605871620442168248658121646068194485148818054973495623478561194963350755380839563730291417970938601553633410344819615287800241951658670647016168263194241527276379100712644057623235175039946292187983437763439475079077365258337942179509633307281091239733300638856627999852917133110432712751913528302209680173013752072359508329961350639089703046569827225764003130551374934802212391229720925996491824422842148851078813754828598495612357617203604041801054472452827725172248853136679446564667667205216125653470831932872939874559498037580501380929365767877899770374279132258643118594706897804682381287550101810777539773245821318732291878542995232910373795689031049639252646775443221507878872857056284210635332657231686744550617539975034833171093135042293299104300063944569152287759942884234890721677128452458142033842689504667202356330116187658725331259467334530701001776088369821611267194137986576685285445974396495681852966204323859117023943582862113463542426676869697354640142045363131365560005084366924285548116206791778323798469850190601682864468038371941263942694361728615245400368412647155169265912186135918386186772188927119663978075136295112668391227739327277907312993471692750751813318620622739419120170774499351328297871650287297985383386663387244924201905274929772993992840428199979536513849668826217824106261080640573188757829205717136471933184891569599524444054372102320956440801170108113866576924049776315638602197242955393964682321629428611036180939521997458430058499797573036638699100608010328113203914177458802293676518523811182447667769123052635275165252114930472901517757319746214101463874445033993974692785571845925812288599253894707276165480971254081479306071759660495785999648028899953033102868636005109151464245229197313505055638359185034211102490293897831692607041485088243359011816475296101047868482213975521997300720153535812051054553378717062081768173472375897344244244973157315824758942030893126791255670970456307369027692964714706190856285168744094066768331037018147975519138301937384120857923267072178190970055367369435034199722737974714965542461100249336835789801232647848834470112028837337881789154800988073100664225943909240463659387085728853037121459327673853416953097324669455228506120321010092101561708270399699430824994553293138270480871534918629771513282236723562221469681028198275739573840424810599144769008901670832371244460127386005668662248214689328885962456508736516060723708768724732720567544962058630734943409234770850243907020886334362378675809281246903154337321219031414487336800235891420369025610645151400276773295245798264729259884450809710702925352584104435388073012661373645767153883045124337478163611415314306990921848570821621278022907460892141566709508045301331069213032331425704623131647269825870328192394084131945130408948296297487002378022913605239598064332615284093830683372870418337594189248942307284503818923459521835226128223144836128936607054746608914762573003925203500175974727554572827926811892565354029781662293634823447046795504869478029830045213076308025569757885353969947974167819626062627765318712670382827225469567387287689069826633453305868414864743890895418062367767095185360547952180740334182834459753667470105683452194943991057496387330112275565925085438496926383307520266957744142352520692929634000979056363876753292276909460041643872234397176544871447726506216395701672364188661818721530871232667805276599349928490126715722996565341600259783768830222467976087271632942483264229944227356733105654179294743684256980663940430278110087022029753509954381870151417132556050950473254917671266969578221513187208510857682833727374653359934631944917263402302546193866864659745556845485632086417857319428003285303586971328879881629977950308635709066994579488189999950106895653800110864509240504868495526525163380594970575996317931683866202234940698110095643893386642996578071227990614850170115259746905389433782758962226181655414303380876287441474942395817411270996182367975286726269271763120627030864249630357072431923289192772115064792497347335837704656213030075507806590650826166642061575636793574757484080960723909786956336806630512985317452611354989843554065252240381565075844364157813869489392930909653602829787339968472783252482700896954793351886016370372510617986826160476707086952929270271295654178021813612891336516440473799962212515273018078049391974916811534501454883580918280669861823103042554141055042043523628670310143353278975085904003964165865139340155696611760174923519992915228693743235263094886210469115349329895246901312455913003881075278051335211264967357389309855928577129832451113014256392320593489649164527325550125448697536290547011004005765993049760253544580028989333464668560167908339832242577565750009850324200570328728925673591588942634974156185070586713274793605018388275383505832465736491747297312031431890154814822502949255824128031964967722986552201744634841813038253471231143785068101160386398317714323330015754387616743744848294096662164228388103497770156090759297126662158975705696883077644010916697942066485561417936492251685414242641904397936230248632494454468694045050882242999147468855974416616760677215660101892761385515759328061976599548741579626137353860520129231306428228773958692018993690512199187046419250851883225573989186506765220837421429033121739029568235291246868008351475069806172813100402083826000247020671179660023037420243418020282339158050870755026891504764579420379424579764509088424707162339784629239922095647717757580205964254998094097545647801265339663857980001130154849090550704415656590508081792844452016027335350042636802141211132882890367476012126727531673091834971588866748974306252187298856878369907754342779275062593097360174261304660902657054175175293596621118257423080621055505801741710792499049478156920401730962322893516322216007756110239952577304655927701294462267820636511933646870079332009482536569381910931148238036170814495210297312579500528444497837015027187650519617225546327717715960381576117023432768839019495106905666633991095759042654491917573150062036445877274929805057953058870875959644352384538788166803322192170638115083752607949220603226087767565968496614381897166172637093795199098674059187156218630986052386957414005791120911011034393859616491464139347409253447952035858004483085639457278694832631674245139700075899120375138241053679998733505993818315348722909940831829638319689327545027288189803615692863672777061314870109547068362195257970078830554239859382346231633659729604910475095812919599612146218373944169278470001743841851766908278682214439429442036955595168216431786548223547127240932475281754870201529327873527028929345782648386751038723592485913565717712791485416440116076569350753801280744088306974320406390192093633433152657438449346682954627226909996357927975815552018850000538858463244783650173880701010319600019839922321275667112970826799671929175585400242486048612919275082458992158370288538478904086302871412784550424150177687531557324281521232304378521897870353842163101094615076888905784315703062263010977717969820650892363103674545130056006184491900837447111497755200149381242390412952916653897731166488719525538503549175484112250972096098560422985705484669421585924253199362943406545879566841188906728985896677459317966083802846113598739447613225448811722642948705429955503911144252197293328742314834904088950521890193372543240265175018288032147249242171914743852031048548313645691852832770426762788178326436795693813339966982234801335198705959745707709233398054696656812146491710204694492051641693322790875475974122429654992915983490680431087533629644099393266336100433902417586521405555348152735616888916433334948554646913391062523198926874449871284780442898312636585927695212178485704551264819698749408208627896025718050167232133857891045508805790459975602920009616945517965632091906611033615065991424803499253877720013865730106192388723989509613296959596339945328362476324422053285772747632153125579343919036491438937993395065246134990634380556969508519782969431002818113017802055621413040716735867405261719596910845683377248714950065967596773514122342043704836578180575914255425915937392272749532578527796435068212233476664059947345088543412044141840446508875474829809083911665903425497232072608605359508930319445556382930536001824198840594198640435843156565133324130286878667411089235408664099125379223923827639819114864750065992683043389421013641315165314590974070659190722825767591352573193746586828860835378119687810743013891747941663483251973415044829777372210682127399483200405839541773198739521139041175148781457574657783394398454420889611799799596494708567371638529237678056963873274514085747227046073552077138065427528120673229930749656474518965838557497341922946226820978974777109467181815741109664851003828296830369634776488265563299467666939211685957987434242340535409996911650943809328844200150447681284704678089911812226420288704437224678736151654836195779403281072197710698209020588896967261196773198014863210565277766831538373926359386880551484904381794557042651034144929834469363343495244454074549949472539969069339432179732286231461580365274089624736113025400600273466221836329575858760605289636386932127989858170352215315969385618347582528613628687135056589202424583516579964041363193132670419221179032018874203735951922917552207686030683356511071116770796022842208972619722903870841669690750444732247652105558505876593669575838583350373481319826707367137936847439216729372850500613317102666726901652689312812979835076809583966399684360078361219496817555106106567794192827519586751116078736737514193082929714431254865476159098395639479587410616576050777569500423651284627326134157604550957922696237986320483050702182960673549929595461474351863338722003168767320786519214300122011309630481936009581637762480047338398446470360071569923488412664905543336012895567062280381132378960291036971443150165006112447601459342209502044983196825573222045979363387340309546450030681585866125500524888685365123719397721019698681423609263950564152643209470815715584544996858455732701662677210680194428282326982285832230549618097321721094187087139635297513675188781492934727012895045572843539089207124452404779759249849427098779985879344822112056595618381156155215630709389473842446072306352093102298615842953928361715301924858108427294432039757739878789211553577315087295807159827227699319196479278209404075023820672834257138896210935467963335303746987591280860286627100989504803455594333504117548884500950909656221908536559111373276105872946170059375118932711277422481457453661247943358879044452915342622257466511833701171646959269604690070487280150252137506244093969326821000171890504092404922105314736265617348783875568013449035559270486148433061573097034782975671598299185000763567883928983478483193281401903688230350279059359667530701983964521523211817892816629677274905930532862152838896529069396644453772650651838226879951157858156172912251040876377203558023639312140352223465268604835054296346190509146638470463168935678958308827261646759093461088943852580523142471923803770119100545338846391028470582616576575446593532863268042881747797660672217310312410949281934886517076475038639805754472572799189875553608970033939870026496444419307453249044973785529921612920827439709643572682961019515112518835589837564533470062573594816692988458956017544798857331384273964366113172366484291101167622011484357593203546815906113843851303756176008461292937770307971689431923310645205326202500035636895147712156673332268731764074275825993926727089951978187772264381203560721779892249805607345151152430776348602325818889623189599253971552968857074375255324911223843794948392888540280228029174888891226334583551691269371029436900499358635486584440416001475645068201428832292406914514482673083424945918528030410389268523486764705878281560874801845932748084561032170675613733565494034913935451868149345432270868312841456038968748161574019864753389957850343652606958264605878762996708321372076978717776578905016158208110549385000444025619535104984033945478872672415003342205980579707820331106240007154766725875667126629899448197969826606110865087340465996515264485881859311492908576858584197564715748928142960894997345758900628975443551682352754071838066530478993005986394451152107908482295622086077996198360341019299872210904076650625350609316257728102444274819396159451326107032144253930650861779901153722774556275397260715849439899470623930781189241597023123323774850096446308677906801694199001162997269350012608840408395004731235293175479772646057748015737621505070978212911993239105684559256991803556345643094132913818074936169261965764142380991199356555000434413887559127272453553916065289860416393630593756701594560388803475850436947609694457462096797870800030342818406396264677380368935306124276865290848026248466077897375953145877164153620836374112151583387747997128735670700615252262053212072968396714395843050016152532383503756833072472370873691163328055094964510786852882836015170215258665315524636803872915412789859073632296200067965648787806564442178245636233536854011932176105544751350866200384489391435416698137397569467435671641588097806818665895119706321803166319278196418611362364516736551198623211383645289251705957626698879866627717502103912714427369892392152733895883340910224322444743460740943896689755307723521281490756161785667551637704783156821777577054120175858152664572325314952900582257021190255480479227337674422554732195963714152955000349537485812892081300484271177435138960173554112634119606158649450076099077891559782993422335479108948992144029660700474798642554320746788225212087718756870532508068415120388821605837024671654117674447897275518553207199504810985796837168576667971292731165814093012388489920194418407292209480657648897173912928127869737660679738273658073237782163096364096941503794531180403508218394129693238311619543922072886953619959577515517560961292245499554446036011580271786175916012886488392269717548929686814359426874398758794508901185411219568783367366404718462045331201427111293411596322278560281041039233631729001510552061758639658406866483911396744520869595561122790992815118597340401266209101750564644973849406953288021370169259834877887482169169268700362719451517175576837407155126086355420967116734851598712075354483027817146786079799666155418639188922314114074316467277726146743685336630827290300284501670850306073806563339211738951880146025783669282790411746978321706697936630583365743349419885820897789831705131740846752344475637931236315772056656571498179556824058266183502234172955698913784592574122209109719055143972057172801257423497579018608080624819447819825581000478812656573314416386139653655209084630363311287781272718908135340230729237761836673642724737624633565603669242350120999321863565333462811414990602099759619172837448230716616179734678840209948629209987600360919563302152722650786772255657568924871690858288402427105281559849143894818529980951471994182085809771452055767991305612182934045609962977985416847924431457079729307885852842585497158904942612887074022970342261478104910411504215285066087008621621406474962724523532792657933909697804905840449793029803365583540973200965098697397669681473870854798704974863584390347139553499161007014748443990293011772555978411532618107544223320445320722094664168536073830208766441542771050092338809808769055710216240138283737305136068551404705544842029110592041680278748569362364148153662760342266502426146905724906775412713934643028480056702184590899074297264061396853176451453736006074371988920787209394685988220952939069480724123866537776849698658817837568659748780404555600747916157088312687859524121861781438630901092479204791529662786228873351154443365645878180239608816498758721461620367525751971069623072414133913048821995602026276920106845005804121719626647710563494396700679985584502931054536856536880251197047185381045667511696262228483666675165297256502869123933182452940231653746079211521389837118211851092283817881816674965485014397828469202087127395911503103881760002672948383615260364111556070581207886976055055156196993990146026503232938917089614544143286035538694819902934413018185034738125308940950582553372699679317670826445298003761797924380226878107766971190727872821506441940472670606964594025991971683592247201986613880949366091395797236747345548847507901887741578797257999757879592310999503234790591623290411497067609600741756506680048616585926872296334564152772602286973908534513054102700082709181436963864960380415656120890303025196575933766787864088584024085815050683616280430208008836305435026986087484443470497989034041531903556103691142203588977787692784225262933970593406609956786879190651891504491172521787964417409854755130405792565636529201556951486221673115892989249150170267275983006757548120208641537688883067694731651714771486935060466412483582109150742315605961637961288829295866626939707208689541370658143210496180873116151706776891944011237819249515555946886401637311304218874793231289644789450140765441591280452055035014774283667740969814711586630815511034743381352424333441576358300453112487856267862123326353487817387882787092588194765461328154465312187697609174185947432673314329621983159395410895132689155979496384000161189830988852789818533024885421910421280728121774325496196879596258767194433866851841590950707349978510676022977115499465608485591742356645980544335519111052218038830815408635304823888678869051651935880605062264152274619050137816199454215707476835404197525324489424564159459383243288633157324278731759265688705901990765279532139845521382794751630730246410436384235465210455485227705482767122398267935111484838332061047086455969772332872802282298701065185701928997079446303614942362180964396628375914700131258859822469349901992018730037401418596011312866257824118954406244357688102001761284211172016936257376399087610989245012908266767069412786805036107937760402762127204025153768278507385165392604395898494223518258023098561314849923592020639771523474860662075413958511812958995522933737233208720725078059721613818523186406340514880630418470696877331333288516489081342619059176406734411302899216950000859266999454388144909417943457762763194901533461963088568238955405037554588492212379561477718254055893005462901519429776689805745324432963513344509043606376738316933789052771486951356643208635643754135748849298534942649466457740920427724392000810113708130677443141232482020728651379708854052223152766425963428470386752159824761242699199282489131457501682663060035923220041824449331432092375040342751911945012351398752997458785705430647082304769114361339762754371747844524251845193640120450919602178566701274823918556606399004838501788918997086197454211144652643797174067912983072639457540695499029275245786684828717598078431037938197713708958941351365756588562854264363727644338877353430212864947793899377231709735263446189256075971195854527843821150618696224607383590118983147493939512531491288207475293305959853332187465719618727191866529358290052601476917842271643754760798045642887228405414823710120458530368639808787336078837653901353060094557825806782871457250594457259742014817289455277635683844655876075453214502975303595848621921809203510060693890826996109699811146767579477329674622738146647550789222462724063533238796020255241045328124162044255636113856137293708322202781056123843865990215024663243417177992430594487824467799279784132584076783764884862993983144785981113270610568022444762778857023280372044279952092902132573756270356019249781861870760674915815731082115167149388119865930210337640128375895424179898034884695082512414944731345848149313621566473626185416264191029694716607465543486918174606821783158489680659126631125888957792824074827150188412768575281670800698128628624744271085359734161035059217972896721196040221281918033862996458355112393494038832183638799852724847530787893664465562003518001049880891555332232284173603280960686605880768859084766869278907231799116484332738199361871452501608296718072266879503982683780736374149640230247085523756791102548678543126486524661103512158913334839037792883467100800125728845297925502700747297420024167450753855159945015658354061026581088333707825989043717992591277330225870609898386206287699321488892769535829259593187088441959422487785301976370265989054696256003560239459047723474929552058612080916662990301167065747804505175269642020344231831947539930469603629598175903748497998328585773782571480250746950834698265585031464026603511847903045852143365470315158549571347887194191261110286621734489637711418300444464266843522227230980890683136522045309603330465362800280154563057575430108447943287903769928958584146554196030165106360312513696725106255501237051390980535717918849488151986644349955741480318409436691852733317659642937812136216138558440316501603791450851345988685443028755389742136936500369533725395131166921266785903519437635856929710826189521560686502135892263717698426711594720470469834311406849955701925403460576098863119213211679766248827102242720496394425805318022896984128162258440775269789956446936737169110422528599394109038660299134537991109954404423745726837002180452770025178096224257758730924540427126876973354681560011983005598168855387678498491774931922213715390015839628604594165411804061061315189267436898230730312898677770781818863809543914262515404011128788345268800285148813745048613339893565587294825412052703969564764421431216945992866500761370197573457889044874367996415304638915506989898662468171420702247183366207896252313458561025888528436482524360640790766387715092447989068061328259335860135950690218874296893892925647322570729229756120336271926509138070623513953670205662972686641943995468378731639912916851155262881218443913939271199915942390969942056861676594544583585116323884650318132873640456892596435269323895241414599576855009358737954111174884337910282200983204193847318125647894515148072045987281518709214369570893888640394449983757728354719998838716399625397292215101402772198814845289217643251624746851783142352786576666628829373344087863187413932074977781595497911909588550388169029456280363818088845745550529073168308432820425527941305826830216581083376436679952051845111544206559688510882823297979007875168608841416097007672804550187365563152204604210744635500268316236906850369460930688804829451664707020540341771619321057090722178293225915758167098836830352168523442422426596987163972713599568801366354396452308619741549406280360326562325708846910758088923973937707229708826687835938364042393090026385227527328273590941188455648734453833305869574309400352156795374370254931794073811562271505046752604499277477176631761342851015773554710517131681247693867959877610000761684554371272277322827799244550727757031831432028852307262996346602676406840044797290235926440969737156357910904429095923959129969945805695596621840860046548964109474815817248494039981777328627426923071263356575857196393604736297874813850297216296233294485098907004783787353167744347517137067451441709435652169508399649342264979415271912599418379448862063513973949662041637854518161319293538635906613582934240529994636909476658125417328570511343958551164692232016028926111316125812574232558404802464479047048063776459449026577156631507049602100038393048657174953019062717635467732748196112629409584456711459321214418132135477142632171123555690654252485379169213664969905293724133637741719638906648885114148645480933771616844601817236666996085795671940918509028559934518823255244137737567709435683507085018648133357075855764532319125958163216926964114919079235743896901753882538221089622371815233830366122388808873388145074283244368991439556593292160526281296134748072446116933124525131651169058027060948229848170722069934241081047284844434303953486117434385060661971621878960316434337196990924381691484131778414977192754303832966755542616307189403759034415231690380091830659516466961729543333555550810798643740605107256403044290732796205114992128455730511086636434406067316570241252896439264403923678944440617864463072080826946290894075372892892623944275259075077735197370884653699113672918613224254177562998451641732336416618129265162303040055114687492841640867524912045705336602024281379442892869850118909312277666840853518428776329987108753330691327168996275835883023348802859383794964076234434759019883219451748989217474763765441274750982540537803599760364800328969660969164972593049797957892555989069293822127369612623981979974415221331392482007988193850415794800077324032364178023844495308827306943416203747678271347581342037109715214613911918020959546377554776107587255666556220463316361543346526138096366529572314178541766069028273203963872770659271306918798703594205562969549059657882818491227996806806329329453420228287587890150118900466806690664893599862733854837444386302487875835412211265537066016011605380848536706903180764740648065510163224614366951684668612788185495324171044659804553826033937202034626888227942048693804037534146704866048050161546020488497099458515895399297464997652944793181826634468777270784405773130681480002915569539249471147297648638434898024431672998332627837354674007991847257283479219172774756192953543236986880554328093464436424218659141123210244505185969654392335552113016601077751795935068755825767881933224280484830140908833192444639105809599406593022950797337854889508895916460999457510285132543656250483639026716966849334767127270909543558733155171246000353644539414220333030166632770415720747054129146676812290053030317657393094567001058983683514405852040139274634193385280490426803762452886100713176259076356180786445602578530949818902566320786332373066126496405603323311178134246345768521877653661968625940402156967686383583161853595881480670509570747200362805725412518916818463876911924712389000354896236829517500771449626208996095333014494545959858897043270629450776861372300021198469197595469324838204028196300214030510819613361323341109542637399345773217808835159051512713891935590188590980822818175024406340695718499288733476139152871997112631837668421575321057870453180237187247894834629177568999303523520223013193669372540406525843062831593293538459209062783970691393191167177358445097532545707055654777541938217395939287440450210431958844453467039538987710764987237972002945179422774517034709389287657895686245089381817745572693010483837635905321192359030453767795612672482247700994758972155288281565031976543144100978016229788624639369503566588862756280265162318263816032102799876431881627677679312218933248966711748484983640252903000019301713512051594005857031520637992522669862571259722072097549103897435873575607899107840899727271209777703656654015486348015045352618245236627335431721652185367096109252278972452822511896208387108053413282536825542505263057612236114945817869015806141784933259876603063596997656461673584677627319373956487673416555478493861068505524405625649409127358072710714118015798195756259599354083644026589483998824109930623830264056154327563450750858020525426742089922732889002235433233453050210267724934139484577244341679459266229997205427761231542968811089264545465207911855729719670815620806777455917427356834878592733371155178932543998134530246495513000101813976672505970815902435623865592559306474605897654642578141152586360391905474874292270182988690979638182516360353269843083112774104075730580599263052680103954450333480232518597873519755165090378601701393864907312474362988118886044303696125562756700548429903203229254674269005295434730875062942143911228818404245650736726484591461658472007908943400516368852128550161789784376480090429449748831251786468019185687066166930785200176923092272792067129395595851151503520718588090939207168098461439627447272989557018372466159233545530494418776853123829215894891797182167956259415250168406824701237741559945249385920451347300451366972967353812721485885822290251265423406231019833835669948029197648277806621584510962942023667237496121339318485610793094289978109908199209166899731624797717366090570651306826971952663342983749281227828061074651579674075901294732277652451502222988081509189003830543325489902465436637553583265650600143815530912555219419337970977745006488649396199968393248384005367955889339009489896132564415743622825624329424160693107634719393031794776756638400878716426064448642474358491044735301398532913773731628796025899652121104699604871701999408701479404026194320238938767926041237092987060154312861031225327488683700098335618924920395993596471411766043349501749857369048550150608980823328985496802967630978210131785738033326753601295140924853708609483304164791408631421438607599825195119217028468606727894667808786437507572066720589570344555070519110995715107833136934758312035866121782066801343834909498987177644934298164486934409219585952319817766843316544479453267874047721889565844357227743155776577685067126139070345521473860905455260032474469853419711302236787957064922094466558765792551742705329592216547103268804594368426876668856935041464387456127607955851796092537792077346456630588876425011990220306290722122939740871291716021304168634234049899611115886601292095560211834715916122164000604610986013892845245256799256163696668211558684313355787002954018314581162278384526506069820942775813077438130498520769511432125376254302579533827563006403799559326050407483491168518631002007517403500035275751364896679691452594591715781361133541756426586678822573099684519169368321878175649787163927396879957352131522639069020702461305084632682089541204626129667804219570939320202168974412375054469053439960837030646651596156325407187437460801182809601314941599070569607425626657529191589390750784922792340226080454479891487600161641533928345637755772299455308071829690901774023729981566704358261322350259553057302322204044853296676683727483245811412649185727887666243632062431828282209431242861498409942486577954509032490799078016362193106904803691783773044414865070668814190151347843713095216120055482687449318826056213580033418420480822730950855226835132803628947563448850962762791960709745444602422015412980037509822050757968142299575892251774762653199964095345320508053043972960112198462700324418931005981148770658516162281421064916596882029513448068508457050574367278957464832808369144308533757098340762873501172526174669929161854653726584175484497952920128309883566965994712479863075751922724350298836286001763856078471171395172986359276628303843058336513235909215602131478854947126420163679716894194334662215222127397965389782564949263120009931964924151808938639463278958071786237456741488158446824451600216509314148875196167888331128498062510861515293414450069365366756291044180501227604952108518118383678339485951708349940495503448207086420996662459524562149345630983804422278433609037095599351700577601541779307340923049872406057405028162989340278984181180391772599631899345776878604374169618286673457241112723477987263069527829712068919389366930433189758165800878967016565752227940686086346808314494468084896276032196971183480046745286335631543515971747164113560359065898571305514548323331188599631472336845533096259115693072443388704364656534142934029370261635104311602966797780228136452829816827388331639298648926500163204641700910674240899584896738557759999160857702344747734363481626449904704060498138105750051100393375575594775360160408688525421035680060769177099357819324725968622951338475833935114488360634978666182947861936271996160596991489659441187070241997519121261878187631699125076847658044652348787084515176670496085331971839631079600234325871202467636365147003470884760466881520465786655146775400800383867808815736232549303607562859530946142950407813762659975675391887228670551238375366665579286696076967653468375609293990418394544378054704322755068350175164879382930525362090670941244704189566487318042089736512332145655113523368858861418693799778899108327681977489794133212464236243802700061498612888963466759221519664391362251694899730463297531098257129673048727621326562888416726941407976639911809372500547577482191250835009266864042967952122562001689712906413390377906596789931572992622133907386381170846282000740487370192703202425003617789393482879839261243071747340642600790553401665671150687845490903942100273200677086592840923297970646046544559131557814991437701552680133596586539677222780115003133192074629348194861929922958170148088741942041986258331759789826310941540663730086084115279266963512098319139441625775202943874943973292581603294680398755973834736568529332399609165035825740510076252107925042689867737666785139547240322598065882978596746974733492033904084560894610696304154620844402299904742663512797172209752740114776776404214886290048502448818995344820920199682137245753646028911004763022884880273019670821741632774846902719253281229455285328223281329127863554712226060634646612478406708482938703957311915568581021330730892311390936691993142681842907768963834955294174254876163946245896628802165171221282690203309853336252998645864492195745290178728689886171492559361055970632397269444226575355779085490357420243450641068154606720491772455291454704982658314621737992914819118911065613724333096431223201561021758695500645387732430024655810124609671470964086150909721904859172230565657065613540729731677736777105391525122001229150114166527471651795471886621673464181108553090742242732963503199405085438669706594652811531097053920740458616017426568549643392891274715210946625504342245803771117013688007886672970672055042252538422775148884353389338844913869024530787258420487133356951184839974804451159155180217686625110071201219457351907243271286474407381890674214666419071133943962459567352190050175353598265575780639348180431804227211426485365513922485783234795924767872495162101608010776854022452191614263326979833680173840613884765011676029198078981759604315598396524838260613093085699570847734953197313066633016432581713779756802736396799570955388379826561294790023865394114784899821030258993315441140945792270585007592124031443034213665145121038562446549623875013255848548088601329191245359264337804070631237581248816420316027250459479597755734959539090626904490545195857616799911892451528570552594196511679016543922702954705434623781624398095193093935594342364704254689346517980549372735877942271893295735876349447429222882583938934745993961919388322727730932979793063222443713987692683002363699260707904306249333268517365934105790597300765954734312144288905359181354025565967959199738145568367769066827173056332036484473832107476429848055025454949846425194786897158156951224885808878824383604102685357966584861398622737954976703164425339950071748988754013066380021091518167649360351796364596455509890857356604354019618448626626086061772434154850424701925785196084325589003050531924730325649786024817645477104620269782939517540278593531326723440343077736824648261518832328089518545099025497681681000255740602117603218712918527411279129066749675129560947006656207763763614673214534119511436801240318867077691321073939946467903158555176476263331511890030157036643637655991894255896629936955222765532724221694683413883408452951757514022553566516413963150042530474399995832406908800519960483398642882891386819717832158816427719515755804623259583048954430746932788980880820614844487473912989900187214573469121971108868823884636985195691932655178337062249225772705746265286976392766694238051455134848937242782276762068031291142728050288058029609661469363154988172548854713096040823957992881710983531572027998960143017900624378373227313818804432305705598226382148875024643212342849730800840276580295270184741389857632989724785571194893475819258946637420747304161656665460392713143286447041032024432409544423761925613614037867980085578616421363586948088571533535570999766339344599933475896183379172088895647704038893565381718625020520107661697660394489438337054128752383120885554419732972631277306413391147084476185584955941834400267680636977205010471768431042749407148982351602851937884539540141440207604769063317029484126899943106967143034249142328100153738955015348859603778299079945929132225197766557442758707713355631782745972053861481356477108969353984582415860088118845455799199423091028824159611563728929581214681289648641976837869973434154360269923155587543138457947032333442021662917081310305600992947373054944437534375663165231089764687372252133289271783958305344487646702476039921480610683098229329182627606345072381246730538219954373272603656804263038914043971525809625013260212316819048909242217519607527065791039874416874630573079181856533978573493629332176050901818205728625799753432334085480439847694450382428823728672204281737493202022817688323876463028326739331777422961519162715057774419005526617830972195746742498835142682730563787752407728715077293706629961560148385217682535777240756052357109842849068691330947739742887708633872276669823821905179461752081037665203842001516206354934252308912122008787575421201195803056569803429203618814659141069606683843959948622184434400529584948981291481134609224810844475248257376273305099855389984341424395947248768546841803204578280910339867858506728628860375207414500062983701370982794928427816691097221200872578196692121200391698883092081978147712759221895297215771709632684060020047974461400229518825897343151017043965254398138565629955824840822652365673838857557207143749864204753373760663203087123143149883452819461077795516889051438356299093741804692949835555966510792130462471430058438728524882408049382843126277976633050593434182275075507251415407495816059796672963632534555436808037728902286947630546015922925265967273736740279127672279128868234788880766462757802175375173913796041916770901130697603345519090832973178799813362413090101225679091884478585506354987337966647733806628101066480281472299522352688409195852668347506154269402674068999831373068338815084554635849113549952717226292502393126259273140139603347863823322643408032407714958433815085136945116636003052883572397847687664070809757975772355496968125632929731718122920155507442338002280446125404328033755537007302432453225108118509204990314091806905090401997269038866436603585444851155718524749284100528403828554620429209676302947393346290288511118712574123913968546207626924664560429034724937413826098972681653781481453611216645061967301721128428742058534019655201171263805989352728443743224794772346631214055773685219947234310519613224900226019341673855801479464552412976564286334456324764200495014276358999298323529453171462508463985912989230071109712807674865477773121700031549863316456913999262592446579689158610140376853881597357388214082270824027814554817864279188743831412107516153857529236302205959811348210037924583149167024104166143353446399131491809446040234045471653008861909894130697488813301543904192618076752875226786461326968160823833084760118874943247789875610992966016921064200043503072233214073988550967870563237878564448292983055807842999757780814077174580726935833235180065638924550662525990645651080810667637926831239483978070601532097924193216357450806099826523950847132533163830901228106517427262589743473669808487810454536332559295921450619384206754296062326992411881398169427424920654600589477923783410508433532457534769492611400366050318779962718237318370936677975056553004866351580859245854697863531288316083772369066041259780831353563545061075130963496321315932316008889209095843805366715425299347182708562923817350953911689066020129624814416082280290106267450642633244509445792145272195570121542910674141627916440216688915499956345054197721464236978318196631717168912970222775670105461142495627653030347803379399175484083833960791616131626814775599361142439212626608556001525613531241895144305650026207797643611313257353169352752556628859327834913062970624319263418528499321995421804693478376534126785581275335515655362593204126476591851352935049500118055103329197574262996451992006896519188863971220149144287183871932351076516319673995269296317416238100182639705808560969138679550187984935037328121046109526719402378836343995845484112283814223683953619901181201617047634132249335635698875319761214221002325775678214408767110021459503145966762432621087257165216925098499479609088087485286082674895483897669276344740399166457162027070741773570162704704281974915420005288423049746642723189297254466605447251105065645891797422929840043719066778176793633653213167898700524148885288130690988400664214741931984295968518690135633701019165622696809764933739934410338758610097103160261237432482622058377931571962927273199427230522966179192104627196539394709625004941832186990598750440239002441262456700041654939842845737027483567582583531200236644308586037549607469579393253535260420745726707249994679477404657869922908593084494248493638923191378722270578509628355713054757949087451445685014364335662289995647331040290038222836299618034239721736277351089980114675530178092710280271604438798679510169966189355374285928450029114002251413408780255396779242822357693649650294273620112221565617777135914494874757394928847374331909151871609663028098510583918124233955173904125727075597212314305473387185002215492834864862525585968016143227878211573692136680986031743423652787009791620032823268718899814237937007600593837463285295425174670893619324359163669274851800411929367823704705651828291355330369970284667414576822621749084622004246645593307656311994521257998669089723743540026517000833786545423635722813265048150740387460157307808495778545410626160437007885167715180656805057863469087350858706438308275606003382570483899303089349739553841544388435207833047919292275854829674688653498090059732923471223189242830843559317234120823173471085732384104957050109823677927288518237176220269759035066615930409277931162020378120437557492319424787627535176648059120336941004670172378431294895731456156611254978882391069554363798246695014792241635249755783483522429230083586531269397451084949392614278460659518824975209650807394167072807441385198733479538457974053915271227641522028432414709031568341640493548329130017757648505640425974179935385682415193736710314467819832670127818004070018261726803237564884675110162276965116835777376292577875242086215797980455076625000704707885706378797578229252223580767622877719939686622080126318324317469070866189926859703424243731209641413570478175547605561494270063505033531998759798173404901168836667298727673525017642505914401086878846578396352357982798612952022284082629848408375448197814890090971367741128753375964931180786568615346489003546680207811238208826644770312721845930263093772688537598078561891543952611479527211265924604775895186760516869645321489724277605810195203647425072804668451438598386673875723836528173855824406939490058381747658716731645327097488021856359633411614897022229453077139149186811797690478177986810446617483803821999934365095399667498777529400818435520938635147218986574919614914086185036900141562746018859770292039893381336707490610003860585277888694328491828101463814894942543514606278134280511684456725140487453364708998874944822700488055696188577264215653875782750402851278928295211057592971559964023904698494150306644249244878471481798159446702693958946580055731961492124045729251085277358813099828650565883931698034119679547106190763155003524528714182486608598749036580505298753386769348981212385254791576917598415345722636981587199153154602989764939661982969870051750516967586044431699809850354862164869737283698500499018385309753111651841433557121546675572439996015732786869634712221790330581287296825490980067801669979966441649246481606525098042221142510284131499945592411484192253690231901576119023172286735736629890010468513810014050162091208063885977757968862400539931258190937954895916292858381588654615652501182406012716266504922921372677824807887888255105284383623630519938924717195753208909706120744128141996009491248859028609835890315914119516716883224363005731663145869734038396487596911339059475634253974912713496759070300224859780304306082758788777913516240803013973992545396063802316954420434354843988228415188658148395108307245499779252842244593864196329261633813720004233363230380973747171773395260068101164352374824579025237463911708778655711952986475500324650232463703880477589052670411579442598950585299559319912046481565941569843274954805059914160766534070105846645173982422575362852631775605769083947600504407786366058596930729548179007470651217976098116457525116223300201926246669073110563925118366011376390394484408643836850256398619076021867603084764879959300707895482960249455819435040073439641463722620758128143999919596609088152647890037967012526010801381129280428040483168334869121781758226449535986460773214854083991336359873450074177957392033367154043595654686028531146809802412113777698857013006297788358471531486671936478336894697923629019642380149378839931760161033951290594939076867608159510682362968593362958861613436740763415454854799141914389033947501262659969402356726425477730880291135855102244374990332804469156896917288746300122286897841035781881432527655862741306138250001335949735803462515769209983107911238892711395930926074877615346661244894376091892900618090203945277679737094785466454426599965258839913305396801475761217913081701226716213904812111795200621387776376652020045856753745004510823916858867669053936395695888851807805434626929011147383113139801518638989705970836653569702162211733313366063155192072154144192105821570374517700993660400096259118881954856466887486576548617838207416034249538597098171125185782803822532126501819347084827252045322349671796336415114857666425937781480748803421684797087823973045767240679900399414869522895632189412791504200091176477731675038064168593498095872049996825618063844261546691256160728977664080478213757844155537333881897592383580770441552810324072586790070517861944393074290212780584623562750412569129060487099923031489323984692982898889448058796954221340763450745549291091230525677122642129531541102364545805343522013202988832767721702373164661731306439473873166714289577458888750828719416522883860913972220623256921112724912795222426266812835233564098604173994419282473543810093702255981946824708300036643636652212199645482213588481158912135932758659553175068717424712030898182251346254589023522382499572716288861601448381482457510597080125248545014550425941431265844793806962998435711872044257374074331043753381268969836627995972508263577061584949374338119122277192981880240411688427015674301574804656772175208518341273842577351424077668691997049831813214480943093829954099541326440726868472091794268574397222529785394523662564979426649092596511136746581931480043194047293291834385196241688587908195075877100184552687173865963820679804766084251472522447864428462048551212683178188196207029332304671840968246442151495983640427853270568205968922232609216455962217047004526284472481808056377910441754695552014988666348057613170031106632374943768642067637495123309360556891661163223285579262658555266822038469535136600822348831127821334951798012923397745519256781530612354546490919128415295821279468479140872664073695238733268905743014895055220906007754080558736407439068938847549976859670690561434649539063799348994102783227701172145175023988731663160415590146450700776763286790729850370155874223860446674681746212473685809410679029158378480178354564532472310206452030965119751980039916707521103233756302746302360261147187907045415488491553523443317988416268118398502825518828080696273349242672852967235007439605153394393089529478217828609852551332609031270774043316526377968035615327547959164747253146985607137096246476554796754820948151743285387650247342570811659666678459386824189019858658815067472899225035826681618385874676050578683552391116680308366543762152642644421088298231259639072886198891102875365417635276071153228871975912265239064395931499291033694954537444136084637453603963219160305455587476712329044101440964110685606335534932962098919001581098084048921977410292548780585643445787029831890866367581823206223268568192050750464435616205310429510151790205299172416915034880848924940474574770306111011005907643547544680528667917340919837514598462051447002674647055100416875143011591264027104639305758980108177815892144004264470778925345170588030381621985765613541742850293756168145488971010462495842871811793837665829144344297457088744164440513735123733691450327038011122650988470693042921688398573299162758992598185110573536800062545800713976289932447988828713172539253245119741907177791328682997245691757627110416336890618228156370571403591026066816197850724247406545549679558733408668316707819652615333706816986147556856930137095552046685008205236363326588661010728291237867322899475589334163783990047114933529139620025574410774236134941780678484908545129419949569856033180979611212894901820992561703414820516491617297109768521713514438939371632071848969678070919396313632003701260338353248040904003392406850275142613810416113613259409049353743123927434349526862807725353467098447449197392887439331813070517462981598616384130733428680979056999169938939998871813877665151195739523799164650087102684257502250054131554718743997320037896169197450570283799097982368344764357422557260265723574251992389423049227347298191749293723866918475441420809098457775766281944198791767190090335046380330335646339764932507806306828941761779031454415748351627657334058622936964416919660137730086833449797047545549021160526090844257015003547769398565484538615385224368787993201157990595466274590771353839615629635208542620280407570839316520290260132574827773965297325791202747486806895956945661283177423678295752974346514410388384313556726912444419815359146840037840898515519205200659072786904234402044636078079110509338686610978165616701167886836550029083072293942812272282185571123188252952442948379840418794234924127664304735835250939875202541930609905925408175913475090419159111330312851712779452278135907007807353204004785810313268733585113443941809485591395273077553895276165705488597861323574012588219849277235312010418084203695832079195780116709970596694961411731720615532984086923350611408600070620358892719594642855601300941675108747254666737607752517012245589141775034304443672786338838986630894506882486252304518489781761829149505228187312417742062793509183833977266810771087058966818071654469125625972053920896131030673372410865383450153057664766928887700138815027755306549265994280477636471251779978475884528669336724397431648857171140307169545615118684587040462293633306305717748871274454471339266601496768017995299086032646663104372892556757447031794038015030427293106063122398208106855425521745414808830790989440142390202959572352228529701222076801530511755637076956618066989185460313315731617306683610646147530310375440249265069958677381802737199626589517571957507426294777222169595391201355914879762659146213284348382014944147933509208322061936650070155227871035864520241456284371623603387754581403519753394922324826729032737267257371315060469149433266106735150586679364506917039019622980519474660334381816407407979536185621084252571648519823806859601233617267360696889463402885424003653192776912505464041041495246017328984596502349778184419499452885638035336666510344702684491018867205549907111007694918533638847810951149618597245020274947113336866465499974669266501834282326706047146078933182208352262414717034708192174950205432069766651873143791188758615954245448186030331389813745992991026895218384843087823614380790266056969217167722770341772036903581572564672135739240978305426026019404207505182927362146549729810476081617135004591171531103958775216828284854403935547895955531798886324369423856630303957571139742227924913384949836405073394284923655252937048924106159929809920264562498043888221461512016503721846695380910221194912765182985621738043457987465544984312095995341608494878546058624850133553204147133379483693321747977740928864617380475283425714956075293467864429209562744775450633250416260428026050662358277776890117492129569055773167097924463907851950949123824838207004399037447274923338562110487849042452842818407811801398412625301011261201364161782005879825712855047072883181472269768026812297798969493462959465585995767414064401884743055181962851890128990556831515776149655089363239515311815883337948981096018737910896657079470757503493822640767520284911838700931355670554068378967674736369278099059272847992298489022845653068879174329183154951393073735489353354852237927693706600584017946235386571064535046788162731629877057029230472364010347636856765117463188103236619417119434007875558532107612496761239344155292590933040313565243267683853434867256440214117710500961340851728933655278968492897625498784386608165273920836568520936109109486915820048781039823929045444949055097305591699564218925549018102123169264149241936591639020971449105297155400507987803577724060787208060483389624669345262790468413362908709417857444600258703742876464496214592718941118508687816639020478335349695896844227479756192837910054302491019845657775072524890979058550121334305877885155913498440820348044113241872642048053383458068072398869427750668713588259942405385563654349209604899856176860881155752804135359879876843337844095773397087290753977071088986064807624714611936184802130028021917068962220250102458267861979454052983926876903800141236762785126962530816341269216745255462417439208280286152492988670819476463100921822623851212196098983146191502289960559493027036955494260853099924223582675778149078095421596137690507780939866800584716429148615083313548023270178530227308129684575653677642878034591702638245835069440567255847510436853174749506549873537954993382614857040177176117867300586434157961813765535103918887048510158419168547571525105544601061510437071395474003129334629979425194941028692991593193509442494456057826124455601695068985752642710711282351172298007905378156322470586624328450897354589627048358083388452328326478054569702844864725355303949292524853120255834765753297125939865999061982989906527594394921279046359435023676268242152036488005242263325927552598023992725429335296101292890188701973165798483525031362653552797460471826132787446604616690799691140130578660317392266201979095927974420018264783970278988918573676018356917526276203564154344203104615567033816959181789051853806576502913135663630153606176333710592935111846010070487798873560105982684542935027684180608897073133999933948065188079197696135851046138110925241469566228419848812898952004331015062092278122559545911518385501920785187613548435474880531976035948763761892912634873532698690723711340264651745600396987616828229344474204408537342051887562882747758972236723011089090004876378730758956585361962003037733374970753919853663528421304774287794963513795241668168509946359000127332369070814276513343526369807680292633066391259822274676440664973904619427823724566427369131662497587118214397324988363889856571006401314325682773708950354133341519765635239325670172953923467634953981447677808805958468423507424738252899408870612733528934523478277331043399107613285645933155365375082061596360544806845849215088703921712153895498014324510329500873927908195271434061994993405537350380161222065133132666442992789356918450817317787011483789963201876606873070495432155717210588307761397181084446551654055416993052049667362225755635502216115912041950616061195532948569787952764487098599500072053595527530061926566080595096574323893186104798273104947688560897197409173644345660517087413210592559096647235464837020090412165364572128096744062292858148141605684505800814836144007665984259189511638301118143431592239735426317184466835237917430144032809664415402571099894453836062405162627482823009063469874606130588781356302761690893060641186064146098597828457585699245582472520262568880264404368733506757312673163969999942813720390819573832599512482779314941752469523900409934038267987114616976625766523836913756170823852604036323896867161486163951963551026487784894958447075005079171075493900690404117026381103617033591320658073671494240922911472693692665476771070960821012214935053201779577817447515947986744151421897998820083738794795360114684871023328117537307572498459372100362884224620229791771033471433476354375899595733077123003824832731674645834925405181634413170486415888040068041902972456020052531673864961409665050643488450959363738846760019369772698352296875031900448999570327213869552933597730446250507385987485778374016610598917694682796277004002182110522310035034100605907371491157397614657648952705806410515950070334686553376575198177874584403639017943707833411746205917535619486616006857125681420824064196958578092226933997379486006472445455703483786836637263659488872673837351704153938230698540031230589630434997077130882819350408529974749856985206957257558713702088656157132564143475623900534014065766330549547263600857603073033330707828647474315590872215280351669344079068496391150770369532673008218074203909145450656847288140863024013467875643295364757979658094143230973957003828229130543753618027411999346385557025937470179116562362157474079241184229015991028116403396749702027383847154070881306651448233395544803303909775510537681959863663364528366120689455042171184916951105535995310515090453986740420410126887806424546587056794238273189875660427141399895694878637342435578528230324891773834825148460243590712660545171442310097764314363071519464457248938746568324297259575566352024294530347585133707889483414749040778167351048653201242986962039584143196827202565034461826334080181680943711696373689787800516249555296827134100359271709188204036353920543126967408968238650942557772971064794807656870182569028147505066230335778987434517050405431435343208020768708352135000797599792996479186462296346780836843589814671972550283837285794374129812630125078974794373698031489729747740783260710372399618186617498516560949384516140251921216084798919539007774395066127336687292873242127616863902107047194827094687202366734796519629737440266082449760383488832575861647784997972984963931183076160113605147900059289914690986485226439091121040852787066680299523218462173592053584293092744537751443050843883246771338533822655142509817283826474713910822442240107046466703158695782484534384876549840312223160281076384161581331815715880439657068264877700689438490127548330903771697712296507438337944003591486629875707435252630791081908372681299699388685137663553402946083769445431617911849704620857058700307265393716763161632468946408252707978772554241547986660983176315445309682320592197058298395375413896971933779740644604607915739811534446225048738496163151931233703734380150603852542396366697426869671182731362353867711211282432915275734655232808100811261932260639625367184816173230996825451138731481382921689220527298872124404662699154799268963510186967391424158415486322445413613275904872768073771019472470173130620427620745312200460046157577176133913056063023442784142766252583898769038047881988418992020404060752440146990541409535100972390429663519406688732880396299719258255438061263071439483987163823800640886605552995300290271081753696986504659874867992662093215034412770626717472465256968789808542838994610671891718479112173401375814839025970240159384299166633814971984340972054179068378588268959186822202811603021773382886852687111698352202932564194463464453650317479562626074653723388754429073294538173056040996176802334255980066904240482317223700410235004628310138284878134910569815480501241885434797555701148727525414576381827016397003707686923561293464418621615446424901083866606633900726173203635544655555680509323608873079933849712809909915513321739049578806582786875270319363520514492799399964065355653998055014132891676216750230347890269547043890213400483886488254916164355293636357820782182796187966625035014697609731970572357126465312294744231937193651373204775333911233171380609669947322204199083826982633546957506740052375263263719577832739539722456718192145642610452465693532814810174921773251747915802474124515982770654664367063391000549447847060281876875995227952689678133312591756341147712640243558761148119795591925230424074463678798683520005456643549851116736557273594536629436875233787454173189009075949578045274625702847203158969943286302658000835341677982254038518979507030879398684015228916937974813390215395184247258740680964855940809620851289757300264928597439987297227626305337865434591638966815748912699347954492146569448473612070549659254158999861279930227056393117820084661490373306128246216267470125520611914489844076510599392877859818158799229986138860936322020030935437795989454533183223516835519981281991104655868314312415039374926137928052208793662475853454605537068733671232204461339635266871110812641774567256683963909881528191072115978987288693988691159078446340382590289842839993028051565582417069903125095620166140693632987819816719662094750229057837733763912172830861985889981223202590686387539663869185141546749394650309337845617359974663809164011983592157729350439911037415590823461340794168387475152459348111629527075792597940817642820513314478741615429182522782643131756978432214765295603147026710856630381881317537841357335233716357674682442546108442786366755598681363908072347879854410971033167687236346123610265722914331625809502430848636677694652024471942699120797720597486865501865547918740376390563904591279250145964056850846753670033354819040013543326508410546500218984213115579881024832789783041245060910163761541900010583174321368937473339301040038181429001069661962039744266039732192946551440807975029497653529646948134891097298812524152425694290670255252187634633394509654951296720216773080926295486027275269140520874129304802759587792614559436808020177942515916854534902792153830145231261376758261500410840488203842003243684150353138087154976872474792999537252661171609353756213180682729538050991625321925177809612450569289995855572072326294952300728359922396541656549405351206846704957181655920412550750521561552928428831034194825680307534140123307496533044068646049044236649839315838468940991882872981337188770004705726646480746916973723835706828315833312700174018400420920004986561516350765638296041357877913174284214499141700295925062528864323477796258385936409531654410324642583839348871659356251640200078644781673826783269021742991767189137798450123938517917562348212517460160540314953690766686100198504773205043281113484394189464774353820201941654417456418497843088957306923860511453103745122968425625666549007839421486831373168613074938791902161377657394802826232011205214896371558283232139434418867499224039591268077136218695821369769906570257108653806147233702155960992985175586500407624246114466177722204947828275206048287431800562074290244018557230562796056960494662852218804131660322135809251021214575431799689156319593189765160195927583850651307816712007438493904434435353393245260003647518708653856505216450137056514209340827182609622168399617532105385361177698503757393364891516589586836570829115692180706057163204781907460896140067036348506055396025692382822702771844860408600595903472838200846778189757757146904656048753636472239509350893699789275850269999473928144082403310146052468875252234269347353361310536033661418603242361243595708783509695515947708884002696531506977729459367895259601849638454062648594070148899439684606786143220071438042036554786258694275499681284668765658120453464825042668278986053616527393075754212917866341893428242081312165713366740756067155582221406716592965956371379391854724212000270075503583405046971934417955739184441769241131065877184177150565638725344252905437039450992332436351411948318436763604534742804151084150486566282387750289906062972345822529431726237601306406557774721749391773659436033576776707817784741757169467402090616223451252574339622271764423526989536287273957932527803148852945128594649740760172418041661571999990695673524378016875944289538809220031289697669706317882752606921770808715017258355519366950323628052034983201699985981899554060326645317108876446342203225433718462456439028784634349170225597004852157040524153615065470737396741539729108950466025411859275781167511684339303541433534253195604912579961153699474250410340728194745482241155965845456246088273817062153906739747366876633489034210409133463984106331924439270442884227801299020595009602449642702016994491442539699802323164075536699628624277002842161379921916223159757867133032526461462798550186128373606221847139806066657106822525212368848751289406175549351310494226168463509993520947593020762272032347779442570415915189738270477646087414514986494464758248108257497158195778195207250238837055244890632861589320070101294714095613370720552235087132008899715670897116808946599820413122728538297534963450275212588130037316024261450000481015673787849183930307371327708838038323282193639346751108557430610692779185105814991833124128447564505129181148023121023360973603192950236990066115775492507997536610863952275175622564731752184818115910836560082276951051481826422818751750068302267288798368361314359252727086950567011878001801042454549126299730537877396860246694410337845067050862272067865980411271983028384814361315465278006095926118001189832501793631978183126848870929168998003640833250286095946296947494551361710721566888979326974771586946511575222042451890463460528776592387330002780956853019922794632285596555764794575085964382732112974161623878378386106383112244891355963982314956338081616200621418725584353568514852678602118202350264141211215790813684427563541909548698158661508211940986408195275604223404616739234079588770938520033743952253935037234793481196336505105655129646770923248057391617145443475095539744412725014118886737871309714594908262054478708941428474548506781974664684708984285477760469483129202684137584880146729874252713104528205724664891200012770054118451493695962249897131264314639895434606729098846074672273775862988692145041396031353320704420685445689427777238790688842532229056248450836468138377668722054103998024404077087525585767413868363754255729684250417445933629582749165310689590475421722312421361219193841309649961666919112881058077549302439606082055672621792246006505272164381028188583637150469571272554900861769802076828939978847283165022962930153621224447315728109185987256128761075471998893914688344440762513593444504075850810768682159892063325918774651795627375757520936448219093578056494205732021047821216877583552068437475618347632064397936210305215900193775809952400980277906640957633542451808644463309889622870498359853252189327083441092436121114227271397805311765143081086415332403924439215679681410996295975221406402017589281715836223765871057084150767084029064044075756769507171992324825833366092867767840934971423190679512315730247908751385603070481618143426565123929141422245097896280057433551252662103175073838390064819143767273888666436112657979454123272732838056929026540113227379702952336338885828959888985016858134588785662686977656207150145964643735302690976360446371678711511863710251864105814521049638139190733394731062708857071298200873624432880957455015904306309723854017824718199919014572436927139347793310878161731689032619833418792973870818860928761575078491182186441017435779101320520107131132289708845123786875966984870895144905011197359267212231109877235294662759355052080960835627979230452274893195722676820360179212453394130435362641195377523689516514383931766835511344369923683523546264265788980992586359215869431015540331934281624255276162009299290281208467505346537563182862412625987483082467670411354086250272625110646035651690595735201932831060106829252818747725122544604977846068112865614957601778003030823573674461783121869980131971753105400834728498624659699185964971340502132560700209183171592752407917603672979201294903797302740690273698489006615915345865103096891712665613437218319172777370859218226633965339648039979940020305106640711184426211912008882038799421887756085143892055415074510903558545945919399197112262058961316883935673022327049917629578429246556328297099833762504955919388281919595584068207340799598730540565438160858387777874914523002077402955405909539650720951524462921962734689443530661268898842739930935838448312243244162029165591317975001005185409679066387618823309178755258896583976881978736812797814931059309395681401784714985609907843707359009634900437621713739996526884317307570578535146314998552201205418681646910735158373615885497568576517619430923476845368930391883551221774248551289299237625668134473599220808283142374676263852259499879800153646115424143530646969267641129937317768920756156964792810534213472376137688430834399260173292617844973260715578927444000538761709165449726360661690488981186459859952528368696207702662154297757097619534290588795821468234926865754829547036987395300540832515513284656526875416044744701891264610267442038911784513824870749965192370129106296548804820972147763171961109559574458477238758702152868715015109226298411143100946073614135869388783968169752806496636597181457490860677049843761823272778874756888047679812395187790810285765207797038997659391271696416381588403327650282725456350038637784215588734889329906023323225303619024813721607787590798062441905395928251843106860887042282374520793580218865142230733296899269255060816814461955290068803875331498533522416838632293952974815600843571528820739308131529972962762925514363081024005057288851431927050772683947284882983555280980130813175650469074191161268641930573037461339972643672195708421336848919657525481492608326485642557282043792544104478054304814377152858310422542982743532159664403446096554623372248458367485487860942517856862360089016004400439475698595412995718075183621061785333928285995591399293960143821348790088013818948190903833887205131742768140073795091495621974958389872031163798103013479130117860604511087855027510581601097508022091710358943086397271347648948385666619626249182269534516014938382894726948823294916245392953869688604754266415951646112153502478418841673670406242290180323532537489535310690109973853138940913916546863920414831555305013621251112883149305398255182565266505324724063945582320331928385198699125646917964536378895002261168071713435912123428337207773089401421812883895700399528055602566854659448707382016812185639198833086903538362252154255605496900359573650511826739137531847487714907976353231938451881963837870716284490385068130608535423374683975628714348382990298601390545242606302843463583618207540790338068682588869643023200199559747085435527381028993149709133783315364917610135226177841152824636159552952920527521441214194339875854566450624576053721263824192109326328200525503327502056995943859092578877150286563087843671050267037676479022288480684512769226783613331714455177831804159319417120441236921818128001309871871572418718918001076560992668876989900936744751414911610860797168264568755901586091505717527701873926439285820139536282381129471338783400414066259047729823555461186300191863210269153817426120101961138977077994430366185349111995810774025727947556007869784033591142037263926827763960218109951726815067808620113822175606526749354570838043468094442562592020859579947744902044135819874597952270349966494933176256274260000292546649530860450579066441644684135498053246370652860258292675885670637793086195895468135279015337927630168477299820316472730836526623846859680957572320803281165076701506280519294850853990465571379233490673806787972336586911709554716812009356443060177342398191323810120423091629435952551811450701971166782633575177535831929230927220502731283054689536640309598430595484828279359398693045298595029502315753952342555468100301397046947471697518825817143539175329361027387824989097131856830548749119149057241992769550202928257659452006850763819700646156859062333918137768703640405607983448145208575908997194503653996443731654260853969474321223118406689372934452496292764755895272843491917558972813459092463772727852891500430589084382709553958132885286412296640921446099149021612260275109235220242898205610395771535746238915245519292745758201533356349357999737263749173361858924766304154358634055476787830860405917480466697214448804301902889284476885112657071731361391251033621653593766324570698178250033493309631843336663458355599278818019025467268190574459059674006790198003959119870479374629813069189038296653921832344707681497918633778417482147710988562948453275220578965445316693854900685266540817795038148114293901938518487180101353732752989417721028660780042966181749100662510605140521277397984490718643646618265623626180510406991275787337067890112694583563938009887255720224835156731318612028522322653219559250345671639397800053466233603994843704201376414715289986709672159378520019391761316479982854680927185640659607439978183090594748909062500776271910507617595560494120295808279029200439836649465967729008716565699289477278059427059357900286786643684993864400134922753372970760642860940595944481302556263127127328718099645847093640577843999981208551911299827390141922488391022091074933298013133629433354744873706956521705385665773018219830948897412676577056612632046690467043546863820786479922065336879514868210512665005159343467985598223291375299491642298426091276822874801913230420339815045581519950478965791505201759621948974952174259995277274292498906326677585438347892753326475448540342313554441493926051836055339818812462030538384299192042579045959945665463172617195072156819806825255128385774433217740817027810882927206481939963512360095386748676912669141527163450994638274881027206691411758823768758464315329400539491574569851588042988523266492626659875763020547284354792054287671736400286530705870111903291626959316040908701007802937604828814264412336672381858729203243507131430824141488784149516408260650852710744211533517785982937103497936576162557772202267591450175155924912774063344366267682905194142230503420293543942548129459788888790056928821514257275670484035338994703403508016622758095681243485821008998631481565515554995133492782977210397763388983303167693103265643149350909586905085382628758076719827928776334749673359011637774200934035522123423432858037520668506156787093556655883054311803799672097729024031019244182077437419049742794375056108392691806720295186473094378612724112001891344247598356075621489176148534877356831929795441377534140462754512672413821206529703666991780433669041180640023708558379025469350510340401062441300038806919583954939714030114520745036306990158603346024559357147946189897614863181455686571947129653384844486795873098938887261569083431256176638903758016195022412226065041943292752289160804210822765577520593833891066901388150554559017190723201068415755556842214975726945970952109720354306593268662320175527988199901120241425100981243796238353042680973263192933642941712291818499939152629651533361860568344613324575892975803147720178467882333929366671059310291872048570191422258838931296083933445115962633158569710751748415605807279260905482893556677552441670683708576464954853075270005742833540815806684999233893118049033752971810332252661712743807535679823036274951146925874652727933322781743024217562935369165486318132491308780268289010699969471450599821944592914791445745718781072311579154853250027238770162052533680545788237482512990137134723244670075693291237695116776814452944337360684848010218653453908092217295483023086141750707855180611152378236416617043914734962050684766884525239381206251353050008037844002821560919161819054006655439469260336563748467445830063252186624721903133886508318751112505153811483600667960251222290529030831254192559149440581614471960525421900581766345796958928512084326340480040487920341859396883741348210520468382644614638003734934910821454391476759901885797127575463649893164909935825765903994866399601733355199773299108872557831582408947672745805490719420316081283370188710937159342187819883189114921148799093554221163773858000572788175253060482679890245304832331207742530358603167579422264265610450277947040333952777290879441964217288068308889772234491339215152331576173211331707864908185465726794828400942492773938041534960947790034276354112032062449084273238193015994081090941389604001653647409732739512927499991613342724014708888376574126766660391180736704930740348491130310511339017482856030529175115268900178296012682476470484002148564665990992901446114053909938172961938971156944521009707741613692794131228016415264490100776800211974652624191207227359117179014203613563635550678367597454814063436811746111382210129242270349224856227345761396424594679999057945653288451092739629637334569997372116727082178658842643970345192138517940975013809470769563007147649217370316717417092034151279711901043462088534009062555635416112124591926138169475480442547531761218339472147987305335471338347672355705605397653987237500005749557116655559124678423816481091789179466350217132794205732180259925406060582209800600164887140188337366102883750426599021483730996447817524912497090677117110794997433468376800057969407042660023652588788852815692884011300090288795651876857758561409468137466895512134045728266892690164824643644394989847127109933000095039383507547106576338115219604661490389963779952132791151765264573796157451545625248252892067251238880170215688764348109243171053943212199258511469302756386004356013241382802604889166029189893537085281146799270990423790899006828421531037450457290030727338107250387464278347839946060246549891579358226595922466764234859024692966162860745551648788253200799618251290067028984548253258835696348465137710844683352516422693298718306113690052546708157557207938517331549751052334423396068235422307281576850480115889085198831185502054024760065237008735530950311000006056101727740793931753207145077148598478635674672474222002077026405705982920076262678332733792194488801228878747614905068569038628413760712490127511471372290938213539727915590136144229322439774550560505715430765896531302326041690499095584929122224345449514218977688255140616160691258703828120047860693351554385783277304576599153634546929892886951955489734244625004163391139425552410370149121720969603590765474729159238065217447984333186305533880317620825228581156969976615678268235549318191025196835812783532978202260784288006133586462296612181837427760842829682034576348231281240504132101881382146234890590354151375901546939237316146270213152656274254051253348040071629733368442101841373433429704325688112224405304802077185669043457106355071878644003644301750072045457371419424106705307006678165863899793746470867497482973500484873817838129858536502812731320666328298420389457904506631733592952476570123744241417171957223108291578557276259388578161182789398831565439578045256486474023648126042097072875387275852164912107053757000622135724598808277482475675823041295556226151543758349086216221794016918975620083913703757651910877521827311933642607739047250578070315473613588200506308058803327240672903252332066169627177055452981597445347464587772128477740254961959985937268710878470124726863250749364078856216825435377171020831248222435448258239924119843041278389275596555365727329961873651051634674130683085873777446533617618895847551151240964755824669615318123757784623760199361552541219642907513838998191230637817832940257971098708948492520108135953612306397371509707449437944768254284355921434740305890663487647495035226277926021268246564891750545868012680214241369142356094888242028343142427609633182874512122827618733637616567081760161208255935977988607927460422788593060784724348359737186557094888216502872805781755181343187314129936602437149462200710682056561088185407072290322316747846291440426609955846903478298445387599073878975990250493588251690207313994587024087780450927594285917744758533763873041481371406285102491575452132903207940560432116463835258592358510068530862616615540305812755107267661936641196570824208346693955776955021468914961214965621429159036856880908675488627440704946929526167932977208697646395378217579092973571745895814881238312161841930739560918572674419223270115681824016748115740335776307607875905455919675885056588410167146258210671884789945683931639033126850612229523020643857016083071461749842818652041436331079630758743980374234441441938144667501179843697252075013034917899558639572706712459073352102901375937109591305004690194353527264571179924368065205474599172714718701056470704965785471806858030822074505466684438778912854831070125641216642142501722384209563471830911701078910991104813046022803687740780667496590359225191633327564170497594443010933630480859970196041189662709278776440926328081866784485524161912581204147701053838892301108778997235709134554943434893672292068984926317840555851349434629848816884212027335191932955832180451453005268877639631498275816050300633061714046782656725717845690792799269209135944149329111924347015004514592348879767535854240531986431010223221720295374372366330665035874875406374494699322526173589138064032330324168484661886290390757985127144537065321723839225699063936072284428602100759281325131524966110058530540718472945059397055276371852010045365695183202145421465711081185515029442035161084026413409203760593929499757676525393778521419406773115506515412418861378007822415672786271971844520571432587014813360269610300222096880916719743756469820128221993091669703985402431169239302296699656782856914017447911847877646454118438894133230600662636427483086512003642240229806738573044198110241659276502111631670044422221925581524398811223758663395685669377366055438214941316919808079514414823791678855642061619958589299669841588666040760243707061241778510311514061124620488090020867053385642505617528910760721594921574286875303446508438104232841212485137547495842257714797012182831312798599487573590058069695427518184665748185483084701490658569498620367090177339634922901385024311250172464163019572220085307966842083664415893718691546225767811526526121730376710523780484992002091537496151082784678947395973016954231314062674086384635128149840107526421260492318153509507210094559900683593698596202588909745180708300950185929395158680138825857192494234447082008394033911693327913390608951595083629117599184139080775157092964104468573696061018757676060704242441526267823468137453868374081192689122642226353361791172308149972258668609390866980783040706970798218525564467470200378630603930617006453608815025885578047182179508849009165375225926579019972066677623913599460944466545549516050966510727956638014065442816925699681667327659804097116648407093695814076542686389958213669056941923730650256866237001087697800440629038512051187681415020097227415843198000025239327262316874229750797157243917537618891810053253946079157230054382716310878036166162582031094146224481511639965830837554727056424809463940718436938365033303756087666913741941293704931356425320067311756566897467491851763595207100590090566214760635528701570544766083282574310602267678854935755818228399011826900711850258176079461087035737477834354672653678961645678203294739368858881287155992096794752103388002756672323950277001573428011569402506106870691110021936846611392678951971687850134938520057505701892761959462219748065439220701659320381912469303330596779231018401995602797023896722737309420349110647132320221645132339672795683471791345115775322725378369738780251893218872758421667701645079704209814432037868972013600822880176180077415517409747742598809190999811359961923918891872538870383794123588935075730203299125529622138565919075531938816783567066524123861766680253509421883226052680577234358200627146290705416521594419465473200158182987313666970828063084040275678286902599166946713743605887814524072810779080756314835366482024621964053796515147290341277885207398440657555853026814467985593611959148701119146047333277801523381321016054090554930668002372836316346517929965873501071613683528706070241913089205087533407448003268128196539125544953970275138493121895639111322373325015202881846332651760613978169475907526561369929006410530240155040577372133346559857495047054308097008229772614153609501715739558944096411106534244869756496765499601617620142365184010280412474811526547315343652289750049328074704560844470437797779394634582410823090716325325681201924461209894620447288882463191070856193426553684730347610464904319445239471119564918070534018081014329351756197674263827034076216923536513279500211025156663428616525525360389617092672198487595984895383968146516473955105362887427216434982857871963745038019716038745057947679140039285374318150771866067023309143662404231198955349466039546871083944489405071079497988088206499654566170887433325631276312141239152834935688048867750171706294214772687289861031056433308809117943635132762100302480854339391461836101441261112603976959590955587131093413754547202862753956856505790593703182725134295367904724724818365045658404117789093028517269031600564638881876141991825084107999268545615560508379010707869271176662074615442121086233055150090081583289962508581227533611116922182438732695933330849284938971168417471893963359359791531107873937853849505132043472656198352899663308676110397160060612772979655162440806514384917522493997980839431700032329253027533307849969159212418883377034351981145850285165823238761994364349621141397681475599652857624964668906907938976463146505687653563095363846708535170230688395156325071676723521860911068494602595065065665429228678641340944547705837668450707580153515066173149236347552057419013393710716752331479713362221704018789300834176559710799566658331513472385151871279308757548937123498541382098720384741330547472612570102538542627887829699686668284976697423823919926429060068281643295993143810968090221249623529131928900643926424321021649161534578577420813369459315059489138389933203207340324246561904775889214501178830198803391584088349216825618488163575729572840992488261178480080189494422102065322316584678088795693361948811313818426964735839635885835068160732851956683446197568383413711833630537568471694202004279298422443036064642907611683817672452833062881372202440763019639769737295859432483266107425607622461010581003396547255022576098283331335136016766864674408076576442865746732339346207321492418978005946503619246075343592956217656364087325959567927427114001213853955311123505775481164005926280077255201394806022290358976178515273674303802187962421601234298309195743013700898511517271166937584236805254298416549621118422852854785637134122351862920871946481289561822448211587213885180139497657902256456850228430660469578378496730784286486913571033388683417339936102682809431464257825244449124776692502868989752213376816924482824767598059605508766810945206826454726239271564883260809705319145352756480388729553724185686279885476292793163691774167508530362180685338374640678765126465415477598123869372146530952497299702826342302817402578986676297470051693556184877577742439119399918497276685515470237522076948645986095056889708637404810221411204296637797108505061205654792399676216841720227930021710747738933622711061166283703052445170907233035846687163902206422695992386116565169550209784059943927153131645409849341655124927503315070625726020722423280400151319054785811466235701459518596264971695170436946200845003099405629531168260737743421746123156529799579041698103125771871042885543924816291442675578375501404008114137124908225585249275001038227415008171789538239905435960679998494152836346004292302900366487426388884000623990100018391044059997149115301095469085731413756676308491904006139378549594236789337317712874984921011120993019716041587259717201781656839171305479480828698497091888461206890029953561375318851142072279506786099386473230244759354766341630619021440436435000646919375230754173209023994244085192298303395260207623438922781772280005345808869032553787305175230661693813522912189403711944686943158868925331376713883654726333403352855258599034545768073086380112179509660778555132510408500553753994397116182368718117218348203364111173284252342993793182950570358007849508425566867381844552798530689049618156370344097153372594633516259866434785354731923941236577036002580386373539944849468431600424871236954562314254127758467475589655379462713261367299968423580842382805333495538734873003286465669108186403246787919298935561631639708456733807716609999848405619440877118475304092266049596385063791418474568122529615532726914578204226297234087324819007155943162917779801677921348725682113150064698332466652250534639543942406990364987024318483669620906168910970672070735148198284481279596991952109507777510051157843385074439269405042452833215767170757987086318824613141561528217100171734851437511358620275659371565005347443566510178515497973117779867185975851645243497021209178021965332285051839856242936177968346266873985926605900180588269066401882971578577948368498380234933255962259656646872679088425330593520300339384723161976321505314722719492437155573293831758841537245279771958876737399648430171288874858360541975190932607377371242550817206530512447360765263417065911282757629597908568347486914153205837810233358919478765218185755601621276093491451435582506296931921274797355764402888064635907152301215094500371397915843755348253997228678127768541786714710132367926966598613216466496103652954457695129520145271372619657772919252456907269463306458946194402249861085455984442912117557636857066506220094159216221681980304919770974833257073054353015873352950935239062269585071462151067594655818317755778871280650595505545155931963424135086841799499693620695116643758383446359455142471023215791963984824002132823616707515539789762442984981171637318532735904154073968821329806634538982518515254700296581359639487275543855532174509220746879777613581061306520228997286792426021351331046097664446289640018923370039002926581199516067038178509735278260797820237755318154274582432512070540520860645728384061895707974458480897899018607992966340796209836371271586867760995396799648033938288831140222968381548490344408984785772222912123185768019630834476597847850352521865334190127147139878397957666836105959707287310447221363452375864664277491199789659100414175944257376919142866211420272320400539249810229370705484666336203322906268526169523122282188167408947705992142830404088468189156299676063121727978369676977211448583654304101543008804831507919729055278705140409048073244629527368345562974832227782819369010329793258508526059230547804405746108736356504891830127320598452026659645076817513193049799792915941063213776123915413465267413216681999163220568868746267465547283211907375228421747776113397171004243816794391554170034823913088879764744702956825224501027661885175331649961813977122834337475978070142213535851638324250267259721294450661679293956830880674250917794901888261930487682415225822486635754728206273644501736780701395345132141311488601327727195851249357701234116045234488791937663145978261470890536479861817849828332292122102245664741910442423509246053479834648654902312105502830504078047526939083713136614994719901540983279079140929087531721882692278927138454080624597851638689104836029349302788491913525900734519091543459137251902979084727422746982522976528919697360269926785402538507789619577641878185873321183799262415528192639989498366536607571004371488025462717521571883618160796635587701933171269800137944828104341083602096653209143988519489874477287353022430589346253778448125274157480132489308913862069896917057832611231575877441597784683464451477794257086292396267059188754368391594631938381237572908062095922617716978816177827029212236655593343174167618278034501684972397619202090992964625908693308587836014845364126633640979213412820059270632371294789891887636334919144059388900834025930308221763232410104287638481474755102411917873448358938120887226546617935688686860310123263908131620966375969465505354092378874810197683669872271595851685702815415686388160042748249915291220380823987897395733094918364202190527714432436277149090616935400980442125048138502270509902812059578386720336253200502943550155418383586576752982548584362856676923222163689192508462512435149867874096364501421710461456641121107183571167704129161878662833820126162545885930472120410391326994676172834363269826932162654965539289712683344357180856780186339650859791600370776269135994914267477145927787264673623893638057409519277917454485120718768080165532969374130139813843446928750116470654509797040535375916381224416664116262179151059932207094601031516395485801546112233885791727691854897972096052014126104902825315184115978816350648582327099428622094327875610359516391826356825263517774055004711528801263781534976387950221480773903370254640611976694217174548744654319202228882773388314187987611851436793629897756137194269300051946002234784730085285056815468027574130766180975074595583118065372144637206891907224100044253144406457372928646660740639523340590684704773650104301753705534285984660044916559674516215309234908269484679314964235147878542574190388860334361016289779249953135610468227298980370183807319164450907853012564235834863048451250036128818036017306954598753557819204995045787197982783290964421961684444569255860324511951312614373901574868694930998786061179916220857815486330220584546975398355910457935881062122191129085574244979832588117609942433055076533518091575602387541517580151315558942517875021434351432298916086096853079226794900744218969507865783995995601016332408587526680363367124969367294818006398874723629203451683199202692970931071783011872745358057024124299880567313313457583558911730798447627884034289956067126751000411403713636151879189826850967395972023118340651380784733641938070584982244921449123523893513424476528727963274079132636921484348368157036008448295812327521881351008253218707589125980163295500110151307445347070256790495083315662988759540622655282603893894288423602462486852165050796175306131126290442325921865646447650465732068165263050912641986789495280593866087157144140747791919544309998384195419570139372304021814567008523763805070073511838991391556380534345292355700560135548407029244044541741770927309781837434852982675859372847008517597637201153969727784858241336121331475640768845427437858937527142242018929539527572744512752774932522028312562076869711699779527222707179825779370495751596530929199693725495028963189184193660071572259718268453816616496874273026009187251075703294621809683635462952578723003531881661599238159208106415735418405540589302428734256006897237891391383478480572253721837562945035565148411179166095384791030447195800506951369221339781857601582430817890188230004150287853354607671934061139538658192409511869580278957547231051421334700841061180913902256952460716424796719811748073088712083384592329438307402577568191405211142335858639720853109275771000387140093545854162298525675505573071670213840298723292604923081787709251058773891462982773731712462610822423626376726311512483692672467064339513508560410902953720465960135041142861801705823780065132536463940843761640197499058139313477557856351277457503495332399475858272718926000293963956873936056235902119190170858436589688216751942754852924792189377345476688076631660756133077330040986317253318848185030407537373586767648332783846128861478527908909125304904519724998183703490936551785328408819985105391702165821714231405971829244418390075134985124098309033160026033528575975119710167163699634673760513223135669631501845592081233340155547088479694775371140879828599413237929313264111897581334473496117907712311466943791819279962390652264435059336190175949100051814191405856580629000031947826451467099257285298054398290111273012658952531239513666525373861447704380368960081934185291526245568221257497875706032631157805555207874761736995936229357115679736965639185300706132589730624349829982249548043807545556106035220427097640659968526889160813011656295548922103890014229239965726001368976508422823742538692911096694140419124995631205836643006408628196507322615282095428014908316332303041561837114898961478523455387852857124983916178338879488119590351602505202286238780759346621075033892246907024606802114409450787319936138345094669092300216368139888872030524429856607207420731399846818557891427112061526713510272293675966115533456002780025745466603154076083317888067500924625224282763736000521715617827959832280568520590215824244608765716401609750346820737269692872293234142856431068187926510755448770248461753201824404915967604363398913171559101163875164463685526752424025310839091720591795647381497546068614301441318422147321479474564587304163998533442240110402791539207966303007298579203650537500797415787941908163095971904276564425924255291799138394225566596959544805109898015679308833908623032779634699298282404077363720661576089749813102694611943218286102078809592473421643466616776639052723545136670750725864262964823053753563228910993941264601828263136492512373488057185542583544913547333413225134846960955084325265646558174984280732114308948531345024026698923324094194352680115181677334753740741299880394148886428488203851212257335060802022957861675866162769807660714878111910360793058928956176416544784456180184880907774625509664853384813216972244552739957894680342325406993002793007656001047269671046229577934171905626822246406965270413218359719289370518931499123440652288540193562072335112280531332946695022569944362195959052951703434516863754048937313282893627195175369521832144514684586092707964680471469104774847117414180784744554328579486897480661267001207967664722745077891162032843821003322380902349776540760003947834207323278077384128671261179955286427239541953887971521763955064863967482957061124200945660407713047751086163345618460863615205731403360290328150568777124269049583188653255480399906865261426034138082049042738950241566184286258196498218355901046953937287833414744679085653436441041222609627563224347223929784053617619201244147874063851918435036568712596172846161237500749525323101952072481655267732850355353208686622618023352387487562956036663940973133293196146652305624256474854105050681174912725535659689976871624762382865706614949809456916529205357120256011807877664089302978632663393130433836763782473949944853122590996496854487974962655435549927715328689388803362413396970241231416969293081252950065907400509851893914885702320379767431845714739216562719303408228002672641158518261980502118097202296108424320455686164851689087702390939783318946992962840564305222975557271952840624210453366966629953024460836043704086849611778611737439723480369002819572280022542210977368717891342226484231535497189749059990477020790439640484591502794481085160076936401078716153114755437510440436499814011937407247212221163395536940320527796391061877422620653816987747716758554802142252499636785455574025216969431349892568845734994324156619212611945452047935142062544803862041313557298179146159251370326702671997059099430683749643800562616602045453685501682718808833351544329355311904358593772444160346937982478456314911527547104432118486001205633494645871318564136431470390123530464652752168620382307517544740092459434626120579042479482042621116394320208621063299814575858518102669283439744481592174300361186384997624513309804471164839899379308597511921804077119776953314899110048250875609195790419895888217755873321086202349125015077505500564857946590653437918976992699207626549580624676446652963359104803242685825855081607875465603905719963600252099296462658089955711113495258984265095971185440227654516897941554421184464789801599374520069858618435089093084687664807716473603675014353383281700012919098893502207780315949574086621731607496045750789846778578841563392691934313847186060381458980383075582282854585172733209994379739795787913654245526136854408952062431481919945295451812306073238127598465171774639577633561628574095741988295302584355681356201191901157540816576683128240354061691145615028303519998485680343901232732007991494282533993253966209135236340954996972390826401468683481436400505115447787772243281949467024440159393955127979468325224523586587380792913563816850239021695115617896903656405287019160539322791622690540002985489641628488711468386115649048618622487330311912258960189481262021366530805491988829434691796171517961954096268506347393051706385882294037959734098822634688209149793396121839780104796227861799765235235069461129313543893920647116619785169358304892622023204178373150055728868018152406495733197890316334751005949016950822676489058996508919629066498149963617965338529294785656436675114335799078584331659818271348671304974031677181956228912301358139675591867702112265698224829206196644438423920977160106555590255816178238858440781740638342199239907490304101200931848252744052476951902757217342138185226306837658620581252528421260765827248584930739322195997964933219649767139787732786646700994447478909394910093203164247666594635891441572801427888463663829519144121308108089155999963332104950775111766544023691886267503578330757655837907288336284474475299343995456325030161417203263230337407921140032362645404553912779988132710386407127206601186171200054851427721324848535659860335018775968795025779710136684229351458772642410094741639472651708324998560478602031753503706333376115623981600470951242070468653415407788887843560408396587314756663254006465287500822407496138239028146714824980404682583582985366854318051646711704021107352666530148715261824179471178989525688611810021498377425522236552127304446793850137303783469545208739624999694819017039695248457856636147285187062400839475112260988381004870769763918539707832606956832291317260011513473089426710999908635384468361132266283126841459057481317982282636569778410379984490338669755898263623559544532476535518986752640349911801802564910380027581930450950378753933430167833792931002668998960922675641818677136255843208552647705076907746930700158803385968776913752243042324948598490686399782828271912299754227650620426639398662905546518888994030056935377548628719916718638377249977060910878012027229673220085708301958928276270732138504561493780258288905282095535068675612655826166028733446035903918607439344312351918211008126728129191860656730319887931931127771486404270194838618178665998781198598423299918791282462654338192500454308775542589878113993914372380349875625750102645152916739386369219495069939911792715820441003688730309557969601854573695589144028980178564223742315187003743839826511383318090528651126316423532889100122383199976248801038513221341415479050828461400074878512564023161131473412034771062243480072131006919341302172105302000890735147580656835230317041059309565775741706999482222349102217008739970721758141434251668057057781262245310879021887153295614525283450002217801530235857412565378998014903882423558308563518093117151693742014091285624097146894760503414478971099634219039695247637129901405956493207409994778129661523832119799350546250091458357847867643051044572171804629566972701987223933623961115847057483868216990966747659633917813438684698797071629622370264460952834766646968581800397344025277904855232499422053447632589024533724412289496649715455321183523109818166470077698268487322714873308316101595991722843188148111210410919263679275244836060798522584393657953240110287682288229904214401623812956710599526200112804666506350479704772608289897641344386238825347356748311876563330558926692828650595736994752488002876933362497213806557882324280432131166429944985051985430867431538646634103832697699213495083307826957233125995773968872525054764243029991995279240201586588146665392506151091732435573225424670354496059109424289134303833736534019448223382194524864873505686475685970021061551929254563073704766907662986700054760413492880986985287939320730468966210666500920883608654080235854158448670830902158929159347474395239113442584321253638968208733122822802943127557213434869374602636150612236237051654760348918117430093112929312963124780542772502596553275628726668935549640789520476550590305195096724836167938824498785017224672334880549466490339417403882522240968119749080405020658395118310677729148807935146619921624400999767911078108368131600521244882904807136141328996526642199154017472141602064572425159967419485329404470517400013264258895607834121007194390772157968832048865180190641633753984746324179664473047748541067768783646479771785256619919032208441059389014168534882532956401803954720443551652350867225715792666154395923498086444134171577259264983668518726340315841766524584404829167099694293805314914697588722067672324827328155973075286011268232157558306816221032073190444482879319326527156187778011188261093014183439384557729002443577178711557269184805536484028220859955776975804649058232906394287095472053295929093483009712455005170852098129914516852531011086793141305915715766194889968446751009378068167463214182009058579344597386850551034266075419743533004650938532122703581833095265267234209952955115072860531382388843872480119042227792889266780771694890137035673523596421530529593301558813397768390640651829435422164597816465526554521443369286187054884852496846745188283044484912286333555261438700199406838652017507047221767359116564795809231644472389557300066306741212150710706493044035138447429341163892544954023281862298094774249135120915552752435148690296298516744094195671002618497721543180508117896119791948685310210030746098580514266595221727861602531861816055355453978542659683201450522296411929823828700059717399308531947305102770991281159011604238879772694927900716089828913483721213169965622178706993776733996056073612183537785720679152194941756175370566291987240110502124384580080235274578152432608168051061227473213565247082226128739501973159537508443815094461317321861419211232980818148180295802281903053263549490660598467043248911172613129427200429544628517829880131193108841123897232634551466859694042637236952023514920614758778098232131034415455457025787214555688756276690207899054591281913729103870654040773235626016582022903320596192626315847076854464573929852503478460257500693212695348972870658879949826497213311865812009490731403287559087978650506747173707083608268298170656861278426275337187548771725202362169511406667425752935119572408753058460451998055860341836391619017348343422272250788632194937106486492344623950238498149124085584114267873023778557132239469814658497790249060184177084233607934406079078886567775166253767896183464209496096055767281807119902793891343512612355477345606442224474299951233239960684350632405065742784686894306976171633204917646561357375953075431212937608149863016030567100995522487133421216311152408826531434811339200985960508387186841217154234921095524621944445074110439719993293438000052353352956169289886574385814119649696141875680330782969973125229904692775604616514543060062595469796582208857236767316104996349165347223490456842335865668632951803831866834139940712954927137911518342786363912556426993834468057118067232188196480285194216088192942026486664065774858576131021514494250258259814684429088423707171984777348236974554694265980680740138454250432431409830385137850389980360318976060100399495950046366495762939293942783354797241181000322991845511397327925442042767682911648614732425712040411914850587973747316283581640704202141319087166453244916294360500409268961915172958757943863086265660888020534727564668946464400564985339680985480520594728369034595945164473651632689233667074356888488666857468867579634210197775636212691233948137847174747697662708736317909650727907125922868154906715315701867169142545878175019120234577164771956410484769112567165253980277060140653059894841179536807245454422012966490089904134950183051363844759030557409272130744744877303264346314029523617028030148104572993685816042857898522066789145689806098654666612658266947408976563643481414105273274610462635455640078891576853335026171831043248040060608661270071491932004964289593012504626696295230159494269260632023388581967376674838778714294669375537995754935941654695501214412888856062892090713253831562591348941385190966873031071541548698460662081106530711492581586096305168302227110888296670904146168796616591254319018262308511369100498191041024858799793352078353705905813561474464632313606414979272098380822832778538238112728024932368711506699979089158083933318918458202601061364121197012913927583109968791142161309360404197880677265220646277359494024446318258472894751199013756199254204797035788470457471736556075125726786083412116056094883418648703081881776522343722431549132503884625326839397364993990398865577350698691690477401720641302566866852498485858672492801436358616486910528606291433867212801648027267625160228982060460013359788302319823067059725604867748814760771048094431591018478646683479883827227827504187764712175360391067921966347898138598437654350389283817546389408500627701487608867599512549401024766904760460726876182517228536135337768914693566689645685909088051925538672306577982766602212076786855890997428002957979095630715572679088398503544506389520107677638907412206145134999347877436540030072383696340669661012856225159638636689579791459469436712363439113872506570388272983315449322592393496443283147531062056516323876917722734120282683916086178627911520375845711263531114761182833410190845715682330356875186995974785396860651120632155691228706408639450819132397073887113891304896666736965946032840082003806151850339142980880678927408547477872048110791439847634583822308492142839363806102025027710646774960193769730630374349133757918691125506105134398506055059723418269916984769004445010511181851409481211467366045131177437851010064410022197375954500085549450183821547853984245573321257997374643804942657297012561834973471221233137071557000711075006374980258830421497794682721883342003639788227252698081958622112576855669666364734047960001446366144494545710208796801849050030344550391206135890045093331863339266616245588167905231155480111840953434191409956611309301102722790281240558164552906790335058037862591721998503614647530917690082071529174373255704385688567129321697955017327220425726848576822709153978036862811229995221054312050400100667854539917871304572911913943502612249113921562497988217379865582239240177676745334885840167045853206909980645386732640145633081822388221078128109992862241372129601368502951687824794817784139024145186322734778670065604309220332613509036937258480012090836665611862365091657437097904920787236338249807777603092510892291458658349116654818236310810850913249088571502984114294029057656743009956711784519331836632334014960182550759501325245909550827463528819409155051811338188354892867583226390840442322763777989831161940665266874457032733300779332743823761038015358036805499286692141399768335434853811599219540727647034783931994211458697949889040518893244691019312745574960527377920995142488156102787661224857705737108372072478808661394381829541199755197730544475460811483388238802760748214719678734732373363571091493143469042076187953076255456469256464090960932067653969520288114852525503763443173885999949147828005287154860231427175505334932645303172669078590169047212232671074713008936429429894859835635723670701718244926673513113386228659772037410707064889189672723469721528345186365272186999951554221381144837579608758214990503076997750313515015122689178295361914120516817307699383907224470827393363101399782479405053006206732737552528448153037857055577715360438791582996876568481852981049521968244204149428550696220192365106682377965285681508223997660400847556613857904820008849830111758615333393443699250210159220910637624374849616254129621161719144057749670301162619452591415161459117838240984220969233203487148842464565087442523523760713122922926543393449317118602548448001967812635971557588820853894411642441608923046824844059340060918585309754103267584800025910912414630388069950010439734057876766472400925725992010136325378830759907302483878125389777643413631715369125381161560628409062173502719486971028637833959418641491188413658247559643392826212790024517490392269329165066404275642884650618022034847067589008864717197906843301388665620161287646544586556646959496551968745430041723116966919413838438229946230832308167001468285714784176372272428352712149274970200037535145812729793285914652779857156358345359261619962901934322693984850735951734931518351077408544296454259116924855537936732509697188873547015978661081780786747595853700770140851407452690710733204666959247685530295444170184013264534323206074923170261678837031732769553881199252808172608174134309987134601393065274684746254475222272734307136335400379426276576538482346774399688230694582535017768969619331048999287318565728015040269668417225563087720972832941220606233502644933500396840659731646979614077339673568201054763120240549263539222004273380297841823305867021398972932972556332288313018552604320575414034678635562492997263452182471953534079689362177453313922619945785473411956940137000833315756454877676199754801575908401903097291915361243094692563620913778540638064508851950661374062249678013420602973598565422313057610547470457202140554404658304211915948901410394254617189663919115849497428623437814728170907461679070375645444735864839571148752205154589234122777086056273403329320053127968001267955194638135376882200668204505559163909313482519555401248359074553148516568779013370725825446096703316328052053023694747097608908261501914492827415050863616901279979985901095492971655940210820141627758519797129068341696121582545278671252724797815794303674814508757952935932405946961514188317008958801616089112203821286598824236169990263570528265300671805493437240890471137019867727870811439628975283923471828459567344460761232472084024391027052447207667335209431093094674276912229387026428282339561101242426660176401693100199047101255265451721889545668640882572513663984781274577301879184271719872731344800073080142704052721657338224950556102632614309933758004312350707232708179177198395764732143847663935001031466015411358005887355094797815722141607621728034613089215148595287178537419430770702634954798870407054094202855681583973548080193550448662592579439183778130430650638343245957794077884591700575991680357474070448494583991819797508072580260666876973950684789693164035493696197189615872232074169606246963738149931878008813840553754118755875433126472777474543258566354789174172050621561988822480781630973211182372471225223935658924133881106893227609889493735836087379846915615557678864536355619327644881387661577871045315264344435520654565684256502840268297885507731734482133248071804141754282134196143212663954543593408895734068147122772470206191201824360362057868863898328082713453635938528561948020995564774384595928162121602550998635460292193775471234010095533487021512221304259267963554844807876965208487394674917508922350083370153104321117680671522146897000464910948088737755416926538411763670453758283226843764892326632464202876568885057419565511689607764499241348049667674143793543009314119896079622575201575382762156946299757354600866618042315208062444686192680574157094891377911191850368094850135340208342419762838941800610232765088524680871781258301859931543845453651862916488133244744733144782583454254354428491044726167417834802235795498847203045438197992848084034359694791013592481495749395507665855862044482519229168399162582149177122334074667093279309975171466769378502708854447415480504460961601459695024884369197999956988338509824278197631858166165712415916718858747480204944863181952826190174142645196645428509251611582054336436916401834607154512728113104248972379829549551102119394629035110539331400655848542645195193665810549535310187475293233033031472810402771696932048315057673420473666592611180738004404436173828793982385396907754867776907040344046414151566927793209224270216646822531154370968811711468799071074148599417825998581439535160842082421010046260406031912399139550849796554621092310463452481656594904441967852179562369780259056663227634529420046184121303546605321985616091573552818544921614526566958079838566490925184989066443849488426647278449570886717680818095032732726954075809804839490461991565884979038685340429537971371110465628005833388341482785012993835154518919837414737200434429417782068880714220075824173972314841072797636663653863511852262168944891339851593916072771372591948163115549974935980031783421692206782953283387426598030694254473498620823658165276058079642306899809079570119182728901837419706321374979881820282928488637204356269263456094598281123138546999473355728703956981442072893214077524711491494754576518703255266103509695724090053144544453174607389987395231136277093508958271913039933449145125956508781955720294432275308990209258636841408704820960924131380168029438293137500894127015300501418690022058612702836926053572860513591364642685040240675349020455063797097396454642720043391345449188059786106506954575889964344100617901663449718390447793257412687975938228509393163978574950777700426543955882347527500635966941656145476596750092471444402481900026012403803739860366304533806856976008862534088131206616821786109393526004278492244894609485949930111039618982092368841007831026725715536702001650502274964399272190125636790426658203843473819766248588502467526521451583706640586988198969371659880716166198792323545641601037742128756875124459296520566037553095855537090683010188115880002621798879055228494341895005556677802403909772105589541252533953925782611395037081953089246034866783152020495604675503461091167718608227289095083471425059549796543863704510264541093475601262047035225098168174804897004297143786519728261027423735171166585098480440147618092010677661031703480429092865944194907616877148364754894263814858038943115194631686057365514250285988584575702017380893672095521875078525509327880273363438047261754907046524899266620759562781518113368545834964450719846669016726353327613623014914647759308536921637288595251400138836114419829717694196047916250650414567542262968945084675923749780615450983759461491907348002282984628830478658420256746240748195999278518905985962962008214019474588588934129592661593291999101127995178442043735318979498408879081947801485168841096340562040175249265017221727369956944408092176504993590135406154497619916527724647529630460903676137754076491961221906521944900909174215557856564762995058284347078793962337952168883499637976367805964906114065732225456377375588520408512216141043693536215743947724526987810894725614002993421187261130073576538325592767449907869381618155950912957833608028836602621430163425340895133591661694648012834786986481046408448546827384904058999521304988079856980533444634459648921266278327822743522146484160678657468446616927528599372970278092544935435997002564698727597972159188019149200767608568389675046342385816162484184475546752438003270092325963385315929216729159692856288179698202206914465291271821123754575409367017737488947563910514830162618402449625811828764369611983232530030281920528144183849762275559115804400637204835303671140184013876194157593003357672629306994241959148814575425036424531899050291390506679799790002553404668951055399689853259890402413552220333693540679063764584916843458698824648791532754134934850729846479790251108883584985750495229839667647139792917233892853109452469548299198675075650708719059925349737918400757487395519537703156322407976278928310483786825738463741207541254934402533425555048290637726570440358956440762107864717918371026511646335593286708447110540839330552890484254101215014205616806991460570284419650450299831292929872235774227844885069874744035420911790238588498249441327302754834261689743037512731996958768849349369888921803000186905902648576765303432874309112799286309668306703484535578749210463825013821181467932368679605798908158260450464448740209989650417007374199047444335264495149941417492083343961857384489424254406029322641157356502306286064165508456328682174387404633102663990482702623718463816131763589218107243488837588162855194676895498982813729300824935846709544250209177307278856198198732691083140729936569665302857055997440569546504012426976060722986872722246659778634555586367288046701372779544635697810742555226113609382934033694925104726406660671124828435875528965631755679223555773698289313607798054499716683962586338503371944172571031424908427852669320203832943389743720209334093386640499876047323711845865243963946572594583358191224219143374614259624331700440393599450132572272352057176259725920427628084862494679641517990706335266656064636955636347080381829524640284041501682327356970027205214594475236691429183539272227162623335033236938797377061955809057176784589214261722220939405767779999558111481309604821862038480912420014088390733813821648336490771267380081429743706238704905723664418253897617221231939815033457123929371135723885058000300708955240188357649662670241104399207079266226886023000214336583405926368746944909880602972778510570012578350409649562602798078257558854814254873686115104629671051172760393916734172953963464147276631293924575938362874330485696492519392088503969638082293667706227056705084746338936133209774735929295857601864574473448077279565528765040695134924925400562149709787038049344962777371931523581171097060527031699634315520377559483004269147307995587078790392122980303920007211343663772781644214906332022010810254635771021647733034695081303426341704827055950541972490219170241207218336184659576657997024136558527421639692001980404860063911440526027935979031034766971526321747264902130425097223480848651151874589498583316733147457479181899833060878575068051212321762520804992804561642984621811044489494441486817751415032389184785871140403707965181362626444402142185343443605129011015660567633566963674877743245049091839394910735362915730891929616542350691224105711729489052429944264231633745968188510260132889114629842145218712682762052942814980236314874979153643617475972801559292393384904809693219984862432925448164411936813368123225460539690544086854409025675431968124488678389620549333360620618951557675018439196090016886555737105119724724624228337959867034627454478729710887676959745901975742893353104556758702103926691225217711915328947055110496781230178438670280197814884899226801289207798863336803229981205058729625284133672676527037436359321470474807524830351322858368136125251181707762686043002656022440579689801361380773563578343396658166346145507549763469732978327063480385619475566226869736822657957357418488599055242903325675913542431157690037560223187828168351641858781061207975700690670560488069906974039211731514248293153143482582849872647867572398355012647648536469124345342834355346025449739068389327535558979796796718004379066532445857673816494049900937566044322750526931982955674192808695887039416675745733760718148175712997287539274893261836036883511933736613018441345804035677606462375799415267622177272398787522566804606180536178505786766042079728607031303554600280497555116686314508592426374391570865033337650756859319757925620757040414559044954179395123258892309649334428122795667122713864232794320746833847605066873873560080292574005984756372338502924104852762903611753110599989779792678330355753757101186356331314950899518983345240681165102660773130025006403318688106254915731264338337795147746428270993031234886283990622500857517350903356982886429484591355943030708211443877775781377669201569883781523273063871871827793066329534338189569485154191947078419522784610732066482684215847601191225544271325673261722644906292015969973152459422652271540104800672281017426666295303219642846964362854740961374086360905561555485704072231532903075165168928428715813481274970794788460961766220190648819551565353042053357707342437815919241609896452568523117552105177883437005106832176085781256208486012693856829577085755150707181590251231741799080984137733831088825299014841369775538941097181093439121299837716613274276938590755668835627406229601990419084088335557242323629908117517414703501109820625494126148071485739421562954524274061106442689996216606723992445011604105501493849317855586806131013405495498210247799056239818386184793007816749887335848585142850664158268046030910165846649237956086784854394310361514694602198351447503991667834414139605696915272283065713164619045567320335343485417534572201281649624160989990367477019014920435581418345665691579511764237222276586918566105212652082982114532346683714700955421368264024511330655197236700240396330346575886787959188316658114064437492963927010754722949464271838145372794728127901792444954496574000028185354899957175229757458503463172446316140990749865323980316398797044424937258297500982501464827483851160500500141329009419875214524323490465704613249751808024638348570142785931284098481839599864478322405710659222186082547642313769627038322793973802593912834750343480016770567407043846449190140959962665408717374416032299999554992885792495484843669474767726810242097123962852474117061464902564427429886427935140450220314581730138333578417816634484535157546986728747854133833592219558984538164471333261296129915585176762606823567829052120210733223181588051157098936227280955207818592675629199117838406917188812497563564177297481191141148620755905427484287495645131036622967694208184024672839881342163706070589115230139783639935820183129794071371363136768620823616871394981569139681306211148832098651442872710137818281150947102866346181296757361214508559642645247348410673671690311171339586333846656994974905428186396920714198034356974136352402919379084551323094051996193663786255283028719125107558880523428738470675599434402265667055286785188491557588932939395576652684901862517182970735184190585709219558025488508011177472842165113672812498464906531037501722959988159729164382894541943026192743244080908635984096513794912402525708395375365537177001183043486452675870896880437865710776529245147893263444639994899960527263758931880925656787761161209139049700091018508978467448402846680691879657821684017634648095324232583188574754920521209787423496390148018003551111875830916985852870670629638638760719136425861452777900536529384741535124275845271964111522813800488163214232299325284808971334301625398909407189902586397060642283558022240226100960600394256406868364233952325789747822747288137153634794853994838995261642958742960937786026904615046053915125896882402350045367766024131181345838005477775634751638050136624566668787576327678255131614603281810647612963810363117846294531971768395531544601295685774949262735476227661980885266105461976254449230256510594375230936822786268752792227619857670053790147423458047632537152080161413263354922877826209523916041354015458873356273542199231225370257079220096480894017453973965045971141107717158293597460740927277501405329334737366468886216868936703912344021631309267532176937700824744666088224542715560253655472078367036199841524963375498353706258065416766549141783763264932745110860513835191545052471960805114521161311143502471636036440928280109501021818971883151210919416080869344530821763009769306772935181835196155963589464251708414171413559926518611214199622044633548296686124130933116889557322629313299246958791036374294658515975598150270783335555952334848694312735204886545534788132469624875929243276713750834445482510397529760597338881273529107871234711713282411148935419802075858133111018150040817265269144622627225240475663041181821180662219404523847958418038534134175020731544478825176920222295527531325193450093925955861125892825474369083542870683044174259219023999586454589044779106164664644890003256572316971471074580734180398922205604603704440844793039918667393023427066888280705377740008679648004557060311728648340315139030419252001815022530147568727706674664423806710517048728573196769279180122822166798656057104386003629900417767700537281731462764748448818071160333319477869323458010050209176543535638720671056081986083792041976208998537606726858445798765002402299295532162367041786821472821066607491908358094573835587292795675676684530581404580929524309449801369490395029072862730234311683427959131450426645424889342780200306634127312372000475734321672247481264060703896964616996780466852884242687842481695646802536959367563633905067983777718719327958413981577397039821154057549015203349678400568451446356754155476840187380489214337018162874746834854112711445646875880726217941232097151380853049276761874831419626901087243557552988539185462794769638842642009799053469963803931009047224046512492523993440489135116454988751218448398986922633933656619157710615001321456262131674104361056085759811101587622998509650113860572920710101305318957349933219991713459213948204498854057244612712996991104790125236923385749037783648298537626037489139365365168453929320845872643868266590030485002246849144426279347499933386002828996058751594995079738067286236291085056826792047344396018882760222053467972252043661396876857225222672232523599200062530769145860952932250706470479402179434359866786738544071539264442215360187937492091689688106973624166432512186086829049503719156853951633302145454468410639195235582431083461341820636975074281032336498795488973043727459175615016599912126165309533094014009115711178734465929497727834304466378568632464135944422367579159543649779399126742428068430461775924089639856636997182668583649598217323327468814645503055832691624588261972279930742987920140622625366286678896031006805598270530657250827656156084558853860556363782229983036494444027104023634351100572298370188312823776577199866659528381239186696249933075945680610455598750380545486852517142499106788164083411107912639048610555389757670606674849998409993347415976980417892653617193986619466949552649140813887818033086870887864913299973181126351117481781524519829376371082017664614777572447268046061963692720028146366750941794330502226261687890372618014243610988457651792594374854062925395327673950987201301383628569484189551567075102111119243675001600686102792065121291740458427294179858938690582374801410209193902640936776720102339511899803650704795900456206771996744198712954059779055374660607524525577339776917454783971903442850326052397461689369758924241150471533397974723899372886182897622294778711312657198429992781711601643207414096274153925114095487346959798789855866698304373417313493866515094703573860182624951783067509561521986454365098663582395962024948473802753097605231501931743386350976548787077930799707722305898951150713801608523285843108958390540760705875123367652365038536685096584231553796386957833605556487266156916289169662986313382025444581114975969608664763179254146008692994574276005340496223866296790341135180602724962953689650036963216181880177244296344710744483451601303161778274080469753444328120544911197254831615261504304681635511123854535436506517198091406748413449015314297252889955674134083357194833002165694411027016733084184923108910840012179981664555468271239118364471459404275132986841820226961309524239726819678764528836565436180451405993715893589388448262242458433314707740063744460150725838360162441154429944014028240348542478826180300114432034233477421526776188754490024673112095216374439177291777482332346559642698640183742373463119220830084748787343421541549941707031489446410814592155521926766659489281308610927939303327145684942269812285165183330261044258090623586517094686845279974968287139799689531584615587151272783897699922162594278806008633483275851338843882456607244800268449985884875051017389140412535808446910969153019568881625964066399517747016147869260469681321106098878072859064859810470405484846410284551717586925512335487410607026658523489235997268426919875728491338064411810099178665017420071989553253601247943433412493456696013447828831809120410960437715590785162789786006634473747777768532086453943891223841949410902609843293917297349511990380451454364453697097749212133822273203098109611521424903783050593452544000814870867061475758434680325368492843426985317693666384559428511058933636808931183826586378318438864650814177304400783723763224704623809516479478865898288268713697244941006316097998331242125989875474634461114124308000097800770748717174131988105047843504766042610339915113060862755082756063700880836109241075866471040175189945125537465136259374835709608724275181623273343255631537229864296398660480712349631676962692047720865678299865239287553223904165607506543307763040577657217024712392619291692211279657816977345123032867572039555944647957036030617201717409196721622635014360798527237357372749758058834748822882261119913352324667967976785029009937930831855603494461191506083824219679623122984742857214714481458939458112089960250181637829432780730219318791414210532690745707166577860974853333336155139212268479152818497670260063974267493563251205797538697446557049837264818992003573992327342092933089560383010168654823074593765340594978079272066468254757200893780164340848055714028431555974458629133393200704315131580114546601260848965765642736973584248295595355304545718530356306550900708059183101177376046045800858812747370683297247363143409518750605993670605712793030823519616182567353871321752209392461635326596888373891483664339661155065904059926642137975669361054051580560183563749530729731281457666998642730200265416104086612570995935945801199744300707953970815299119317513884964721311313205137443695878199621353923806157600107687357984161642202672046652172171086031584440377202797406865395090434594540288979617025716551975407303819591460526399256760557778311352035281851060482860364807711859956981060107468926700800209211517534493143203071472931145706237993655772573778735320786535300541627771095492793131201371803540473415271149041838672515452978378183171162194164420701659553682217760751790727835689073097405568684505504076813647675094364438220544134230541213444328447361879083302258311760560314364345110615909694198567143850707660182599898279720302453548514859896551531099198268809163511037210244573786471566655083170891808811449841363407915509135801798116723088550040571369964081755667247536691160373452663103080365113160788858586953876230916195692284026559965567557226924689831322139324308610002194373050287575315321527306657091693259891031057939087830687047224967357408224798126185446708581364350888231752578697346491357217088376683856976298949318306191763232163059642888231430995553057694676003759939039720012673711854814945716793334079043784143252033982495677451942901189059524145765764990454888790620161858775757513423910140922695147942970655600595279412517925274836950631205540139083246138695285282972097370269485171524199314975814710780611128427327269294709694029020666654216958148973067447089428734390820226011684890456096865244346100443089895992127706243111206196405906105754819908657196874967744541435361279272416905440812198385435248318888971097830368981642333926657213099520289500209417144231626180846636970170580146407053149462587735659771696812061587261594173829226459971506304654116540021181147000068397400626700335610971301249721874200007804384571250125372425186884304089759290663912376878335571148408599232827257047294605918663064356013437350413243251403980263270782204136704809372303217065729039466462504870592759121714341015010919350804828592710771110514262176601717549428539622715053910122998079240047022691712632229169001435793342651020922843579742858128722247755192861156121880164304492908362320939956937820768473986202373463653369046897262580352474307312724229766723814413495161876661747793633959922592966164708613477226544409342565090980543649752029328658413562595679531287175727150052055918130228446425105812710348013958873896174802817191552122887463143950923366390518932144063186635224053275363568757450938976316059385609397447355118227399185916492771172031166106681136269144970639970977877786487057501409309770333580347770867380272570301582165220562539928016220005732311773465832974658321391121864353600669262511177325635856168592191121227241480223526966398241705923363852551982220332694537236691349898217738080385480870568656439370808989011686835325251167044794807311992983954100322959879825627304764267626417676151420421869629163315150197611740902765281235676051351028049284868931424309949311485310306309298368940102967969212059433754169185737488695537116344788800441308744654416342993850389691810731118968828256705538008404482918487870915107158541152551108739047234830047689945268617488471451206640193882130642194146295043730021744578151182253623243305337730522696897247581761404083531712850372579796327674368293649366354077533252256381048532553173392365528897674315930726265401612368425886104751940855516941907245767829530660482352515234161305516864432313094287379433229105936403213735495926690828692713664116996848582350025789420765945163104764677196743908913931348566707441127725125435167877803997305765752151633507691409678457900386193353145525829825381647523911713178624194879835968470642411786748406474745270466794280054076032876379294631318777081870863847036974642038320943308626638352341535417821803403181264088686276026744627594138142609447706421497246751537898273528743850982774811596064105222204674633125894061289826102983102810118502701125310755565105014161347611179178577013137970849398097577918924759444942462823579244607009151050479851301887553388849507820394431457456840841753103204773962699451670390237041994416102474859663265806672075427504369840077911595776656492735719017652255797994247312965944435631058044169644315416595239195774768194217178868268236178702513293614034193985765990543364383424521518709430017619276630288165430649793767892830981700059036770182208122438756824947360572149158033459169311962033025422636017922132478931533337433683677022098066118828883242114569857202464067469820188726947780584912826351038297510838836217135453618840094230571594437138942339356894144811160504576414817481797553054561105262638813762491391169296121944031316807110197947678630213647977210652005746103038714327913037132223592689571575970277324120406579370663249867594795024011545450325526709404061658276976692114948407403440799755239199501012224641593506919844801915345679207182515566722194647849864872928793532757925008528312025213823749444610326631628257848454204426212918520048663872854497363575274214813397070513596860461849591964888529310307052707482551068609416590239848944276536387546229903622181762726393601623326132071389736798642010794682469371221467985223863283760837694340338299807782727110359452130747927492796911109312167487913190431436519447386194815424846615811764584600269639685302612777256282935463356107817521456261660106637983158373214778851655164673577818015047394019613007610056078009184157667702883249505907003523770893365674485461155820767905387712102220791052412764432925996661963465361248892405445756835986456782582016103375809674647967545525112545797597991316497281401488142851077377360152875438155059768415976051384412402850496615333250139895322266143341225953611168147171738602270953152134204832304406729382230401026487424932053387082693461200746432856619021130275812734785093578077962791939848622440644031592037926815839112283195163381576286945618769933201995318062913494157242235546384884288186513716231470154568289966521734105480791368116945394735288121494835287494496224221819714172274518971558433604597430549288878255914361441081363103548742364621213763192783417982975883284406615413106922830772976233309682461703485137665574824507546655268893433133014852634974033149936583339446760288556651077236218128972962564749211798126686372617167627697520275982891153571047977659639324366187613876537518579986938265319956201059481087984466338247748700528712297769313780406716284965725511157069127154257461840675563983885682926917142623472949872440478545897300745048586048072835140454769271319601270432930577894167444123072000381940384039562799345210776559515602620664875001682237806673585388370530425624905058162167341174309429566701719973314140929515214959672070762001011022788875266100081101293625133909752488077122857836658329166193778380117853148610692685897926080245961575761578980600382830800312750041619641111401760508438269147347064040037780347806940847927616153795888692457363717216874999963863793603103127860813568176168531312210596601043579803845658858757878800233172296054664262464383841322008411642078145901515976441897543011605445258506061440336075534687728378468810833307159313476128345515325984473304416140724666271099137730389982743722813868991488089708555291273502873354201550462682185417895776828960079244103569614602043888549094430222405947363522219887372828223362288562914506381435869334317161416787433031086855750332166619761463285041412084280351748888599704500597396714779307455093875790462700440905948456322760627176442615869458452915595790505222410756020045850848118686762824704283944305980858085306100038773486767025525435093193174634414294253345763032466896744211077150185997821283378451802846727861956365401834118407228883994913787084300858213919836840856052886256184324683732420563561731947547816848589486840980662863745003290848416862837495021248787139078280481383830020263630896190443491612145634890499527438529053304052654427945421139879692131391190631591451339732335043161477134030473597993051129146240020379804762541284079877876074984088299373147160408529972609011238899218105481209284533227892650863184036618453262450059267250918007987537920827985885839865159160937647975474082900134253921981867902367869167327332677012895959569364759762946525214291988965136786235273771208483033081775686481438617203676034543285405102036318513596626509976928987606762667378140603158512365311575753806798106153381065015112256606885402516104545819911895468826046203930288299370587775006184715058530858770486622923367247811441131227610733432213790932071616529302667377629402784597477727496258654718768091372699729754363696725837348879667046117270576804254495448341842612108111288423239449222946759649065276076614462633908292436614721477291593435989344688192491794508348938539268884711571426568350329478897666198669672938205816309932781687670048393907847059737172562700196540208387028294081944659185401282991049704491073825253070974416671991475755512951512283039889309260206398203831007789230917456203802176906463433617601837513585612294491050298441593953536957889394141920958837002546480841828240943933913784407412694887587945380843109424680483040628224381968425862061328761892634301461302609670022515850060964524883141505550409297036866622345680430901589448027777522252629502947488974682822874978049171380535084686963940972266186047887303463474773860147298052558158231723508511974137876902820017655692514830449947511568254154682546487796794948213034285926685359700162630864203813160820751351836323769167052385736323804322665776152801420302893853922288414954155972733648173756094339371869060711702420147659146378870060396293694346689266263743029367946970362682368445180089481420158558562398672086029148207869310429794869247898555410196542183734334374032265198061196709815903555795868678837463712154773429688588868175601319281631761259082182705232605309943649150150757902445896761613073599848680344754982856087709169164719075713942161092445444515937065869811446146296122393381222363994692702495948254658583409553948454534299960772355735181410811363495894211621250388679215257951788385532555492118223646962361123852371054064257344249848436817805318280804832475729502976161562258798141412621950023616274058390217801187072168719107595219993169027528425602099531037715971851661028521103290989105278797804627608615101710146052462176229686797478113055823063603456804581159788574057202159770158121552914144447153390345642935328720155371379339635071182381942354429096175728320576740430549018833671738751586793837221977788427727290583601876425475615186730627331327372563098010325511725999593021206031464942273111391588402196396246834407871631000254140591137927973697396646669835048564448466110480717024546517696990342514195448947556901359021826545946761259708893307020626795605361632084983519768463961767232976839066382731890578153194349759464714753295938956769733974462867370991499561831903946722840554726042529941378720207301448145313466927487459801473139815288746617122511353819184002991442619629335751897887540474180978793444754084114900392954928021135713644179165321981595940371350239306253111784602988091197871714556169788362463976773112761110133616321261907831844436325093501878330152456046553534716009684985456879778214988857293929847604722226589345778271527716252401207700883267744628570975248662736382175911926177332406466476466800420754525319166921045238771979311667364601513136524586893756855592361545811078042791930125249424712242171167944314663453348017025995498077765070791646026966399559098243642051502762619157699889012386579101660205343082721681022621360344286845180931730172001727795252705187604897710506324581969917378630318532263280290834612828117118223189669878828792898460121805935223318074787504922257931379306576687415343351058738252049684185903598475609752415231524275640301328038758676883255488591968425030889024692307462699188338188092391460824873559317947517568934288303893240820587687236815799106944280391520868673962265390460288287113296189618302697711316041276781545006619805038240565640948601641619597208776046741549311814541133124048593045024568931987524537989281194219704466270110869266464748242273524672172179482221018291132766092394959520861264801656450667867271035413007344547869790744116345434394854670894973155953146320573982350554132078145070229219535545794612050011959863370818287079846404783446666259904090394528092770375506859497303586059018902497412472874931496343701441998995122901668836533322815079252063169279523314743751429057582714210413287108368336346715304652928580558025723222962168655323979328998604657247020418023006550913020114389036694675169614599064144671209044833749397823650315249794739978814184368704931911479407973925451847240213174193259917924897256503878315042492216957102108668463796570439410638292011666850724038821982404955951506199582561658550138435458959873108640227682207933112109233950147090801451550283821811306321533894143467685181598551084176229300662960677721694654914299643681065755565253419681088836182913103054610789411732619608051343394883582509704813844009149736695439158125087461799690862350180703512423304603257192179206869282336863567991653961137083998974874109108561051555981783612256493002925859487255531910614784573830175074420284169202880404894707631340277578928102363390116144150693915686492256231162864905330019945563136597921210203877403970137960077704988788118922782753504852920286162179538534853311931406421854357823856009193780140983411150144469201562126549571848939739148948741197059328475414761568611593981274640913502200387021825502477702080566628227862443849986167185835100193882390748443211308946754065655303222826604577196560735174721753091106584158159401411696779881185463607431930706120914516928669373543158420126437481845130820259728310267573603242726970601846616573990761529672243767888005241123829535381438586764183891608483481451714469632095145535627941171165301268966407646793498286512592819858924395732949063068560920690733831131754793187139785222192159919153174321595461006673134416284850152639849739761941981106440208986198543725308214173670171215994695102380936438138441270047492210312250717816407519073960018730284839815998772776871917545117639922024278591448283756320118021317386934238712065546921904667597773639286563808640621151896379094230407412844045974331151055296820659301585724005918838138956083852135415302765761877407039675495362595741168417993607790997309340222154761717948949658603956247437043840081356538090881339644872621597636610730518433258992772317770147513789298511731813054359772506486793692639237868759993799951017783350805438988811973941922288909571622826061706303740765009137206879001937088869990214242420260885460554480684546269905062397728321901047839045483974323904223393112977013703027181042924997315959517794277532290174271437534346260576453613224486851892786056853236311663787615346311287994072485324053294385324622881354194976445104064757865658132829533340319084045316616623472283552429154451191293370169889487214288741817709647010505499618566423348347256191177761209907749746255575850507307274203273770878074854208272816984709669797256711611478805771206367867786068818321417506765317277617801287004392353812570199432621558003093278639108031106507088383372313854905439371765597760998072106003467452508819338300877819644964276455745131692373637464351184378866560210640939211857791966285865013820805481476562769551738947940566662725080777858570480858417359852951316424171979789420699973807482422622271122002836750634591908826027948043103117320908726850538406042235995899323381347435025992210790901716483357699922948758569955134176092174896480343375320287429386803525288559056940409133864650925902462744377953289097022056699559274243432021554601166459509045216944785563960951348959610189321177715291889843455658650639427114386864947224912639714433457233108145573834362731011358149897389054353246109202433910229348067433673394652691638446487282787035397624138185598786766265953535237435474650133865867278088625730736771323900482172928116976167985234010475133810977391853590362595967828051441385964110619664172140934621988602666466811645190159258110120611183947915433746952595871008269730401865808693360679317140599192337021033304212983507624972701735083799918312077763477726751393737472517978559370333303195357315256231235881492129427859656960880372064968327543453853815119857194231529444002688670956991641312527939945614038820179315217913871914040984757266031632312355923760163691360657989232449800207058513893040740832670700075470554220762881439941748432856569939415165446862268844342384259876284978182534712112165170192974592845637967591988719876544514087850721302294231632840441174521515488823841043094304979639711571685427587019618549801492873392746414547577629925544989138663252047892812408891528412631366589589103040605146056047157117134069232054457117532275590618336130589378949864253436756412937089041475921458365874318160552436597964084353407367136066379045773038421227041637333954404778349915672216128433688917079064928693239304534813242771075383962098346530112758850273480706184764442086161581359690220203997396998433680790333714510137565737584812233764473962550695108705112456244576628388703508089743685259005303781315996010845944842342095412364233485024972921064685397863979137486226915905180505764913381245311526977798924700675814717193120085999317129401291430487874266964333415198728468969312482185667312138212749150380846471728625269221182021317858740547083443163812380446846010878384675450455229690119230616286438794371046563563446142502670454438104382698910474846888635967536161465443350662529702129451609044716009208903486023885440546124056361117527158497933084351232612685111507870143813098892794240574247169543057113643774361264038609783634489189621457721216831830891826754876581102191062673917934865328997734635491170327597406298261602973877151942195989998338837342923946370916595113470896412657901323062338164734708459127809282799284074565006919297570409288010570247606563792566117465574881471262373984136237972692598875328896372286111490659851286728581406870922805229824199813875658160383204474144783013089042339583045772761247045136374077024015946254010339831013613721950200040714414222780969221887294063404689035484811098933888844010320634040418265292528710649954134251555070824316687453962675897468438103567426160765611763047541794942475601405029014816901122082395422210497809002651974088360984814296517420449279904963683005013536982140646390497554078950254311078212609876089988329666978269417358805671130084282138051825293723025331363565662321949346031087961212319604528048694898709305415251041968643611635201106467726370128841499134593774348803913404356666639304277538919682764553661605340428661479886603750314650149376769097132409299371441070576773544860475125283053353541211037856003107469749607310336129499743620236881757306839445772135876720649604990982195840871006972693316346402741350908737893178158361288623801052087479486723426775075799881293971749074803911837323253145440949346159914023774712059601427281806874893965742380893166274154963636975109217975625691337094529190402986346702286920269969663744786300670129661666784282401434442620354020409590723475224443822412375819734135255188907347785468748774850768361051961826957125607268253892526512523771567693813080688471119244005954210020052566248987855348463699193927379163641813582470885346613647263582117042035044095322736286720166939632221988673921706502696933800210714080852094816597803041227380104886016500006233921917595160926755672161155691576611722138465799793272949539374732384991034897079300177635821470793656910051981399247782683347859504185256824304406509833997890038244291956831311731110002412077470034015352062274602635871678658527243438277252016292175042543666958690900991490459647323645569897077810954975019063684414668167388658417760639455705431044307285242617991870993470612651358977276502069376919110770670257802839688532774530655172540964038106589154169147552979891807869409893444603070079280433804703681347781212071773340721904159660916055108522225134299534898001579142619545005930986267698289122238552552444953305256524611368118795679124123493778454641843608070659836389485289452929370067793592011311632218769547654594869081359222373619219900111511034946840899942448313082650687025225150256628122761675085126918733565985573101116201203858105833037084902755708005290386563635033739076629530054092787764999585622073123264052398918534672645289775605555897856184362403449555222534067279742142213262534364783102193997251195450456220835925080211601932338856084013259708435561772867621840092536795847375258545998766057399947604271218753703043387210138652528345931563967448326755582217675549935437325277780507336728097643678362022147859965798869036977737838888558822410706642800457296358071665855808184094749043878723588557132142516820973775452925969911653261691280308386644894686866486153929376525447715659849609411323897798591408613785110038301346215649744134315993015599292277035093486584978616116617547795221457144349409013679975359436830632869380075512054919954091729947762438075108085592223211689651667100976888763486942253859090349113144116548304471329142662189373184007228939476726403225723522844089929546324916881185662815614592380546735031649109148969114383392118821212280907753215817698183499549901826967182048895575145963443934683321196938370986396199947571905175743646044521377521220924863359849215791293188797342762066961869092414912302011433693288160623449353525108836896024977356195308191220040192671480945421290239751402716355100217104877100555431297826640744549995982665217169663577121118844601476475372631478795022891913860118053584369571394100928663443927054342956642752093217760100470687564951875918718896207858405312272679993059488474768186541987875352973780304632366052103769882622147794039361372173431518791510442359049053696331777710199518005356912189822718263345278569202914529170420914309191298470109590067788961603000397328248503988025258330620170934468474660180706235660496110076774944330418413602565282356288123211532958622485460991385951819222531572804080816851661299016344345999766696398510402469006942202986993039371571296315214338385401791181302458661027139458322912082305003552728836397156494789526011137664504418644231505089108584865697921561169959201242385402027963114851297376326742565056089292814127473293078533747904011351334740584430518925104825095472866376285506801484279035457894280186300173187149537807067690758888191967754129279426948020115853131168142383710655887502725848318712933231806200184069804554968418489326010148838962366064306948566603616055660207860432904441248280481487494529318702458002921082121525967339926562976339679808891618241449069175710264250474694535927294649634307533889980171340237876546304939417911083422349211255931314825380419465476342025244564976649065777873775746138924595056642542911554808977368040766393006394193746320667916617715055839778094183039882770733148220862377867265196000098065574085175201605458776254915482670385978280321074855999915527815505833026327208515253212866032794622566653986627257935189562791262378240131619822338130757180954077658846873320876686989155548756319309184848554777712241513631381597060846727388378176430204641783429913776931658255772750129947073686035252926860063414059624269050725619624220072162749539153678245401033136275887064819442067415187593979722916605605948143845302436938708076752132878892576188344557146889186051651180259600492183634058652749995938473044594801094374219354991269598735411960554692497622634740829423231788405862456075797435535129346648435176438527660254723672028003395326416437613364546879962455625690230908028658274189164642532788212929450114479505379350507889319281866963928326936574889468728944532966348709132962707514665552795493570815043175337789376498002246196712565044072379558408544328653755514003540316445720268459303547154513178785268225217294346906466298683835684246874626709315100779912210857046012658185872986452211221074444213240525307190157205510650334339288611861628425217166478122131816099154932123144622261529783493686524146752411766437062514872942303514605450049539934930373202350864088378515721729748130280791330690902692668450754856626530448832971857830407539043984439077006929522655667873703706862743696778871997309166150090665301861300726609791918298913320967097306713030703436019246143617787592803083379707396673025717114886146072898710900590352060528516810694471497865437249474592088951307664914137820789319336671775811978193472340750615292956677657543837812973472206697011909014711255878196910283792487901704143806629006635986503652332350122199804045074496194898636291943819715100227882839691413804054700630793267518528248872505187654014709785477353640232639775923004070367334825856900498956030990586907295131792732390986645689762200312654622656673848844631314660424615982075224999505556695373085572317430241615804244848792111589099867607453291674354009101031518296166834420533267476595865624145530417456736736484008657465782990309238187530438632109799832646701050209774054569533085765131608008122281280171983315322341370464619808470545198416552440931159317385437678226616884909776972327980869021495148577287256260848485274838676452145802913689405192756905826930310469977751388936550317350381271997268779500635610216233405325945264501830855321528023856405659037891825909481284650745724476013023641518328496462277245725336729834608286734682090546303276564015772289524632775059000986745380516958495518033960714553675242899973813605772825875056653690196061496194274928342882512273792553804221525329338387802542814509142866959596717383202155035844284467455277893723350401025168872822826084394145762607604644596230093050922049463470070616185967422256707719049679282202844404150843533932446167049986203528278147150775678718858213839025433572166364605661142850992420791223504181474040558329243886002414037925262566824201200771352211789245155496596415644988168654421487853511422148969230057412308846747968104507650087965171522230359351980605946448805343249538903638510835395451063662114705154361928690305698896420609610899698694259391825025503855548743402028481716433674565254149110215846484227862447510577851862422537717808313496932971977447949084975093109674820839442284353788638509974223910698798068435762243771946093088893804679437858539207998982469727667691332416135992170681261317842480873908394650364559711399830680554511765852049827756437829358374218933822126856283346361800069529074390827109229161258770879660168271806334945812515898777939978811039930534533966354162277030111549811523588746746422133615103691470578952400653626549828378865455978077979653648991037395753096399207937187438853707140389237119937011688047213561096980653999119375665723461186997242802287845558042846434947302227374490765886303020972779262389443192289962311013498909362874675762249669267110397074148732729266272721371717321834639435484611480385120403717840017220531909399378327574225509753207439564975212767723560539254063474018274072388127564746631066063938610130688268416065811344617773848272398940641278977558733324897883254960546997624587195374623169539194554507494617939537264053531086965135721270653697754681452214739693829040682177379630096043350240741310460928827238611049732377379661638390367294505172722212256576786709545277600804370964958681774388872989879577637094021805636743018693491865689255717890120702559448979325868524254373578882866625181360178153364201107038576186104235404005874120935211880669205506221691934311752423132336323864019767923788707128030264614325070698804800558420000204855240865021515857419352471608962644629729543963428755263862270834733010212213713240253490053604983251735820936243310468016494513834476965174370165210641440228619080193735441433243674402749178688961893057707503012331083627055422404442191226389813055724454705062297284873248098082336737967506400281274377609125931361991452942137979621504697046946688807597173490399477776459057127027526663435006612645779336306161942209991673663868732020120674819204670331134399993114336801592612641023558252840267720809917096016359512270497766923798720112299266318135012583626887158603006060341562265237153112523118730223819027313259747538571703155349067904135473557244811222953589889656488581672651571341619783726123804444811883246946014302329991222054761414079323926361817595505328312012675726028819910979301965741860677005693892065131779470098867276692789566023507813310154800168209122665271456178522494357936467911886960647455083580622594906480162660569406678614389265670680983169303643102539831058940238338841058661723147618105640394452296897879531077818985232856399141102212718903223452988677089943406383675742213431636425479854002993176872727767301172033311917625155938936827620843776355393573256313747386583632313604624099788607886313313232639571853838653834384898837816745620927335819460228310092083814197661325707283361935490274631506485710460958026217017304075732441236162423411119992854644880646504717577646079396291136704353723055596695891684252108080471997868993045863976679515090956292918898388389490510311316890943327022822964286932083925629787867464358921854641150512264349452378027308658486186594309104802550469835311576279248260123723014152154769400593431751198354064380198414576175643642736222044563373924774158158290344551156387755981443676902193536937037421280513024623698041059107200251005403448908469623643116294274629708127659824526581279787271719456052998439400584563002751244958652638717923443838982191775308006560056458535414829334996460808450610969284132059907590783282103398619545001404009955637574747838065497236867191803535549180410453135783748076137048801544811027810436537634229261551549127214472822364084364593406739299908915386246449602498792133900120025961419903977508885391459381162702336855999061767582228588337449976040269542125505585860457316269714610120155930991756757450862777354397815477662496608618273551851927853558958917217817936959335616649894794854556192263688323775882514548748722593536871362638184570443297922668868249327757777593589601628310176476610888078464291393016489925382619772249407690754162645324931501802472084636101053887218698821575653415743165300964333066749275679378853570197336283960413182012604492711696299327571569417458367749917299651407472309375312704540036737204039174061281246550712399711287469580764618596210595517168559370860221899397796353887029922104033583829232600465992656566197591960083168902101649016809523735572848865672624168318784077674620329080305441682209602470243660867875762386852469070401542924313079472217391626718756445602133241489415955949067394727926498899179973362246682784523244491607371092716256061968870993749181585650750401415600853460297071901846018515849125214243355381122055182346962641359827965405884085701328648738458607593077536581040521785554960588128695490977377746643529168885009499218772974490282874277006592118457320692470854379717557027460972713127510797551934425065764591215399129039966757827861065357092374619583644850350299600209041186880379527216860575363641112474636232217186037334769160541223144593054438208459702318816552042534275154366646166666126224532612807489291783958824623156500421272567206232972681048256591467174214258349570595739508262223376092561293753652344952762873754053364659909872466981358261668810659265476594919377588340816316332007566086498873263938582020661418737184823477529433307801442251439492834997821546358614464774090871325436630283300914768628933937392716315267634548148888348081106905820445784329517660926755544908311288327208569197679279902006647274382198523403742327342202862422794148288137598353287210584470657320551630066843439738552712278754687969450358197002883303807849116851682631669333709038676739422128786642167362254958546871438355912905411744786228671673043992716386664328272707826910772471514333294638589098151686673359224779154322916311120496059574786473191297208977293264051520307315514934639104313863530835970611287986274835718898865270209143006829140501439331791216501351484908189589570258503142587031790084983743719094688113665813288743259197636820514624885423895298134554658215702258374563330500330423724452969417534763935990011439733804026905523799099011082100610219778487381397581602561857624697215306348771483016297410869378289410900081580708261770640249475034088963408360110947263450621144153162040133658381611152207826943196243713776673698812975433470470352635849833114716350585045043744521375828524959487649670438919102672557615138823781356666749835993423234522440414245137737903114645114746974310582707445722274640005863289502251276358838607010241686026321308884085849985626882532182866095728225342267157874486445582898941972174386081948781087205564054766208565011539899000657816412645139183247464982836387795045301466871971180908386112855829192712116962744292176141168738113686528121302282260113182342482832336190332223815203599464444232713391006932842905731328024370638665532079326959765997603583708614829093797350465579299098081940581700499529756738881768361700630996798639312441011531663930421299264735772639799987689858683318091701986577653908622424386643444788003718506340288285149492717626929520757473347266922576403011121392031132378944565720472198136671547005515577136865197723760477132405310017375173734062707477618471464368640163785602055448139021355354626442734517066288281976252203640364113683934492711951590214391659341043210575291658986156528115464977200857571127829641802979499089463009445707201449379933316247556107846163184812749056330990860450674954024632428732422829220198886668160027095139060950621524713076729959642862361630888355226136726407178378978852077992805154702992566289296464491172027233512035843151510588728021060742503628601741780241673133457999512208177713200020424728984690789487038424505315707274060088199025247583498558203589310283786374897698102701905104178510679179705973894416027710562254419724369330410010546726668681595044136792586495559733818265550521339688919345914184896636598957070283462439096844863757056690852997584444763921358944123967685142398874421120275672348384698700291144144587413284029674698521008401851277510282921197044436627492349188704890326657069999083032927647936063795949242530998824873704323461595435008870707136769005452060942641859179943464080231353059527104796607671414652037922651675402250591383911642615705141921416196481636918966945076851756274024474441266205927418082298872703654679631321541424002236630491437321138524739841337998513510205644281689068373850116472250061619408525369601370868286446234561404983243641171972682708334842835624010321953202683898939412525611064241360662099082098520879927532613872380964932230593972167655949345303179372565910615865369764493464425359276953661030520153633055652019535854074102960874248727141385616085518548336870129994369555522965660756913378725277376760809789032738585394227644626061732036884898016866175802222318225805571546678335220799303642627336769079896778433477140026374830143878116619177534003589840362681950462803646464861927765750475071791056866995719622295670354928101745833213434896813092104889928494088421295744227432854684886695532971515409805340910935175725864385512046687992511541237585167621979205278001055262984440985832818791463594386617539780068303469498291928508076380687418967484756587374310470643191705504920135910738368792998631219548431930212384791575127860439519972443970917054393142403850871780198985554646652485640323166129014712439636616960982717841311829687682192948591214071302674844266605017308386686424296922485440874309839211835823999191305343012562880044327713048632698378734159066293819524141252594868343155239843472604433313137992707595970027094978345299022436654211603053877489677343423006417369897800316898793391174189255158090944353427468806826622484781828113033674554464517292034972082307526550556107300880579136426920033296197147259720107603063155359781933413334922951342687647252557956558408933908489777906255128231390037781426468524787359634826227102180203373978515960543246618693742444438695249618653110713215826801675170642241907607187832759318234761070486399903607661732881868714780077746903650858729744246185056639756173788682324576015928121981541729399175658798739350167498847213178899263778272585750926309595129616379974496070129284359316141214312324443044443593587485435705241862892419826355992678941004012302155441039005497474302373694550022790637839245200074202985763611529192181193819253199691952831019830918655775656448944436072113355270510005928791594606004634244106039669632600936245236696217933686055731661870563144301953253259793201342447457443037468519288406728760070816768349604225199503747903191083573330900679715510483919100311919548224863014815960237330384457081108672795363429716509520599505863251847869914824847654728456401815829786059947515217479342858459767253199249990659960583354226090280301978053243455278227951536591242667997012021149647005513615456118939411048369983579781602919450284762412232438290737277686357417085313814673195499241085181004653835361545645735710988307573758637758126853044015015886280233346715530524054119500933195154394136307234853936775045595911468448368859113894329908541132829431441111272664009321065729381522565520367793126111207097603993527845313195302766596171435610021042915838675711986414243538560214922388900867545098713923828252328339847479950835738057916917946319942676199656319186048952257872099871368528846162728831028739318219558499402357340778032483060955139447116369896217808577117362475402108855021098969893697728236886166311937700834117909418017304673058642222384246194883464092701712042855870260488472316354490421497765659339544701314039111803283801933156229214299210573588359825233349426010366617522469506728941234381542104598314695744511668651783786106893307464925963042071516744502867084166620415047416724121932094595074160277689056139931112378487636511818195413577359878096720419935814995226287492776944146227679859547630143924637398223422243899357242002881269372099131743438512111803553845897103253486429508880556649229817239505146792378963166252918153535799200384600124584274794211300899284395375052824243726209071818015691188172557145361363160772902112194999549291552186783335682466630831100136293149905852862113264303960723453769482910720966002724720984331243945806036712098277751490345118232020314630487171944097837363681193917284044704538169910142735336052177176405885275473339860080461117471992374421099231146456216994830691954828558293667980275793162201310380510902575784704055562924186972285710450076774173915610499785573083070587858107391038025936125889530824814473138458725017560185098107935525057006330469189829591939279586628383972451913094044303841118264629715786464985306301239577351294224759690044186078873770160719910841176071445677330454527373054022346798869673785288620711382851295025751169095339461846877740727109555662324014780226775204973200996412967708819906882486403826877333264923203379880263498535757413849028818880982474863592259912786219081661895550907030534671540796349364666563576109346601380820003658898324351939052226322750466554870031891453051383123483780737955778340310407641171217653269434378940479722685681979336896223780620527346162016854950002266001752196962125374852215136673155872423755005062198598258734351478823501646545903047222510884455775503920057828549898918377929257216905584077701789021260751079096995477790534549342689056718879283987093697184714166006332241510998323557163952773386795655898282039621020892263039292756860997878609383821497457603816886259281211582663185322684713929818929621110621782730678246086195585365318271301435734239832100323044561356170683781863695136527088310219200308834702742940792826487240394227676679217060117964326643107134603406837899363357479886664447830293644008795904695075512542507696669745683436874332304825800926948594027412821917158321899783264706406039264730344218818962069913626090452254417489998646348643712994693196032823820269597371755727696919348711582066808326753417393271877069068777925630321390300265732286773733069940008984629184392589659163562780999982071249127361151078958343998926440182642864848606273518333295229875359806479805358609844238873168367567474417786044029041693179259687846988805306749285950871788936665265794951524556592211585157999436516077839727015612139256829834447425319717360145961030907835807897681450614078756518063394681511983960320088533497799489729253010863929429564490435361410009785088603141169784410876009431541154176043326655059215562373993865855371504633030184075598776805615999988465249990446585043194305023154019114134034633790383812641608435796384940563517037299160909678201988688776976255297567640703326672670313414816124373372382734386235371418684832370462370165973394678195738726410590321472107290163091551258528914452060634595676071788703645188367093839357483161451832410407678807117326746790999502811727949628026867506028891880488350657872195090434343044639837938048622395902765002901423674069014799914307280579210434044971246239515183678227530614905390041235328506278677066269159996888122320196616857407091624414143127019816365089084144938356304114536329105628730513803664459113341302882744412306747200722925724506848419380252590777437386095923718307090143969046654144921665947836839610476612863130162811377383720619734754916522382219172909033619350815437731877020445069447954514374669880265446972907520161762683062731554365340340721001955775061275820509904452120602110616031113385495335997068795314941141386878186286941856822155064108135109973780420761265452689600107032663719954507780919985089267804126634781073224756325111343794657597210888827000908318296319350700750927332180356878670118790554735897843493370863674500255275925442002853910938471935863065689129355856258612598967745688978549517588024583552012168908000714459885366937530020283153894831517574132505777831974811176605984170797594769595922240036938058277146772389851878603829320408088813040484282797699800416487656673899855064348879095174173577960847349067966417746932028692886023240573323725573352309167062847138938240897540297991005859904324341472431917818687555620789838425774995794859344156174120282157197299446012194482072800242624376881140884955283161125585586903189317464837081947550132295506994260843127301022895976628596535114455934841408931722274127476956175259222793227002589057046564801850965876870785773907648441215952400305421845608714145397806386526790494397700457740510465001192569301359411770731422793142557296240858587456924011422466260321048071894877344358609192899769044468651446839127147873620805694104919655832788284389759242270027313563593457169200946350057877052587894171952803973273077725327895929893337489489315160730847958697677962787578472448375843292317871066676440785500881868406701445399677150104510007907822692576420306822684653121297134078414624113285201347757745162032061305325967570655236912419491514387960730198809824171143876729258799026835777012954218787928372979292168822342578166089210506522899546797789215673427192362130350715501583197637917325126010240351352143364717663412889662517153639274875730704911113651191472727340612086067185659693972045042644297401796211292578437053691416520172621582826538646960420585244601780879472272454006338043510501955410914051560199158369307046860855346971518880848763503309020037843282247031211103737415274257951376662864588191378530259078947539022976341274492420029013961609462465510209731861051167679891468152490590968062977918454334427219060074587269143068746938173619453674059765702305464014522131617833765166358992336317343562098244649189195590437912236206923253457914584084772453271360527835154870974830970326732163163966985022557424138337515674609258184093806842020214000475407372533247660381652687262721397902391335487163529117621114966334653450566145757327340931042446641368169643057635215118168087797378384305107059402388636206052126752482023464240518996331398630392815687441118269690145575113392241264177920150757648744756341319828871791024780613317435963903441251533941165151623879591095741258013921027603645043686431306474141048242399378759962495160802519906194969330432738294565297851275870090620850587863810503699788279000035776493340550877634205410275158057178402740677098384821905102324085704633478084705168483808852572852502076432046216311903373356779409791956717407542082928091234003271901582426919818319102723983461550255191561453004025745595078041412126916255454997908447408765976260678368879243803773334521047304499281845468017304047532115670048934849854924901225596982184291126105026128903985596694774303685526041814180742264436193764089911585806842683346216958544573686955058057758130603883366836694491954476138781122723460025485165607000254603004224139907034018064632710199638657317485390644667233049078218013409057695460163494107597054560019361504336818646940028746158076252850221554648560728077674774351318366827317113626372503490221439156502579254825166016248716324271170790157732706098773925399985450804030777507807174371118707505595808449137470158514454090819492194151069223084386212698105443102354189884745715926877529833356172062446184552728410952867848150101644828955545117850511688024750255274695954640631098067561728105588132142786509058316014224611074109182154761265838699890295731764466206282528196248585033131724045828908176558539727024191074211045040651956276342322950491856000733475653783658871391042303392634824647795548849610555929882032915282737002336437922792115677706491140804947687558217492222653635680860293863182033679529299951623200060762399498364381997413549143959776766225045427040024772404637573144918298110568779820741556429150890470514157852454184959486864185036655751195264590254798024391763937473742250787447195982814289747141696524479504141471298512956674117529510955294672521597285749027090711416773359101813620104342004601200839399020696597089494751041506851380136606057353062358216341496031174379895792328761686640107057067630611223294039078981892793634319667454558330561290021424956882286668871052837094899100974651126901231479892169740503928605426358545266148728387545230142116372272284083378952948181068840101758607910633976894580619717446857619419370408907500106216785093390369737297840908429809475606403111643274946513379549940967841378065967252653064888968072364771091490525275039701129075830946334050840872004679485551084554477060968220966882487726426418208415083334200885967229779216406112645321410750795263016351172675387248446236905482046852087029416162031914326454525734580824101953865187157542178310264236184115953299853145706664957408643610120245698140611115127241178030946117769886117644043631523200673625600619908379648038110473015583055714877128136946594665754550452267505709593633830817817492945647178196083876289266639190528067382548566848639291854567867579659951297774750451472161198131469286720141198815227232153781437262716030005390393079158025467715725495739150417134436302362120967096092482150054184815321260706307882507411649810925477890450998141158308758854897736401579145625658593483551047691294431905464751421514126745693983017483969660995577231646398693361626730027642229710935279140093912290730902487082496995125038549326215537185844855644901157944070247892773753015325242985823076007781508968325135231984518840649893214474327086541164017073124219059053774619765220481497908898025784179955183138315618773936473700926683587300941119926393828055743771910836747578578047220985305466140999121013934581888367378362747949094785116336586905076193809124382181808770097454097995898029553694978673700063770505455224887745081915629011417079899340167132892935788464653486605157326172199352699444331543138814057051999884123166375283988557454129263275250820549549178631165874232659470505722131343008326022310840913749953927423352510270633247593464098552210513304474226418997130819307028875683082676295860315814394204085514868166153739042002821028041960878622430377313125427139026437780541871045913966291184247739255716986465897734229863683721204856202980748330234980197852981119818052307678888726684767302479078345188255731695882749318702759341471729374508417219270807875053071701444186933144525609180868948627741070570696834011983757452056414090559458859613739613739687954610326040839366523353737837724191848322980582010069027767278852291208427885649512494686150244410473883208053661248924771929776628955165237258328597766769356074743408271251189416840237029946594951032910960614363045150424895250631740993246184717143676304616234510195890700183141788428268540397528292409759676693997484839435786954017529136031303815200981208281401483544481231151261661436639337815583733807478613380926351891809418729382439561317193339704969159176315971365396332375657790503176464268707837130824223690566043519098194409953966787704107517168539908450764728645547598664611538950513881409604438165956530608762950266678298823923573481082560732755004437529911865227309363067917438058678705008200610509629787656487424892209230244960314487685891187899911457876010619492743928090823792555640124215235158847486986330542509663588418327823384446769954885160449708149081107324261822929852977572662193563937259684242735744451912677520385647352441496914338034680495482032001552005083383996204295076184296863636307142948626604755836042403385770937463726454341047760459426773864426868428435380284560318982744291931738096924926594391151458537143331947682564516023135556109859486341031637549837048896323117376467885355537551101766036129682064707841808415618335577226460038523736782131548203178248873007187174880326519407714131424478205589569778699592778059702696121974211150049877008124281020677752455630021726659814360832536146783600363873136952712611680105038189836253417704380438482586527170113110704755277899540317676238129074546268366672900993724852818799656313141800636902954098799700023435521104657403302491482150062667668694238434112434455101054739903629738576627154707044594487521854860392671310181918295661327034899958422247471966233291214359635385064214392810747268384340962193418995476198905166037562681936975194706478558071153031815966833099383272112023199237919056592960312461240890350389346574697684224738626783472992595292758815431069706837558160500217525034124008712512178088310726751969761326711879074640432974310945505991533724538228320084884136038646363786325487232380322016288478984915944268873674094070017218427129413354769883758042157294446204837640239389825472952640840306145440641844711938615827544738530930760578644783657601406917052787568733933604241817926567517321366705499721441334732558572030437596229145804080618616030053570740039117236496248593066129137060045304113416782928677381648365887491995814183419663116722579678610669442359698904715922320061141859054093584034903267274583279051210073232745872923676982517079905218680659635931593110045194976672362594793120637771559893230462060927943175817972356328513475002919768238020026560945365879545772391246079755315367701664401701290578242707053478228190001459734643114794429653263286948112353234429906206804569214889947295855851721669400171235965374645111080736381719762057011064142002796033376481894754956607276266758598054082240981941272461477886503693634400315594416872349005106473367039017317774445315676841225322585447158397973924830044574857935635716683172143040411520675429590691528022761445929025854069863714574354865692614747944965394110583817082201969014134625372004859318294109804862073946464999023264858114271565567846171821571254695038486565874919480247687792465471995758447168058815767880240102016229739310951147912984475070335411904866168025514083947657824289532675454624340261063866892593576746414837196590732555444709243839928454966131153564941921376812205339271049734813256141640542697538806176591916600487340382147752318618326031978901825757536010719706641580499307661994107805646198983489049268026691444965761137439164326740519247794648791290010366536677874133388634176247801837025492187072823196078561743299099942010720172728697726982585395838915860150872968295969588456469244148825070068795796377954328792632439492279527603700065629722645158546854208825139913798611217420387896989704675128732429177204280145382438700986525989008725792267487511570759214887792897669699968200056291758063695806637444279805464253657246203119693258753481183300893511345913501342586034699684747784231439177650782823072554426152125972194530091121662929989465120738134026849477649297533935978520852525878490731509866342045317631641551603163035695007129620099962158648834569845579079884598967034874052193622772643146962571206942800688480570853123357448191030376969208911869840709735551991085616545178172207792201396947775333308116856383504717858971954030244387500307300895007636099927360935456082644481283538801780933232179835174224860901530053021063998218611991250794740475999732149391821047769190355535037447608806325072049056271045566509573230773602526995415950545473535289184864697221321774802645520031799641052775617363921804300316233789081184883141549196287696102416479690348185928084819701877220110362662107115025110542544141115132040465356810643806938280793030298748945289676960861655818073217700016077786913241301912282981448569421263509890320196678317008306874159145035916353463956656712110843582262391878586493193030937657210373144605787132214036938793517766070542399095924768572130460022802303716491310005539682691055534392002626639564520865566830737328789648197603781770351666873068999719513704370017567560018278235508256673098282294943950889807010505509650991533362619757631026440841117972141288243677312732934502096674539156519551497668418890203672956604406106724358410836121065411894691801332542795603156176253619053792067107459438496032970131238689073908810247520393343086325277623886093150393439398399662579610797630133644785900000842016379457626555092619136400175079909458918636419447742290739799433712496085440007482326221783863624861324513467965081504024586119981874644165805020180848984286096288818061041980743121183066812648185402888256883512086997690082355625636822515331656327469596894540001685090163803422822780823660019583156192935981338693042091398845461618558400117647033717011314243505453877490934903604339156481714432987796156970477560881687991589177605266667783788974808883659133444869288426712167258291886228382682309187430502640682710805862342813840708946414311135158859376727469506100186927780512972871556843951251320893659086138657593261475207159833376315191396966609849441479132772234517419519104245504624925698434955178225064564878635099411462717660467905912092850716646579986876448547936813945656892828718350365268461499538968339080359438228281214877881531460675423162802633999337514911964849681414337514232825631142488197354506334891018586268055858366358581033664974249178876409442880952292352110871426011673958957544749749424700499612675556535055392620199084226542016982607365301838808267581728235268729417548429049933848511009292989746669782288347389486415222656410738538469846974288845483113768158710992417390942880422983149922060458666711123689218988924482653588678419064877402751035444845221077021059518031613250945488419546442032463624719749675364900562828747723100236098038377462802944408011493974100875784906394914876505912913359241523719407570759381910774320888825167242727651228616109543640176523850154442083551216235871627885883917126452287001577974081964238389873340735374293254069151171457579082503780736926638202351374147824280363541077762074518400095170968951202966905717779869250925984090517605609390137733938590847178967127604617486360685648744129310835360392550542302631660567392101492064946887783337358642066684999639807136124268650486166282900930359634401488221571652200425268755258485578917300325595115468790854433543699872875923811190653646846917680348976144887893490099844350757915109910882782273520560938257566619842464589385795586157840109728396324438621977671162416955813068468902595504106906069631844518109021067704846221981679372320418152078274849197569234864028282368936724842777507363513901061604056205847544812523832521339191233901671173225394873868341206075240745705526712325083497794599459475441720502964193919468176972142306553888614483638886797747431665837028425273448801912343411485570321171788305201646458351780320172819383742958899483981706790915248166882715927796712531815075496203835660554504238817641663445825541895844365722686134283894628048245723031742661919746693945981321973038476282232112270319517508987612188836233131192045902808831478750439772525629422139773176093322226098861128936671082663716176226736046456345038373838776232004764950712681140309519876647758667521579388650817477400187775149784152562679241371688731135676063763515786152173381879072991457936978725990676986500590292240223621164683374589137070683349729885765652510477198633167054793738213727062411053354518215580134641716547351200623461404888912006211732209344036754984525008078384310677791378834048788816391469761430267288809988265245762337090112905740559256931223480994188168470243038871100030908944497466372281597309061906959074314953566566089544314791896894388540663812789770456062133258146291897486272144004941756455339814851794003371408558604982219185038990271126478121229004583555316324319299634383001496043671158424971111593950371402835984317599088038465814409316860346392663017596295987278197954516830200443811598128431150688652948481960159525976262207836878276584077358232426497362956794138681251044272359508824930670229789125621096729060851693313777555699341523509603561819402614491071188529149162408995481996249996132375269982076865167834952595308436876878085889236262133025463879304109233799750771064716612941839670142135098426334852539815772247364660593069057962335116352029805762003614986778279838656437397716989434540316010683010439924611696353648813364530949495845250020553471296272786914739669920169820885058587773961754431027302906328224448278171302123131591825250284207472648636449399446637396919694403956742006019052246695130542275696608317201549402426299838458784430109241563194216931311588109680690207202287522953867307250334167588674576457777313951946500989945018489131762849958021150848362201767518472544744110330283018761943471855676287217199546817831244048272018710770072962059014241636882003078910118150175680399904386981041394170977786207657708334076666137913041097534985000806554486269540536729700120718830079226296619382959587557339513223802772462571547980391033314172423616013618820760302372568109296589552436485125606246707894785543452076844988271653495727389294995929232376208649556102781199003039230355605966057904194689163359397500939911794083497911383610134623928009418098779390958339860155965753388524418715997311928597922372089523758654579439072873010106977182818416597749452607539834047734041243298785332769729265912615795485729460433524163264859823581736135823333817230059873945631509725622605612148432930721247740079591614935408155679202167970395633397361183508226019783815499502053292231874193658573007364641558347428767415322779957193979426076765074522230605151489891040880712389269654339401086382664873187370386034319995666038797174657873124460855243864325487312950935141655231477923108860202450254898066993008999457781359655305530905731776546080543513215165124362371773234663403431422340558986701309936292010653118498423825559979964260451482939753408202872733563134551373239684835352670941155588932219611020847622608264007368247654389423338325653477590584546461556537542038094221460619810267155539337607803078385482759646571652321915402829924313895710771495439782483191699132585740724785543476923050109136694794378366771895805427439521765747807413324115287055378690829213976576699745672825117667904478332108375641207399510305940578599173473872982413035128496423928883490884031138208400237980519012407457407752333074731592208435676711342244689567681212246042071841308522057333878743781385960071594619455375198720426548809906984021336199066849311386826921616727820295042251105014601837281501605459996323905583975230515027278330065801836655193058723250955950412939682667414297666490159985891427514529488847136709005990602198485141252359112911788240849861945962460214556382603214822131661596129657139201329829196017277285960518625665873463337331230708185849650364890853677318852362977393730497769301427703223683645607970858445805688196616588640375739990459747461283216665000713014272187821859395477629370192340617509154653777031500962109268951006121529736176382548613146995829801243931986240335669171741529391621773104929886146355575279033214777765759054987172987721680071309204367114892463663365200141874507072252070387754187016315881846186588502469530918581327215843316470856464286725362933725639779188572089642991657514494713889518816515134633196572060908394128210245767554290378283127073429810348162265695059309700275146824379008988163543594377926147258599219211671046259613193120492383307683681358100071709571521575848157990687813505040370289695229147822589629110442679523029592084101872083612257926469323210148337946197414354229030840513087079339371744809392010924948761103260817074703292337083948916243254021529446470539959420641547629375589190101251991826801082212580942949054901436197557532534658677202691875610209833450812295249442279550185750566408136134688232571521401191346380712301496707021200107334815793990122607318124134354166743015877979263626522114439869789499677939501808608062791171945478318838023172121458067335707724654107396080063131965092142369882493500606299087886830655559438502413371339447617176671138467809618154888729263734393322551386672986055955066177352481309539605504519233293104375963964006942928493119658285350973040852635046813522361137831391826141026294031749824738548730939288308237581153356897253495547749146061840291014961513084341853576635516511012503266839270786433155701403157434347890602956635309422005544970682944936322553245708729793374310280048441664150904804699600357753196899719098181093482576647737021076828942089238855097547365296449475048424103318896167266921859769449515191329354374532208546859557380914466166085752714256485728149109743010832823351864670003507111903981644742466899664679791597525626966553040929277896062700854731155069596811086637074736540047123778003148984796502784938238737836707927860431450523382902267711948311061925255503836893920444185097694318226268487099260298736033638919296274279996355037410762894155896592774180765142477931370881571624624898732808577724027874407746698429009121047082445732959308720678514854285328646655551206617200115653431887125967397059034247404724259506737755634341691034081713545995247616389562169063907090407613862825154737018562813107356273651841172981843758427911947683361292180621101545294151187438776396522985334011122848545768424963139344198378736532094714650642234208276121560598918437580904269544601345646891541125553049884451570926777274397016114108087466712855845063853930984368087628172656571310423410529223651800002584578664517227616642838255010058415144665318601053520653291657808814990031057427350409995255659645014174511032261650205431538750948869578695050055499757653668618756432263234618883091183541359444661616005631012737450093880099418304034055305228306242457284686463700565795406003595543738278691161117076818578895031108051424054380767527942163630239487320291970845596804353589677698819837099608662842574557727280925335448022045805436878323237447944778138045718742902073350110749040818355559323486151636384346697590491700919133269622784569759786467521716070044642425334459871206655389473820403241422048570836021084187114488856527211756833592239357895341980731036572890765285509051140975232677385554126299621109971795789364672550306848248220258750724447531258876059784884730133144977716942022143978314892969428835199654873136676214268533380158801772409532105396316056810279237540896589970983814070001647080991118089100170978447057396793894962931605590554695616180772869539795875948605943076250487075387676715685572225033283431499021692925326358981788794631578118260646446866411262411044703898784112307490202784730392146732979595800721204567283325343312274389088378333331344709373026891999631605023062664912250200857757509894794388623735796783855341217167435283586785812763238496766847855248579751699453716435594884057209826885179885587566955895766029509693247476030022704815839189392284192034803309171499209590910418017410819358282449927836277948623352462818218635778639415150966464122883123089158987437575243268285112713668418618156950711323968832966179203012937164656600111002047478805071241899487501648077477083686889478599993230863159841156990841635305817355272000237442490398575584323193984537794992945811107969750891458244044231384276505104291822846811635951455323490175197440185501773872206605839630191612063928020399366814241457108765004152534845015486622361274695087027562140925928243091340330940897114711563755263657098922289649545594890928459523132432022739793172515440628843817538702704285743174159053128534101322670890282067153202281134984762538060249526448837169105259016199299238200702292408315078550948688611988595551783236562915495714126740526924263055861902454963065123389791270219747906435745719481064175812057144527681880307757956843967409631871901780140078408483223261896903123147326964098550720463241212604269529519041063774338237699697517906234489441886798783515802663456173005433403849041795700321658068501030318349339252909586240658324892026534255566904029164445125649044599353594094769045738150799713082138731781166636413934224600374102487168514666922660520812539189515847062835702484813326512044742060658973432201126862147294737014040983571961481745287097726377446608466398690108172469807285358170265351181844959363812795658488172954275275510264505964900542602434804684103149109761419923844962031280531807058090002004246887260762710595444894006465330055355177233746557585061175349181138341885850722183111656215804978943397709278138389017073527929451461364411298062125792588135755247652010339011061685199183751842071902238635322337703374040518318076889401351546071661917502152574008602620071910020433528355996253196957614955348082543246009349811350444513842924161550459103128438986905934014871536001546767018053509609524994023530893176062359673068329675580074924292531686693541996965000630516586928588120848980897296463772885109408344133505848077978901549313039403015085531868010021725689267001807505951667699186174550463611655280439487585738421435582301878044591577176478830336615804931012806442585818006121134343456824249225712628964457523931678466992061631868362934981782800287249349053542007991122421020827344003293261371842367590882823037472872274815655416050588491197483184775744304196386309488810647704776940533948803416539007239546697587283562847197636461224851380129460079142261983033515656470831228831560204597523883108749127203612593810466974115776291432994987575867364712950499703938776554899819826724968731620437121788583203263266814700983569905225489557249172940707769750140362034540009962554335219214905207374504820973400528595519421794356767751522245103793425092707414957753601722278452969562716702196902076290221801048980984697844154862566867291950047876708503370901624043430363780619684998613181209606949645556438473215881619897805154187738709583159201215113576369905883288478081506187363131783120801290026396726863941880447419056367371901736384276715298101998929900137516104968415526094657465010047881483725376943751020721615252441757651813136152258701913843364019455239103420979618374315478912202354842739420869052336531281909359110226391865656640922007284464692408771847820776653721914832172784671470432652759142686553880232968795763774773985659284815534937785287196223384615836951581200317259531848855030558527210529062862659131107913597414342077750750019520064825912155054591926868460447082938625589417748737599554905597808791447586908324307358103568419657928044104495030652533264509534944692434315345286074340514776012713035199425487607013436267241626806097097553735185608700647566733579744688198441797104497272455066894572393563159688628840342516510606859408941594497412537410089692949619097226085934438198375122412753134373369170303293761093639898012080635400373302428558343971893422747474506364071009463785565230658512394886210949672634753376061037732185248108765561364040545521036397886268372819706359603533499146138332474762946647353456729478340950364018516379183034937854170361011991608216259207619875903009735820827937362917794066548688948652257279378766959752647600895741431236753523994033876773074697679834629961767414018537452970929443853176032102576885397520319733607708450256463464087926711411584703892448864229263227692823978130577187485174689161787873712104123998717886773484722094146014164209666851075897350721925925699987089986357194386727464703017898653214830180441352933260771929505098363853710767963285987294731680182700794706024988063944364625825243803753078299355624799449668842471996559985976582840178243590519865907864503835777442916248979076427093263081515030651646378168937286614972407085792599262005664431840545790049033957151732647270696549398478077979369411362453834720345655186542697203901412860333719468940873938071256734493743500655978126995786167415478501842798387455430761560145464015850930319711552216757543269764858513925876217342652140706190795555077500105723165153929563452515760758392124096823701166669210759970889788061597336433794470390623258389291150306503873261604988408048713382609832873769194228602950474905960171602434824920029293330183613819164061833906060331547849847654545589583743282769801679339798018262625686444261369752311860870239713495111335979921680608172461425315495214819221542794669831525108426938056073242468493505560300916881389499859643821487962121041611001950426561027050495291763003421046887601657761955638205044161851953075335273883158876214836049585231967007358206017494125118907900391391797282214695787820629127523526105801613148482204386060098167702408422470362786473693832264023824958465712827888824393707970280323229990817561958584959554610719283083149861269559925335567068237855568082840175546530886408059478579471768468487618471236912232112961711333735955773307721393394360732218104280161536852500595055405704467657815216431529015987055849231096116832337667901015695740006042550132915950081616881834174720428042927323991349110298349492745021244149832171526489623890732121268745047042195072628457299012484225801616752421067661838014198889045181155490643734978172616145321033149070692742495512888232542723220477738108632547756857001122423814390822582147807035501054955877728102534144568737303898214514899138911220766246800184228191309445486893013010960205176694578672453142252323896825614647933382022744108410496327067079113008913131935315783753785439974654985760105668609050683119853377592650019693782375277869588806751032049162061944500624879524042401404822878769747256057276389298467681917007133766045272070969186294877552712564034834627890261907136222732844060863030206818485752833909464487509581149349949055236662308755994561979760541438821695989178952874269422629468579671972977548914231276139821805106110971017434675217176460277179949630709404412598676363612897872837687856457025372645455133080415116606351293355274748367924320339561631629897944334056236243128360696307211976693544093371636493937301677484711303186472274207276201055715999038142826952662625835572350994285655506158930170712034397125579690616747948396925441483288083405881696546274017899415836131134556590569153781925567899861008885873516305002976964994047051189187265164077830613103574180181259556995046083088037841245712719395077092708618483386165686259620739237876470272917246850398478514588468331670320186715436221118944068917459194638030417551310319255137864800995530528698845713225262808113642766577787686593339039100052948586502944886718252134813366141556015931614183211098870565031847613996552657517298576791385953964694815338723238879596695593970739183563506088807509481107901093082906569273529987655308202716951666993867357194375851969640247858146453086653361066501824141494874887726452860037597474601590663707779991335657455567806337964464584861890373632948209351938338573238697664022132482635649882616928795183804257612998420099957824311275914407867041837446335704967535067419293552145398154963042630091592078280330520963235492543369194813492491943516929759472668855981289307653033285072567774895246315281236093639068435838590176241737748020312642290914026398931175900488593956377360498887245416202853151931765162936216925400056021330055827419086107703187092870827105921392241364679171138085121675879725538610169567853211502154866400589805505486709408842276279940258471228003555607611162775426433685211134715549206809964409674723158082003276632071788468842067568870267209607760507460500923699701806485200797021736148386571313973432341034191364482145963028067179137936191955097246404273469163037767771065251394805457215593876335213235590463024758398039137006919215195003004772632810139046352687024563010577935353321438177308210490960951209740063239636879096674838949129929534849373033738576690052369720053013611614357454611177935802772702520969079084429806838161152054113707039250270430400908767863979074519562424385225803208521199381819147714326861854454685683419286268347625010236780010964539985099817277691895879157585538409736899352011273939208682652225570303749749343610912314194571658569878739019780814482841245946453199141522912909008387270360776753185830888945690680010838424289375765625795760185844072591523064564930252135032680883080475470622551693077765655387956395771584357645565771410953504754968501168046261132511460910525776263608937728997291053065957893012730476163902608741333532818628702310647572352446723391420057871395618415643852485453833552275526493257715613312059769027516332121920504524919951598946086343750303397512610924113350003702855840905968584468340889101762458039269292774788939936457038424563974675614038145791329933426384978140665366445469050525214617285212013527654054803539684211984383354540859510487274639005876551995748157559289746821426160286875024446396160434783994414987338257426025602476887087065544604250437097490390805171958466062849948983382340130148692963760343134204954129824951797034249991440629498370383701921485456586919559600704303864274981187255986600227750436564412370998726973776204636073685712252351646493771497713859795326266344236122510717648154560029051924018215790590293507135753726359749355196570195545848488319677440468796830173623508650467701533546109095632747076698231996901086822254952379103956063947543761774966351586164286279373410766485762157935215589845059235492241686973399867422747285221921525386788989747483980638770460259485828273556553417225754398828113137439362965007382551498992363626524588518362975138478692839953189716377904883526619967537506330613302272336626731866302389000081931076947974650835365584737892092914968149063713486575425551410140293577816702494399561006420529320888546900757527202234179999880549986540287520019915578780836393677620818153068160911156322495565184876743771303943857202394070265371235767202528970957558539901966051715808956842491758042155008065769857503023444949066437868749638235608507792501380836555894134518519594165586114864725766338630488942902508523080908603469711976544844429590812336038129204713639351330013589954317197347961844767386106375193747406213251395513257826140004512400501122273962622983464540667616425967969316525286903581518621102835832817378663466697282798759743438099792548972383191187710240162154012995739717364833074970488050020195462371566634595614628033200100596553586488876867523402550672896574603703992349235444464938239929344064950178667587160863816468703089904429977519248910525775459663681451649983726930794019971453156827731906257226628931297868040724099530126362563605113833145084482001385939654018749327831507447148291595463314297179286916630291681056144872794353215770839057827577922190063038969202289357071760926082889550936278177650947321944696047798898083852401911890001799460242877940175604939762537998290433182739019097319278485583588173629164619940826641289402432334160216737157653857837102639983366151394765987346457399435519074942470369079445439950614440857567541854101138986538039756395203923193836193213382333004599586579304925513585623313008916580441342425376200048628025287807480067275798299686873159180914683798942256022298542309916427429352892440735184251887543588586275216079980477739820445343967689312128124680037116145959924627834300730309632493966359778664427784496196361688895824075701611443780119896113788510769718419797584987426336115956066914052667798697300265766075123694853357206619742661149687718263604501886145393500541581534361039488581201957750434888928572992266077408519066831970486897815938679372021995134640176273007179300569693821953984941400890745911044563462965298503556717565719002094392681381914652135131281742720696358568396269586623207852416114399287667540487547558996451415592419048826765105138897415286407987517415418590644208787776757612240501366102177953944122768238320641728463160164454136644097003754752780868814004119838990156181334767083588880957569085413762107061386844710641493610765413960608344571828100547318547428736620158889400863423685482915606495808693677266555494247373644304171786746456031719173062446839720169235653970532557932358897491981774311106425874756617776954417150058796605205385863497054635292051872335034622179632308982759977106652200417796300371579203733796082639185358029172113829764381339504124920585161400297336537483535306157696126818441590784921144900365347082225857328992490765778677991828251101788506029566279946070264860468087034762767794803274950541450624722998970984008302656617342918550487047387423202135357546754892526663027366203068755173777430773099660718662331013420269596698395477266120174939997069241753366200806253260694027265756978081688873258390325775118221509467569648948605324296097209220643961259363490193246212472838740695049945933222194508863026275214352665655186805667558518167013319312316136511597022889851599314998689298098100099747247886089128815255564459942273892164809815818996217692538823187834297008193336633233073605484741041012176215202034647136647946721317779839221535773117836823717628639807130907364117580804961366459034552925119961387371737053925479158799874085743440157811563597244746798103414785109780751070370458581431415881653969737386400752714589464967186382216035032620750448769325604154910348338603994503760630128213117834965846496195254053712688696312005446432722482009698331909552883164856461995551558029111105529579848347642081195871148001624287252962337060576682495795444802778095020502077180558666756504824507631855408304893602596944883110922463941178541320546467260625701027978647248569790629077811914263002323652988919221543955529501851934086486783324360147080748978125388143072616722799828609782623016650899610337555358566883841392635274634467931548823911947085327682085349868387831028208064123862482167028598616252046920316685349247197043207053829608676237294857892302684217580393030487569924090744889447275389789557915099039298992469671366566921784293263749706734909524192982819306308099894610902885715410080391827565599099994951426084983580138071965890598201005142544465393179643714867539813088700650226519664956952521898465754326219101428370013875405370481173057385045074870132047798076149916526403756530661402391258745497179880509089204716472480038156362284208371456443893714444097947757963439405746954453788393568474930686584865650811799315657053882928651628941987048471434932387278700629131687413492338072907746055911557534093573689505567771258903759981942470216171387529458357554930102400552624597583791846404859080985778147798271894887622946474076522726109069004511636684829720459067244995319486597016241348080799540535892398990786689801451112103560651529814841196352478149419635322504615560183154915890831601797403714051473841229577441661102320449930982811013265943725676666597394140851826244620258612271868289686482043166608073986130068919582825961180281611152189120428515667463642003097782231514766961270651153113072382677355754839506986195490414561495292686453589961091137281773558835497183318168413024706126406157565365161508745725280659604682021724509040770549304086550793821590821645345159581427829650555609635121408724987777623856769561335858981720789944104166455959356190965610294358357712215454267469317293853223572450399058984699053922538892555160878316573720296902762044658001911270441612986732381285715977786871497373006160031721871769319982457091707452975213868876622799407515491862290147601397713529324956128780221653693282693783232113965416886941962492498449579045438339619782717310865177145317443112331686020626538689840062918905262977034085762907108625498842451367347642762441465441171767619102643550967425049450972710184596938010555874755208790413742370575977787964201215018419849831446256806600456962873137394485763763370366584071630504500427889994354275712129941964678019434415240217128106429883113090054167082131568389217332711988159174231879642202583962232789529727358867106626094406116571708159689310321758815519363260047144098934049228472020446492587290265265561306080896419169518461319638056763113393289083623622772180085038684488622012853397453291740285543767670198769599498373069949425014025554174055892019628926354743515946561069631152901571297117209089989617840947683543680500254058028655305821845917998477946057129238356890210486313560195093545579360520204580757427742492437034589112211842586336236315168569235784815616616626767892740304003522341715453387590083767867851463604630658254486737952918083882257270958629914756462657914871992487572399110003021228566475442281957849992003236638199655947070310589873358524079747733625926262362859515759450347814308906564314311758602671240911171504459733951316769187101648015933433976692541549320934797889122033190107768732238359934715272110361795219670966747460983780975595070211977795803502702893682687017792040588784871855846924198596249447291847913346059241197998258414186752242538575058642442615563568908163564586547936069772879512441090652063360525518958001608055465424883712754578560155460206826538216383342872736114478532857968985661963189086378314796051030854763954361194293557437662076958205177577501819697855558337062440267738106860966678425048163466714993183284944456784431526565715461566719126146841825402711919628748908313657117839924929248327756655303695753287818761637351408029345783374147380096289861895511289748447247791166311652331365394919196741969712085224978018742846910850561694227400897088670946557205473793052125615436725430262832734232043481347774934627635148604384811347217091350576396167184107596722331876372659426850686892248633582848673371775129233358380243972194271945900615517436027368177595043894306425134506921630830915377924408003909820414494209392454017557880351929761051848331482940603406881438633562675457224811634565796199090507276924454396371919366079481805401080123434056986660725749578685397200042957115143517717263073331828661247131394212318246018486115769513442661314642611746684919725650416004299413225496985964917917296448535309224050673711863647238817939529621831494248539262968697726339742413780857992730090755510148074114585688107168687728893809470584815251514358528744725368485749719924858554160541843224831792298559283101413995783784203918892208890613189314361915593348152631194938867686913058642975141030734554737990462994645334686437697136300149271475904945447261706310462416947908643045309625480903087802114950943032680637652672937778899678570597018962606358856328434726773598750737693530715744641224650739135864665927120767991701722278752797301650199419593860886946716479776210768369497974486663379354910715817712157788027622313615496685755090486910830967879294393904543811688472000886825508340279021026929102892065529468060888752409921482801226201031241657884588165937118939672595539166994726996194210056797047441185573873492043504033766388969976794507042647028478787578553636558545659702300384338444128563798200668087404770663747901880284621936907257843669565195762598945997491435593237611290572863371014000263373848218260268181773504537018671384420853453953785844270786324189166119708940169571699324546449103504166502092435402882943250782573001513412220973207613107527782444807206137241782737870868274518763610196066298225078283238577425855055922305120542680823487378152081320890527256973338732231415422822490095043568978874597912536380053470700124965540192188308672290381221517237069349760292957438701039125486618314515735875431998472651162362838445131253859230663704697925550505494991728416703499490110255819436094849200900534045805938999927767311794609930387633894894468629211876265581686533624723723449902925261651110818813135275278556066179813858528959216206188109783477502909938416775554603720852599734859617632488202054948574829229856013116556580814338565568133482766562986828834837906956052265498502905405485259354795753697867404081215982524647331146819228604014778786599656265823070104760849676581806098977973426421633780747854609901357193128599452268261552298922920385512576241304564819635110977094596621086956516169225379378800801821561526280772637860819398985070069763055592471703873283018330430992977115469369498778522167029680029584840331071000621889026979492517018101836950517154308602407174379914246436307590276832615048814945621763070719436840827175772556297795268792991846441976326048413099288229150850262779256847439405343444159920839607428009289806865378218111424638452855563137187932714825273299334084424497013801786730554069771842087052127470583691967855507275594246934242834507421409935323262975179456034036325518335736982711508262561829324458676894603550224627592372312070417478921371522595935957819128078412223063592534199696660901835412059501144725473192020689109054653101623299721860604379062533181074594711379978157289861842864188485226255181741042326235845616649131662785435378071095353709700886246178096636204787779679263894636127688427000641639225866335393610955510536216265287702605806454912455853657121113575599046599473529592360883661482317640875771139060897022621804345568960479277820239160279682766613492817430833933636541542679520167904375356051184786187978647825776311406045277610108077534559553822340504394397580615788135360296877247861042656357303352857246010942493652419381784458014840328302686319408400706928123987080682067324489488263808767336081616801760731167997130494626046630164019644830885828495466288408338088573551569474660831545717934601350222506492483273846120888576836114306146241614915346543766797483604165321885993583233169790138070233136873649592324866529282033600057663590376207046161469040367523423010259912403782968616252063734187969599016125488874964219531005310865032729933919418296861788774533123375547661507463485113837324012609999917071785476994772839340675624795903517609339880241553447860843327722039456684695841104328486463991621942179274399767854056674661075627907853514585302804260612003227960846394145948324459229356591361566439672340053209413382540219495840406600996903067939040933068551057554181107986180750147797759951611902122088025297391439250664071155113289255980641265169699938520178407869602282675222894766733322519701139271535568766068144073036072020101155821516057436498231770926644635686941958586966895522684543220004210010126750929994766967268458661929377854553930226465201076447027922096174382031274949287481686113145692488566237708599107739491692274074376582565937875665985965027644323311241135436198483806645651606422175054440319373189881564037652923853870715323019108032766303180926677346169071587880940818436868969476190399848528493217285173201482473329608879135770231566406136970589815760525092015062788042977901697709212536042967850212786771414853998732687096600833137259075995970460380955584863790963173847674736917096735347540465561815059468585548696530365605094071758555089185730523541582314417876178353495437392950632130576880651795731858775182317810730349470988576989433622325837377856906011510973442675508624156564048656414309217362343725176491263303815415894216767859648700390722617340683276812171286804998065065394324689064867076363183947761791611875258859387024705645536826019878387632046457888150194690152052946534813763211174727914232556727638464333018315399577332075596961806984707787648802751347929708893503048546213538685918401153333939166090481812922173023273688380832652563636058593807279031671100968707669197331495044517000227024486044029942096989442794517704049341918365204182300797896900482321570449304368615407277370507424759371062721360692103258270737890939058406334731146254010022898754166287023890453545952746436060794094113743097273378383784964743935463633869607229862050911454766100242192652198059697491288445741106191337351526270182534579165948684943205113659172470466545824783611204411145781840686093086801583670866998424378267610285459839839985832049785659855326872701292710141599304376670775836329624817931466286215575070869507689560240156286436385860157573006835138205457381356512064282722983885167935382753902021510705171637241039519118193702752377486451967042176079476528113053089669081682122584742266993143440436803326730952039180300131164247598516418133318522033608046887839000577152154316066209660788735918919524711471165378432054252094828383465127296399447115739341572776793449062910871417744123594995259509615023034673192894360727535511930948517671740812552715061420919452504674851842055256682236515575983137814911769114767675338127142329792514276755524318430681340414128936768167849282099418006691078809922131295331313946307046968143425559557653169250705048676884385854219535021781040067431145295047055984301158082330017406792683533817015354529091606547801567010749964673504175399824648466984391819696636461998805389243561530415127094795404417758317604047999552865332084414192752383885472205282585835268623860512996046556129198680110624847000482562490681836182646023566088710439397946947302682551052547385299293896316462441300625029948946467267906005952850688798845235319540185519367637002254235840395591169436521617168461478303009138178643041994425203018287012050928157242162376145994318162173300611460213944807579181599690604109528213554976318040789277398653154422367851124974963665016503530940376444470153919111130976736769483824485448800803718593216201465518230350019675540820049423774817848029855720361691170507964485776411514434786651627819823842220953243831481986857586658281106820811081988003236647424735740672357480046432748240612397643392139524853094151505674010139653216376068401061043398512537786480903379311369353309016130969856270375519010807686756425093076657828334218623846120146755442743864353626068230336251680414780851656713925645208642983993020153141600146657467898030061133315428985608370739036035323939870074906852788484966764566946080807267535015862024757640854337531012934408511791262949829944467165475782981897637932909822683750019016036980243024902850952044715084260592478220796622779807478725355576815884315582267215528441259374536831437396659519935456289995552800245625293236207134036388417258054706290820021770301205877300290959245595945723577691212577992382468895066139716905436283099343582860614466893838588499114163343995699999341402672337810914939320032246548635592530068778939511879829214700440516908274967672917838914855279424771724534320228191609401007368885766574493436849854583981961560131196815093345748906195075471644258139492935189996415004415073363029791610782335528934231426110953186447770194916912790773516146837104203602795979766540038603637378650318939408060988799797564673175901955010387090453191328960839725718883581169708713506045264731704700795789804500514246604520837757009914397255383695808652950017081492725607110745012902339560239059112806449948789361095440500450520858358699957404045761736500243104069719183726885498064814376891197906434063409488065390827729743796773082165264897398958991852946133964674029362377477020036291924945445537011539771621921614826740981937081336173562749800169015821461394793955694664680474942841282721529709439098820095739145433151291380730358990518871879520053436531508298007411289518602141625902903613372330754549414197833825710820950060714717155974903000927105759039977299034387798061447542419181147120902479535751495050819559759942263528878192098222883016790087578123971372908662171922260485117422511634901521297324023395367785384426366751430902920144569745711123883146333268651361941099910832835996999078182624821794536744503087021913979288744200799457094869120255779930745185757066470393921682581213686284988925200513205742617348063329125630897407166991907158313931415348509147330960569675939094173735365540788252329424221790431543732506696311453031254705986948467659472107436692582234286192886753498449048493939949263396384370703646089448228368996097080327319255347547786158100495718518122373436768435186641763841405903190054236864339417380056878782135108330453343290857610300266569276537635270873007813633666345004146022714371959243298126588293850951587999712594845583884428931117914176422907469278658324522318643613016986894586077273097112528817096579819031634428304604503460238228835459033655215866855010350740150265582223204490477077014838205702291631022725449261207794911757983151586234949625876303540519013449679703988921382091660543583502737628112243611910838351761150578942736941489028717506571016595974429540330438469568702632395954895474177561878028201961948392448555664276716238212293333886534595566384982581548609241457442915647562680657796187217060669637681632469392387358022352045910372226320124459252358092649657857235787173920834028465194846639257613957377753978548851960493448630708623412196369167879548553408151954073202040285811632206184064084345222191556852842117491968669880201107768964054178184664033034131600623790987527042687145711580398932720244414022352177185836097505423264320801251316431300012452495692601941980862935772641067760860731186287979303300421732743036594766768899189177665912378116817235008386926615945530284304450172260097705223727058318406710194883385359942513987727449000285764487982161594513179970497546011050307991189684826177890726940404888098278773256089033119503584172028148966829417458166570080138463820637085690159901957868317508456777422700627001393881604818856508413985143518618551966705197156422998276903314822389392775655464411286981309528499538516874004472362212366180319328827288247780292237475010795106919575551578561629506613362711133341716983856703479604894182194111086951907114395543154901787022011212187932272734982577241720211737385253487938461107486386535776321561192744522985206974202006758410999815661042649432966585938667871926937208296331652280147209195076055884785628698491121006161934061301689892829710760964125132773986044558431133864149407088566724091497929907263419997599448910076711198489103787697853598868197997092960430052405538268891676234418829948063274362899994959173044699070337953856979734963974805272807171559335603942227601058105223069227267004774651882277653647808403754554508183045187888589539858933812612781121244574592992720193112526513263744123081068952828881135236989659979303817983942098172028592112119880247747347440517067748124331512012564605264843444775203277278653586128655432888061361654536605550835673315385792450707229896051803778185528714673194606942318570130089618892139479042628955051026257535546342668570146566547210360809517545088952487928844435787264648677129838877449908939384205618517755073662731870188346668782571853622343471069239923763729428190664719774383368925612478904824005783005508844891022136489864846775307604603282181576360159705753068678071640372638799840685829322604389660924754286712855987527656134519055339559335220674947184279806072787227168542292192797128493367155295832393687941096425338331558541138638515716295313151718654117737176802585651406383111209647550325945887059076850339007240447889643682695449247435391781491412177423147845777898155230130891682147003815813141067556080990270144781497008582428695219824382757567830999728753799672537037140355336637451244143219815389173153368282083715803070289986678820754799774447427237426426332958670973893433995166244129996598496631897514482220782888571665663518855311304844330472305200470486875887753143762188217359307515780160401490092700003687105330480997761332732222935267452994661367775497260976332007331998932231181792022959559612086062721559956844247819638773379033371738660881388806729033955001038522309919484894252148948957630075350190624048817004264184773922255783751787908963021127676928429402244193404396146564810017071259223441472944794126994351146164097552091437935138460503437581592176542752342107041668254843449192923935354818306929070179438871144592757306424896597651061826392629698445180290987967404141968410041200325513357869466576804175192275492398873339061635209588667300872672061972251951990910035972993325576444923535730320922953174772638119333368824435616756667400975372269372676312163712405128630449597372872743061214860230525654588666437206728824709269645292172609932693067433022096742732182278580610199757629884797455241838660819495671382529302542261411989842215356397312793273503647643603752332308906692739534885254573359696871830371548276566382871804899455386056567814918445059022429077128357984066902540345374921516020660764287123388366523147848936058639948591780329947835937846397016371725928525860688094820523875263528302760593117394205097978227588892948236653406461854131502114690187284638686038166184674990841793475674613829549518078048069067010794918659760645505572651993881868124514945424786511593878487137674380676772354009578672000295239888459952766589127207834356112873868331283111835076180986375569135141608717628044072139085719753450721471715444393238260488758998058462051785835796268354803317631607895654661882044135285269685630610401097756840483865463264527587322823684850752173827231843406343127580242276337127255686754403531425306312692545361219852505886467750782975987824046344731913336664531136128278140064005420093505355490648891531962423161273723382986421496050845586817697474106280615863731829893855244843259470036572201897490555274795362918375077704775344786848243854813408804081415331410749814104317010534920759329239713009863997866461221730809619557038445396730593266191983423479135675136368284540821960291874179616037497291833802594376668728767307032719742252385797995647765197010359425383616803547627553431520209224798563930862056471970511686108359657809246374291282369159884147775044226059393601220339228704455778639074355022687571325352196591625760073710955192077861485451140904177203647901627955401980865026640491853674007854297377626065076535557156903496382171085736597897006841128005064899448237997751724712444322989789250739252128375053272728545480779314190526338743631941208130970426322414824044735000168647830965418651660144275876910413718700833623780367463759968978835512995281684526612980325248543323767045013823198603478207186125793263574065855157640427544851987780011900811850945962564986040988631018690063915913564039426557912357835053711844219205632454435561472630878091627766273965887510139831819600624117015221107397828006899121950354214553956313837952577726729688701408991866128793479988658948151491894774008322775273949527647848881018302903875210649544320984386310342464984924537991861474048539299415773652945332426242894038899570906567142740731815399777463934495923401914401800483067593379579987138689058494428163713369374804001734130645766745032811983591694701162435629177335777168073191554922163523701556185359028542561566278592741253253744971741092478896546777769688331056195309373583302586991933903840157904527388935426417341705438691509099431565897126664903566316341450442519284002701608824613472328287527552138451535869825691567500775806773939130738805031678130161748725998709791734068634337798293852937902648795418743326780577258253270757594040580867382799341937435825120489117078541120071843023145340666300288646047412929059580139776340935749969512967903315704839741582131989852268609326770241015760469613618252487596076126570756069788300368408974478322139193509828061177140867332285624954491561248498934655349015120185192621807902300221562365581335721541693294612458508548577847979336044451991919199239408237203684138107230513882756970102357354642895774790657807286896674366456651340639566718033592221714085012302133590404521529938559473703346268466836873787401797863584145629250431552208423453503409610157018399908108514951781298123145114328601717429391821789849040131373378446041232101093307510684437995692432582669642853729503228535248170669170017480826843564435621025887675683561505073470918223619552100100670128063802326623351751036568763103708351346377793603898147019328471216451327794388094310360644487448809195941576901008981045815289317096126238718490603216548061410868918330158875025309928954265845965339759197230605385378374497035723850445156796094407971278104637171431452258949746262603351461980156793873056328898342283541957079623169315424850415339138731992581244149650701556650885376033905520712918809766004986458966757322519849296105772141801246909523442192478538490187170099563547977250976426474894053932039336034364129775999661749463015978393626375923021544425190624855805153296078563128734922214078822978428327265406556833520677453980836154490885210707334044792238730663881384594100252423814131013101464832226908960157440314434531452570739374141311520293906852198527898385270933083497552290522629160415320620003371209359013904196417785455694645438926136480988906021848152847629584744219225754941194300325480306413936665635047932423028495487125728481022808569991544658449458303975364533910059590347305484949445370897755594918726690105081796595458581257944738799263969481379398813565889397549544929565041542699026385895856553759373610720294539026611252008662411018518907521852008367471164298218097120833663798828408020893345365173537168901167665413008115593998645685721248569751123426411596170408720876681070600484759507267266743639682459868091184392754700384042833071594195627695516863081969316980469212953654838306429971252063344596610010675097948255815234886946405245595635291469755274764995960855223808523703715915533276040812718752544568403308664434483779826023974095651416241072391417990944141839224713116126264483861487466546571261000631389207889545454884374461980470433432916130763599400194719585999878001564105097015756705782649443235492607363763388544258151801102043755422083539532385129622954818706304708138477539879634630827095598740999023867630803581666974100243914019209529419827009992417116996290165852587121759737992669744465722433700132173896928440241942084194134717529099608008081678689233950971793650135418682258570298351830074817501159189634517399524273148787984682085626922251450566757044632793048125570810811862151057198235022869163976048170842439013777747246450323056458313368850806356828163141631643052453245441184565723628030973193683345582929678327728163084903976268101959757888515827897649638548599680485509940253119174471819269049194110256691498886832350132606818093967435927030494789444229669415421145119177555177590307370429678726934110349211429073956762023207984144174573748206141683460991226116395463451278230612348922706998647243974548102680656834377767467819564725456357696604239602142121544917116505185792518365511632851306831425278684400132452300825806591392091773313128464473637104522495557472121417982776796190446287374159071696529231139737692720199760726151642309717639816764275092977368066073407764044993110962441089684492414809893033540512674722552316131446180437800059607449437243573160038101989414438901161888112263361226026213065300321922710625422027295404057227387076116140154765200521211944011522138939661777037813486957941017854577712157011258922032579166465685015928629592816637865801452591090469694700247724640201577128819698539907216137203375161698319526198399457136168849823326658130676376061329235150969621718184043104260700642916549903534658295845712707023758252265677464413720365923423484534535961956656856757715822230578219314273441483522737238478108224642779234534431585655124572111533907138716757981444209165366661550547294244553889397822678608055641084545538605952719896056665902870344825952290846205762437302448386132400228315148446211993840044420759768866776314322193218649669010086380761287095387663771308247745275110896980729262454687124940913524623046131223959011433613873987794051664374692009720504238077276324928193234508070108820067545110181421747711816596769111367009633639992156323091561786353944559145816288479558686469370386156831558918567223300212132165846144568903163543788940311762381894106602658925204324685995786892797548866877981284878630313056551041708979308665908410017016964026654267854083420463662980886722596391330648099986720897292828846665373659714700474399998258913320591799852571219606623178101292074662147214960586940908633658128112272937341498712626144920078074425299913876352771661078878503821102891426449099305862259884908451658129278957225736688800137572199367880876256144324526738693452093084219667260029719110085583145896084415251983922310548088609638474534965943484170382669816775148616022207775356132149548272335284989915655773635105599972613634852154300715043942159003767961204464617634198560791670748914696062076987028346514717849569172051020862127953520881261694654778253799098269851425948288993899238079601038159347336836116710924501529903087593511949419302532527368796032884291714175389520449885009924569276094375813511064272910385061549353077219325737759258889493555599005957590454225178395561732266982963396345278335350605543691423549692235469561677201245782995137649719154382704198538701593363368620398956907486376463208110053579815954782371838131054760148730167092006335112857124763373971069677534193463339495441686593522981932050184190380571687143348982391888246118708785348987010790418075609952856183923609913139897052513537090175572064476296103720293295989367628323108631280773264885616368479321265700531928610233042698681882034603069999581602143501898178088916938498521881469305837231853015952044817821807175991254068276249028316845976095699799311744929566982163932283417625347927848540926914944659308337181714454957965286203867988814045818285314813050924642914594699049267976245871420132128519725119279687729433068248242137752596494919454181525598714241580896752884032909473855760654583814994351539374800384910640538367488692693498124784421848074426601834476404055960391141161171214761122252025614849474194414949650780406938848160940794387468397742423426882241051593811797156392157651169498802118559914372939813930923180465673293005312483473945976404766302629712791887626693943146688879934421902694439126522836914114985627631814677369176893847676884260013147878627203203610597139858310993405029929684933619871171708882170951390124939038657127095325043798159836000025099563035232626382605424854833676761741278956392463437792168249751737515744166828756277292435584105522225220596420280313074336600005505692520961423415641450101892821277586905005741592760537277406770972585229989082783865028498177132393099778804792693065528373097697415632980035102280218902950991422121979226072755301563823169812731902047266729281091031720559724439606518238292306481237088866246345355195953937608124752175555043715420852961981962631036798711373477815000622098223097227845759440187136559863320282029551446290256231509550672916984045363909042107596428976917574666315907680819924125902962397713074167522630545434641372183858646612738526646024047440458864088118645107911512955049156120649364969028111298964529686348621091633509859592429232157032803484855828713637263544372097973010687038356178234151047638997055901959710056766168058194524636121342299713255525092660858662021294885461712116584580015014515286942929658179836764402242719966219925191689320400286056326061037729088124569652111915945482512552821132658519758424555422475631354237804211226396424098737402198385583981887692378312506724652075822544690210595743130373894784946244294080006794714094230399041332998164477970217407695023416481956806794615472905919555966143454265524884827167234958024131988216792351536048579205727621969074266204304724606305875736445473720810723916362595014504486669493683705175315376050994687662069030406827838776276492387969591787555632796979066003083314373873652060043143580461397308134674333245507608361856401136858357801742455127231818628594021455248161947983202385192930636038745100211273127634699443152389338320607597575795198649452528544239675022821965908818605322847840145051884354936482654238692895974540202174018688155610959543118279604021212610846893211410950960580062649833888646160088274485231369375455651561932282244240808743393154772728354230807674957239625247295479843460066131618589764478529968095059288585145094484989840324495827459972119399833262975906363052865210434596014337035549737028028961962271498206064014800463847274022300945501276598260774187477501807732696728251521456196426234428941444979438346662371809890127125880841651895926452966362375676493606883025231167238403697222851143337694303858976155763192816378749506464460997244519439341526275181760829043885451686048120460632798032722531100727401505779748856329613802563841532884967081313612695424268543376866042686130082477757683292719116614454576789999844144541479847894276371561379198165559346525109477717413537028535435603158894279228564784828009355336454632895879644656267827635318553746393872844033318167777535570664803042081667715995163261986985734749326887258241567854979530080956868496409571729224270381187939032528677215908670015882842184089591934591201910513056262919237287502586931283935019821041279920835905053893021705610643467946382151634065879468535884217278059787317834152181043819004705086457631744446255862735032197624404806596317093081651319422587436911989507314901881277293572045184401441049960604643743392965828208443105278424202509933241850882204252206471802476688038686737811815835891483559621009773167348754685093504406424176922193176113614011542033195660337003036888739863504228269070314784002883582905919893458116468836298457264660571136276953664465378782075162603924172373846823903648729011929214757858768011693068311108830569525604823418318740987751746221273564964993655906847230210875559445007450097478650468973949352354253829917739276279965592624014586606080854366322041346939768020064327212755936365424035558560185212804750141400894067565772518526990982721222935853421001399857102465166335083987118024211795020944962858938849668735012714008907183101140928341979414340411912689985289211844426161053142157892230793350444688622723798666560413954012282901313562062073589574152707282990689690766469602046209741153814404292721193308623857889795454862309211511631032131294733315666332494822238663791720937803499815591416150595105163016797555097065081622262999369222358453220255667146111014355817878854025569435059756374752269186016120379463451992674723458778450018999903297297049545984202498235241323872382270596269431092389806854419194193254760590696100074513193569900745524923210985702719942363164228114741355201824500472504793156992303619603876081440935648005950933807079517239175538424217369030724447169976864091167103454590269244334857367309485217968559815608065757532995256124509929956561892991079506984338317215704389121525341904700259909506347103585952458327951532699829949129463028337029248783213205589212251517294203730050324741599205292538701911801452153787902449740245294881429030217046855553699056087420183722064535276653245064998594579416403515408795486725373023721409896293536488417135937456942589169279528114186013737202147576394171105079630272694240025591140780408184098236244451729157522685792756884665207132183204397735127156652549878548962380922698737593055275581567205155441695156161336500242243070450305443768212535790075950612729352835441040947997694892388287284723908453983915411380166289342966773426072530843269308262331543878270498285776221364211602052270878137090793348153291638381268211750417789130086007880481640391187273034013764773099796072392851629739024726068635464070439517255012595339000010225064107245761228690601400574208813687824660270537772819991423833659687363396297535473494696312436139591088450109655600081540717685122292803636514731041780083255966279216489514625133178727302806626202311206968309838085047144604520600106312145208751230464786642183284173620485365353781191798729734508050121929442060395367416765975519794564828931378651999781189205936946670236404641624124387480022147724539099609706711133364691011111248814451900031752378532675972485899836890929222903030783146173383642539760358343142038005083096544642022397055284817100587673922090431025716571570269822082795354167443312345271939593587646529392422429742544038883463086166288257699592809837894301092216163738994717401328477808053566721900459021284278816494540829408978053980356663170963831419270259650262656799790497648419512042699656656199363330634940948210623787650714812896294629442256950108581695821636654476119705248925016708106225593625947239808012950150976795998101869110568381559086782799861072690387260655119497334247821898625842677578075740413592617552878913981793666102207806632961459497625595007660387103606431419126290129312939573839068578149834236444947611048511163485042498924912984031610118279182424357456563888441177279562168397515981038077518456195305506096489308810177956299728112414036558280888918851839220456684424457421999093558919245678859030912109209870595770109084891147844421976395411601985092851207888636063597134911441447314823993918694778088932668015641757858286544565711526669137209576263660924947406116509244496043578415699366195976341664453599987724340969270154122566909989125370811922081165904500451479053061885513927401429724576482566964302829092196870348991078950956196681957368008225723315861939976572581969555124345878464397414633436083294205604944956936811142043497373622054703290193443691339721219454867801740328975243730672301478590505801781162004413428979892481371833291179386147317468845345287307691259841152582537999269326842488472395234043315368468921349370205178481307265648781476041145668125348306355182128375996860989697431662669365846556299423782578828427111333649499137652437914011546557140061295726676555854929781310270012857432423639627640634953157119253589165400402585163531273433462629258911750871585742785598239640806119381821008084744448927514881753507979066291681538011827963528744813797055747424383225477575774856950588832549120606283708840650426579892808582110324045593194054557071649271628462026363413395990091867088703082187321423738215886614592077961036119860800772398823509458095020473071109426411840641236396054144183725032818147635399376240896151517004484694251150019637530630975629077328186705863753415697278593912857306907322227803936955713816046574872042231211844535382457269986709189737166599807158027701852110728780815499267186094635960866991229696035991044056419008801774715223807372542835281770850661000420000743326413585864711625877045402016474405213379393753846019030535010902823393166778383587075563098141212195762385168351420993312489548850153516632051509588528065547324709536663823789937216519630898784212681787102101763239894332027389702005643666990453366462149536732598373155067941496458409058833864841882430100593684962052496127159823790231271878808700806456193407897047265172036543757138728523338877005436667246001951088633014222223130325485318659756862981935762202331434111855709596686978203010942467566529133582457503281880231660123770666666883203553914002922282760308517573284096541374238821968027666839538643744378772822653289512602052365129837358517593605443441097970916857366809546441591969427927703115488817103688322003341402570333700893054140708015197144227663696735111263668915178168440116871638745048302812195529248578160560522599671133426052283944574276433418785912098542080473278086049473180982190601858366360430631353163612418766150652566986388117542455071042120609763718559623844589647075205765926135585102356426532470177276508254105175091141009104744084938307910833213652355564616400195965165342381536340584356282378461041404610494986297129968708909282071569509751241318436355948217401205572751560007162079336027491414288526349293553565318247851018139487698597596917893898799398400935526768850082793077141552032324803391233244949523754349208817268090139610946562225843929874936978081602255131339468975696517043852144755740329724719427230242155467576996836673407373166766381991702698824756331208053839476383554328368179294709342756333126117187086752588335857221532004860363732735677810266536960199753774106909933237664997106286933835011427321118417521266362264449575144227959519160804293440328363986536799867688376643236143718009664585648443525969121461639493485695435235713836435742162284846633886551928908130674897818540606044158587996980544258422787932655110881971961642694264922095537934461748803578084784101820218106286914012098111632047406339212347793880990408758547824951905973417044011818462432776889039858975462938032465744485552186106209503137475164342135597551465297187210262785780655768447089380097874779415650253294469900763502472912469964718315077673904629525853005218404321511403125133480788247670461929521602223768093532024476563428626509726733423292602449915576744310379472171970661915503424971659050277566267636987086204342271725025431801671037514687409723958738670481822958922943002437884796815564064652054265474049019768952517636399290169604361715843219336704155571612757859893091468801379746662295835486097501795167473700808328755095954676498258147237411615009325716597397749933287039710248969001516821637786540891518077045594876057017686682446930784901929870980980004079811094866509477645596856222274184530110998201247833550877611839171183884741508018678118150144911376466627100489519224633606272129145965604270233946681261049291454981937742319091454351232560751219134555951453627048151219500052341653099347041303819478515917927336808103719554161822418963579668305297120142867494542199920262194683501196104638133129180998970621774280930089081778596716879957837654864688967966836381616030284677306009273925572650590240922563930395505670991378099180092757170251247874129132136321645652046904491341226063307338848006808106618809228366343783700824947533864029240319934713968130132387271718503586270209217845359289739949674512497276359579164882107591849811294910171137479245604880613172157036672703789950571035127889370130769738652407112731662147514487293944350227317419609940024075533211271197832577375790169419517639652382897821495746078634776005292103550960983391565871297247036571855206364468256091772506926023512834491640684156224669826455496289583295701770523094992039534593560745816299858039162816004997207059288478285229592251641044613066881768020261961591710586736581130742565628340715112983921090216542271444245746713008922758486562622191142337636286052908590704031565377669923640378729709235844514749846417744691731154608881091773584100331364847671126580319276969907053760850585948850695429231856699335648218790713109083165318437800878778788207291218902790839590360640546397367836183689691579686687421679264153495319815085349762389975775611376768082367401261902284977156094612437117916793449709520051992795185054162578537046922796972742431887541604352045820553311333018092587292280336771713760269102603669267147231744986428612802391926352214962326981499053424111889225213961955813790113077653401701817417202620384641191656128725196189995379191434282852417685484935944921432795098734347882873832535357689883927672916092729149870398534580581632368778751170213863236010910235353918545509752468840770276721222802096551321327479888531713053955387811660329096584948807087638387093834210526005853804163863654328923575796853224381087061457514073015095525785128362253231186821233935422055004914959556205979046753614171854458355513706600990126713039751041515276127410711720967242898667593436466672242566933208736924563627252853340303605100740251347310849793516342524328544468206397115820142717943483431671241815639640891447758833934958509437904874359676615533419823809704293928319577824938651715440401643650571600437662735595520384893680044577226099745811376464162608265454821298324447057852127779954884193642213965497325924860747599724524965758697030916762699699133713440047254408374580024234632396931742545806617586403590241417535318994521544410448341130843055851243644562985038847421531745558670458495579485139717069658684075887507942104013858521475418673245053043875604562229958853783750165332496893285096007846512669085705287531892249696911450011382590096934402554547332765642238831052136794249591322488692401768611416124352598174660026839316681771009808147655548123578074948383025953479883865118711329742763452412059595768475058803898890352301869913655563591895229658109779623755924811234229984031835994011048471431343518780250872689594667479686091209291403074938914305310403700915745664701045855863910940491722087233512305393120789852558864006106047101757830044752340665884689918053903647653496569075093740272338107978245238925790503732184862287972812068351870007396706192276363766650938455281048537748459676365817546811711854669093894630562970412960994535178467528752592483431233862257585525309010790471442407093017266400571658485125978108244766280224771803709902643239778413492351915908107717993668010893071082565856050468798002728020215418153638463064412515549257178909410077540656477207345243622436345670599470589896987926975870707833225346430961476161713792010803544979282430125907865912087914195121841201180807309350968517876503944953355422996199758954514489882220355841060257106247883008816543659562045290607997112098665119489022756506155838721783692797688964044763976797902800048593885572233029033983235625683851082009752549880275999576319301358467644996962558620549358450572034461846239996412883041081458879428790103718798335738286987428858939800382209515116138279369848358377894841207228927748012329235701678674698362577152465602890656915682868178669901790731997484185858529908009778053257178652269301710816596189699517585795945663325251836847756567525069745625650716307382372801618188967542266439432220080658239206278209807183324649880258566054272586128839064387254270282889734894580024982240176826412856264614408345987096387965902768902322542395051462534847470913977568940985670270925395487663654881351587816579046448020065560360376884234555825613104758203823918033736357255703262517369262294706574228530936197732721028379054201039167328227656112982556001729950419904540432768563291195596962393957809321390823434148955370875904378749430024377427492476785558024423488817738759601719068139130764646823027443704652174024290135596781266702205510366207904621097069827337906710808296373429033567588183987471446970711128860637938012960907770585759467497577857286256672306924654504684074586566901983847611946586016558396770090330073612904056590320844954210704767007211584494829160376495477866230881214432307721050188443546136692932417108169594806963818569177121263002261114378834202105535433035843194526003337973875243005599552186661155060207844834011307195074805585951344446500290797145981623401495443702770101410392426652740655850531586591436359053941439821501650735114624152549051359608387868133676037333026272944961543907198028945293970647578104073062935927804594786480429172767473572186357097587724076823242046717171850902564946108976968506377923514740902871570595488491308593587105532204780467905366399384653851379792562538593673264179714489568731299320875104925382946748572635982167146708127560119445853221702063501002372845369041166291394200094378769834297561462071844048693907108627501059265683508753478448148395749140094142846694147105415383774267476531172730404218309301985715452661779672044167517497402694110419305149931489811522665427561563291439593163884010076279008539352777108796043906194839213295317706223041955618155281979054983272502582091023985054221453354306752557451227389920986949841703676525084743095993579682390700803713267993189817526169287675793490136558587170566829359815851998351709407671752397650219070545172885693741546573437943885395617713055811859868185129263577252427424425809271415786357050808975580656399563367781731378917817653465308027426464860261967884321250147989223010047230816304047370356078249281828008076044643817060125435848832595487234607995278823008365147338969823964229097699087072588378550222046901380802406744320007902370362326914845472916777340019519947847031592126407883216562916289383088389592448886215832825063551056977912222493633973952530808582297597836026375522395497362367464560315551593882537915199537680363784324447881178422139851839145603150608787973313174597864559849738241547936655640327005892471465126595998255851193857101462159253488166618980863122451719052654175296608176036079776430620043012538190287237991898532289382980052973329983101436392588849791836226663971052895459776067181976204482190829904789295480115118890038053303234001733474087683325312193186851434972428252336606913394668436845937729511150331054090587410421880705814992723932001625129940191097250016222207960598687401177455732063288052729262646159557265621879672699953826506213341596478549310030163257913830203177090869828475807057908251359126365526832012241567286990959756896951535762107451174499345202804158766559479200739668948320511427687260120347843142132582395150595682750444124878850959110202776187530520875997799545597153063068698534623857769067226800879042326180938862281116525402054180012109085559819977681584603571168330360048476301878422795990790841819954700157513967692073737694181421358359470544868821412641609293191681368298575493595831189109876095340251428107513061344388012274354853729335787479173582835928744280656683229302811575542423478684339125034380039640538813676613607608994362147247419908822771425951524554290052490770236945422580085267911451364543361263648744440449234482686868121811342763614882450720344332054024554573752077312057860602682754631062882353240882256501694641008332988890980545185225803988455751625188582479990055179598419789375095294476738445300728815191137366427875968703744462666286541840197040545843539339947627212732048123227066393116944825944802457796255439479682799807763830403967569339830602476766381461429263579500588281172699605091408645959657742806260357519828006233893683388387666241388500270389889932475394577223825319905161862397213311760754917890763352695472803172294686879949511293076155201026895458459905272949379603893642482562034168678910885039339437369835154058012838551929624399470009693584547687500817288921301758496507748078353428871753439469255161389305446185277683102382522866186560260489573947311249132961878733804418745899902981730295401336074479384349455663316098180768383733056751949979798173125471487205095187948791600447358830764954449837762660050209867464491479158995988458657565208025055344207521330992855807808022278646950758640725126505383228704575627688931596463411285075114754271892946658166159332805993170092340282424433091238416597162538498577367261615881357135997858701766098006822757295702278031044850284282140730753499582146861326688996754864537001920198040536870526702486267850789123830568708521131057225476193041084348306688448943134530360791919117810851957650793830996889408031663464114536011916217715918456711945353772028483393643479150739499462604973501744141093356734363110427476132753273519823296381858079758392919253895673175457155299365578594638247607117705319770476432174597759819805481826764604051419562657746204871031237365406476775490981965905143473436923911399298504470426140816624860344838257399813806772552507813644921109850662110499975086085649962913517889199198117395896604247203098459418932187644156410273516620761236701420356359609579169676400447135745867304088517632008350294735397751676478817085509856249899497129822177893659943035226705960959610812709600826280243171782496909027448935371256935736645858769887521844533007349562030944049444317288698950392304206155020765438022326564519765995125110706236682791979998052486800516032843274439023853289073802916071558608461105012784254060947972394102148586253055512586878599567749771667464185250816581428900735184885764933222537994725598549913427614466385945019247248486233611931734963280283589952825732093797199662914657733224863217576017215928213622905638071269196975936243975059725892909275123205003381774972857090671963390102920496745841274888380486543505564715970257632923730678153222250924418473213707175856932068628875938105221711055570093037276983658986736032438307912458536430130779684365888593167486791168252229075248644394606145477318795972386599041092364817273926060484502369515118414616348077330839652753644289737645049087690491710996093762454614925783786639262441436299521806488703514281088250646558131834208986870270982411469815471132342032136242485331135781911446400367090812098737169622897972452534284912617213312239467457610422788135632365806367981156712146985553698145341050710536812672686353530543099495797667911633410473200968647030583541094862745598794070321639059853495612890083952942177333874292121194494666904856518860652997517179437962461471940035302228367572006752870957818966800130501802963913819046082588477451256638933459726982535887943383896851012369172076368682109770008775461998635263403384514612853878277253859124841998886568070111379628218154641526582455547761213305563167483339595851158744056428657662587583535494022059227663297140785089453845097265257151830400900521502661648441482328117981341501154777357994847719689700655230420290755201012093735489658231735522333162455815371079046112780283234400206150148810832065065212936886035509438281439695709330552260113876149285566739406421172357165797883833960561024410383070614636134013904193116291316398105382994833220714953815198786721450404102407180724618912637767456474550946153253966260408812744011555727165900386967015029347676779506181108762523846116709425424407003617033660515666283255170287629694139882575273423863711450524854627982250234514779648763057528626880952497275918508911246659031874708543219269204986092067736260467954542285800239519185993388408487046593731143558046922102281841131893089356744569442413183484712897594066886562632453504458345018365310559525304368801455189518764729642376439077779670869931580266408760067496738508072881975892749053576729467163848561125717796888570649836845849486056777707018202206870342912005718439781538242836400617538518127594395730070289422409147143545791035419579726282044499574950963455417736649561997368372703188967849624098160642244192948099266525638112093805877645584624815453837059230459500605171767691435794377785185474771922459758544385682413774190909859268074661644354664997185466372571637513513303464091194146514406468605475098669134545100701539530258011807743223805450834697527368552399279559540300596517133045031746492532587554345008085201105038505306483781601489237676832717686951943397485298564180444977873040343590595238541085758429710229801452883229387362123089031365958224992275101726217604610419353236915362607566696194194153093564877449407811996768988495620398295718347526695110573997609461687667564929497500239573843302194736408750642369931945472011249554854275799815732485732173741689306328171180971484924508586501241627654411393360413623433652287449282962491103253880558203615232791433932863340239484221251799635461472173378052696320392896952929939276883697512844185003469852256043920969842355853671900592078704244260601536620425238045370859358918113085055132465699468153782269809084836031022656507436400956770084818887163805776451319523417301183156517452074109902941320328273777502663415451481743816747219846287909775896657245160020665249384312554399137085139352519915629153873987828338490132025069624067034418704936041865006539434883024610909495034106280490338002010494649043359984720051472527996360233810823425819575058279233104630243862331697853365423712796141359537394250783595266472290928516928650460693472683369560562656987542285546299976606567517720751209925808557093591244314976345947922877014055507271790266373332700499074070016824940252927568053289804248634557454340631965964424290128574480295612984753028407249682297761960862110301662717703407415344364058874192317980922785154044956444902702526537130042601917986010339610289841207834932126402850706587771603204686123683354216294111880589055871864129745318004839001950694650939117996583312778759013891006185248393099628555377822790374590439378983291152952539949313589791256497320716186680529095650112102701795418061107152772421324994287686220491272728099789301419227808407426385375666132789240597577663658744982202729648097623802905692497226204591836886618446097775917809076829687080141841267472633749317522390583948589752554564393793589431884729980739477556291296852902138276475135486506396465387725608997669993278806510577172904944697405273064707746647997829640343018396148221585795647243877816197727294645845579165713668149926943167849190942273076567006039869083602669931696730530582653847077941239236376950047888382132555113618836051812482262831944086629208472041993590080858402320523437914460508571366878639684131648278215875470756871766268835040725859259262277125513291644319686371870855327582601373692746381421464859263690274105409731886527270768626744503476399074068887441258086464601444433696332429438976527013850862187746259578808834343386889744865877986501182354876037596762578163591119453407051835561530240583400850691470901614713778130524215636366680595419675077887896520467424604034490241090828264023637958882654711162634815210179576956686726677532646523184728853806480595088914478874892274361730790261915630945452000032508475642734972586426011250713921442733450934090767469532700087990675680179957555933151175005025941799397342374242936286585110975023207166214330883845019868525862545222666239132201921105259151893921883541510385270867530287924266845220088315226090855712302907454502071022390513498584617081298787084413368563651728839269355763844019311447862071389651641734095977213649899250377403049374351819814979979644017482624870635407193275326384062907890428111414295488890614749528620947132659526284439625597606624564334444022401267318602922646322078329345392634399057712287622433361356561253335494665694888559434691018575288343014886722646443792469565704033269156910158257554747099962639916324599568023864962095728090177853272949256221656272568451315854820801264274069622536345293380111826510789206812204658335199452429261392613672329845582887060584636650835101538839200990271396193683909892821790347479181808567594798950944973468286180787755731020496958963463278270555817266357463698161822577467861942464720856578512062796342009193373063395193126398700798887852253599225468068179437391564372968889212101697519163606648548441506150335975191848052993745460744912589383851169317040996281978728186450074021270946506232195973517139137438767834072074446470079203109991091000484070254451173166535795430810334223733317487804723886132517352807872087008154877711179968218409706520317957290099356024659447708107819518460071839898002724800305677594275237052806443471640740897108033682541634119387185754519638662521622064209489922265610784317594079804730138426594568472402297226256810611920065839132842034319742487555334899501230334489162944951408656174493821382538889892582641596181618331925011809488709805647352584069867827584815176974279138074481723527279805891690552280717457625259914968561272645862686815472322870590820423663348732262000529041226814488838821518442499428803525405704542794866488657211312973644445650640255965650594127347764450363143320513217805724877340686135333823278177840527383997959790404727925869259938822130485932511079418403606422844767863637548086025860959620555507970330317786662970745646399294393737912720471882999323091178213999741129476468462817749138714622801383803910308013142863209361802151184341884922228823153050741307731836729597918656240130798997727243770711162274576429893835833246794835238558672482367211085240319976677529615677711421088562399477540653820166984493641795551910318818314374148347965330304581555408281499636297696320998088790131098463682908443720880488274862337391627966633404341957311054931914867385256966357948286947037546221975843337568151305098691852616701231499188928215795379855932547541809997510795382287641641471595961963973511389833815916330397710629081293694197240310149854608825309591440708263470554228532885601456010821491262208468013847137781197358696980706250363028339124827004546687961532470115400468577511971072974267846372463320370841731119738298713472652174279162115962551094440395716281257965979195319221126088363053684286159413159835972379697444376900249668353484173771288849462142112618255328994037033402421368493423911886877109398991649176970297185793340330369559038667823568412095519594947098532784226890692986568747230065431241765468961112697638117151677911564106103834122261927441243323165987332994298066961383513557320798564751763891051493440212913775173388258824563490293654190775976352008881122563095879688856247409047722412450452497498387393936974082318570103064647810503327373137672394173051210594109932893564158478941602092617364788092438391409741163514693168285691888369790574032282324327650767694742756562791675420580719048094003094296189216197379575348296589775934439877674185197884224051251135564698693642831254849663611811486686237931811498705529962841512679017958159663433531651439083077653513429834128803481339471977726044340087319206723789833290856851202001630033819567252728436120587897835373246961728999586605780041685576150101147190941512905605606350668748865883350664649185962308521141920096095709123669463197309095408231810112783841004155222695452641577559997899339929366185897515953051726130098408463669475978941019701481714565761264525650074446803078673201357806191204796836842920424551180056175121799368969273087807644623166104252817697849900115439806892695744938484526052761831083452719001412493285315393449549944011528380828646767490596057326601810720243823023688342304018454116479803155087667577106375037553737588911869160356889981831467335985346844898465198956750747324207558997839862801849043009966063224087768531379897062751548653031309075408965047312573612951703882580020140176634006242677644002734300878753639444323015681395419338697608136550498793935685743895752427854049627931819013782259005206575263708279744815239192715180044098159970495510849560013275388009281751424399632290756212414325431686124213672373446010100738813923914722101342042863473659006730481583889115330867932866663353946647458788544269705523528968093928284911750933980936592064560639481979410500881209831696114091668416564800889509255705350050110622231498183385182742587925219872250883954053945132607611593126473851459329918948251591301075037146919848908077033566625538090238668805755199084050593795753265300092995045051664993403014714382794780412070048919821005401058945144376241021507631985790017843406218500369346781355663080172766595665680908875585517986355173674516591068729303957046709410608570099590181999567324388514711289056462787624819912609308980098061378147056283936512544736408502017665385618002545402185516727362476130146501757852221739941064339607326590336371156716207997063663758713566095014665331199307828753878721080216116330616710917594657980354418375098232348619117956579957264007724949400664511209618822495507303754453610593158881815141286888848456001943655815759332663543577305409582920840821428644953373164680735359068935947990815924460632524501098903881147180648753164313823100187640889540543155830032840558670676269332006028132443130814451182568626121073472504330806518740801965420559740196623143595856406861033510422266888688976553927610106142361026804390121192612658425421142249225341670291340301828263712154519489347299609188189637710258309755766921611058052049745495089044006823164501753288725372550010518435671653086086472735502941391186100346633311520565222138601696627959660312455113221789524336757490852127403742351094323965155054676213044814661326362258489572296802005649739207136076560345853085745798362579270088943250540428587074537688324890935374149175045345835151966732026209747554943314280161756897803394750325906284012411401474037086600784777143145281168631676994789250463453017219276233838291797844272900508597721956674469730597428867493093804400176919643270622799949492939938426077302814547376204538692496645202868430158337924125106172680427755584319580539138288137926210297824966353341536660194912147393786560009597672921656645969556043621701093061957572698742514225274536707018711438447227603977023172480184525732145110270196437847799819673143166387574802990888126847874105100427940662715747024148869178103795421941834349819697896015164971852519695154887181366034105517732325879438505744149777887586885372447042885082113125694115224078695858258908298912986487048006489076415465100982580568495196348710844733720457746067229877619717855256614681677999793501351666516950483808672025241467568262263574904356871722924249727818034868416166417383802099621613898898684816920803650633625013589505525281913961418323039205815439269491974222285823770741736815438316246699957126348074465993002347619124674278759855331431267366388607424003474085333952596724267470901550631076694964545104691140822420572926206080057223523292242097687819324861409474470177495640172670922861444817560827858179730645512865954089288555929110152180930954321727717166067600731427252520650359656737854790344890431752640802307941837108645036969373460063931566145202086696222319716379136660388147380755041146971330358257912453806089178840144760686716341638833652069898443216981868364793781493450162035240211640069865231624152935831509668511130902836563000508419976518252898561409236024035126985841316765878914993418241334529397572053551612197741300121824623989000549633774335615596834975522333928250204264848899481957447871202053484580379263454919390778480266500932664384112437029094682958161142027610799040118492548795915328256960388818010034925732840154220109140031339167916955386932538115126906856509833403072785300210493310560176548993352793767609605403042723039828916989248232234490604484067322778718089479710020732286597897615190761259461681578376064937313639185154458584100852518760910861447333457994154334256770077147994188078991244065610659161334714423638882347569003038973605906600280082369255155713510374242842073449455436555933677266173960531790949105172220769531716103341532058508000382567356653017954060081515189994923965697711161595449123772188086425132160912441137879900458417658315414039848388518745881234135565417691105483432853922430828195284130460578066679474458220149484618818719594515178619108831063555701864642400065169051888800842332485012632062482406750436949692116587559397417916824845892956960932245199340961584153558203886757298687876606653448793061584020625083598583216261716117619675107031197887249196093987447080341130436477702555269039163429906306963319993979600667388351455080530651009543484275051846812454270730283960495729327935008469913327175462211076259475921203034506760539950895390349930693239071305704914767172585233962994093428174922705531791148307844831242689394837288467193113716468235068726566827741198335819022936988301160815742799105774957756735738237060258644646165349010211628558031401960264898792877179337120044667322589185140708963900922653716181470640003573162233066663767627719684214570852293333177793485766453973828946337033799904012851747947149069705631881541095404231171820411688511685731137869074457445126364375632356558991322028298135717569253962962239547752078418398690900064839811992110965221782806310618507102176155258189733563509742364710831828790487562389567805381769293923556034104967323561196159552897063396201033378490024537071911898068426379632766238914892748890311319195589894834481233246356529568869204711261064582772449628930306743846631964325011343650039578229070511879913800577425072854496322832456894731355567593227122379636640253064237775564953096042709225715490501773603745327348236129265767351028619541830472707114843303831272566519589483870040373920872918454192690816910053392896407590260287578979277327758580172624908816880320908277040747799036931815063169463199563818128669061493555434322477165616409072696511868607883883739885617028608875714031563920755951883712174390633291075013290920260426146803313814800476079275810251941278474095497121759507295200834838004623675475432952515190988872100975680304721745126797910544867074463421502456713792719725264799252242376712835835483376653702549483532101500516982235458384505507765096352023063312939603442121229266202608210015691887094730117126394781374199727843084236574878966236500159832525922772176595821510644233342828984967284474536766806378133346323364065397440312542385850739911755844031754265893797958541674713680492266694964929234908141360049917907230075191289593409821358972576958279808710153182696319609208656840025646219658637675784978920339176637045677576413650349749446590845899332555397897568922505340285163731999944555511648159275161205876692272096192452517533706324273128014485404746176477824016977491166988135959028619527295203684696318008253708311571342666892382837023188319970835667525079609488399704728349428555954388177712569397123011486094236209736451792430322542496726489539134005701204984363501759119982678214384992257251854553422909915092007022662532114009432687356730148014790378594005583619111775493344542615345958335468507387344755004301478916223410136583034799219526757760306826551465465025287694886186501564636107782414173576151610170128013249855541680055482856440696701814709742154542529986573639388491776882185836770644395994881879158733985788843638313834940335381899466687183567200143537746977383891800451549706226748504314939419634335425394227191301016761595681390766042782387192692751899488196212264957436019231529838444933170224356875230453809787479049124956110369972712117896585947243208331076522237770377720179614696281473920712942596781603592460729297062765161474376842504955966626874403030464020013632854373433229978950300400289927757588625487855545199597908226429065299748650068759549006972269433434983691122891006537973246692156249919990444151053507107911440207962605467614809807882357213585197620738037623029415398088132866429524789165419594627451323489979744883385203927537875684909608284954812817281612021338690621338415979648541578042477136085934314748832022642400771802887118247468151230578180598644149190837488807806976623725258854684383872746345118857019115917599500805808148864378945732790748753503833156106777724507236150530087202315715847426474315827973613421818274846354336417711443719900226201011625818735587033721704340650454226200104814831620081911738396589258576479261464029105980373432500869678576600859489813700589322170071499823576297475692111985362023128408561427021609235286027440353891772370095332403609234477390200077631055278062295980657869687703967099376215187138725884112395952268988827631437238635299305537224586963260903783533147505786057564368797211015452528510424051536066848819804564493720516284477692179065384176882992768602451014174877240060019934954121852118420666732888603395815993568749789789855661940972226530050503280789413973571437490088965286214233209322007844185780013984020125028814537331125577065152242059356015258995710827072679316338722610428482811943468918901215215319394726653051781215841489395118718467500175827481756418040865616076720696622764820585405990785631172162067771826999265199979584927547229579829542841960189927504282895391222696016753731253251775645576331412997116406501444267633769913561718484455995703010973359579843080800987527133595001157502890503094781120347895021768485238642668634910256293269760464163228374762021765015031985314113277210149163805567233274517499591044551337714376308330748258034088321619966678788357826361561231899359048146204881305565350847559964669416503988524479133727283880177876009107415233192255587726798389711074574157717966491124767062209143348185407348758869739288102424213452237267374925411308995350706303003822292290126848860708318318092770842912842374785945241744078252177367351295869328308141659959377834276474820420189916119704446308005636494272424647426783971097627639530702904066738398608027972042075617391273196816620112805309751848168373680390132987282136572883721132069459358338808230527528901177448239830278005466626370559628391878546366101808171795117210707177560165685332920228129931822223361623985067957522274808484417291033104688937120420500923385137026458575753732468230665778867152589575691669595386031856876856453175191339337923536600498797933363562873205950519242935210835620885711396464718128033183496125633461125737770863091865484426509013157870921551126625094299413368572356471189617113332080442908211772691529017895445147139604373236718970316215529272599543670826717671947108694546463138795743057888851589186385908959914991416457876172159366465460825211316670070281159559801751472856990245017728054223702780464448859953021132670870208333382370526362230744155714804498683171640961551600547099538506593701410127102536038591561882495726675287134881935465591351378135581662515225883705494617981136561908614715662146801019057627605132212447876328141094483193774768569047426786937141443143315217066192409566525579111861119850331233379028712566011473267106812554242461324898097570251622329611658002532056836901718568575380032634392566802813961907605786539002897394806567815370883424256491098606338747169505900261941232449993318171297084727315003083258915511394493533219505543770981383706040507155384445782015134363782641178230674463128586317844819379139603476210154874370131198292703899755286573928012257430908062201423078484055138483061729650202918493499592986240817618792495550258540558028137144526065218159827380083068666392237495985807549248371977652685989561474265274662033163092321905066331829293594592354901040139661640413150236917861286038028375439074037951280667489249050777178500307710283372483474937828222878969689178318694952377584100405085391367050600041388391235113354969129932550274487306040172266888287579846522852473222943620917624816611289818694168425691162053101217531284284428121786127486036452575190171194651696884271316981028011291761697334615785058586787855193630969514405560958838453632984559333511781523444966588212908056334610560108333672721371987345587284552408347556382223382337609362386266238241774620618073668468670622309202497927368723843431482269739007918513113902676045756128026707631859213108790775469025401048872090680301642636289543802852475031462778119931524486903272350442637573665475095891620548198381723597501410563134722182722581772898289522873925035149064896812351769264043188826731925712161318353030895840785738637522562745122472305728692583028027438894344780678924745061209066695966829190959912659974626726412070877726219300191026395328646286470756608893250440933943436753485792343502773154208317954750444527648862073864963249132347907702857685820142678845527311604326897570319121558855736047020353431589169039878738890461348522484825970232005734368897971228643440736490294689314978300191757873830298687666672179435444121457057238197961086404840819768030245310135030693333258066035670599662411670202261129885842975695994195556429076754186890880369241533416349376740450213610880312062479182871265322049270885487598232549331012732787850720798614656431891836338441366750517062664154452895875895290251474217985323752862181740538337722463908564415105612749972031890582557981648190147966279462142439364290704709331252354102073355403950346711401140660914596292560984012896241400703756840523168075682767965135943017790627962399864043350847335371982848881448673664691874709031306219001135167829441728714716445315809406850852382133133238736254863082517673326100424121556860177865780116743233146818360462124926504409873104467635385938523580818375612239303944661338367486613237425743581936171026747756812069993322559202412283286814494646495769534611534053097752849423800300098034717594119240140075118855432043687694865819572632628244462512452874719250459878329313382348618848309171944442201158039213088569558601502991007142363740823708019568925879930627391720023524927671230516045052540697362669602640033277765311935986811440493307590866510199594621108116896287170775093066413033739172943211338513263601570408204135404030338827711148639242061068391199389799858266292144051634865365810360730249179612290759669436488106916575774930352736737745991858228051409610186724101618290816674509448274774501991566965725914594349832690035695541189593680821377896960035393257263438479598567661830682877060538722280866263972490790819874564713491525522025618544938701630788065164813448962201264688214890087870622537216710278296456111739436371563994848781905328235821752022022176742366119034786949868522449597754112995709783804222001385090371798788338147644118411197901561550838808688733477397387094038017395746688718993852204483953181180568764017514977420561150695446128477481777074886791276410519704052339232209188432899565521683108955377318178236638083337196844356859387401226424163446749293010638373741725816650876293037530772716695962218939301226979430243400773397017201445483366255710282449863034257653314441569025134675375873986795240717218449243394035415752581102418847439848022248938460539211610827335392009916825821019067108685558427513687452829099627679964911417260729187638945913417430088425291056273910719884461063310198622799078826762635099157198097897939483058843629830567780844583374265397330560640144233143127940039617139905290926295335588978733997190974735282307508290784550538288516327880851201438712596981952655776125434099154653226044658183496427823746187397607989344801766209830416197777040748979047817074813331580150327624373756363312080617056068176505400156592427279902961642519151207043891939554316881259843709653009069008852203005487410563767844984026789242625722163636907235757891290769748341895370838629838490613338813101692862287181092768764112478513501491861665231054767448173759902170357042557438722875129539225474975455929167497529093416327503360107659899380582079637029586667611687068998181981812771554068324444911512002712532690612915003965624959462849785727273962047149617608496784039590066540594678322214200984141469348076739059515757949874416426310563646356151295619304807534185488089688887616236746698430376320260435002607155145433065068881308489765858550290813452066160980596902840159812115243109700427035820351462838647989769662220121017887516789624328760729310496938309409580147720626460721066769488727494509621911172294792223216012039852926350678619798184485717601796314622760680644206570662673546258470502221880663273194285848735019459730549358078770861028984205905578135315554715046210201249087840160915748032052451482502208999282377801331899980738457665258407041900758634269474131389134963710709872947773573858708321285776638719120112358756831460809564596886992556749643494172439714858210141264876962544960898232225957006309275088306706422381700138015103836020642947155572721692985947279738323535689822808791958120303852913340928455964908635643036086314723103504288776862540581255250656956137407958948708419565014250861639751345815554439790373805801911871816092472805331315136402541895580383190165121742535004718010567766555313972759233262972381461635550565188117618317966637121708939664054352694952794411131242788717401411343508228043138233185217582057969404718009089073280829966855884907059278029036725147775205683131738901848460093444924975057846514769870194109432862720904040486777026430622926675599864850130051034620307717599039612439098664061562931800294146781920777501040756284934718932789927305634070497765686467452289745460447177471978935291531398289263840621831089484315177758128783396287584258231292046119376342135409720337190953700507147992677320979107599069118344543691208495297887292010752787115795337754072620334088994527773648795405805565473656555300113039193639909920356513832203186770937307383758985076005135649752311686700351697479400234407861657985481723070805694383404467749659911546070821651838183137902670362712643648080166452121023670236562108696131850947069970255908728846949167784380311692232183260262202474870627395922258701536956655243216022798474344531676643331083193637805943652490530799644312071059243135130398449851447853559312956586429895600906621938117502544922272565882777644104338175753617803550188087568800312075713090222252306967774114315160470480825029635270480610604673387333354404571469291448398052514219187311531920054920049741743035402118668894959399916723641705695053668852427000663254545504825580084900184464516442347285385981917315440822443885315183404301067150606583204599537658298741510136723514895677894551144713079808079359343343180871757512141176663018335840219014703584336106281896655454922964407246355305517135245642047598258761699108960618340876328929574942120810726783532909654519149075521243540806672252403006163551790842870064641127127174400723623272930648288912716334391264263589635116518918053846735251839449863875985942179368479214531237022476595587507470626854485808921436208686023618873337832728872618626676472620261961180818437461165342287221460113386453728492372556627527903545473857928185242731553656916442514469016984957994362570967862709255006750694180746648574293830185856021815531658150366765612193613802876302594796559558025622759638779397470461209276267836360126157244579182538939442172783983804479613257573247109278637410162409229132313163185763587180035052393348542430441772406519132340425368300887731603221629079653893372873081595930758666106233182558905059864917067453181084347261255169062926906312357417990322939894530936210347722442962253857244845649310584727998923319083275996948685618726532274606879900113908857608388192998286477321013124058379833848205053765177742234452561754627836145698638338823815249180165276380803700304658502078985101100039109962546391824187315189179192215766408102402868465882981775906259859969388236597061304199458335418353925164768081681295609303713955338071125352105380065642461384867366942100280010838397229647512612916513683664004294728564421590021366799595961625409467727948600594478051830484983161529568730078319649703393692673602100664764137816028978789568919735523138658013954367363163291782944646149162422993624779708668046789511425303141589926405321921127333698818470888335526910925955155441249631503965720125108632070221539342015712875676644350754380976438611408368145819461107010435493590666158157387847967515074430986693251586754171818926649425332364577604031634269862849269779518896539012807098223034975644344175145145282042451032532640526378641481949566795049003559215353562742660405128548092081289396456930479781639429077763962122529026852827059355533787003245434525944553390485046608102524197096140225710582086154371593530353547733298330904833934098333310591203082191462783034912229273522656677905684285373853116430059297681599142794841959490215088235197825233998513557516281741215377008208276765016221065560044095797424613961214064121829831280345093236418018824037367186869862301107262912853066979019922446907511743166524141867107080111515013555112515887127457482726024676750382168747566379386506971336514243151523443456638195634577195632309944155525984962202285642993865812284196081646068703530500333808089702778750683434820033609345909299913689399324290647528706757336078094684934335790100352367610059171464906367820449996513295656927581888026955427799317503763094595367599607396699927839506521263896687919345633728337170856091318729422882627432685934286372059061170650007124582788965910418893391029627759058152236070074603600456620244390676464488176537469501551470611124126318966104123755752840499101247400113499536967430573144123966010368657636465876571449104530082255716957964936959053817361168599531173208012439042689138035066291357147146272525085933918851213887888051875953166682598439874298303169129618710722979683936940186066476508678174040455634253873064576853016215959710966658528226979763128919454505397331056196138735070277791157446021603051295093495561069655364991953087955552327311424775022366947629598803885142303958341439687436113367132904589441288723269770845353056971229676066186752960866073646084727541741708119414651466024785665352042534720991795155907120184693222954081853962967518812916323251109351846029576459237841066460793805833116884037419408777234773900750522749051664142075099296400339891798093380214558193383915901658525501876823526728015524408600312990898057415459858853377273326889013538516054577121232046559060547966399955731357678500259066995526547486799133498707012574262717716101951879012786561557044693977474692106876428933401117276207139877163743274142576966709825749182524665071704695030960818572276452086098852893858164055853524633011788242840494649616614102492856043123784752341845125695061407019398030488021363150562144305638975555616628846289051001449066763513250300790780855414606597320612334095514821963300887792508559205465584334971582251362822953752983014506415269502735987382306680264528873935926946695330558440595963228528169708655643104749409049848720136726436645121939595243211606692508370277877794890863040173150408817337808432201904170371936244012041587742850154341605531224320134480433312327814421081628492596449922218302870634315632804484334887507562593253612715665362541068481079047614780957767117887283409145885960577073574276474700139462941253401121401236490217096450074627452772242134587302292537187434392307799077521106249016127118051097767256800695473618453390443570378621440069481083105725371457860483383717148650655945179853735230738333228168117007315182968186929399817981797230829931476950554556042967702799647748641610817227310967326424465791974301205063128079524368104607065323156892923412256921984723493579249336659665873142538287102466987928828330559258682074621397625810902425282030638799779451625105968003404404783306201813233941199690285896549073221214221865724764066908722769701136413637737660023366735270200428819759626605906266949237377407172684658668161011422462535719613269686871863079805831181130629336723025553540475765729953238468129194933855640329737520247952151208258551601206653767738913497937106982525898020666047709554623970070586620059552394473427576435105345169102372565655863605993642657189197881692460950886399631246503759385369915781414955663914409811170586373675260170114668958442044442968091773764364703333710827291357506301791165244050726897056347868043060092284748356339813969238251206929565516113589279746400663765494715987901092780710961314388378800570829769114588256402597500818127572194169591918592260053659871196168113005163413107303896250031422577705818096683163434380605606594063649810569952982992168856924345698402296689653954572427716712308477145819475427323364886247690394461071650158429101861851578258133815105065779375122526434827852194154044928870354237831174788696772740050392665744830564992346246686336298733017523688586604703325541675069636767074748905053485507203496648014762193906976463438757156978021496969109774796140750891515227882969174122120879568585306124954169769983829026944082537101766902326058079628774625283871016886904563938306379870054239927685042679881004151612066071935335280806310021436749762113635356229956069852216099240479211702778480949109058997689345465225519684850828238803360637158704866185842240331118890505668414041553662385231400615189872856087026663003408455944218411897688563059457309049875430473081758732942931688248724571284016853912377803613499842576453795973231416204569636809527592575884410354868828006441782740528666561989712411312352129015396117157701770989872753108797758028329446759573023803446054282595864851131695779504601073738884035065604054925339831590761692208428562300774923304052256616817046167069741488134190056269625571791983986410574159912574853018445167939875764484275451030596334230578721003126319776893629784791754746048195348271390468678538079538070592823563528336143940236545478589579088693479328171036062235454773075080431499576965979723495308130517841005629242543324757177917144906040888169672885696327526845865416676647492097114623945249472605064135652383693151056735834806539106065208854833040263749440823959430518948901859806930840341284840491106783025647448223518039657941022032657645050790319476683976424032186288025871839600872992712982359767659723144212619442443408632441672597837609218019193172162080570632016212286506901658427715823164469911290095154145130553184037096562762821909198953265734795632007493854256760964677589189421664899413037468569102881884780065346631248873063346118556554947434809586328872346411038373986826202932024282768939779085327793432191058799145773820097750502472279072775628864958515488106962748897914728441236530911793165772635805114180527024873909414329038287260516095185467397525759917928913104543865321576605430247105426658440326872158568258440323242769064116597825556254740336630970674488767344560360332751542763912334286250307079073036084107659800870062413507428339301155623268731734073749415786702672026104479333904441012833358363600229373221641701048278087628998926976953414193952770460421206556412771246246124414853306977925801153085676459594805439749990250535726891712770470831854728856997457129572838444458998357022176453988148787006891392437611362360701500332560782189620706623375132494379300868277866241516033929906576586729842729793864995610585357764749289335800156258243831514949540646203938124504869888571915630374104092982714370944199237895840011340386644262928662211593941876909494256940934883860370020560609463322250789231297043986732569117431456149726211112322149671245240439791026098602665205175159760602768250972477414016638853306893575796570442348453947783774415162746314402999651213697450687630268322081078830774750232230798913674827507170749132069038767133910158384273331949167467783315663211685145196854323392124946476380579030528887606285958781868958325118357319393729737412178151463693228151202535823906595489395069186530732610119087574765513139887813835794673068687114471734118547269233494577385210432798801466324135126464946650905173154933987985664776229595229114676005661125767927929352840415774248638154012337689142871156501164610351901865712519222670788212243599910434333926702304105021681787957430868208681222764978652152187239109307849833960450424498341073705979863078977047301250072770118477461551405924166123378130756331786310851025645228299100272524986941932555262765580791699664735339964735497370541028931373455997253348978971246142327167554000735134767590100980846179943359807145129310006185922174118454195148640722164625510383936046907494682210009988509327902778795520504647751507998893916709490491185546602546402089118156969455891896794904993298970759148990921029885264318887454127915082001551012718986756968333639494767697269674745737480149351324160875702750253595484793583632992970211185161800314435927075806190839554426069783545119755339705884100157247894406724112217742012032388611599215599921941990831962851895850831721773087268495101707110421215945624832282747691782363909803755716626222650264810509248823914849050189441527173674860290013376979347057705968343228708074378789780361671808138925113377452104298104473421280227703650637081570530465912322464248742948713006430350825197222010724751812249812704905948042470268646737173345410367201717726476519828262905869476901153529250444306432840589140558794081335668050700935335781423717194155238665512520663299605083972928587401259990998297263409806191250242903265711889952551592308091324941455723629906092836140275292103513025000093875076088771766966629847285557273941330558346988330641972909705241308333463006991696553154417784164493520317436627071976732987590324465725895097210781562421192050277812907162951750539473651752526179514837915440977663687670057565424114320270085688384774392673853146136861040238745660599143041310949587927943026379830264332339322380573109269107548669587066581668964259783429400417257891786108895082010987173970683461103114678992594217897021948347295983833168613994707085990728368048657212982671993035506613512904542721733355636296886596860381489489549302445504589274736528062955384794893392290960797293895684815927189103367268517595391327508828454235198158108341758237221157398313395463165293417456014502171822478164883131918058599125915807789053651259089808875401083721274845216406460597893091219017555459716128501856995509017899602694005218678185182934720042781896869708933336984235152023411668486358571934634242270332767239118896294388589676901820861300069696933379825355108000777592586179060207433426304175764058775833964688573365254924210908336980892263905342318262054991209411030492388401960984774206564611169430087726734641561199194811628948832478795273184957027431048287846629784874959759593584435410136457342927867378227282232647249748175574845038052409133010714556190666915457371752040115126968212422687664992378945463096750457472593820137564989026032449344540337856043651595191642721453943655613038135781475251767099335996102901600795527070690406551398445154449007671746478320310957660123154132800347301504322347275624096550766161914949237921708453904475417285101496184170528600170853854293194147087508074611878059609827361693912035190477026597816925233112307590051231881137401947908939290042014314140099609966828381654533957778488210719725089910138585059191896847538948245043885299995414662350340480557140240974613943020358792827360314496385153394906855152215167010798955284985395611202940154307124658281668542038183477811326940419968925473546429146591963732217454483971412227441313322561165118159936253186820449393731177111916621629388510823211369143005414441350736044435187934073720064488490151590740560625197250183305497877189002633257941389332290641099762323733832142399119158997233617322911286008541174007634273264013002121074669769622918119142403566423389284038767950225684958237848437288195648310495984845079327287949108410675525548755722946122283508653236503045636406185599399751921168917776017106655690190839731916473832554916718024065258482327348037402516017226011380870718831816219524588073345260707711683937629203695170012626876480269536511473111500459592515704764624042170353470995150245690952636599371995305347302469772389194500201597542746555552556933375047179801994012054590733158498319079518508585619822278764298440189013718802388011226402484285150595504810320638120993842619159411364600140512356409104908750719721733549576898242818559374445886087506360391071136882644250652285311768285477488685967960307196265997696477625207626891602981162810886489050044047943321000519624019813109267064508217638558478897387221316079802572947008622813419869904842230704906483751406930861463696906214966469213211375962359088802073328235402725885627339104828073193969421666395920203763084716567325011642055431831627880026803592777405774979001262257174631179247326231075619591505075072928234926730616453804291950251007195269272186355227758403589825382407672513484968155158879388613936018722034397041954230201576015457069272698809418536904724259483456394866037419869563757683611596081143485276597446206710103449520497140876846230419834587717673437407198380094075349473811035012103520651446388965258557386250032295168337324849204794629529016532891617348724584233254126653174180509189849257757975360945218642114591717878025806017750641072016355676192773968868127732203039143038145083231411781730017073118767441531183059465358659650784370001021312547744465056060799397448878921310485786124066740098084735159731682623315129216630123355453726596653235082641635155141437869818722379771267386497082746300850523550504524392443485718411642330862678750094068484889489411831847942229834376089067221240073030577859678057252967221395175072062927714977417752522476361375625779239880254197677455971389067199361341205100035344300256244647535787789110063929179626045237086908273723562664773157925913860625019458512946397117356247601029995010514687315321755142888148612574628736593330703696498789118735657572877569074768040732835188107935079077899498331638560128273405846729245723125463030627535704381900219702660411545664770869616015847368316158159563197234538228475488433746147779459197753487015263392480309886820842774459425201907244673513365772874938202627463959013772748789679467400566293194025218537764353639711825815332448454222872622599493174932266745462037212981696409162403943829103092134938923264521110350261590377090710911372006359258161499906251729307542591793262619839737179320674326483618660980629238452783410755627117065484567587682538160932276370173274162623311088880833524431871381289049056500005104494337328222568779896828573482881647539620685636468920957582149524246425609573741406344484232678591872941518736182804875001207102364714590189728122391080948808148696155409434494150944101870988899768708150409401527586219322870504475189949393247324404118468316834758984912987475997607183358431304801928620281325148816068492483411423573373185828895095460354503854172406055035343663757652575004715274616842089276513694840360247780656367142645665682670206597951676145275697800759108837155111606089970750313691019452037755422835747486655571801925366709603886741941243333686271949379771347850303876162628075136832363275441855259348409781020064516444914837051587747860477562744016900504289700591374915808154018316788787179208390691831207947056391089148578003096457964558902448214551587526877533644297493409507469553325315178600898241326161572253660143330798799983092244277627150214798907551143031047538606278666095905024850110475703054611089327361250242898351702060783915424376637071788238222971267376549102752699229020476187168037808133751199035233275611789656588957842258598869968015135961399989556632574093900444145756009886025193962728737102539723692373485945210673981544020838968009485015853214718871543481211560953832669809024176894640163753160617999360532974401782915559583277025561970240255048057312679043055280662178248763096153354395381084277114244727780820424024465568743240808849117229602742560317669182047709482655310595123997239051006647729179131644344542265693592895330380238578897964971984824810764990587177014987358438687326306620968366520584642128066307482020838748057004393449736671780475377697334143151958795632203511529481797459085164166371884350448498969208583867296158216190780636635954970845698462120532685389856035366445457452926930629009152554828710852118850709919901772564787294031465961607457207102605866944670636190733330029405401580259820341113418183359074588147121379400243232578315622439007549707296377826530649369073435849024509296865983552223091936724929666364015787150894615498118735269924994138694581355653027106175980218656565901925671329628974467949611113616292598473617681280907855473085293517678549320175720851223835133109886978298594915662442614811527633795924484066653129315750596737048055602457788539946555611500796354842062065501532656028008430368045093676423909414598231526639837754580808260991748117525015769739400963003138768088838990353868106216595293722056142706175068789951863619885114838245585741959790947652256367131849613616534264873292863802837589946178940766840778775320681362045763002508355556989082399799954813622949710862997144916133743499516772870666709276285775031834885934603453661373820690994911355087947472288246623944327259862091711797485565806750704907697024324260644886208003228282792253352216623260626241146545051592928225700951829758589479463068541157902734980024912668505209119210231635440393221958696175028470237679815640814520561995842303390131217245784938736938360104456085255705479791645943606717295530578745254011613169557461068129939981960551902687258414225699253725968227611708059110342027367015071944463286203423843678363980997983063333778262185871167410333276863467601479958440394678869992576138832758316401197141399195075417879968701347923386520194387610782489411393611670655432414121029106714735837968577986509817409143481259527257978921445776888191458949120770799377102761051339531814215835784907586326514804177999578512155558829959943240190300534805978650702851187991946101337234292148270880480183665215169946145450712610794770085306364985281596506952514389383072377492750579602149170749373558913882639147904452832106346154675123516340507779491438180229401158948596673793067992607248861356440551691669614873132574807867376453207046700390535043662467856504145946961967594609099321606395828220621165630125458551283417129684760497956857117027319358809650397332012926441277701768311254845299390603053789076170028086795638009819953883201550698687219524473835152438275232478902067910770198128863558608647931319324914423240884355967975527185720755923546587233673135162952248934646399831075263506079828609185247735536094264686893692148993644046768290833140878823660630107534889886799123379695033773220822205251101671623064734200392770242386437021672798778717797800881070476651278210074653644098411288954795635692893083240802530917979115684729100772496244526648952244434997340243445255673013452914840153355141879295244395399536033979362411440571235475420091613121254100292514467840248807774753128550601131961670440963005838396565669168148949658758858019295128173595567306023566229900422254927958272900726159197049126273193153716784237410562534554401065478040138183402628162213354715753654622753746907132711649589022980115221080248597407787584735198546051845996583675373396087871788718396701785366249600419284749361559585792325450032087308205699224479155700735325496735628476694108361722341784237742603467585748869818352217118931597415427949829081000178614329377286490284927717018649733727587896134537968234762108480895324280243794530629681383273192868234511709497379079400741738214016784362475272715544804213784123381301804749282649999405410624886373393381242582642779973684430277468158424545168721428352610118262470398703728546363383630662145825170302705080379052190864351201759300727853341186893905764104597973026943488238681012196779027998472312163975702856013873367320242817705457836592396898203846016306204320893131109060684300108836915185482089591876098742230793397520508201116682201351512822068513239881907143672644831213292960658578385422799710841167691164188357284963093044821195114045548989501360795460789856180946339508575520584787858332621335342507705260843046546121443968318448231598992619293997332183398821996998963377685866576617495082216847480617194002531336737898513258498285534857844394709878635391440014201618269797445659721216970228176884141391901644795475326817591617174589307600448179544140021944975862056267693869778989899789899632473580147267464644534863255227064928639421642581837234019334815172285684660227166857789452064616511876932801703343841892140081362883484034047004428325261176215958423804928403912381058013525149419836712121476390130581447990599418416180870722697826399121991547100344643919976987197062365524403835138393280997457867924857071665547305381166044948820425314572491967685365843763988752532047320140690555237790066724205541592732522551387850715824071649084855761345174839540930094499983091017777497798949727653644301867771357411833800124932279426405307368990393648105963939243490795021153398171666263909260800234176869260211915400539158386647708239522413016749659034180635996076048481136911130202712875934486844488657093194592819359463997006523719200894500226356988721905336695170028992139345491545238705484175897121534734937232426272570995715179884634888412374043860645988325630235791119352645493191467641573784672614586748659207447373739614394539329950111055789939898714922057578462474939687563763064617316182896352053736643168923378381951440895475478682872339939627795116368611801349690401982391418863746946609713587506287307356064332617594138327423069074864526998843974413295546266743539518300174844192909953819663496390445205409568368313876833039345024237466789014143342350361574684948835828640014315768190617400035308464853087410766824434768355703589305541962730019581434686223140276004324276225495123696939328412864561430182852586911380337414069287893495054793934654085057777577847105706180939376373986709979080910838457826437695957580401996160514853608262102976313741921548814279073136926286325064305712156460037168896086059272897306934802095235498360721334280875362922781430416955276398653758481885003591565114233087373743780505682329255256033922270996972181813708830932216364150402519131546252929229227931630422858039681348733682890771412988984934949908697531697315301576507838337091667318491477722798198244981824827867931046690217683482651869546299195215665599277466911456123535003419860200707317858504744831672600189929327574675033111346038895093886422460513460339014351509654639507224578728898708972518797249104800696676460566526799434593146529375299830737438937164630866930724932184535346378299790812980287149405565843128389174513213216836865057345693690086504974368762773612742143941499617708137085639332851463316707774175938833290769397523882759887062293113995138204934191947008246578708976767567104768624828245190952459157847364551202637727263800685168746086886931307619585438600811394179279791654102702462826589906057697094245361066129352503157572309531635672847686998084545478072270195447925483340367500586310109299180533343862058412047583914329412455455165328545290202170009450846539182016210692545240668854821898192835094578556758926976048230940807209508722612873987602488399787099826729259551398716022693421601723383298095357022518489469786232745358580925668704130360302021668390156423519743041226136895667415824426728460186077474532587580796695213722490557477259624141394700426701137280449914953202880967600019648723828062592162356165367185784105703315701224997143264727422958846628366144985022268224639716525698513588810826021260365141737069659644570283748067873015428103288522659597119005826444185317094851639363617351598196905659229947739571296909365915547092254439269978051339844896943127444111953135828531175824401274784837281028385237467454228415647900611670102080852130038334737243387916552405932945476637733342561576653262226568143003996542765353536306962905898816547158197970197006733232368531109444396143169798082118173245923249106641243972473659199441057952543248556231123024010333220330747309542679725308080157454074923409720910355724672576925665561886791885461410205938071903658365011318598868854916126391870387565533699041236593018446251977296292365062251333447502879464898427294127518297590239345704129607881673920868850778992749497723113611602671739972082604618386033635263438452477840650670086937807614825084363774595420968063070251136961313239913659062128381324670796577540670496911878486992735212235404891557124296880757736197087701516741454969481584732872833150070011197222810319809368265987500534313316698226040295948356218340365364397770455486718890920627122398672370430772070562057670856875138403673926289733001328835092471643232115877830942327228799627987231910748523567355938368274811188875565764635328795813549350733511337442183615943743124591152917571518704938401736992405567406258919728566998047141305369390314112969749121681399349127759834335134592781083782914376081121490665613516877169906817753056207819522424662797931457989748153497016157540360308183035180461065723136730818215005206301670757560637183979301202424715999459026081608154747718237641182599480464853284994855046156600868825187776015887850019737669095542508189374001387609573556171781848078021581325608289464300072602573219388006332181636164814976217961244677247095688207399282634019248632165148682310051118777327790200083004549104509470670355022264420721881106854031990951177302591305913025077009132357204381550756569974848577861586380359201935178654900747789239932050764210263520778302435156100741640978271368019049355377600612882287873465086411592189249138048797933992530969384778544740529210657231174661081172792519517715404563758133742518444150309700007118065792640648072225876969488188902935483314063319213404718520065589348893033045283007841948324904038762943295048882424355032200605636109314342998744571343535091715167164759830250015462001359575205977836533134766466422966630280965250661362323256789858217542470368811017124152425181427316529183207763259755817835039934697370127954634229730829513221610700564858639693719666840421563856489693394556436749507347859761949859576287860178430523229525798785004835964375844886962934075557975595535036698122576746693356788406253610458526790914390411892041110917318469733220795579379797289220722039139397155208625455739580523587975996347458006161715833150370850955584618631779745673972259059183247454457747368322214488835464519394492829504953204829594466629337758051713679178665154095253508054370096768727981774175579627730795979652412978980972558537993656177210121190455706403692289113145716626854936629870763606740452306566724635465100959709605485423306197693969318320821757628149700101706029439414078911288085535166514685037398983510311465349483495322297135570544841201965023358317457778674677425511061444763735573544951308546980395412561242051639305761106729791606221272744729676098327221644007124798303881826402784342170213684314706721078977932722086493663529058079754618169822425023060771430403587936458685104198302242375007566681261415089216626951993865120558218736557014126779020266989448412797839835720721821572952507726269409163712258723171881412838476653394704698862982902327709402011224164196007482271346248952952775645231931593168649055597575609712918123615563865757984496636101881436049361199370909214357675240635617473464249786372577625145450310392090180804396580026357580393634931262354512528835143142180265958421938698276966184924967137773840054869467174790884903000165830912378091553253326771898595575052805263177102464243003959948753806298020023762532993890580994273116726333931361331298036258604003258415522507998234889255068925856798960196745253867826596331064779770649228418947621572993147035761228934752037937091288897780486683242677840146889359057379301391084116156434467255557600547184002124147798963043053585970183585866183585813096784553455031951850371432683433386149793597137530040298034722539169614395534784528172697957549082396739347624681959758031289694429899940577115230297892898143898264497114190696730216552592852214165009705325117496846261908075010023735616001489893111614461463889210355735778149312505480437294498041216754519606753425543673297746879727851712790892220041284273856458345078351320381931575750933530183916143412945990838983102573782840950479892897685290202409010998578623388857408976456770934429276594142963705946363220960561469004536944354540458568724120722890764444949875892353797785438514691960656043775517106770649678554920459097723061201758149426726123425649798252644134449617064614204081704022639776116024969800138353104944269884134079013434811264942266044806961742107759522785698851216094114042027522650923496593783430332855771393071581410882583224031322973816167555304829092086991180137559149621453201899075765784378956067903133197238564911880195511659875523908022423211633368581182365350329198769629512180041727415814134629739835868288045556547298870919291192302602790526378126433863044201828504896343208206208115153022884471015923057197555735142936770387906904479229140258435483332870667422135694461991270624954027500306552475698893905973518699093592681977749070999520935249376519935999758088490277570818823168400943657058491297883143568449455433315358492032087728420107322451017886240129299773416376918681013501150792185401731401378439098633532472086643506665115565203801960439178644671585492993627680430523172504390580392774393669534398385639149677414238131097114359284224115450618156435099053871194484756362159777130282505417355307938083071437552301939104485678260766295675801826980024370187651304665367937027115248971759064106270754836125178097075716554940594884123157345686796633906128663619683043726948465958651521138152059346243019291211061308908905337514160154630978934641729748807198161933824821787541723218440840139717150894936508462094537107877858423366151464735663775169695397216441585958529141126421797075986818385185920975263931461622759996364496423535961074186488072032072095671340772216771654746583083374489582855314832686779164049320239069436630806768227088264469367627219859955559641408171299158639180401199451511524525156447328498986480001037362251555152914576658195078440169677986741777802666099320627803225840743845637152279625326557951902993974857342122338637048902621917779332017180992275889891148836417748925258268018492812008988147062218970533364097991354404519658596800608071085312796096499885494950976389067905801592566154140893247720280189834556520730151398139005301664499490968401919233514658047787409979405982637057164032599339680425576965060907259106593080073294157952626327489571552760348319813479659809935860179679214568211101601943359004219837343895441743177096929446270100368771335434765492250877325129590965691586004523945677666246586006366045671153046772928490695257556713247453291324578750427183865892618827414834340303322386664836891603093460325603445066273925135463654140677532770456961371237739662330257541337585652481327336608037786556588236232718357072948204886182288350717367399707122982319169933146769799428552320931065433510633382332188938984330278375271366689859832973523691160654802541104485422437049022216398506081525519918873483009570519076387844883040289084629445470144516901449068477980951099710090888983969554689622493670486567489401823824619345476705364669991549784139511888787771740712160219925711683983586303545402284640570335735380884510141096684138916059066184587008524088402679281757131139743467393958163397907537751377665992422800128749056108742868298907579106622352746937060004236563518109464705023045265104711557376786193901470053826246113926127680664277124430998516950333434607282166023866648041372828263584839678287314831445539635376073839963052848474867230441760030569200997623280404747302054663545267589654695899590000277144078388204281188488549768636069058181134600429942292783611160921033435749912236894021021414513525342880383383586467268327392108927482730451546165896008970326008984766642506649349426943184434486280131719064885567259533132239065565030208052436655369440625958992585924068168396038617412380725383110705733974291722674783644750604664022201791682812359419420532656669183036885322526299615421506629940355017603006680260141916194553793418170675315792859141916311478063623912802746950211649397934161747270187276131533637517409553638341214510175441914632700994051942803514286093242640251194891209920825068382948299147673362534331287536656271323196894381089634291328443561022473049779697140845131837924476485202630397673361320790545186451145008275130500151216181309750608418471214265927873345955736636379505484194653981901495426763942501961590353033074355073962054712068365342578352582895539854033826471158097085021341626893669626549411230965258536119090635888035169826016434346543707755574641983570015872988818615515232049846942014083391090157732712497476842405617120810202003641253777079376651285332302143473345443922488322833895869312567165019060691093287095084841042973832594196998736046283671534135113483342548953459325523848763354861464713840860090440421653706408257670601224255253402977175686699852097752671164683525015447436001650337203873166697836415060712840650523253687406773000976913206703462880756049451779765677505125389859981405465470750140797947229970751156594240501218503261860861547233180247570202743594713362119968893491570465052876777967324381736739581282422581304748583833844998019954812193880116885799558903755250278304950540025691678541783516072497117443130388117145083507623608996040244554702602393366459909405453932062560191436773418268043129125555636056033048285441112077617880618349095232061584812488756557116827192064013769115218204376288585139242740761555509714644507971349033307389375860718120566630290163275376439429204061008463437513512682024911244412310155586374411344201551720804422097211645333078981499652257656090820132021690689446215112930819871236678688967000110333617919565519993650818283752407623579245486938954165610824704586059363295767704403909165048059983943125206154415932609437014181441602539444654034814113415500258898322510398485869167631322806258739965435157604001434492359512573040599594445869799434570213556705052248230825823523684375811406433844266102188329721502594453859734298185182940976445296999608576118229551307426439609612053159450865796408686374248482060891305501001739754224248449504115049840493624979441870120275428808232462658560034232517396587618567019587415859707138960397386702873696948472323255590140518887188193844197332081993937656453726879727847489739496018326646615518538625602476965751168955932949351953221031358723039190301812259715092298169214020003920761396739431992418576138911909908280870633993174167321818321826623234490109582618722186959894494744132839985578659496994295144877968313747049045845566097602814610188477492522633467685013438075147489048265688030528061554842497904689327868669078125618247464823059019388939972080783462815815994353154627775070990170756813988435089716132619067135632295818572991296900472028930380478947900566409507867598387578855007322628141984514977701003698041664585098636953326325514496868023856241266943389005022103974059507034950084004409924114014901740334224442520534786945375735599949714950323795824330212814336878430275623687982574727821829670259734235008127928135742949650797930047270681108068643409479110702725286978034120741085398254253381991072778048899982765089289386907426761490600069252329833612879054558687783827585292068096864214541964916689336819290273789870203597862881668805228479148400493837598756418073700459554849431019181507679827422517892219396998343725235428629808324236785638794995436818412348940436508644364443735384908026922757164256949128669078636476325674953593598711621844576242634040452590142973527578428530709593667788102850102180770398035001393859860130158288137118612764193656972163621861143724139944136095430883145043871467048833545678107405735444850393626055878358010956034169273712310867070485858991928894960695955170579457718023620661545718585510976526235665777130209390678854661549052781679535679639932677360209435616864950873893312081176335512797698183831663836856363842319828894714071382079077778487502949580742335166741607752915318604991818275888283500334103895512968502994932128483638192373713292845111540348983867990143456248199242373937605013206634633165018685417984426044871090665236721686727401223247492656162504310600074377613427648321049234265775933511429338285534433894938626009016186287069287718608407228498096034098745083653267484530972247586027073135176832603574773305437733174271263272446612705800469667557302117421233877143452668448766126889158968357124021231052917674817200980878986888100936083882306290814380148337108429576807442036504042768739911320192413836332294079873878370835727679550996099656327521348868835575701494953155974106789755272403422970360982298589563419852225649263457940914363328520612612210322576117510874683119214852419905002751527095020181723763700169494407482585324558252508108881621955792327932854212461579529890596627619696222328314763995208779286042079988635434069640975978231885163700330508213087130451304202034798879514836606480933131797590491812629294916701871442466938792496380247616246766199799769221777018397201514033545274212319013611508345113014279656486358167788990833567287300540011065905041765410454282178042356547061064362047973856623553064487134741388171583457913319095842258544747788602852695059016877164919155444947038758359016309028877498948568169692889813214224411656313969019638280434897651363356707592650981433435789891874943373525618135531939632942148271690385644450494181972856044580238289897789384655874198224555950389868560793295227541414547949415006169601465917376504963830860434278123223294553365432012335195784596611675668313407240780537262017665577684452727739989529871122594035413669048193985123276452937994350121592106190293194030583664717147692223293178505053249636459709087302290026966680284569541245182835159816853466737754340794998818893977195047739924686232714817007071553607788300250391430251767445043089281745564731925028020613038988042020314527256416383945814513811365142331995866993197346620788031171593437165950986393351411274597763162392973196393286550432369097576411506652590329474312767226864729945706579960883106161940648818532503233066022027177549635092358487752165796604945140860153609930933680743972257571794866212288228577313248072827764147350332239618352906095432550507478541895439618128534555538788918286448004248092348672999907235318463098987135090317842307491260493864233435641150785530208553431724679152759852034293842471473118232361665370152790263257873560169696766816642062247964617003839551767080714362508822463606702384538211094474086211319339374237303481699328495963986266873864702725155877954860987649606252475345219430826647039835823261819353553406042521273796819376741351507541018969501610256401055894572753115625597031978128514299291085743721300301494436383445415677791814011387644006875160473414192514706841911746110934130085055466523613252006897081866869429982363097041890258881016040401454301167861378302293845186343228560517263982861217556511377817904712523003219451304598861120579940493201300687252072954367032433968203115879647459200924665935556531076278214878049940523901291343067470449250900482440607683018814956587513452938476979756133391216048369630319105618862194273447971562625297016828172808555496131285691791171340741096947631493227168794943037619111110369707479906341186534237900106607157409129544525776105784633067600579025640922452797230080436165299644410744837717536567119811814201083974448674248651665050208930047576189871434408347385215094365356928708350213934652415154543606551701874682932633649406126220209657400773864746964020624015628965965436047106221599323348541784419232734692052469309732256534150316940441168937934421075829836597405799614284909183155776849271671191397909782547492820677100903903869460933558421245444909489064134076432254969739581503250074976012590916001098337229820043702666014620277351901731408412291777545128201481517002801279609012897193242971808277709907394587239087432702360359404594099291374798133163972278264754629345837396681574892678421041309425794982630302663746973005909840126292996909272510655568538320988889674936243544439933412998980462098830093948613556569818716837321604488970901620464212148988974670738811739323236993297232880315870937570399358421665011320052306130267196657870554799597409321502614360290907841749183830793131356219780694261506694563089356786750415939818422636580251751465935738609873961264899357328016768564567112199765907065247340077521769945175210140736404304666561597704010147725379375315412282781569676578437422701814857181925281969106994261030301183894510287096750280877728163288633338700252108932159409789829566423934770184979122615141163639713675773654472953911716630843420519391135294818291386340519772091173319985125926702125445259822046320452812998898336637463710014937410449831867646041067400385170116324051223220605099459549056162204371043897214059159461559049531621170002579949748095160827477238916541784152709978004440746682495467471205645572816909906281312399559588672349458919856191485227182625886826800429544388883790309995543682343146824938523381189782657764330517830790982844539857344946577698233723694521090536580363335772650985763481273294439395677913219217366633756620773692972714245564744707490016265462169484495250131185289342339180484902928483118472540557988759290827135707765451426549371403212676858794570945228384887726505680322157128185777149652633799226717610297654225265698770621975300069573966947898126636466170958167685020054420043850380310397659712604085651816196831852985172219522497095851913646995417237480046476437466977871061433793542732462321807133032274815213070060589429991709386922590988697311232985435747143841448844582462087328865927421845683573438408981002564466993555585060376075628550028722024013251480685542024533264711798513812212976088049902238605787409395346597345816165860730315658364611505183454142864725252291463665502614221135059332815074740864915018550169052112226375780835732768335726336007568627497975415856368545659776123648330630246147894812447209712101858408508471033610588939562625046639176583786336669945625208902790272597013968048019632006776620627073909865581662031060412685362717866126593980038849169085562814399528369911183052749845778721020111211071352823160591015782080169390479224534468305454657141728718130623953159158068572871098705800550780351451230116322575503574620217101273030935398604529533930118836438255008091245342897860298842466140239427433134007451641164389413518590246104295206857104130713554397459197926424666663459076893035758040812856171638243658543282715342049621916754181328599648333062825842226522895832981601182859114959751018109545826191011281654675731988867781968051665762138715951401760902611881438429154659247020085919293882774411844288920226101750339627525227736436216944577380045451875318328208505152945031406424953914269592174823473626314379262506061638846187996054322130188781891458577305576057281068930879861733063060432600213672516851727988151857304673595695506919801308945124738580474530955674209125034921763699102829286831614805294776945153141049580651286595140240327808976851501672869163306749330282426711648304421783909498048610288460110237336378673721188704802569088665999493421313633121747097787543623488377159056483813080939112771291464443774947226275359193404757126408388605507045995141992388653535404310235433071560921289181247279588323864060838258310197038948550384770492287258119040272092948894107932732025506260724384666489709717744200234414938416485082726384707810183456713361528202250029642242535409634547056181536760769123519334721335117520741564215513301328529796714098522887618427655997688405410078554591221204396808164629235471417047507991586838708073141333545559617777321670816974744458164289546468305822475876197862104786357369005417531923707529604390096011355070641132336551312704147155533357643292175318134097605886091643682784070421040178913815978222219967294136742615674694008294353278883163246112330772348185490778957841456254735656836810916840109348587969891826026421578290426232679600928083823865981312857880037114202811994428874940935859620218520135420177645908252466170009774135583140741121278362764112166247070313060293075837087645710475255334112104118881018074733272734209264916068367160090849113822320102491159480422083768454520887401215299627321681300830771965035327052523363239092507453775842542049538900690162308830676137005201883107429854432283038495040816896203623872071237464916125147241530058415387214553746962631922275299290133851860855784430082873913995359653314497791578861498264137673478829360033342162890304252938670956265076617651868952679077503555839043695071134320220418741719626114927001314578164105730660356029650630814555910832718683693994057990865015449038543328157362268184275026288528299208582428308232520724823428859306164034968251307491128573889480660864545005640703475149739295948251203139068431295173745803048770682996924302927914503584796989246406229807704032243388828588301982138202542534267041496638765672752315843172784097600428493010415956953776765245686679607732054554719625892629147642500155754121844667198861471347018065358747389640894736206885567704161123271072479577741896883910496368407490272683183752376492605899207920158252750199953527439627194124824726511385023147281256860152421322550025016630904855833935143415032689188247071868077220629794797319863536691387160494007325041673004541189378673959805569249368657813712919693987425989844779642085868798273742615272466458211378909508049820494187940024051346485595959798911981228571445476880378355414676659153475309918225964493618443279393100651913188916778172796974170046850472011333455088946950840935835294166960399509556064875384800257810784261049249285733690774453850329908957216232364006925475503589897932698736165460785410566105806757007822173539029589211976420738432815796453819315848081552028736411012546811859717514204231648069311054398006288215449175609781772743297919187295320643853172491728567023078624014901147118799527566485842246696419829793424082373892107639733502021559016044309865810146857073936950741603875784029460651460670252552850294577612583909681947591379413723716472283197211589002513350301337526180398214541966725045654804456581874441784938980853614533826092485250041209524139217223061560280700355245839227777282501922566405671553858342579828411682841251748942098749543468692622563088740684961544579281920841000138874879040519776831809499331199430152114444183373377394402910789880171700446088840612211085577957723485720241551273866235702656023413624256053103654892164662189736280513271032836740866298827764037794689109442921038433072025597865355207065833833055723840354721417557226067910577248344523744379556709433577242642722496600863480740932270355671634156718134154150617553082538003548006426913755916550647041214426577299855220187695958119133605599574877866539266264482293027337385366410758531094925939241956865057613656433859303474429527414927061122437121788033623682880933136478277605848545795013983479555274472241441505336563668387756198288931619780690894582476194592726481953079065630492050656414630238196830829612719238769204302790901744482021875660136125419586358929842261344830602518674822583968002816315224426133460969604310593032806153274407156576300248057086509124429782092506561597899699853771168399857524714075042803971124532940029917423078487017522286160398432729496345729478158351553116422139559251844464590475189490432833111137231897323213828594397668971651152784116748691760236625676167992470061219574583551921238272879058098935556029041172074217009777639171229391090900454110563090251432452481579798896874835315780613873653852976902326481720528529399535394478051636297736276938215386026282750087986368913374706365767519308916553116971537938940944340964582111492755229887444851489697052937667993163039836069682755567903562234663595787032439030934938815572343423993414064691931871413726159486249807995515049678555506973237701379350401575649434525275560490939991576630950140056124645496328055541643157740079804382746640252018417559510895261315274910908434787029065725152235945358832636712381022718249337907241653108719163218246403650764144343215127294476462162152992641972732009041542816325936236696014567570079981000260329653942596266611521291172735209254047902469934354421477030144912337034187626949998370175414072206749692261175072460760476111453862746115746681151568930520111192864558301206771264303131510139159510959859578524260775276327493411901128917902512854161027128552497814012917199208115049009002022638655223509130483024273866336391582532322123636003235692011437371066465452306190478652143528675371555517478546356680104430782349551102462279305170617114341683218420557714354453435646450207281289991582461196105582101551068808388947165637908093483551857300747316290633743873438973135602280873426912612030451492913500524840876616898179563744729818141953631039097580139732056625620175449629267202355163794471263821302936122855724038959949403411603663641961701805357420335374673272761646191523243979728342638478916770505520027234993212939991469425366972178784475929801701015312264507519533305397636138112863696872186663136552850511628906018691568416399903212385130065652328572162514973132852410222693794284632729149407736963417863208759468889245644078138034962069175438374503309098078667888453631999064247038351824263936876448736718423131343621405204417964729336682038012749786553914713201819642709498753929736697638681735963221664144493128151859840614560151382468101890793717254616736210949213595347000627460530206533264072468494904496511964900160545679445658544903251830623914714787995538441845205706917072265774410121931931356829598284458108445817963801416492650342815727475867330473448886125384432139241774143025765912384635450363754289476764733461523798166582322786511287389421648975089483422371847706508072640113816735409585323867771553240234644610163496653642924277289897692384163547582643487024856454203923344625859675454216566468578403771866317045543942767404522828019034879301506004132695061827397943930770438978090017271315257857033436143108472108179260788382535604716569351409835462335108448279927015481189639958266911204481920599832163819294861545376168632501896885036135484070996736689729463978573697237481299055877628709793546335122920557387735652835955426750305710339117571413247431504292767495276902004544192536300117090917424906892172975039403909440588241981890004583020753339955306605906801745945108593952178864928922968937328093733497194219929143304954373015310585408189630466238441215564688655027871539614080197532079736562754512225945804498258854250615256150705605263875577362125925494623775190836408401770489535350576573781524292166238131924399839055963882989970164711403316028029987968034310483405699602582692827201995717139164141392235155152293565376949144241741828571827661876481990679447610441504490568455198278727711697298226407509233558339921913890199092780603751718554403952630143442225171541973315629607377734017107037613895190838898973524459808809467706960567468950599562232092341280514226798939783621489437695622361943212107766106681693425667727350476265089123473968143108666990608958664372482441042242854636602273665259484531792878889366852520471332279773989335084854019289166176241108843238590965853893835814274914434978691237896531344371089379394404939781033720326659157240240227973847511228644046871089843758435088133281786751211943503002930503375549315267059187740021296473835310939916601954860543155062849467318077594654169073291091959703903888654202368725176888740655540549365690341984730381834520523622746103295832926956007048927968774168811455560314857208785877053525417866838580648618830766187801263050827280384409910292527150231077039176478845560269470015373604457081740289255894132559550354604078965762631981814805169091045964825898255455190136600926658471774417639378081926237003567084778148574517560650158147234712832314329742822488398566426000758378399261636350140029754874007922325484371646780673351027541407954411913618613708196538195982836209973064162537684040048273258075066690262067408365793501615946007414479436851146393467269102307377392312706473848930902246546775368700969919557435766015365376242912897991047647372564850025262014049858787935377873909997424204467129890030510945108795072445103657946970337856414816895702227188604822427612299651177045195498825774633432454488934867126885139660199073566156018237911698392883692328622350588041846135281197500736483248258870717688234763995759300207565236556839879711836795505452220809967256531812903009406550164689694125336764355305244481184075287937578797639803023779051430876583434433992329863736084973726942720430557823917038216362855764599992361685881925600278346015058644473468013623323467908531644150986783340354589082591489669114850874264599188147574301862983188142360071927474074027904917821008337948846065881714871461966708341464862773805822873003171524729584635290180722299785713973015485378310542278193743398262234885789088332036524265569712123955913188367332793228774139709686855284251991537536011174905508106154439719220266098168027703995928755135169643829672459218934922578958878930954316367665821501410835331322397431332428965866219348312996611013996890168269966494396374146850306529671963632451938961509655395978669763152027922435939911459305360448856002252145685579068734522699718589962435558906502389708074938127809470445636439778890674826133770951190936051098682287588840976209749050486381400208692984311241026827707733688199311154604729993607766688902335058662545402078736991500774250859469024977286691210619331505203783869203945603262250819692772418476302401210228552367503914136832147787078379627138295638828944214726285867694429242937197539754390119168535325619211145756629863324793468197082876214444099383658983242748188587797343743399625826952669681806921763818803880071832883891541930976841700318447845466988328151034828165630692450227569970742805725318174773658533205585765555171058778302050659961184483035618611353923522437146791415308822056737627366577546900054346840844085487750447932130979714921328526248713902221913196306580692071454159637613314011898082849885455817334056404425921856022999376828541491216008898116519775219019175489167415404709073029215253444186320816143803331501121626289645161199494968277323141068672653672393450940901763885229118132793416795938478124640361262572012308780301625111464355196102558707184079490370736896636870045083704515592890122511448835206320780511020366501793940124631557330183305670882713889729559248468988335713336589934396395421939898064550861613129171629534967477948317544961962847870802506731937034751472330081806744031378671691448154593628407759067168737715533703426006009732185238228413653033781797723110188087898981623223433132566076765592907911535640500723382701416860676562619835176630469138812901275991962993957385775859028784124878833165616304723357906785704329633752278062467223991838813007037996340570440081371893386714924064501647103258517002238994081642584336122577476407415408420616493195969113940807479383461089054612739120812608918129871087454522703535411716256476012069849530009000893648762367816089743411650883296164768571934956132068232021430125865869256004526184446537849406692371924036850367475376972546470268604980520828893692470952517903547359847819375608654948121795838272481460558865784764325199997439858851100815256084819856053993826922964325955102199135231052139896347512281635153720207876167232335156448306686396830853274239615063830647709286580804730431346730005228925493660267577983880083256015212910575652472001495792753505369323623995857731700558776076427003946180368037465871229032508132239420651337105860100854633286711337790275849041843547141628316249957117293490410202366447016630110359357211453622815008710174084305281614414823388055101478603751486342984239343319795052587394595573070125779794410466989970678369927264152009228531151179244438332236400885070079763547180262777308379272046643547722585580074809033232882391091897782426652144757382594900631185909436549267439831522277073239342616560346142495884574663553638676151199705771011771869399579512707732696748807139249188446431313034227925795164087928624733569167898028987609089603233202471654256171470874437798000382990797982307490743530312958702284464803801753378745193014778657741216568368977136732265477105842432849566247140089251009807998465147158183409209326901692785026972638332372079128470642303092682337951196297559814621517642508715731640521914466533138307333246622869853055943257847795084916836111006072394668065170843244191850602849711432097821557239288832351707424280048118251870145323462082691302098629450991107266466695102689256382199138450091103681658901640405100128766450936043377825381996756246819302182198036890241727589045979062815893320721350201644490616331431575616184090402143236066398432962731308756477656145061256423867326623472229622906766762685264367607647342304214858770843247329646646036067402124022285715918626768650416261133994962536780050242266505179650907638411543575243063571113113966407085752328154430032312133037297475636468269576634721631094181921569793748566907021638398398064101005231201919420331254156177511152811780160567353738793624007679139798298850116335223367704310215255673836688751315464696687418981716326096617001800366614887653993123088737984001307403074072000335880223804786321955982911842243209442795378206590594384369297455787890344798444577066123402237429408618812208993906530140755115181442102384795054881761808169015300722954507971274484998079063096916380315002157303840601199761518494908529882871149709882823600366397999999909610439888096035332589046445386491268902642345549491207517602871498531692600547472573663216682649093908989322304584979817759360968285868935116276190145043824729698470996976267845006105040216283617349215557935490821162752204535355525837578071500074471253831561302962535900835328914313441778289480208736199806503835245561060136934255811719956521959980449386046696063212896336020186818664768513492828416368276368162854502729705206340776503848969820347810025699513792153752821930159725397016199378596914866549637641281496133274007888508186337406779373568311600933295583949142182983015623953246329842705065720668084748991263518587623850482788079278323228447051753428834568613120788056119367370487241532342909423383243090855959857647300163334785786455565060587964421000565798831961441098399902870078043421233758088989407651837035671697747213430617152230483575211585972283997938948771509976664878303232849094816088317847565996392377275694583266792403672058067698286657968449659799235006834043144287110006444104728003734683157020488243057418628249140738484232918376661490248663870596775099423248516659049302167910536540021034927661789759923919689909681085761007523933956977808561713090780821990016504810737629311587084004187222501760483199210287158899301260761199600889957202894130148834076179969557871233394255048874785942624815964022956705319424209098303820476347787631007449307177766077702940638186667315399798743611723176256841370235122937092317272244789195311149633163317264996863195008625299994424608467324307673412947336627282735921735080060951878765538992440188202208974406192278894292291052164267297796039688907885659268132127346916048757255970417665348184307360866694051180803877517191352250854689874299784805584839295514111433376798794499413071127832136788784510737293260469768165497354903060525186871558281051439521699418623630310116018808931164698008734929071417749271802239376986354099969897341078235357763176518081319009742448394047387669557704008419783236650606722419022553021167429066001424731910981474463928312033785591399998472089270124849904736156709503445122088496238238945798271260079751078944246915869403572117392292181192245821988095777435418303736242900007776343340878044792853055474805482309324341255551822331984483222570587837240019511777180508321001210761716825809271129507042871410963170637609870136746075177823342603730049170173919951201618184930299634121897599925453123142487697091184916470694770120898801866703763577668737786974369888999408100113126835877236418232466565405791507812299119094597785503196579077595092225632461857910503866543424241888504652468822260653927169141074967069742107894999045015411547598775055539377788821201688551465297081406661216227890730177601767208648685585268874057422765744068392603237412309192721128065411482219418922294105721317490398309346421627748766942003018329989425835838699081128433904651953462621067349218768936745410455804457144229190768276503618281872935628372315114561890813077142162045468943717862998731625546346317288931162686092165645592395777376490180657666318397873537088155065237322572086753447951391633747277358534540356142579415361378212636153976101933852037316682071582213475730196525045730136866453559125850222026812801408791036235402762333508493827837301199586942401554357003455808901888843533827184982471296909861121963519448302619994597000576104833582769067128282722922207789705059444441815640554292481364459166614361957565313721755495029537285016549272434036951799505133289222031906081276736780721796081368893521718938470553511576153873359954876126684423683062566724271913811865321115977312214973917092582632035876054988751781416683788758493879529823289459017014285295288166248623202537986442574336735695616951887342445478140400384888756835165913052656657973723780078460229196796077134771944995673397067443525515347674758063664456737419886701296304143421047990105320798997082297551512939017067408561144323578010989332020562995449055142503566083360855549660474672029410405606768266565466064812127787285693990107911779864041133412187422967239783241183083061081853147146911454505216310934388756232742224396668020088796725953824976982116796131195153428684093215530339439241054283677277511905400494557704311982455158887494389218003755478818708897467671530057589851645243696942772620856632935244291543391622325240760229810400049818977706075178327714985043719234872360729816508026264325052418838796025505539144563435949048763491690563156764411913229751769012471619929797959017292811430429512363479342816990420898107441151817669698787269867622825255035079571462206687936131530566886576462367559371912082169803994205007969014826784874037195498222333722908704400221207423400952465622198186602541131612735329045517964175893659283968060453458533711161839591199676962629469793734975828404551785322889322936957691786318359159991124455811970302477661249383492259846010032365740534051679931182089019182633867136850741526285964818941812948772118933043301283115445798761563087930814290613940504627104699254566866619518575725209769000001161401583746696788610821440555589363641009307248525935558981750684124342743082853292255004912332365370587002598098217606139434209015177071568514792332131564476224144985319251603051829199500616701061655401970212845533700614222043861786518142450266749601759571628976084020492159306865534701547102946481301518220331995528094470883822156744172524083664374377122540282903556593834155428820699252621557975843588141592830726283993085078581536920298274202232117496255705585355266599682538775821693150935889050402541388315247274397906338021304922733392898432053347837505893667051044964472961763608994125091099962653715058173635569260827653801241464132681671999551215582380430761796390866913185547670071255827855715058159608573504024283363621267059231530519089015434198756620410228200820377699894635396347875268459849699863263149331868728178240839000155708368605690515782700002179437645955278149423329564915113732552176853344466529256594009130958469206639124943382794925486824621711482147704613527869032639438966177116975828089041262886472459734289350431719700788352659236787269375978349097234417706794554900260081738350566314944651637291887526482732745073482839079572819411674245289118591530329976465865797852673198118026442698271456527315628203772882152726915372495432308449683123853987816142248424746925319327889079810629720369189617261332531587810934511377939373828531434757755152594611539572581637984496918458076456831312293936434711489653914303512750146361968729668307170646964303513555912728199486624839873985868626616937586339070147569867652726286343086219097882631454967332467294315900758188152135026982577737966343893356154544335233471221866851792369235259934795420003694937841965750394157915475751086401184639192300451799213783697704235282969989460418165897743182128612346401613629888442847652802257479179329205969768777634913785111576634545145580230974812834999410770197312732480796857604222755609718480852091175500200821711586494102107714441078387591183001667878971325130813902029973004938329977293377864019790897178821218048698401713263748463350845755205528774775128323652195570673496613253428512817208691997023322200751740325892701968134237930855219434605839025076377035125550502624712317771089322956572324768578977918188908570282277122571876284862680441481673943553665681914522899088226731938083410818196050687863329920000241261300636825936107128042160064155361911624045549287715435806395824086502049844991075014841929835815651426177482877049262738609943169595182497693122395278500244001622348031742085167778512459139918832788710429720825156924214502902332574221198322666095453183551988100098814683596977119182390588657160470769908293552486137975400870212937017997885170483830444136601553982198431887218638797789337747366751959325116787797691084790587709471199638285460070950252770966740871003979133945367675077443617164807403224793657987671181433357399865115787467937622579465926305740362177708270264861006299510129977818704175387853780923871763949886121195614303964978021590598215983068785256213763645597040534845907276393499680831438634169033220500670120814697616437289827064042403757695051564096889156537135540199539297936914861002787136977441090306725632597755905157333901535557076943202700761553707572616691880921413209899149519555563499916338838721340828891755530895044286272034195340214777539893555550621224614996876791837826746801182506571901639441493863116944746238641407804455249845772080736140557824363747328540416496548708764773989445961582992757341985713611890976648246316421865766586470656929797346765740898747194680902815472641482092253428534344329008854798534336653725733874150264127833079715938391424150748765400653386042790661669450789478453071549414424063746555146372961988778186210902063011182705499258771072755021181783534644733136162601804525425449043303170394031120838704897645372239026779900386636168637643959298952387462739600729302973400764332709785412897938761321602826651507567735413342814272684741106355192134366864815269883813569825046501309222973928876647394006736312292892908024028378189377814978053959580891664804868362146283814521771535139024925172786302679515306208005825247655944914401777087506936166724354866766823352530799631498194064835217240899307946969050793415799616535698423709846855301866362135676171788651729822168659284885765632361322382171958364639531522045258840590096433137137616402512711094789029300110419547480270542409962148494375162348774661922647052492705463912589674277148103803842422139373166040839700190452551638326075277053930070142555279274562972368357716123396115767933321602892613736240757152317197326070983945026847007177596447994881567894327801441255229402379366205678417040182721975936121755678536156238748575148476877352422120686001834120832786454086164795751615473532176946261078302038105114543965628603799632703403279258151776705530874551065403381853324491941012042832665194723699759409254718246920530693893409346947821819053842455852079007625829716335363892907649695263439639269141514227844674445403043678209232514501005131206932516465326770815174492884988337433274407749065827626219300847385057684014045342732069396040584929463507771542969488895758137787911406044959998067258175043876334563516637283134098793738212125712225424585080244078067376024362171169545752367137743442510559170314330031282345989203184877172466040803001709418913114721617614397313827553977816588057527164610524363974269281828654880263626190649490675301668542935107689831568506663455164545646997046591201386757393166499384039992722697580335212348332164170480251658883643703720161543964524488710072103866226263422378007866138657219956185947253025109025125601890200929046525554136625365366366848034679175274943611786493032475653665377895211688196781260122110084263811404092428367890629660110685475612871058165674790439125004034182689776149276938804925892479569945698612436085421816038787544016804601418301730229366047162176409703318941530357006730562828841817769059223603031279105819470548010338295205929568034269033676064906263466586244099967923545275710421369040213086305593172034024893856356595270624661528834817237114911407946671911490179502732217184791726312797668525637302540265522752252033286695154353454216479351552562038584552122005674546885852182816308664466283570640167536568681086661862229663095962380393152374978431122856791852574396752903456050259985940147886460548383841882205653621687943569285771557468628252498606073506322913511496374849735754252660113782031361603554839260882521787733563818635649733958432065487100956404842308681116607868869844455883574928476726642549954307250901101575175668974866214537280119362683357212345434201660612329666871271391321243843350780461079777962846846471217675943599017461703281360211686699221122850364318972044253569103982103517674831018647651501984864700723800230480355151548036090712348080057033060700013233328492570393270158484785716861520598302022562862264499872123133003947686439838749135997509016992801081199519803606361357698281467917050194984744754885520285091096856528330169020465077334623845791907954498038940481453523025451558247380685937077075768826056118786128327697633685787223793191920419337968212791369909557229072397735712514189533038244015938738566129753820274301277624982879614706102941203250691346765962169055058235166582712412437517883810330339668067951016226969445733284461872531428624463149515488021142503246922781206251278539490385580852730857688519830690650396939565432989190392494933089064535220257194991780218081558599310132345527901283849392444949451265752650710033430571121363289319462013520391037666509669302561669939487785085364238807007649543050189230974524887059637153947956467431283959619895045655800662439524058053459505285900150633902190867889347418912689238546546027313155243090856524749859607110323358655122151895943096712298183214366352689034201811044403530969833849663055675679035030635653448497691040560252327855636694280092202908464406420718576361433686909108681184994823703877939837926830024954523396149377674424403851722811334100732163304618428670567068547797853461674362461287223544749376478204365314522409853051847263128330805352654635650854655991851714025272943336416835605954849889900597813269955663484404440715804050717249122008951959567445338786827997588317956235639171373673006443035774102242292880493625927663526532252347127460589098440759671993646578866242630122555378220518555492509297696441151662611635130052483007243612348749240191394606013753599493903329889253085449182978202283518104350015802316839855913090549762058252001624100434677447736431802551198210799915547251723088816906657982235392966564413373714139897481315118191835194955617223264538581097610557519443307207710214950810588235670310483533903181647303863111250179630189333171817303282800357871160024370719835473726249917540718940481637864298491678886862256373677156724554924488813500903084648874348147250776636647872453659767982986555714105570550250631493743341627478266940699702708986749180856982998840832387405381393758370284423636427808652105777046396107433321058904181519998402137500605790162375058519629727281776339113125933948539089224591021398350641934455724834058621695193210004136600713861039812965727298293218509810206088503721999713662218505935874272481480688460903958532635176777007342463050982641332880847617169078754156707538021629588354174716772229173568019387032025247469084395630304913718261766923860227966921353926903071579683948107742850541727495175067010054578099657342544282312499655787206798643182237597077604566991848129316668636515944833478968226513339987237001801763769412416759856383843101127565244194583528546558879393502319894678688795211358925111936975145529898492297506297433633798898410945254061232757621587122991944323129324143104533872288486975629222652232393114290028566382262264285087571198407306070546723137069266563600177113466528249565724860419071414903700136026977658941049863831505307401249284379788840221473611727136764733242340585860161690149136122293029419050550184433830920310627167027724469964679287274422318412565501914371711596653142079419470734499814475464738975369023994851851518740536193651803038116428685303467016495607591787653420106609331234998151432159208009977438420640948912717408552244430374537846662604139401056012324964689450459808547250672887039367465900758298778302094570674650948399682755062992359128271516575990218085575377929596126932797634105921590116514837763960544685092866303525097001665382556442600464332104782288988872903446158551010546627298300036399817944627406717825212299730789416723982961404932056685029386457742725312165865266349909185011967221170415948425222375410271385694264339151964331292117147654968005938539948173222451846098728924179400883944020477520920159476102500558880654873404579378207953140327463952108786346822712594129268760826668081483361096123917161778359186039579076427863397362457145031750611418102963503884143126063280005804554083328885971576464656581403052053228263442437893053440395408806769828019792978973145805951607627805822706473781742207508285265316044673499584007095182100930063007399737108458947245655099097276022175843575342590630407938267954335725310678465291770528073338493304160601749763243931291668226946690536754302680298401259396035842221175135022224102776808694534073291686120057959131531672087854249271063162706279366095121666363666997684640873738872480466110422412044673381648421108017478924249004356675760163718308879282242964612058861616425970462252896103976308580650535377101957051604017055902776046169504179614975375803722395456473214745016050887491215199545594503747583227844710084470556187082769673734084739695469154147648648075081978031820866872331297958910796151399474738600306647119349652143028015629865374820257562051133401621921233175350637965877294280074601244830708963368150381486151923558885693017287402060492566924106240023136296117042975069635164453265429840584809664115893237435422191807865746297971770113947781788394120668699244737583457146042481294372640541434385066803131219539045537230703973520865467748877568701962875138956351357853878023657246426529207844979743725048243208717891226002390275084084377984987724517093068764267666764685680116771957124124798677368778774995029918230759130116471006361887320081548289924252672253471732746322043241844225455677425916579607228466011489379110581244898010228869566961362937516710597638125439573341467077209815592925447297841352880218882530111691674463102145868940875189611444127121948992569262399604238533466260668977177668705927414846903967653935621070286400950497950030514376832656188681898670793676757545656074648747121942337191012496931890506202477069377037895095725729503550838423548723285646142909075403887254960378626303272314420858599179788579318215649379756115442681124698245861738976919576886849922082587419469227901276192138558785253053070062165658169538126131894422999605587861232712715079832900195308410135985496386142070342705758809860060997503416946817506966639053344107809419158310528673371839931031942847146265320143220850560644323169222850504735311299234952070876186242056423117402910590097432278070608111099309571218820755874191186051919560477936839378143899462781208667949939779262841267560595970067601177627598163890098220168546013831636912938304953325703017449463962585569750172698537678462101214205428601895082482308826299214803628579025664141151068493539857936840133350006832921097725201716253369861581350473553052656001570858254586155610275061630667827877675940420935336911282510381937457478132692638476587917666482930660650983277370749395254364856616333962974941405601814504487813647644065494570230211883380029607350052747395357793211423582492262660139436944600143990822433615820533729264318575965440133415170278501155686286594671429760660724680299048505471970243800652833523532555593016054912549327128144578096392385341157592161314865683521190706155001480657997049045239198231576606685225672473631309296059800516775322746046626768526072977918590232449798201599541046781021695443364376359630181676606064729434715853671392957433463942238806141169104855096003029376088626775848271195641994709613538303103945355815808342381768285080623160200916731007272377336488121581229617529913796492577825945308992990618588542894082457950223254160336737924164300325194003667892180114393273432719428899101603856540942315244828569850771246194816412558086723284886059374881554866566239482026133444017001169275480538355458965926196671254724330182260385455539390498932631041176342246363280818615162842888424959170458834439228962630403864784750168308566969559687635179565681117912052311562995399459853840965486554453389072756430030647648908407854099040425336715206906706278196382818929883011736089766787699700963475820907499461186073660816465004725703383219934075535395161260417999679549469533362165673459896390715914584782780327911041767439111345947981099572693602361070270532015976693234917221949574702954795815126998653127049918211673792450122029706361176501820469355300464611835962539649695919593316530620969276334474998923827144102727137162609407756536830571423989709424655495982809009873604794800240587629586053456377467258917628978639817253275142688554836185400503156532144454957492779862178703036809788619278450369195163290077797952074950881980046403692960527431403294080092127328832859964694692493642975225388268827962581555180954886992136378208139380015304498818595916123518510925665396002067836003834859726080186335951071872459097580022813812024097468461748798051854038937425715394927423400665845537425073153590068085331654909721416145826294944876881023090029389988623955602970943249162702432774498333899323258501303849710265520612625767200940986685174757396319830463827277478145059482603480357713639300694862708830880626842868076468491812590219763518495156646021674194894370246844943118447294507111762984027730304976156672811553434441034687639362892481110080624792633857424543171915371859494426815000744257292490301772434846899535657615765478340367226958914945185253511479957871186913679752641672330241200288418143455322274905319561141791266753272451675857566722825447795483449662427575744645402572175654463308885753881550705308058532469093991763466326608325859841275144710426573117242785310540417982706829382625041571911378885248981682305973821189308543645694714794078415541446925487777980808682595747385018261692071421743194223357051665788384455795605127603095153954393696677781650667825691476026180532721700064232308768249550789991004743003077881957171412650341331514136272370323181993714982946650507697612770675413215302105194563846824641498696127794832785702626205462490675180612159919915011720705819416073580138110722610513241871555402225831829991760431514480075300773899440300140601211304283481998413212470550498597070306928557033043136891052782752972021881643850274266456035206406402382733888447020616839543788963070307069503412168794897869133039383408723626243206789072614015330845311517234549232378980150225886419595047639729576437660966459870150661052265402789020055726126759597559933761136847349514721962498639415613216067145575047300243584152378594026323081694567096054529014222556439736577028819628098689822510884340219617216997139613896173241484463831391857856094472285928923748915564597442270966570276188170503542089558746460054755629340121950605387357308836814738305166596572272976600751886680584105592927363975570242768865935178589937377391942745930021255278810283494732295520975134431647213510040397584605644076200356068635187224926283086147516820567118934949499993629657235333039706746321009440928460184700172021262344588352475172609222730119754409308875603682704397917749776405414946565549687620402525939495212970275304846421889121085512122567544441457782430839441185947918781004673729793049705554316380205544179726215499626744169992249156113756242420820682018170582434574113366421889473058065222131117115525907218578859933170745481012277618603064168224323027566439473991958610717009560291299381242308760057991580153124482288979579523754480681002924546329643289622829584343333402068071271621987313253017192112797871298916911602592498030709747973368014412975663507701177982100543767335042054782186801343525669110481613287033849348373588750757618582433504788847274093356890964713251857912711087085080763174915319362972748104069059389886969119087751267582864084622478729652357878405647217730066405433770953064662209063791661336276249972921132183996046268379609532389219581735932333443200936430900227703155163423118948482565213337422674906269431185597773377133990971668806892531942768441956085516188786298339745814937077130228759271746112671074985554629971092446224253552716497149915309717852854751358432476748927428068111036660575321931679004278545749341937432018998882245365299598720438705874494949786497896707868697119483886300493226042140013912043455020847159235748864849418638108990511284052754366843823638071910235328600512574018219667914003132588430975783383439803405199401123592099936456645392620083075701774187221314669708353447578303957106013788464748813712015663115820971757205423810746039972465765901069632851077245436097538635138839174214881497684695379363507577758590615280241543099222689904241069447403790768519370482384410754153148122911175020361081861789278277074443003294177957182047253479902125006934436862887523008336126647298021003861656337995482151911483727443263060872274988566472088985516549969617101759250876466406848686799913066274709810512160496449758599616421876301276271436776244009852106456357848975407953007841968486256769471386435530380223976337344875243102961018754774051995337770242141168369382420152964653820007028797002104347770198316227590057989631234336806678390002695882371980176440735713015002535871276640614948328167829997295847830241701435342484557895780261875715573177412295888096547682624290029544193597460064734299831644065719555297005522177846534443707391213271371704420948919410035999766191779018173517047180412983443100913303047659265432156262598304096106248695643600730753785900192561332695506610094967844737402989516750465284954009999318506303615475221154429538771281155197438518708819817519780298823274376923161779304069524462605783056687281796817154253382213186935391995800396352803132216512283863948287939592852338875495170044470423605250786608689417446438113245774268728227496240428207912751593443821702387809893603439500193210232135689147221620287607774582528437570924426007446849397631656310519144849406816530274960156329158927541623902408351415387637902614596540573480709545350052748167137145250548529226111015974057606468669839063754375147605532099444218098291465113638003742720906874353558762297508834930778732616439090687235394866625998481499139131316973115432463124386812549532190672611257261539342719320285999106167791989524700267619164213381241947382688521953179104983876019468863885372253354935023914696904249429987259192988654459552548678335573119269184260681979112411846220183993585562930232690220003183558242907412395878993058746442138581478694013501389981527370442304720739691947643842712608159326857410731894696980604340866175776207654488856091487719437120609648456827532613246247052857191324812881991595887478073787292585898391249489344121219131237509021129341577719117664153609192467742177331927718324981991001930458106819481155424821115685923085764171501305994310133614577528009997782151275714045343115938661418565869830159391831515392706467796126471645408952495858921278993161291449370730106397653983840762320513018022598633307604652656233064545677434112699184961065980142930293540945267808088955479077720946492984550694360498281356840795079393838375000893991603520270536444639749705259990527762465521628617596766064002504806255596125060013649042752436514759694835300149046602926605319665771203015038616233871951961342551652842506787102779043244254839849313279069176703803607469577354774694525902186071415125254997625605694566632416483005594251597199775080033573336278407302594074915794464192964873754607156230149688830021419598709254201165177572583098954046220204024989187172448122187137459180036804927424845877135330648959035385687492239184458633360019689638309415370411757136165175765445114655614481777804153143418736274222687850791676742871696117612464896712925913313079033731088887580559457646988709867911837949838677171807496359665394285292363445495457097333825627577983455934788423623553695730299702297280473645883065993995381212789904161922314427350273838395104697234938040639278480851162380112532888882993749053127343567543704050019253907637795443442981114884087319973608620511416158906558280999391470727204289278137796842632884651475395571481133244946030420491663263419486886491096803320090740358018902368459599012816192990938385275376726968654150155382020856992083942383131553273379205970059285106448462911220488820623564833687020119867160149586787461531347717345172095330944910729945834913508792747021999708107644793823680716278517534780717094831270694723115192765256067536949266347887799188628358124119533834691356707545509615966843034007733558488708938647090930661722386004573620148437581922085720484723844558059022888642017926314674738309513784110471582892467647451263675853919783693794402018361843208700873601910185674821099743759775461240484290250734601686829342162948331922884280012164970249013779593938841575827215883421828694296429258314797052397092654174762513974909773556797607456071305560836698775466321183768842745565507147611162337887741408826195694673521514626842757751854994859965981634966544463130656316528479532983466128593835464398363138642146991779060546338155990375674143917190895332184758906536638833222553360040584925232760968882010061194100994166803676867088017248357608838529357276784555823644750062284886798899119758174748548127694668874897670894928776374911167784043736183685741366153544103302441700923844254435070440491670697599730209300275413519534795340632016083917102960675537655086107585094239001386146416337953318178225017737642067434171095120428334894596426995351999906907443204781834062367815171933086040663713122332314901119519956267845122195133426698626621679589957961284378852289673759947693686181641751376320302656777415549771230955463207423371269695054420865468524403318178447865129732543918401095150443965816064941011561082188448239065814356224241085839072580696560637274991387036274556028432505274912081630749867893442616333277612817769614391387081582865290945181699460222436857955255981882370443505340390608552387507093934850748626577597523828568874193703318334607180608576403414846315950103141169433821176956803502254802702740423952994555788786117774098206428498577169842528154360743772082827130756369810089647647475524582618092124012730393125745942100474840088547654157114453521743284947987240414800390482054090274895556858399554927968691262299390511990361282196035398497953537443683565738144937061666739170845594783320123625769011309620025021767392298699459206893388858746459246857295131147719709678156571835493177062268970283920241981638843161023936246834196080811500445357344423163663373403493062463728372839772160135538099592727315321497276499513739444952654956701960903613954494484944793351369296217448201268128860149589727274615183389182022799376689257174876856983790499058867073683078335217121260098164593545270767817005324359420178907379320717977734955220441569474161127371129520228307308792385883023617796685811095089917574137372366005778863965054565462658052688129688898877010329014051620186788110975536886202311091941034656760703778791947105154610611979594056562346815242712347329681402189596580477477084740388911703927735973545785832214523185561472764114824155832881203597392334456270327042481074420054264699948951643507910991570469045242664505029086795930572214053896961583705438616338833494029293449618429281818043311336512029347879474780872685005338004472303740028885512448834255918603760304596241050465342125573058621793264860445384719112382767318621736932920194838176805564871532852030891465970727622510077541143936698020768771621509686932098883330756867519863449061027983097480537095091267495711815037303412104636214123527755128441300624586327128228190006292339206642757546370914377444201217169759066579562713051384105089928081304233503731365028899403157943447857613131589034107417748052427800875859976512508288282848968099763347704001480181593386564506470784512564006342604839029537137168000056234793707020137735855913352563728145702495108571086225713363961961289748450695343055482761543485818265267106212257227191474775317035972893424526291145408725316380718370257408616377005376392396239669594779817519183558309123823504776063983402017250302239979321669859703725912393444469543981373780624988916246999646236486530395198005900191397703609143916716447240616268595225050307862109918377826411496429245160749004737619705939508868641510618764773467711052072382626429486309924102210814476083632763487617230539329992835114778953314001313755206387763466050203682756910355560156274280243056219827975616625029572529448581274685000526975607210780978774846041716653441988350174096891460226631110871534376291854744392415510735258697961065896363565156886822830921224966822770555648487155596390891086910578824441701640573467282223974072349442621199192902267978713284687955385962344484007400395807017575464159868930412556050135731129438380062987968271619621171045670270266458857018925170505897011349702368111896715407789557821413327898960557931480886098982615011772717933208656386426732105242795336528511572336798787822691150686001691227624333555045389350517645480415099568285780821253049746888255660932189864737593401887082738940413614735168448944964509694493275994885897301454776278631561979264002369748855473960963667441483759078728835242196709356898576271783940274726224707031431213543664302938280372115506379341973741073868761233453007316828734279516937727813728391679290120840499141802917891739152085444551454376835869359851872009687955689436212515712136417603415332249141157882657138111217824875816523890941410796230541148835614579275764333034298134210113193616845096900571849740047318856847799635316863873670949997066205717165238439779640728648517385181423485690938383044541178934494661183100979708442412600125898170502868729871635295689719007740987442087965877388926665510071656448040662224750525592801713971383669901205926414612329178397721853223726296872839410282660431699603967724274742568157189696079235373348097314526497125791874210974600494022487970722019488143408653241055533240443078679803877860366516489207119053075883325572292726711677252642474146650043936555435893508810372973104800412740447244742286907378010660876055226311670675133106365218471503696203311730561618489059096492783070477844758511565624793943491908245484008202813361606769561668647458618679691912549387548552634174883828911235503158494163150923736109282484944223863535112350366203955024037145576366704401851756214203356463321038543404896163472662413300930867963377570600245961235520118530102514766010644244393228384851800362471371698931163584726983709089036641870300301021330342913582888631247640784715577279504519777217482255444487882609560418612425043826060436284831123866023880974758511694508659945920668982685673962768030712260797211426466340919268524652090564809958167312542933640046711493279826072840570355683970964387279801006587587624959250297853342844886599578958847864866053079509217246871789174512632857757200469303598394429473121190070826515281336579788077548147666139285005105787775715811937331672593965922402731124087335959403458115479363489809405591624833485369454272890821085832121682100861226878661974810489983357444464696143355182353099250656970979659902033933832531803929168434441802956864709654235013333327701347643701756859552667648873863787561894339919247159073851147064411377856010422170919181198941751378765251871328446156804977047241693396321920216047691846382489618660796226754930783979758860848056225376851127138604400069912650973820585754374186619827025923027204600147473918444146925452002808187031801300663310258984260650070496720097450064134992342807037966279952073576859361395391720156562809485052793965238411218129201011215514532688283461551264358228848096964243492416711603378451403496085544683583782259893913610487214267190560636495262979713256807732771130322005856842479656668837545869455298876635878650675852179374168941753621660858587211856294413923785448338204021171372274203731647244662594846023268047537249719537649291695047144453468173117217410612647835661504605047282562297090372580934983511795105259084851431430348145596024231120794009690055308761721271236408768821273744453928577493848533762837720652040477801373274980272173395773124471096942262940362973390408589488131538912187301932545519280401966319446578710896239937662207283220565855775728116606750864985093945219730880835429239706900912687808112875845606474664047781943342987149471023084466528768120464237390325049567923573301054407293261651120021212878144656695267961040271298221234464965545579066373808052510983783349591122547064994254090464231504346553430793682113049564871952138033777809404722781891082051321088986556527134843492017247773859570708614611623529075944792622860485648355026326583274391598227361041525029351872891037973132314398599767037909765998680651383054169652564234545506631358667376697502905209075558292505712570118248802300186864875799856004531601494193234053256539354094592188628288661262707355114542461339697929826987549652092199053566050373175494887731180554046900997909210652200977662705300440235909988822178656057228962896791938937524865709250485632999493909349021240166821880692217100939080309276541850932685379695081833810839291241754775957143235795865245983834820265180249542068240777768408906004199427157892712972779199466729496809386749413989220569714647160171056297353996998435151228958795629758184946901005829470420751567933420804986190115745683810210101592118867328742157645108708007605215276822289150717239962479637110859799618828763360685201437248235611828701214077293220098435627328436280294419365328450653152669598890943488355006300896117823827511062834977035056206664515625359287978365339838246538809711724443779320885137335999452103736853320079700541020664713727862694537852964647895942855782007356314153691851573048243838575822526252491153499125957892455388575487505056630416506327071489199301367054961010975561697533947183713405011461856776273905620212257748383625903492286737444683819052548095669095671425342155804963045727186946149349989073518776675388243880310003774929794985953917157250384410154787510757588348186297714068573555154422666093262401132708321642734756708423960095141030980040818782563927012477953091231813337695933140654886359432347858305842013063097315641506536804563033230140285875788906990257562302693189745608061950105761752812727542420068986969133611684864584555718072505949434807604464476726706637080954739595319958169191405320804484186431236759780252367222325887168832128398334704192350619409723843635847106301726516276019929359706293218497225762058029711820306825857536234683914532580832612246893451213275750824454803998980598448035326786378318953672746184617546663453816827524197322867525874664058940339356373500216047657827750601051438188500175066193985690161241084650616003548055560943003307034756431031589458619050497241280053618138843419219595207829885509089671497542489550478165062630401647906250483063328405997327723487702558087115144991905043225208079459196204130911138945702170158356888791026596926207798400245823051306847522740616408247729457546087353706080493606075866909696196568629089265404156774874262209780472548024271712412679817987558884307969705649634708973354558924667810841321004308365729533742068537543374778017316737972319797405035352292578279643788301266568873834664766796688534112206685643051100192197990136944119574474873417498362840715717337950195955547070504957472175554360176420045450030446799510827830446828536063102105040160360387370515546607623607042579822669871812545678725473655885840611651654882903285781978133599162923979429957056474829835167562074870644957655429229032170157164292923055448531399763765825302627221065564613731352965722116344636629531436083869144457867094439319360291551537790646090083543949339525044419861377196976617737691996462476708439372919656868445864606006032871802257952818091886044617044899043300717309664084881931802995309147188420913449609208255990039378097539400930599950153183213931039745429231976709815022564609892399214416935509119984514329961925674318378525818526540717769608602657086975668296434310284026136226473336028890995451019975677532501753794307008712264572245974101583065787473926497780106157927158208576813265514865803054277563274710010401069595760076761008338631834008437075130329399752430637757794187300100008417057183986770928331893489734212684797446646324855332239957557774139245387697135325292084271674575154776677140560327265695883738679158256908760397947736471377871586536062358667901735886818357066790208286628249108995129119455566467989392302783180719464129644162597119308593991969666294455566431212747320920740264675146272890986626894174621854786569939157955082667437987486044507849638004440385139146508439776357097531109425683572606393238081086831490925437612833206993598389621345594311027445101661002739447740613367660415821266751575409097851819036590186659752001626035319490302915175996459705766550949104402414210751012003037764291613441968012963078399213860079522448916526901553426972332443557695515123911701111279944184611020866023238507729197768303596224704147166756783100629074252588613928735240196225712283667872535171625182037266545708295110723468897226655162003635691279470221639569474308800023722318716076824884048852976174555651653191654891172187003485290016558470594350072614716138127470706166066009550406141678083614816983922070135911902542131471538992591441290747798960922342170748224099374436711290241780640397092340594161513872569012179623377313134715599205645910847027996334952407447773647571198140431334918367074054996040151524589278458427640705522239634170819531457683477487501461760181203052244138853279509706308364372669010443865176232111912921833133518006416907506807249680636360952204401943772207664533807440433075450225647288140989747464830289167660539605288103571228281067954499743562447882318842621653089191688141637760392533468253952891054050262767135742615595587950282509537907565241675688571610241002707241379971725186872223900371980296817521991365971406009423590502623547121342539331763816188230732648110870681828551240352635610189050928452592690580227891818586345227729287252981266448722373500628845267156497559214240508099961192090912923552223336494795465728280967363837991486188623375169184911761203079997456477341315390334860997927952761076680966906754182751363280854566084543127230240384201134947796489481452443062233956841488345397871012077306353832726844465644522064384701069322327651357736000733976339131056831189787874016249982022547398725454472723361132671249634497753954007567015520548626369747940781216128941936424366088318545254068574539364937740455344488523027508658397426042589073511934917701081558927408823511331963673854224446334728793561941925581641175933740396686254012105551314973838555896797479234382288892908831756389510882051016864792073199485062866499193262128400927145792614258677081880188212210605871913963302852370136244743304921217338214800604432759135444238210105449705911333816966074083595203983837866181354179006442755812440321033595914794334856916276638447689896838137221049559341821813871713752632773423739132819716880950640904244664155198787805169813300662326278448670386088438186127842538382237045794977939537917461739330820706455363777839343871905352123048847409315162412610379235121917007429349416230217576600097953854099733591001441788955293622682062521825382430535236477893071235645986955913639162125918292308173589746483106486846584739643202576861374309953044008400949397900915718070965206311605974356300928655675043200342070414095811977909572414224366215862435792601899366355222531736152290182436448321551675962931386660531649235917363198956674261596184566271523976389436182301741111141560952454723582455100267057429626668340858472496331985437984895511975167197991327579918587026626072233775978312934589396750526245560472101546176710761936876281458499384537902978044460882197809750493790237675153094368039820942150688433792046652479244383442718691894222442972550508017582648924873938089352888975546335226170373190840981927153805888495196725501133589298799998732729105411196612394430975093234056666311297298807443162605357719095170774740583682748938984472046449741182302791281260291643820905210037958264860936936626208020479356739094678722190651652910123548886765780640095941667757695107147594626968722953678116459540844774014047617293542343049141930449397330257503949543198981094384276907582657535853029282280936751985451917692693394002377776439266945044202704603145165147343558422028402072273721148173613744570686403291852428396525719226293028994715745685760414670796614464632298414129968199088490347429335595558500547435449745657303581818217805146724026440533605743359492897284834356380032946301786023649365820179311864631981316624810166327686090888181693940548749384417761424357197321015857003864067698075007158667539605613731911259850566666008799975812516705130446748367210715255232509748443139333202037861931125575215309996820391480183845159703852272745778004924065154075177634705337295983897558799144629952296567504169146699180414144949237446319706244076008298476407172605696398598426950460920893225048791260888514399818500916606014157490690243297715678448675198571338652965436925739360136335149137420376429791441192372443978005883939211633594341846583199721400960283246482557158266684368572810537509036834677137555320496683898101709073754575353683346432886596653407298988073571843132877559571131151291801500701067896436908738301642536672215518049834174035110736971251515084112835799996438828882791269584657014811819920821673976890336488290202535545360476837952177020203776461767292740728200057086173098785807893212043210806786444582213375621545652699034574242173283910352470250490138305444507802399095590089083596641768740704894423295764944751114953630797809947587237735084805615457601417249234130232777768292922827825022336821407561220477710591152650237459058554855354570940267798104613157854462033488000787539611839268474586592953408028774077936880226978829570453706380744007951829059652522576694936107273568091372210564654540365884959580428869390918045301728891985022022437028310184131059622549477283649667007094929818467494616985188757706222605780764238417596413693285314444258040223969297113813166076861031258743462157352518232068515338690073620028105369756236058692551459835451133586382104108521205143168010666957778143550194707762631368442965612548715469682857875521558957403660863524880136214592325573127222077643818611841058072280592953377263025536477914243418593571378422672295489600496105194365130816064198950339818088046359187017942391708879187277248700498857627603831153490579516199714547899357813846246690337016183734275164169455201842111129059899921694124779494779142044227389120758037554610013128294312200955747209883711455742023484308723094057858913043858864325951121177566664389468672685427308890150966965696853421741903440382197828759828539472287884783710025810059398982026462263043275479661082129592313634838268713620779895515787842127245234238450854119401605939831342365664779086139575241032127687980633196743465229843745718268516705003773973542654362691841300619147277656726231258266389075122467844246908692075827486503208019752076360126909712925781714657187454864906611191064368463598798558424544778842799322433834538434532040094743897945444143619555851149506571623693426362023278925856446395836573030782464984133451399343454443421256228981209600625496426039674858408813057026776098985656830517187855857960733855228945895783669470391910316523374181102193265214309270102430527350274138405293089640230082259169509650323358674439850041930574614104482149683972737484072903350045454598549893838544454262380337083591414994064535404118738789252364445888541334159479556710678890746805796774346094647017618097920035792459887105464444876427260250603756416604639522752072101529374216078084533021350521229467313272718021417446147152265733504139680950746680207721163194449598923310815501573480592817934878577457296596490076726826513992087255853190377983845118536646131334532671322298458334795456601790238072118846915280212690190802128268985031199533385309525440574012079950499467285154892012631440812250264922164759652750466051073399420409426086392780284861175289504280472702598502761963328467540336378970231982594035526128800454860562888856523719058710045764386731847943166461835796593777006943335955688221528234990196560201871930857089635496054246162695656603666770596931546638039993090484614136800110901460655878808997644882540286318769947971719524260612599224609338577119451205572637248219993398788909436453131323520770440198822079676738718768116175428060188460520384344956569279471595885622584453298476463719830552560473279548087085377637044154067045666718598660455137065375763103332950015603970768597345650585389856343937635599826511470470082136117477752351946037881930447635855852250373764894336913080862494145825267696710692609446172117912227750858521191404143621566043161440087316843596078753116618113249163550230751291988606296971785699405711581528476051498435867614061280019805417620308923540653170756061105970836989676200696976772735340553612549569032029630662219728498654716918512890882221525274595963988253682610139530175806991271888285814086975406033968786721816757365053198284738953223077427168948183668718828510036308060110508881920582495446503205295210799280012203950898421452292265062774151938323039401839919146564836036566809002149666388021548543701144960068928612450611506923657251671933797772285653786746313051315483788852504006715436372851881237799095771424118202117830913231083753564959468643623093576605568474863951477826411040644573581928140245119528398332570605455955444926761332026937845350534263800111714406141767141427616617353954719841368741734222552801157418468541139145349510149755505342179631397936935069906191010325395303212188418382915177181296537090028730815431797161807767449082022375818960932194821984449202782141281885230990520681659379501080170861038337216023977955806124268766452678167227803459119883832266302370731969892221203119821523753998925241719878843771671925052752175431490049838698154082750771318635067071805862343560790537762417926880266709082482646277635765315874312234089082464940608966684889865272005273873140275528931690913920947663009594217702197771058801016877679907810650110700715414959699899361129120125199253179301782352839025215203950907230886107957373360519858411809003162149110769307960433595904571532011591304451249464312598112648761985499294799075837778246282707449172941168338094632738866699569664549025954613847970044657931160855022373618344462204018402446513938525829782428672766068270336246458148908633160636975072070209519180474884650768587135539423984566815134933635520070226439258956446855259027204778260504922515460068677034466206144688025246125173986886400222534686587350051134759956203625518112620203414312636709320218190632516617863371449851419745474725506264778992929975510930560829788609982254231924355443112920285349038560238860094566877338230973825483231406300226962582392197279142804686685003110539036982019724642088900927176544963480365760951179842529721713435512791769061175984893410860808051667698426781130380685691471557312288790462399652462967428788661504440317659554057295740191733027571934753144483075895410956003515243988066689554512292056750126353493571058357181483252868649792651610682524304437312845007316674959320959105244786456028509630821499163661094755220571440377509595950938656600455300978770571457629204886328085404328150947371057643318523282252901704416944752929309732283754358916997534755335723564396957195787839887876921869156496152623491300849201648491149389309224226193711229150679994083120491122124111580716001647211043109653472047821436053521315022194528210963505982445142950790140177677803278023371819933433366041022045751525992869178814053651101949584257095052518378033242729251447461536839569995540966902615183152021787017519671653594354857889376904907563863236749053513829927268457477159773335685895241813145900823328136275408126445925013804446028981547939199691645483532295744672676134206635397284446723655585341794090371848229706189378292778398155518185235007042953873898751677577501453300700617914140172322812765943356268432889274796184476241180125504736921387175939402124752248431227837773666365246423926414001932886147649632289086110511159296568972307478290707559205951782063083761320791358291474146140948493723940656657041026306207249367045929575313493874855336520183872118591030207212400018136772580762354747637975493142024525635167010387620044378995896136630461030115304677272576744388820664579259824497246580736804424232068248002231011836655180893213294723469600180112080973844656984542356041008861765074917744345086778298873324533687497595129076124049744863293595350722686017769038702927813545366735048046745212263182616695739142571278121454106655763610757801207224644097387719611226615655317314924363095100913113313528013774981984995375546959227923250854140619325627146476207116346654185353268283489805572944923011385380885802184500664149479361146752778790169125317439385450840147379046158651477433943472845563347082556504595162451959653118618051593995428211087429861594703605800595948461669822060518120939077752403682202315510199851495784928193679138740261125895493005129328678593295080490378982905080793288717052286535416627768742923614564531342777966755371753152958359586022118761729760055052874050664846801680311179513139864885801909500740668452983351272558378129620494714487024339898536968673563306145502131326259015150923154835419947362328009713503837282981161139717673557890065239688427690813482275833819512024999186690224188386487067517907307704471568244617042866732205592893780654574160476138197950826636709555583230818496007351033209812688372022270970331466656566604387439722912620586778243468685988733389941751435113073575252754346322625312059193455242106563824398845999611485652778678189439922957327321989503139913116434592126007605565522406011185856264802298345850467021752195136399760771892288750739964757773395076156202856450055309805433053996957195730123137769786592733705337587263061066488680615846730668025781574240382190760098420637595990692220948935068482591987597600037418787015623499087413022813794513180952613982150680444304568733779875316696549444766696889104471694625338074907172881513688273821863602906809684235029889383530719620435001100919331796739606640750278873967697395317802435642191199460286331954352749390136845318297177878435621988954316859986609651807760295617679915884211216979768646702948661481680792647674698710413971505223377543524790198130000283438457219090017182222094228757621621919196082186632568424086711173996809244337259368396140688438311948455070797506267785752193867025459691135875729268317218795057135435431320461639351823464212779302239922454207596188449668924559309560368698454096355218423276841347422298191873008997974831411130040130409789068172613548291836533699346638277351657865826457015017175883954111058630095622365506261840145300957250417610417379434666797513122754597251700143964280680273324719728098857931051853640570216353061957418150959508057365650971576917012118159483355439376960508730153908366754622622012292318526195707648592551609476566395764298391585206987293426927384515714405991100380703323264464715621564640014867976706635081850327679095714927753817858045235646624190541876762481092864791256502220104468705989105450006785186481604759201802899792981996484659987795432220995561709724387753674899507333065976040104369828204602321762030025795670511478987782806218878739433148167643081289652090838109171006338353788495313756450250135347824309819795898790412231725633966612367286438346751181406011574786136771968254080579759360242506442244994431313343351875837003816282164019914329078683404477111659917426873767504175480290808249231220511500544264379993239773685267852741263221166511829087764944258670189145601003776927477678214072554818495795838169147960065816682229945480135865482426324345639958170508386068062252337224190559486034873571987786725883047774830054057105286518531613906014252788588061804234929179487188126912954855399809034614585921822681749554043193307412145671054839055475594072643613950774685138932975092500142929190264339652975922063937644862585702593819936090251632314080236159386076449197935307018915258758529445375956115716848889464570760495738097090163984270975386761925371181014820536842399016829376643581680263441198668144676726217791780121743084811222202023701713775093685585580167414795136271568826038122802499315899803613783744142606340595036695807462743661563010267333826578961704766450658928934081780901323441812555744018399626383064976229916522573456008221640066595476115484600677883617885701143817450001463926161656151301983946245926330259228205373316084387263472633901953866903150843567977030963396959768082480584234760748459440145425592421353809546482422798950475386518046097011097458077139272868319589101943065422603409498518702533881291671569301443074424500984232791603403920425308214809102652258689766549985223207068109692121018089305221042243392535146255724365810614011354034365560140415428873290205314928666302291730750238250719682733020944045125799334122536410382212360457496076720289278728496432529786006135521340875091238751009179926653656071244875942312315274373603553030201171142368086332661037808056392831928374610837125099210649697359767938768728223738259722518598013841047588083846384353481521309095594105923877361773332825955338585992856569637953293007176903463220688012223678347799733225339073728616955102930397393769869563743554538384197642376715764766012362773165020160274056989334119731882312368876600730882431612731579266823730308259713429652522468308252861726202711456797948500816605005509333391616100800734122961750692380766336880936568417694822515166749263691107223436982644547105072912055064772080180356875755855221148127060497769765552373339486315474703734528414204305846026056352417429284134850345312959563954633730465580031664573868631504499216169423358643886777316090645047689743390269949439735342307735874168415376672804501593047992736051983403893429143598403330334748085715731142088778123908671765703354394766763806808375345111677634174590903285566366453073213013565728284113796536375440219532951901884109581129961957488753132154526076455774378273691722471448080575285042239927379063701980872179965308059924321542818875827017675270562279545196998813665270393233572538063707029004501585766863401881003305797347600637831586125207049778328138526467744023596133929243598833874039168798631941953325781151825923753615320521395357670821088514335673808427766554894692165430987002066629622785467034915257414329011028423068747526667127595944659796655546298278817596116171090967460455608897555109692411413343979366652268457228912973079316427016377633219460179390864324976041730428955177742122164851623718214408438989830049712525094757487360739525776928369534145695342588183826220107845510576023549794162369435990510911014612164845763024173010213990464858704271160985515919546185147301645469869775892560231966652039960612304393838816838936146499159155519758393694373231253345117190528335158078497987692080756440689470078673751369718993447747454627586936207276158375049301931987468054020688549244613217474379541950186973545419849773627505939326792632359975732462182390985137470200992011388769377514384932521453397097213081524280102250932845947256319259137183936285957778248702244488926500661757158341470446660458194364361446772627589290109920929509521192495525671729302526419540560985713352116855499479626014773615728328782922722763358588529033147185947214752429306200714505256674772448507934446607279320379678853403469775537606036473234508052142348572698908545768153141119146954443087545007638739110288837459927478354956227414716560574057014122906942075869255299172927830278836954376717678124525711459030333319443335603015190393479200404195376540275660375908606501303031186350913888437327699516800466662119679291132375084600050314153829148110223916424503631644392603933247244924559322020706558122395684383459136400411768757133468638982578538882444772063614853408329451691566587604366821346882939043749023330451957247343087874739919475752218251085793295302124299049145427000764873537020761360272413635417046892797384727887402059384134298893797824835179342661798868509724772656665717087565563756045530687245319925328780215006208858538328573064822533380633842085655737326997276291115982850863430138572433114401343357708659908643219091889375570812848824786801816524746337154985961322459256857231948165394889990828202968379207793939741250190444751547003705502486237168604584777636043754776331101360737400864468308678137938285118126373992577785992678117769090381939963643650272989670721225452913269445463649957632935705718610556186641905876443270223491969733177923626203065137973109862706822153269312604563662129633290926304303037091635348942069349934463444483908327492321375741353626602864022004287131532445386127066166443734172018168889236850069098394331967895991647578648078910307664495320361705540282248352304340154434663542511381527466745951973941146559788223170775219573815518365016190029312105696749631445656108866078264027866063668818220591719452805095113222745282124768290938539854577392570788212141195977859324749806439503256145796434058520171764579691934569044156277894130273353265477725168840979431323733315251715007845252855097700552401024927289902935538585321064576750375011690864593152030262110004442542649720392262360407024895885178265006573409450158449239713652266506985723052427915479801020673307642541426369837732357206516917852703299787850538935613677083421333919783259974091831838816893299923160694891701037571538152279725750172654267860203066953326525077919479646095376834508619037934823916951122374843484976817472549743861745404059983652182144738728044510971967524068990756878478658288873799496372458154887271652746079503007424361338267557368527068041884348074722778421892932989173665746623587583311368255191292654923538526537162993303279614209168828258265042601901133810549342094344350323145541587003843276810258845152832522599262518982207528033312273278936302613134141255663628713603324669274008170553545255036636244778835251631514620199482224676613323142191803127416411399515075368920421638864654837736024647567986714147902497819978410211596328287821495156158815662964495894182849766389409043375968443044259397095746977528639884507387414631886424669937355630575428352685516350751704371553593122680905702950807978720867322562996645915755305047685274994981571665987008635447166201238971445256174385814107734691621216338685039762913424557312011753074918828738589003935023706968638349214157369329641966271886303206522066100663884772768820294605285769005139421052565531979656849998236668654895359289164585278365787081115854382887241590408675805368743721614611616469252140650910368895771881586612007538031681498561147618519037841756467312041867009726184309387970428370006301592206865566766668380300216410408032606519908042988359172625935161169925428356162158254370720403497527812965425564638556661014072530816197924267733063660298284106470854832880177248789976353223655421562494222747611559168345261565869389743078924839499884317943094383426137697539530977696488078186630151412885791255882814282528752405370377548286594948286840726226336619443166662691760007493122821630203294192698093191348945145502875891540475563059017262916288803140483372142460521699990254342108998055311479202944060893304753189237348454190058982322775184898958363451025898857176815727304119365995729136483865465595601172095703877513186550628146575839696886795198256335236866267341733714775999209878752658071320498118094736655482576929231534526499239355803602364168779864126454293678207820928606325277220911412677641692243604372304909826794756558607818112908905290890231224461081665062338657348065613818219764770846388677180146787367991481404729847737403997332111736700485101222202907778214867089621499727896818950489856003340653387429993295532611166015514179619407044909327039320504830235358870003664098955626969177914651251912086335852566321486331048997410105880370810017155211513577406537734688410218897674751258506081197295521409038445831677742461381483313522152035833289889599243446302240509387710541701079599993339716463536055761672298233285164320942258791914512623469811453187732348672773826299221806059875580158749634384978568069209515723929773464767784069980212789016733425424767984485784886890255093051654515041323621292940574875040119835674036339524119854501151613793631818170972818002372853881127965302754917237973203675255704416568315823542519256686060735270028599546455771951665393661393576645603993509145852334099671564665825845834555640363944096255250113550963036918902586018261100204367094052068706716935462857448502935830749371083830578162298895423196389349105500098313002166978017087356554108126884978915508829745115862964992073694931591614218600735445505336784517763719596331883048121228491148920655826927947308983683310842490027395450376454363532979916391985264184584027257843420714871003636997589758744731639414023902090267576437194730873071632026150412049914516739111387405780299730517914293338471495276398431759634362778611515265147217577514542897759101512781114711765381435504566060514868534129920998732142915546845741637441338587764367871546125170066157577298544975018902142260341165058312678766999859826395201710399661329604659263241708693624921423366345897994963204603928076322689509867033671708546203014681637367551499405793966177328760076163601674398731621441637036958078687596094606589529122209166774079766211279017401890088791415576086257154798515736249873048129389599866651803425503085054678261644459848939279465435737805109766789090439426115648797399287651564485430311651627741535760277572745055578399373466000351505914370496855057900758197928400312178292250309470532885532572452160037063820972945315417331395658848166375004820593179807067002534175738397970068811148310062798008733531587589768871806482433811380868482767624802263792434637095486199452015280782552751922412886878067394828767168849688971526388773101443691940496597678212151776461393841036266739849789624282275507535753757387003894304309800943352160472097479774396660194923767351269293038826051689313665306731704750770859596513175931822472492959927249245231795874077706313265333090664786924616866371271828668984342978346084796455239119533961721691275161848861582892124950190874732741278955779822355210753266515172964291805764059285003764807874024545544061344173921457311528552761220285711600726970047036837993745604675788576884514227169394741368377499597234764605789901033283860905633005221059530525997187221767712358648978532086155430897221126377050402110995228882224781190282402838894040550878569912250009595185191261535804193212694829993625065991503033454144665998922013073231579362195440692039858740045354351408556591619524337320817021987359658690254686504422129002974795918632881281324840133024797898400679391302578221127850100255465366318904725335587160543776168107757446413165385150817926658162417245129043090101468361441790781529602784150866778865292930898935091492848355657784180870760341733214758507348276047226765103680933808692662745960226005769175456650225368915479765818465443971919548631527323943499927387943693849589021555825322080096642021044429556150965916910998405246503133859425860648050667904210828710811986888489207398652951658818138813724368773471622411308443931514750656891413663528357729269262697463172627767551299131600820914171925639692835153880735954790217831001335623804819368481632746160462050698296681892307207980751747760604374388140912751548250906759353289105964863641476565847281816336845136817114578954213541063390603109613796832067942727293809917718005564719069899375105667099751759989848138435704311948627291595856792808830378803515680732912502197350094761408450607871958969886287884654857140263785338698566746139994585463647645523501662032500280510405021082759197760273086440900097878964655171613150895322430976648556878691007888820481781797774276287255070490952796557265978267245181170872171994348731090300187714116120055569528730878573305011924056561073599191748187212894608001087263557820804355107017890561721052044172087931612173633061514103514555012079366973909942291696232949854476263215337652390346858499238807592937136469621643826132193711930046535190295188614255349941716016971917768279218689024226191188421846147990331621925954586979867682968913276462724893700626122843970867054499239088603247071270791259946291116754561441264886269063432628163486762025974446407941541556524517082575304307217419918480496689085941025155087728234698380060161582225971222100310665895200385720651512246108389469720953271963801704170239435728516624300961295498901254817085905696944394948953348437527495999133268616441537676435447919730613751134782112798001342048622662692975994396976979780439626723606341286839184952861545659768092202318901406865211862420497767553916104904409897450934503014742764307369715185318174205927201640180456550203038328259107848553570789916145662412409900672893438316844159375260287986902190519880364506451655474670676744339653482613234423384567386309661231906101663597710127075472227998729654064277118109135115362648863711482105500928785835769379943989337371280137355231990577533906665037378591035655036746525102345735025006313248454896390405712316634665463254669494987576487330292756032347141514160864874887126151438852801470789704886854725785664232209067316251156029797869789348218794787928178774472569405703432518553602547350830758989735040838596622510527915034998004185667353068653962885115692617979187110935949586702032653209693317155601970276534517574723372814225607005559910611856672530331809495788262540006758812705738423318306935207683378747800625309245255050760347792931206229781803274211749320927457118902832601371063657782505122743706882473448499320076026423697893022898108696051171694481612107506373346490683889396869949856370357937784389651581738115147049649119390623713359917658299569801660167524583302372241927844904279981579654279979143385838252782510541363036390968612294980242422690097440321789686481325585042801779021454827977409525458806457594809786659281753524867286720494615382219916922238660180834034931015055301206328349945680812667387633674267579355941029860862060427839078662717330113035555852328420825982487154838258672607669629138293734414067597838229394242057540404989925607101166793647659727173789965435111673715099746137285612544483257184722210829813437343857795188296923389494186446618205248226514857666443038792601608584195706813932076490967024527578982524355376815721711749006561980782850371104140938233220444874826543160205941617720220617301809311184611034337753811528895936652996464449720415771925794652124277245935169122223354309705783185856476862569276131983562605162734210551129772700565092069813991353242051892126012351210021909897611809982484443532648333247156510859248541324314471466487969655340289973555133782962386190946336474671998207312601449708173161783624739112563237732255660703466939505793736933003969344493967984748771406451011735174918319654656492032389942591985975100327976749209899171039562571133233922292189599412894622894505698445055663058316189211520626648894474397935032930889004157151905731570057590721154013932946205427975065688944492340500974319333066290109834153568977637840579896587779696730405031793699340945359474597725094450615960022729873284940090469248212630984565104668634478023762269611724817917005515906403473835293017607468763327187620036961284155653259272859582648222995784181930529000547152728722548145034428139259474760765503979076500524189625282746861882519097642485441532101074003177979671815332617900310705904534071184029621024664069645730622660238929929744355224750890310118621073309909069337866681950716451285798858399955593016847743205314601804567148633695688073157987057194540859813230256591790792644658353695061382922845074483080357474868459451236989644310908922957191903281763692489329347653833981685082449897145975289642788175248269448648273029888445661040406550775062100437863776306821611398216536811118628454301388257522492360737065146844349531786926823929664233776698940304279762021211731254203783883237791094041507918572327009385138053424217761032735117797453029945782216650297591617588091256376115978201317943269388045831945781747086072395474739387910099285563888251221106149004941994018333485421604391954925999584367134520696917335832276915830511781039349192890457065056090099970447456023713612968901705696689438961479178443579556693710646909175250128791543966782164986249841301187339075215069823652388853806577004807008309413291146205365113480775605948841754482435928422712216800328248303384724176004617835014818962339661632247111720299124384477927242759341929937311623153161641340240317249267911043633147752790712407265119705439074488942089081351145736750752047685095891703207277921852134075774936345696297313395857153465873838375262535461971404842635030611712919313855395832156969021245690476776376476217968575773102637155789324176710339983721190238907648726554253842021052181839849214913535555208160931826202613973635819486801107256836089340723560613498714341930551505749846493912621227894288606146670040423352203077238739407693617942925310849616658223451679842973647864763324133819507285017566875423573371194311237828656299723429376862984557049127502640077199970868931700843438173057147825760315991423884996315826678623230482363317800062311914201446139775025097803941720867590861202742239160978513889898521270821350305005079342695176830262115732329173378428015270631203281647909728772974051781114911077972074165343659261604440097080324797913341928110982514316816499378675906939032987935310644588876978077324982563995887864948162892750994275172294005691372662534473935696300908680750740028396676294013747994605899176544589376744143084162929493851426801698049225671756315824801048553636725833795214438229374425964852924171419082571475833455320936039106488547130946023841321388275111938945267860599416051969489447351145592502318177173495831819476875747712488421129440678709133271057660878666305267720225917149806024121007481360955179668326971771832639025713322383400563133478191355923561923269696967648143480248609942037764574931519075371285992044987436013767553004675429024735633233831372221185554420180452138740798626804474724997124897080125093105855761811627344309832511431015120802534462216530488571156087374114122286505224793563947722257587215047752708114964805763884325100867047729149144598858069899560627550614346139594732805964066692643285659802003711674688081896428778756649167013388395059579033403928536135857927752668951992116519729036579725656617238129690648422210712862871012346153330620243801383768514774019304999811711148265541932852757596217089460763902598547194205154708812489705810919197819238100621929251395705996939557497339931954897543084829897420681748772059461267566838468056814505830352318001253991245702483519986197255212366814936504588970817425839717265532372835361911648814448023734459128716080558130137019466034542521219920319827628994909578760844359918930347815431096183333744997999023595112342698470138965933304071734996876667105470162221544405498578398184981734463742924382509966587310104559964525988051893120274484969660437142504562736855443262380243001196466058604849442033875067015950319274038157611449213043739474384256356428453998140450981028138652361291016872019248283888597734172933837365679411199090381915597069142577140523563504746540345606091472898606845546643294420842806981482308041253822715147572524102729830608823338446463697324940574051128426835350035176426560910102390503020978743301144132313262341850720327750683968274581646597599403147350850341201118650710944914014871986950043624564374995138210509858430028742816991485237257736428472038814256970544822962114135368381196721205583788068543226152920962475393515090682117995269815002049888518094519480102393949610415025135138004774545285982561923896208530030317284120638431095395235162026388351903925487499378467826306578009969065273009579749465337409454207030657246522302318626582383044336159895031512389554296240087128333394077837066748705577656517291625888719337583216109384365638444847111887379877466764844157838605578671767075769951066419013847526979829981908176145364959737832651128954741423014487722280182281473178567984803508602012983034664256370139755375026803281068447572104750497415918236658429540719917858129065714898710037400463778223298173377456430860689059328371758007643366186273028579058014694403003199433113107801286751174902878458303417884912547694053810682095346107285355371730943924118260969013739742955030717978436572323467141167769497979663885692567026588885444607237122571170487780904418747508605674915969383920839816978077210453263198018151602832089026965525989003042071440999630187065360228200447644023584226901432752558107476011170640568630528286581747537545169723849043210776350875835013559992863789260808759255767057617911194760114102110461194837643807663102538500793067363844869298668486101646179875210318344560354032874012500578844556870298777856677878851509118160227692677665771122576904085685153977004640142030473290809494875747873794155122667940718428507712159145069561828989682132700113805219393227223712888324804244318578792779203377981738251114379555937700985127119497401963969863141141520339256197037683155287902703485021221848155314987519743268566649103372577008138051415564691578065687887580453290857505169633404432972968525310802382195027755752538574837399418340692415833166909511051237583830156320553419206393198287564715821637486153555775485105850131311153634946655284623529680674951024745882567824576134582938466980505813219049119820331832120621051374877243886210519357622489254018829685098126232739195325805729463769809787692799315181655147128595484641951472325640832926339170124741840479557152059195391420220713372568364257522944753731028672057560335818181040490553149135116318246260210419370172865157865984710791459977081983470135432962357143781436386543921283728841043899155942838470064898801904441839099434698110526480801044659619791988085515186996371013734668296490606911660912966223640494806328561203441879952659598187470914402185274285671745914719683459672085930136425322367844476734121437238483329291592929180170381858244236474493339488274974239735566984163233496213399727399265985380398531421104114656156263260968216077757546877541009118923564155594169439902919407538662127347960527341575738750419962737418784380767727078076459714700600476361058608828512217208084161195311591775722887568082483688651398708999055516141777292134835273484115426860325973527687122127602988221301570821391882979701997174493238029882023136011660132514693344530935431077086024787255656089105715658144018006365163424188587478165241331022891993388344064572395592135191480621580630639674642028135180201959332532617152089865416613952585334021349846199217819831671799425067710053211533704171769920758756335736473162808699040494864600250545991935095201368220385534302755196509283004248813642359681171217340735130682898843843138948531227693643389476401784416337591467232670648447608450241630512354338840304980502935836691280254299326356015422752291793285044300313067325284206654987015892210989240337500212157226737704620814186817333271349517081090371600329910619310059232584504146248873734694647086549046142826642887582154091080487865113721552890766784308416165238140983482754246170079942648311868294090921839967760694774408545677664287158579645340061919637975778466763831977116138500206574330139477674960899980451103380782289060518115609696850789294726315083666741393895842401516885775938887226537923868371039163967547266302731877661826283117452895510746685053603925533696043657757347340831859171270906007825293571503728175607832987670937637366633873937209922680552978732482796620325000525605857740188756440662106377039863457009120194009276386519095737474384898034224511724388264039978251271321397582920869547422947619735979489897089207243079071954923951292099350253328153354805058861269487999973015517061987362827561858213774001490368118344432024222888147517766338170209548471196875231252420284786659182807882780666932392624474463075758244736921898680021639719689898698722941905581466744009741515690315058501388272671406616974888718941793272394086219406679713423050755884765771597648879614286364409197384199282101463321037689696160257094819615094141823138239104315608975161478519890170628624133435877462404868114510505928877150399466012216439714976621226505801218987188418298616333144940260946341508886722921345998552744289124647531742531809790523742037782367961021093880415082846792753002254615545537475837848363512700593558679688120876035872342800812383026310854383007214924344125820300470090144702976404390788544523262811578587364328985404402578282890119328324644795460312508647009045281553517944566079253250038870682103756313023240124474053133807280416568950629709202494902051751082149226702601786090927281958228455697534404299325257433553030141835147663714155760918950728555878531333648411847625550725923730717563881580006988565532965005074514748088268707188917480533585892546500073028541945938102821293316243782086504957206411642428221795819799952654388926291058685887906034116563727472103766068101808779580410166498607930545337275965554416767075893594356569482884287012746556892325847543204353270603188727279877598902029929435358255948040586310649050211740765480110779616832807593950465094561968889120873915745605588471965841752789249428811746489492041186509974057014714913449348473941700050665793094367453638947218223258106552944932378564441029015220147378750442729567502412832812851967956831310507357529068235320433024168970536901200200845262014994613853018229884762416174222066892873785882984435340991354639376164755052333925956807511909771026305302098914063274065646263518938399152171812003326988953991919816922822390338566857647752779580608095652188552605489157951077447518519865157230436610870348976749720154818672116263819490605772104731621000740711414556310968939061344010383571014486781257475539286809634912747611824840940098711706046597990552589133713390630126296646224103478651044046468702111345511246151342070630151651390814264331170938328918250338095083544999660599700793389630536108444621311494488752146597720745468913412789812514614586361409070606955199152239736813017816601305762239491608882531851153424765604942850719940122006528618861783473503848128065953384489924393613132012200805226029368021071169861800901561800487538605705797325234202789333516632875929727528171796481296211805443466767936197721460025959812093399511928662215309644966921337495607667178102409752537609079534346627796807595884333727648034418150978295890945097809826621539203000025001811793185632756082886171789535457961924349668642120161362653615471899881542738267931729590139452498209334485260874549781729677957983939391761176640640895767172393483033109941926548909719102688005043713042542503723914150266372087557716823982013026179137610234591838110979348356137572916881208194276364021082719120466422126398462405036281337515719887290186491387660045567946241017499203170104129791907020542388794693460103108606099699809002363652082433241874425541410718765784468784948618257947017742498737006546557812004213735708130123651984321505788226888978427750941676004843632096491181068479631296828322208719820672978900661444630994461688884325872468767876133213226877793887278015255157486512760625509323809500148697851250795370943210480758346517929187864807858639152090406593096644134749400506375490786379148940584297594631606114160281972745724471423822020786842698380815107785128711572391576770711190696891987869543588185290968135662904605737121863233442375638307853477772816049647860805065739580149080942707762278126506145623599298754720578484208387519942536052232784110810899833298453053152894601553595363763032894802517136709356976434346308199783797379038195608872837004712297844566548645644420129748559742574565678402590420312175479601374656474073457565453457501890752838590853000862024179361411388775276443546072459884509815714598911223277205856239432247352961319458670075655405625877674318377971913164070945758049110305434788551563277154046893623550437666456436842762682164461275987054718076208163713511384080712328159435360548837151075248790014380089394926386147206722217092950979841172078027960629752999871551214691799980791705221437270351160946992899999072616734362732118539976001197878636396833300582753481165844636152328068234142768771823002053946293739974289990758257729375092307355768483532645100002668465540068761449758053566867706492401749094273417786474414078236613309022743797683861271924636602390484928917126148555093618923823959000174218729373862708552460323599109827816908533804217431487371460524290853115826761778461537608900998358105253948428887054346032345763817340851537353863316598220859953934380922610198357927290640805352802605708912726312976361925733422607145231701450051970606445249059996229576423746666603090193387216277981430270358063854196353240971525563885267006419812750333599417969900643583861435332887980015733069868536264345024450989144222982202627011303167121156050215998927431078488463340530766505578752410061803094082151532067906773775214239786915893653079558796540639728970448582490986007292213373633297947090714169281576589490930776986732126676780533048798463266949300532954989486958076617263332115630514836583996028764376889734406149096854275327797393717624713455000396225401884005855357085096853848308852992175234970273033236628912681805757520211546900495672828528264563222562331190477325438004059010252177962534900947761180182541672905980597132981352323908024816229709929607261655422563950901160492332782202892116430644125400503940572479077222903945547858440905711057187009878628859848949986144280580012799638605465505510803698934982925486801167845660593188165641566083652720111272885184471230681593732463430933392121730413720161092671468225245067683748322772981921900528630276322092757210962288543546414694717084739462423039144709273769368670732087404856329601248224358967786911188781414564727704325642480191922947192135618234721391345648584308610261845064349257584778158148342833570268737119273611143782501917386614364413241183797139512323928899340008772089628026272624604119511407846440087571170604727631458783237665737425350346283186826104076611877207913567522818829763909716934266057064756559295494168402314862475723441628653550436361988674792888629379306605912285440834896198531186302942704497739204005317704026517375213929239592334148052068658976152985996696357934551071267298048237035688863066439839924197148150395433750731027310853087113620435884189420679623206792426863033426022192417758256798908233788587160764132291273520717927460734557885840272019787910398920015884529778643819279291032070808475860062258406507966833153295559590166174071198596923446021054001109781078178156241703491683076626346397025331206832922012040923826589481732911956743881982750542156866483256422104681046296244270103082437840218337016881985730679540069080982611502176031033727674601809596066189813779831510103733773877230522002970981592364270176897775553070408394342088720909176398108201736499153133128805227211161610079322528639108672000063178505672639325385337859875119411247616423934049782345846675044119043379369112914277074301686028729789344605729019667018025465018956625244872900838710173670841787812014836245177470298723984101776036431646788552029604274852973259740525219475482647382598688821854899733702567537568643061372618152658652404694588049574669307582835673693988245265069276262925671225290707090117578729522406003507588893685918894902099224752866681838684333829723733689095328701641415010268034114854830406436913858458341692711537400677237340236309629414629270358436838693964405115637055127557534685876671027038393012320596134223658908092128720743333968510006575606948026029067235026974670479038783556806093059566143633135160895108614444645544214669631902898490356959416527778529905723774046013040780782585637792257688619564373752762103137794938965209369720408258882230372045007903066843353677011722318689283030937314252316949854519596376716285575546361816756667727212203776710804656999510774409156576201110036607605880353237515216966829807247082620636493803961191311854300786847604913596476688070336081989996352250552936715526791156369881428666452027512653964479223039747228175359589801066968836162509580432957317743963042017136918849115170687016689061676297893848911073490021809696026891374921637753053019075786838218612096581644053753809453416590806761011408648681807370123126660373128179239353309436746129121645749912113051568037653340149828375709433900516882286104906384940166591694763482395392381772722655387594319270373603155361096364774428636491433001978113052720085319385789183235749915599295289694129546663421892139341382723573348303200881212477053629343506674432253311909168914827040667171673205685853679492619964934636162296510215311941072009960736454563197362469327017946946925994697026536769165031034217983984711917825271382688275110259051462164413704107015743400979021323004537678988130528374149775480102028740146851417160887050552113534293344828299358547042827300276250277692256341931530154752629243645840215358233724827655545364493053744721925698692399405268498851850966418423018145191022808734462586832998133394072913578472574120100851917666471463761340921087832991496375194354770481072139893555201713723902218231744435108465540662432310081664060697657131078575192362421187075839198764781398415503502593518826771218838100596881500544400733331014351547458226160880843962993698178227871143044957935838317181255920348560230044673930220294241578554921869378609793123724501368464618579570084608642328342734445611483630953717710368052611392571692144039433434222662808362692431055532403863414688911115129612782539495948068672200369353489648152923952914351957599032366305446078053144071311780242851861633186553110211499091096153558209621240545948163171976321050863033580189947529556462950106888027623732080949944685315049812364320272009149975479727122848865076225594021538058190836170289698024780918443680236690131309435233064105451937230642231216039956826594215456483967213948124713879411914034189569680518137534412476941859330863043228820479006259487121296195176469157821564587633426443450584739579646915802740647572962479349808512007573894079997992538179251453578427583822555323539777141111413285006755253369024841541826166311687107282621052762198819527160281301766708188625765325426459917726101108765182039251897173071332101502318496350386064128503037896826496027040071599037569307326690371995629971154587512831633684025415484337757565716518052937081183942789954246407099028396429784696930904147590951722844581373959080025863563842767959173706005999234497555481139007508367022827024073418549263479640004105872996188951357162343213625830863136252031161309193379007534086497910222301339989870963353596126117134345382693648172902006203582116414671367232881174533227828683912765727403058270779666077901952777770859303395200361907378159225737662594431978013433636153204993152394599693720558898302762823901713029100654178271403967128706801979398751418645015862617165884543780424034432363743172154102880576849477212824849633646841294930412411072563370061057437239634738082058209260782371295500064901307006408020347045905743210050557698172877403836283375788305566262573110565646930461612707610856096010883034552381640666841261595397851522767342336693907204914478022994524346111039261957304534204298572784897658377625440350508407996577782397962562306932747740424676230960863571153836569114849392032219865485675535605583696100214449341540546491474614339994832656754340867266721553051072863258267775476926507150084724424091416389497624202542179675732605909961598720506058252609535671414638299289142879810565423966351745770032154509560198139590506877409432106121933083935053150159277453603663187741038530437746861333489855874992565895588230249259603314810995680596004693107516427482406879768559978518413965816690752390081610977858484947786981707486353985147325303616736134911130895023103423689776398828419141030295554919282135104504851466787638541876584387549510035679584277425897387155455132817760804122794053745153212326084435615963678007805690620315181659827276999185744219964410489648903318805849157508289699629688519044187085906762856065132980936804259958096726998539446469168915513906022837648898697263257779668395284083228523955695333535200841584052137906149140207065877195485159673400327533658536984082704718428739194598903890443252973221550861438190401508611183080594696105656548443871268130463819414410535341264478806972970665571871519535100078076734027854552918248336187059808528508352213535850298213388109630381621611229869456039715789438187633573793835263634675008159282704248927604960331817715288562679108095018728585324437087568739349345538312575865268094595152510794721611916903994376672294865869404815355066504281026244866631706821286671337027035465157015129718372027477110388840996399891586080340352129685232906675160858269123071050296014627087100522641277114637839377366324415689687024233092593983922976952053146905893394606702542294793483320043799554404324775617352558904044330004365938424339410046323250531823619382787639769006264161201052405921151615674244069467076174608665455719007837931857328378277246692744410673235100913698557282415902712702542522856003611689831236182759078460517456551882952762025270662624909593342753665728196126967133301256944177819231950020094205567965097031297724840493640345400344682621962648817937109707204462387954111145609425206578316721735306453472762318850438277697992879887774879089397528065343472023831024477080869222839203153215631635507385782875161234330606505166815996669334336089559719045193872543574926938199792268271652018959137937151277264330466421836569846668078548460736467347620117381058274429905852705454755601554496025140178524060585379150043853165206417192122646736096076316890838456093274040626915530242998934220993380594824110103214754633204922554656043449933411603818002584256580033336647009253980752347728956925318452472472220746697608517148372198871091862873414586013039587257279875170191271032214488771671343643230071482299677580667073841724505481247123325798528591159557378003799703562113129979392270778540088671153055908462307379630531782357084120898283873317001746251366495646929756535165192643165962376763456160806017643698909952498633754603623025572672919568808786981341463442079847845016439293946503298759924715995415813451039975461940945259216907493328018169430605541467121263158118536392051986086346821682283784417339687580734405954818738646560965762345184239749436785313670325118081147370255409140591181681261456460493709842773430944842066628994190881596858113718728598323635053435690021464577407903610897901776051603755084277106651532267286911225763500612597171219993326127450500193431187516291926342519319171581630731895012951305272135261624365562799418604041996300342251804173220001992568873737302186578379642603439015380041674795579802372689741092764519673728776348530338379211788764486796002160147846532822765766394718398750521709450366792293966942327311622504532817436466827386276908050865446732219962817562934169706302084053500557022632824566536064087693098739926247085576002969348957202029886840936031956097647998334883598318080036051748769085177510118876688335741209582410008830939352737189258532895898876442886837306249963846170084152786308726953405825408585624701167982237278091311813140707100250903398368641362142761968585075331768216809441147587055051992859588925212032780854233114883003764240523040210908005682661205879687530094298801225791276079132289743773121867358404204348932376635794724910996303679855964130139437725269718218774783527595869563810365248635317807534257150354867570694932257662894172245081474681512780764452367161517845415023896463507018432107318570670629949639832389646714813789787373055196293283523821377632086331879650900215658486802284604295244037125765140350938689681814181965811768152888278124565110533203464199172970739813629595909531773459666703587167761987428352875497136376661111325120046220786680851565578307816777469780970450060278083338155517720474487779025313570662993226824279790563239828624751292020409936319344266176581879567199921053120712257192043192940869680338021238340969474065666684747940023841699703801232148413855678836882196074328825592245062565970546356338778354482388831883535675991278708549069790991824898676943395015213945786964053524252223085840930721181143323457742153623414174788580956975456630937048814236921073090018436655581723355530136724358500322588785214018042815752019105638175257743927516861024053471940938927254157986562488781471744914938017121915540911684986164435339048318158872609959088689622763753803384167303740963216250064499345994066357439034094178586640721553603283379611081675173607731269980822052888955343764043834577110528928086336598746793110723815033396583802505586254546058972099250283434935546684802501232495095652692086944463330417349947315985036920134274275857748485942902631925236912073509746287049175509233949935735091203573048643954871091830879788199389388127883582265178392988835456319696303059974373409781510978468470556210446945331267146482399222171301669674549679941037392732658176539373051650958382619790745273712462627986864442871568836384664950594058351586111728986308233494122900415821255791781376900483328716910851148710733161428432613381230080708287806341197709740298898986432595897178262393093258593679460714114799764138595847344985533894766687839494739066431756092535892245328530544977756596874777172475487278318636062273288971174750022626753831312965045892290429139538668871002541144700073249676640418428922038658773881972118911214022893014525910213941510785385038500276366153995223443602670746625220844556371043929949705428335272750413974557971230678567625912543984270703052832087732219234516425972770289157734881583805653376560771079831132425352512882846806629310563985667056087752568181940468752658281277439264058083173532772947240258215818765003516031938934530719094506236375868732415553459236018794534747913515186360359950445951263336171184118173474188010639207743834686597786712215021929665893407194228962507456019568533408991008639439801375764993475766951313411944479697477666543991306669476361666018395555645170572343201266456959635418116535551593909898779524491777537792139592501806441763055895615873533415610365777487222004353749539377404933509547777782002336050288148563655743716151265369147956997020868876606924492890837720896720715259001756562074056063006331945038366715527645986944260348836068575053616437337324023639774082290395541676520787485519511209952372546214690597510088697386860415074817496805780586693948583345651847644636594993735972776267390691837460526626098456865966560666906292533043323700176477143353742267358572632394274704980102713168069063301530009260572822799614830795512006363054629170260548577989274649471410033334728273224056709309964018877494077282898962112172381766180720489436167754607603588663495157333597578111244550087135981499675835002491730040984076244227105779968303732295782784293670765277117206140030099708963538762080559380552864854278775271701856340564469077613747268068985250367358292242429944063304251953748924377589357375395059521036969141144855464232093148726740788304392496841612530039415039750566547962194862744277819190823116929215274000216697117742189593086227171804504610178370321399819993339736689102257932762012466783410693981834998875195059839844046960273972561001483709391018106826326410421934033091079888028758699848395805336120719998010458361793412817813000193388321901537744714080454379760616103464487865669832634473213563341309040481870068588317146028241451906792383218170983489012733700411066719365904965597334611490747360067361156075729344856786250236952493040154728839699482765637717787749934030610742480489239315662128168667127810375595467600271328745584226065578734523433253008090332112231332162066275693198780784603627359561417679700495763640816405897571919910537388687297908629649151653825350541836931721628243947566686019298070810324985681308342523691282046468180334436487890910045841127611582454996284744873241202381163030308274279670860682856328719986906769871871755611683072086421641749530507966928989533016369244847060082978904545838644281310385244541068258506901150547928175813475572230200865825896444957620406150592867411969329428186222766610502110143756684824662264069004059557435619110524013623957197412408475401035517928566839637671585031004408562584705791483563360357160235396492763269998644100893232496758572669655849122442940067633407497567079474257330595445724213758159466797291534157698810682262730844400514609937397706075403259494354883156917302365573597845842752920238949093916098343121021350593794341675909266285668960322182995381346298930921081877938081983880049542362354388106982522505875862414676039399322292744858904739039042342025928283402617904610019090988566820543630970452206883664274926283719384182993379310119359883177793957918985409826226776085494832723878628698466479731497809595696365340692537726822759733145353921213800348660722643004973118377004015662007909739822860009898869217927256082367728287242267500601002185738101504356089281543651078682909763544619716045881663865564838332387828414323036716622995805201333118670259632768720812281190595443977794715327865186942589803515562728148367694086084814334509895893548720374738362539768849857901184296156593101107332118182037446241736126258259030750353717963208664946910748059926426010501629629191667423663394386317703930080386512926773259883188046125027203815376070049702367449948975724947852647672493491763710380055803933290364857612826939269725561442531140392743663197065551647140656627382497051562328564779187901573972211971959161040923057613481835917869268510769175169360006016136394975797939394800397205836305154335599222519987583056469098409121902036074104741061934200731020282129145329421592838686614208409848227958323600229054586585987829470906073733613247637006933110624734298039359592938286444393169084523750016337339648154597179789532047891827098759663560453745931862293992637913903666403429941642219819965028916893563092095070976102067501476541380239610641722221558831311154441902894422751251356961900029699351386862154793536619260022709954917750133556095645542874961107751834066122303679005535779819468669155269303408431354967978998113605013220462151102819849136161514153873088430133620838314518460808020835902047244887735244434475323741083400344172272167175377581437974900915501493686358279409814317277616569458198098630701863093377440713253806995369758131486472061684776093115283061699846090523224028812401316172265617690440114478902864810275326714558490455214429693615088358580641143219886708288261415234862317017443695832274576577072855816478084851375753049111897553300392778750443220413648446194602229739315995747917572634455717630464160110984143955087961061999892526735726464819113232066957453789224492203427120757740608128334775302801767651407999596986854284857408292460484364342949864509068458176438386449436706282568944765829074797721165596850756328493452138814249754425138936101817996960651212534606344867733569608802407482047352043793409615449589938618497318132724833340654796474436442985404660137211549538033309881269069220857731174337496209139933839142043361851762138767937815907760261415725108720445400900017367063196497342506465198537425684477429075988342442035135988624925055195938956291995279894073281494839319641624615320799401195134712770610205235103903581786893774325409311883526526653895248308545741851989130627212291388198185460324325372858908782360927362466570579004989527956844882624014026771080890074320200170211562028626444316602792029119011286490618505323992564505088817365710516314420233662809576403523816757323490500985008615307269849511458000425109075479370203776332454820899161751311074877543932010232784292970265597288581933469262708639946414084804243728832123364284159518902147214780857838213655867650650312586129458742959001479921791748340755556781559929745422802581114176068698081417716879893916102035135545423963376575259219042383714513756890866355916268573473089869743259071678385568431241879572159761944751161306800157319644761528196646542897841653387386496093836415262592549963993055495203520558168731472625482983250319302550213377927986401091004934829670796828311416490837104631104510030839378682032751499857666071269372466498117031888121793667363079469839434156579215701854693814109933887999465160038978810524612628057803050777732783044571296892691877322489571578835620867141778869550618080291962335475720232627912157883227946825769066194931745361166121571594469810236072007081900464655659804063420661454242758056759090982348677725189860120702413679482975928047249321687633286368043014190716311551704810261671185946930386063183326960496666058298102344767816700726277231663689413224264461757036000253264794856545557524922106918587546321470486258502863036745322935890208337682760487113344162684909160180428172388192003737835395361665708152523184389491019162192447612949268078299705937113947752827757223997234389775276885197883324010160092019140734683642748229586510562335135447614930055347311349070818610210668903116500678372863041797729872926697604980279816099725902962590756303406128230627055572528738674272590719363925334867901255021786608965752916366708579534452493537560457217087410012762088297098729222090490432005968519131164163351776417336066977893983398253959139078677461714266524568465563990626514034137516120321829651067796906847284457696084015223941490554359499699354585523669057335843939910207935827099455469473309897097579417391574279636393454222463076121662805497390997064807253946096656655409571578173714108601731729565129911428696441654157443117681003614144728299221474589672665725466628218640003046662371110917068630012876610290401878654504679631532404270750496896172892761670499471315878986997044013927135023556669036126353181071166766558061182558962738158222788007352970962781773133842111645593883075545891811714643886142039822903943248995038287585297157469432090885587069880003594610925924856024617223870129946027259600203490062773307703304925394522402875024600892925542025173146663804040746453624556654586209665414666924800328094351945673347685009955532039981191209110498441913795233974728130695356267980579618906404905897831123405854327078825030473645362338283060819428735018501023794521494186939899613278835041166772250725582474698651523783183891690126278741718833690085124985339012845739717024238723927614159789178838412866610749701587002586632046615378533554291721774712401137611796216098958380936175020945052290430462199503506959506236720230235762783939952717449690343859643378407109670506316335547648336048889801720323242827139183048312535439831407865694865940694336881620464227113083222018699209000087024112815202198997879561786512051398921440398894310612543005675206158188513370849336144174455638556925057252376558170312343003336706195090544021063520897617189277915886497544072719714172053550204432207441856223646914121659278906443689138589024983082967844025512386787856366317432905381736830529085048845224524554229433725033255370778129189592475292617747418189851282729365160739401895045236220866688662989676400451541604662324970868304020255849124308884209584385586439393308147262843050916277132809030573994422482499854716659048563006169935926686211629200468564617168395544830205383826628533941534039381753992029276674970422589667207395315034565562576417826047153409388314602113080413367993815502271167565131913698398085531586994360339649388989357623504692449028518391391168218310826140104355379147556175890684613392385280837154747289846485402309468871594188542095460388440216439077018323691731052702439097832767597146164145912564116181521815818007082814167826376125472259598039915548514763711109801372585467086805353433363633763671133402654287420494533508702063019254338958486035670834627763686655579261971480667163961662205103688101098447351600017519651213781164334471303076772957377421708950696739569971035537136751037014935650338437448532616133213714039938126183073793982546956801062826967375141805520864040984302589227968437787605786879911915062435291582569473112548830431040595944872850443795650460735491828234488395667340400168305151559719684890305362051454518483443095461685317593474372107111057512105584786999459894381216789621010514891483823300623995572941784121063898077202633970809681730330740191156975532450646226886646012618352275292560548745857145609672656381939181268462016620264720772956964080734491874965914167395029213351827974395452159376123174811862092107949768886962894926553667119014895508163784715839924365303551457169269031259918888483262281485567256899249370492035090668946162609950994569850145543017375194840173702526022050347409816710582068583300576151864573404336513525267763795677479132600995828597772867715681557183504184774780715451006551817194134323175393960163850983960111375989395400442160224537599623821266828010793256566249709485008110664671779662348501519017815668491435015813689875726663841777097466882384696127287945850316077108404603773013605261382368545362052911700699246957441937989825592863796502768947122491463708619634289187539278490654677084338082613420906144088401412913036548155393211076893524402506003057212967262526278958016332401623579979373538906696848550757968415077160849548924543323386393025194907105141704105748344562088515894727132056552800293131831226786207004141488726654888876031345111290268010273200585189532966948598788621483836871417987885463706149705869831498000440119668020665429952645831655734691924325091047348680500667195097646232406421641690862535933724851136405433267375940079916939956642167491727054450857929075933273025103862386427152616231673903745235762091999161629322262362120361097461130646810880930078875767226363324142722445940464615436857406441972179984900705967789171476309864944342940960659369730381762592430975375174850590622255326200751999845724443569411599086330469509589654063905411242984627367908340674000147622762805001357376518886141436577038330936425892769508759343224247159469286671768930733173231241850981145093832439007631427401221456094166155725129686375182750992841221917312440380385677050543483415289416258558328019462890987424166773675566993521689871293347947222096177845184786543342416643359383093538099740067670649400971044666925309458802289572169078651147206257263243416282680595367246828510016387662441375791674190078929388094292093061559595696683080940085671671757241154396206864225343409577282077920735913967989635243714662423388155649753147647206132091303720905398859875282006812038748780763920695663324470363030242819295057970858063461122356163868892215403889280193730217276866887730079938324919339925207287144657539986523733838448149699190939041676490118375853402907908893647185060008341590282018182948614774330616597895635737495677780702716918408757744815962049000142031891150188116868670712909689735139244558396401283952464288130201449104711027950550720364771503871684006348653484220266026835384910694440761559126877964200413931451429063715904496755889631718583275570287951716511878120539498328898688278771593927717030618934848006897940529158176953434536904950164507452977865982777510402160478085923403122013699665686750931281763583752686533429316544692467851717575220219666996501363507525784681549922300100694859083836805458617947856976292750315831042093304117841646008443326761918394179850992566033811938668867635094401773400232588377232155863299219384214459742848925971882523787222527811945292964918663606559069365592332984475588354726767817229680121106912475559706286293971974391425912308412399337958054397077838782540768269806602595433766885030847438757919506750214064257325183875435112501932588711146144421431496397415468040579182287942322058186738407174750834964225818455354093620752577859226714648564914901108343550401421093485801957075491753153663383497758539807369405508334755829843569615662652420910000338631672416039246834293109357064847804958605389156932657984509156872941501195397474699234878746776443756141038530700753151009631860445815860520019847034138854385968960434592691790783385151734299572072962170920811519413307839337402821541851026389562310842320377441378996547810341656860798019836525982137473014077625702115397265197916927870625015629225821856587702419074032026332670815845893406310162030872328704773726391875761679628467778021452070490284207378554602984927250896747723951546034123865693968646441127279593631246035567282672349850630015618327227533156533330842014681808898083512752313923552129033690447643877661940208646677630203504931615195533349405302749998072721598184770656781045701027597510403673260200197042454367491991216597353779283498536561698059736328735783478068225006024616308284852215476037942374552969063678423409723922640174590207937407607175465564817931838475193648498165608536612504949649159066330386441130471033779186060780151089921962994068385261370499907983395159328895214117640572972558904027584818475271538778316335291964121126007058444932403904902608197729968307207170020594294916432288534671375934276511151479315786008902514213041485212927709980102938451622433633045312231353732607394296380801794290124062574386344396105829429547906499786811832029625804545019002732161032876671838492029856691521063260198125780895501137010147955207652959664020495477850175314267280943882953948319998728506262389961978604640888117963512425583978821486533658641150726160014160562976740972878233528415806861277947555549747853498879404706835392292347670610174377749978776386975060885126638416740444318306314879169393649997662590089126670682068057212723569018023271718362060820364277368895432732477928452915026924039679905461166226140881357089874234751906071897490379719430049803544658751573289639246859061649499581981750532351356803147266987903554988801786549895665842039861949545546665642395363443235385645459107610947176307113293540510209389644733947606875310225751069621754797842885402458706162630993390533151899365682748756570568286087608899924955790708115933791548104529786924848116737739443001814088097977263676328751987692966014533471344665043112892740328736339760608075904580673040161019365724035637215512987338917911953061188773165359080320897350091209900659983742123316263302463483069462002860597635989187345391851764726223897399464088147352988130039082406989023238988299771025670666052437364058190039325353657462362856389863714339480544964967552071067299625437047424246540865014627309834480692159361790295324350108468951147741721545251843358918705785609391089811683955153316634666167574560543436113163815904881426137249195556235178383271107866249188655981793472772237924782131695713032701159901024314594319901795076586707108068457251364446850841218595672014740322772456894792954615215215633329637857832610653148313603358760401443450290130938728426142741043016007528079238913444233424060523126722127669132636752928411159216986379186012531417585204366823046338470366690815465709857849278246113321310379807186036858672049479930168226103416926914189895651104484141834431062999359969509914684618067785595754872426670597030690502273574972828096994530234534499076746572808252060173302567725687533776985452599721013422496973843028009673542993640614784312747732799925005747913761732870942908001278677417740168900733117923505980484514867928329733527728381233717895041736192711132290439530345715575317436154313564827544517710674130382252591938804244554600360352510908080185163399300827321997916764397533571176152014336686082671559111631197243191932931849667660145994241856542717096405816546376750322114040941516634009107703995737305946833565922631107004644584560044284180215627834477125259986533784890997640714816976935498323720205294312897439991046458960246051343801301204043404462083578623611177269513631498506424632617546667138468140632846400484036935672066774164188941875703066712976663852944319863367005924644798437251052011364424253712088499861004899952904329031661003888297507221545672984546571092627658803595296060070865903097135427448283266619736880928679935209216393435799819602828374710879083576781971474562995470981579706058600578315455376595298100515311027624637910739895530905238114345598582507361011002261880919407622640711894980970343279137311395111245356474334615809063691766219304429037720049557574810675692070539277006766811309622884883260557190943657930279428293147446351450866800002953747784238805664544987953956839023830686455923500228507418809543314164461939800144266911580172679707655743093063515235292161038239487158938043675732198444120705162960098933424401423293943373401348826434351011553586384008151179150395443447776531965131954431473199367080026745160819009936719612484018535934196341519460412105125268580266081190244154955017549223514806224892223405457432633178634535022621026288982648001463267861828857479386222674875863451029538711487520851470918671525048398333167713962108396216873381150754674342601518083177508612701371669151299105033355771134757060305470622800448893721053746581351084828700074540502386339587910847032250126059534391818232636822671340814002725133593338476799900387021180943975095729631943591172107599220221542110458969012772445100957865603673715026620752344342524139597897286058349293559152134245741270215737294440434382612955186299166835299451795162283334834684002868623836507922667805988691456978068961330641852516065375894941198947509598873412665854207256831962764917023204016791711915263829105296103687350239695320562973276745862918398791194564213380016731930480587967031603069696077245312017642696546403554328650574845858059749061450381808389784753828398527233676554359287374665948675206202794550028201009584878595645176059767570055409848494055823526837283413075106875572125918363505023892852922858406226726467001321183305564530491203619224017941722169734800712560466029289090250554528524947128773303791865844152933502980485175866482488092291982758345217113014655305111070269660411762677788646566159974539463664507212256392876773954842798845204307991047841563520490400734343167158785614217466230539329234804917909189452312431690945138358963765443615861325282093845527416924466051915231958001339965360340130449908265698563006891747790436328653408155528481402587455224168262045219223876988558996674532043314503580675069887411027441760080727945823428337884763490476234758530009618295528933082676726400024835462879815731317381486553398444505182975288405107299607934377484521463274122880379896920203965110399049679486124436686055230475413792450042293557058119166563633744262243390849011435113376326713621662242382197924359590914396805571139776145134583350481423882361993302237710199079271750366911956124453266461100860196246259327777775261113348133631430662191044826927866061311191771854149892308362856885217983349408625766763471921010540409064809348934766053068087494172354459096410778233213973351607522275121081124607794068254571563309232200184826014631251727886581538989883098899145892255711001404074252471190439049231812320397049294323086153390701232922115242331705822040476845082338609197535775696323479468884384322734194540589691520326195181890464019103746062449308076475291701136226412925758603038430160555398545924238496523681655618017836956222280844321642300246757991792493429973623800300693859312682547098904869216813719941879802016519023268322980187864259099629436487356052053702532219110376304938578434138160672043127173155647710346571556098085408538593419227648108948874409024364063557205490027372728503053884617136801483920068344979517677215282099839995779561852746588131271013685146436436427991846113054099594779977782780977887629817795702572922119828607534544975678822617023756017897286445179793440022191744301766590892760831772940319301762817967391546811121935047615966609601283529498512174650677543870727522462982867066663978158832648826977383173848900352323758930750945884067426350012530250873995447828147682870703516088181550205320636553827647933039174735964056615399717342881401570780720533658475107062187531013954398297635178470473994152962331351705143225174742549921153534182908770733483379588350261596868016770090813382346922321679456093652864747356603514478865304266768184625113056361230493906834041515649236577227652139773206745138389481144574754381656757829983691152402955053813574794317538984000850772154658733754632839590990964567114461672241692528166487240949794333684867160376807988725835435373820506398798411536141305217004659242841009426358635807657671929219309186327085357005175051049481544806617340294341225797670220999983952468113775400045609865435793734630789280065182773527506698282483466309985030522753064015848650569445869306097496161095984063397101444128171902931512411504885517305228235320035348129773004760071271951423361725497974778659769613456412498917081978336943790412077647928337882375242927733769887637361621341216782538457374046332497544098995229868104682511355836456062136217194390340914734748037351633108100709150735941897622470730837794211242846034874429908542399552011872302373365727424546627283204528498000481124446959444820229288746617919731841108271668139753715185757016810381472853454433201245878578887232350484038332625104426034517588854623874257589453058268159263457619983287244908138257723551238611535988043986581751391766397737744033314527799666532494760534518897603084943280342480472882693039147451759900984949751676754991481016768967066649815510696811175636476136288432690785475807805930126609035534235962045843549357516306954231797024397937141298287706833652524201530113604814519657236509487084691054751676057723179307384482588710774987215343731603094206737559608499537127047571157186358260528284003320412902017214704526340391310221786231391068855666280587054293835529381160900104569977165075702595510897996581798580588733786681032127349832954072275357045427148266236348935703960415762261697090897225629508925412773663175352166556782517291768444874396189039867304510388224488291281734049689520092355762718185938616232053619473552172478672218979436412995940273330284976460382424373974289124539472760817072821107359118781509302537103218497714425317759384766594563943681525039276271355440490433250861722961098003106683758998753339767950271136338965907484736281446361475028412504569756864780011469601624928881906927845815894332181067761129943070529607469778038833791501959160193183657316016773975503181108959195232506722665608825144936357492127227694274325121851053811040648235242418976934235831832626970670845240569400530800439614607662891804385042858125481922390931267743478690459196248540303161795392941850248621536526859233491839297696921890116619997178935908706338425140751580076522058762551761064886826271692489861862974625196120761203904918768020142448687222525785081859049063765260220661826072969805069707155554697564642427847014128357732258880029532621590730458807429660704357566834274860888365905274493320532303217631943165049551690081910294367876016266604121654459379578530269891651772645134137200477743243241350892742343874577131222854951718000876322091983835292207333044212365090816264487424939038519140376216158631122019178084774201957218577937729454332564166254063722426328246192423663200820071001678669925381050665742839217867440508008623552075578252077856323679555439326556913883807607500983580022426862801337287188053758159384364217051078234092097725334111478988453941292786575210995407663965018036440284141864375833440598587901970699932042102243514785417266245854146873777795251305524862241141555154140662078601036690786782835878354906611173468740822335439589081464029552261920313385821474605230625709679728434751056045160649894278551364326823666700349778904337809358472041065156501473842176970738470461458767219684281481878195819250750056531182833017030187032909049676675713971223354417667294371517122408853156766955770150678316285238017946548586713586959064915781450772404640222452286928539647936589075045266667831770539223174328443630045849080023079861118545097794064322021364309797384367213297868760520236348767338476160062879688739706727482497670147821787818766514321600031486116256613918108971340450804448958866308018566633019840183057427823359739962041533879063920559097778429737730335420534229042938497536161346376463685123628114154776814179793337412134431469352263731754236190749627448648800857556266087596362960656773175696310087112216841627356292085080654337257479614955669628644645942294156089693697068240104457806406313058983849067177864862076211765381183717453661535943495666767297005702126252060620779209536875339560139276636154727897380119396712405407274956797847443042335408518645544458293621808439631425503712839216304855694809193737196634045928826718215354068803542052691693532848648741284268972483753676598356251742498713664219851372892576099229228428241128950986733725915495607112081881550287481145195131200245967473219255240539542918443488889175297864113650501242124404101315691783506333413868895135048646688382897325995731286989819228956463180414560432495041004118062026082467592344304570042064973001421075245457258327866526913865709486796980913473929520861110149003861614582225229595109671407026369582302993633464856721460161303013644392924390771146168301646640221859401618582507557222333726535534130639284707531321134214230492891304950124213861980614527353113822118730064329466492058031679829171650018672247819530815226970392202184882925078597865343535517632926096039906266007437437991256980782232672927920827601536426483456947842010261819505223824947254260538875133069049295254917404476731780001445575627698933957099381771232043263931049512152588809901199410988307018949332814939291427704362893913597430414723747643337837608629905187135323263822674287044233028074193305537825343383356924371108521642951299176858273017645564164976908879502408266964299457009815350849637618903955553486322679494633200863825491670323835857251942406557357850846009491687017288452821807303169548907034196514354727292799556215016136937186886386508661495400396990282006541970065128475027169139372892274103338963958054247324979773958339806010138521700572348616223581925322943504082028698886936211579601188054404567966758744209321253859103394720059764432413775813545910225220890063399220065898425946261123840679789625883344021892898574400824951904972801930775140832886695433556697723604358052066126779238374698234568562747128978900826301721738576607684506579627364194996184699658002601106880846593790264908972333558997690676071524744514566776036240923611259953946012666930220205413321366736141275605969722622613058909483468158714281832260121100173694492007478512273667097582046317833862016035988793114175192152830203194870268592384486014720526613893888605599725202371656435465960779151140698428160086050486124391940258925606718962939299287258928576374481179894551627458987313819273766172379034133473206483132652322633161085823087164864292709376767336622947851837273787012845920514715854146917159518433258007898353084388578096665029675923376091967839967576816994060078840711443773012537493513605500328329051157374212032470678475731709186027265480848516106353701283631516067521718868119849860754788430325334756826027285248591662508889551659586303032252446521249390084021194582569435079027386062651536403234715510736749449457600990032380553526290030273321556384379337433381140492344327974584648266926123060057582466152216155505853113063618444554809782152363429537811130373773933013912183839347216186316251382717790047916847232524242833556666240049580154605126812730935172087016383557873269836562493822785722778218469696756089879884217945693972568053710843530250298644927002772981255718999714537819261323022852313623715632529370854484574054827972131543566325890207570139383180679894669129633041859013660803503319019005916102121852595080168584998100486892505602935897285451373954499962204162874992904925014871918409095192467468275223736022688122973471720243816864717115255146546602517093801557964822095040237791904921036242343958624687398250845109904057159133234033841504082411832727116238081552994262444854164685021736321587708208575780865513085505364802168976964713376933455640669200120584413713556836547374553968842223463539496139961516033679825067394919325191891268857445440275276064520138797096467195347883699591560680962094717286835305702141599154012413437378704021763512509281744477164793777419545702916259486490986407063569476020419413166250045421802426503334336875581105062086717208528041904220620757032919693295046488146632897083264882719082383986469496585288678314435697918836602617431070349391852756755515138514730111417196714687069013303883794668656056788921343420846451516234733374166829064872753883785245557719857045128183948753769163181973797495105272759235795632099269888823057284698165974554007083349019660923541065603122806127315987752124820013971525836232453021509071878797896338381911313909830936962086318486014651914099587600022715709839055430837171455602924054243401065797598016944667789277999263282769735201541997155368419740156477186912372272886488546100236030508637912836492202105382292259759058378205427363192796795889104164894796376099522072714116003703671982291679797034340392139688847804208118070535309532281706251484396412463900905198752984125083588332941004998381890868375188517872900711058755146545156417458942825485110779196933980727727979067002451313307476181285605200850062582141622168501076277808921236972278078583308684030604295182795584320444544573571418311706776384613970701480874307899482424808645137486855521442426006802705218619456744493990641600976238179925452758438159898826236253960086884356507423953352973150978549761166518441642999945184423549356360078506922339180921219747170303785399398006582322979439505970755763059704019506179670132492432014965550319815209490022927879937029859118113210386124691181060999960767575916200590340588037841310434198658522923431617833788942878170292261756325656112085362940972376270963083725018037918774909419973745960924430170127637642855670378451347256866720049849245521450225319780644808655156096562969819673080472039943195103426317118365302754591935146269538774666314087135681826293514439906312122663510603382081446424748323279953839783819215185778187863665266084493664213456776498920806650461385395341454195624737745013478388313231499813074746712752229317217140611772433560910250757209073354263508387024974397008592490373287034052566853551675415238297704675104582655410029159997196236507241993083816390693556537156292944615818672630255196698092110194961604522399435807185267987071162576702703414509470816700257278635065122873552984854902627560361957815092338177376640094509081287993513909313732487122974238335528621454127486266609480808081605249783504932662466854048431202891700435373354275223967410286171364220418145433483712781804387143082711819032612487614109174075392576677547003792226485670297872474582540970473283464053759314650471780074717652415644013326688176348298277680809071776325866918491298072175738559974866535627521699386313851911846097974459608940188240111365127890504286751932477113813623652159104375629482898267233769876718841098776195308856085033446453687922753823898220500586429800735074810089752946294950530608720432761952910025595411204419930284669971528120912155729441521871887106929727225268588033671668224479571076981524666567758289771670009809794359349317744075489418709186096937313011807589924138278497743365127137576732712899667898670417051087843783770412652220674890502986299465181830756654068995983864129463393781242555576614903867746945091742335869226033940412257114857907962649921653675442695078375116360950846830409773322179749799024406701723956904407560978413511397716983307275481223143919674532150659108482654746341786814779998477715754751789286178299126887476045915583395397768587859223863728176641298660673583071341464112262767613940342598584099408392531851358938239875292629046292982887492539658046678918212485756920428441559176786814601301579358106276629204019915756813315682645040408634383369221925699302543756928218679427944241066842499243888639338200405800702529220065142465067887815211269253134297516915626926604943478129875150122588571703880582459255857371698620380390258887752664433981984818811795838110379511942665451617835517908785936175119943628538570807470566133146661588175666087264422397811213605768305594435403366675583878598528301574003168785505297113816440569801347473319603228465300123260514067040062070857597669815995784988074707512651919766842943920943841217302069053907961917325098708205881218056927524216749986530758994051577399745272480138810356460157540239631579857002494825072985421665437145350172713624813504931352090115154406270145344520219967854085236747810115303456168955625399656293688038129908591540722434991338818519857817978253230530692485611165764270143867670354123354656263968509769500411449450761566860993058160574908482776900004712450551575966840009223538750526636749960567543761522392279760866362920303899087855812403831412190444358570800380099035510164575121613782220068276216338777202336706249425341825606632853374399885225020552445489503180464319705491256823711873214911346121861904802033898553187110755833495477461376402748103092613098072176395733299193489813702910747259300894492134932093727974678334704574137434661483934812904544122183627782478766710119211735595078101182062029781509786523497273745911104899172689296676337398354374165419695812161112564141918630965646624251697189631622235754968307832589477503156081495867052453835280647534821777454939333614146858121200852550921028560954632339065027120045224970468065270520709810689011897338531250040499111308185838711886840348553887862550904341886603163161336080577446436690941151008188592107631314342440904220796502713969358733534884732519771629798702573464000768782878897323958678520592428667842413645700304279981173134300387872947889199769608293908023550949608283026186107772940723753850898177564792960662710829209520456234017867905207337245702410298105634011000872816651398199705138999723971604999582682588978142745207746332456545122238076024532647950130266423224500518521156292578375603513465474334740669063088217038624899458575172146574474926986477115370246039457515382941887105087280181133701926317892734799792752984330767682544213055592601539070938584267185065297323297896777814521036305725026491271324029432564841334692575129047529720385480644714336863814388473453953336149931924936147592117267405718855327680115562360086031490197912204121259968780981952107595229538693391888573903445279247871988867604196084566868770231095038448783622668767712010902546019514023926419584835795842603962706608018301101488336646360509969163326015506813694823923369600921445295385229065563792443756585867684942516477758588378426462912952786728217882859928328218865165039632946888063889978809232397500304832688490324572608939968532735115101157465046301785673550623028610622415530620989315502511609503561021438267608977701359646708610578975692764337369798118962193241097525059966369558514771794333382773499203856090117950725966026790052433907672718955386698737473069883896467559057839527545942713171754251652951822327599257543133349498181274577651659134021146804796950053208800817617600864574845771732496721371342415976548218412715972147867589760591831119178200382553172154079765847097927138824807596114729490788657957144868359910434761919064103909625231776306218752585673166870918207645924296655669808454475805850379381723187110323347485336369963065284736327442255134668178753753002868227672097368252415690632312793272624719915228946576351531844865629066734935150164259340477353953530782792297293088963451596611241504567555062256007869413758837519701924606750409972444196894276426398516914434466593205231769067148071995263536954074471206340925554695021923901369818425767480252582332609682401629771879076512738017331028590730652534062217106713142220249555883799045468506287821550594873546463148937565628282149998501628389531382538988531706097823763961969617984816938241973142308080979391722537916271227353122266853973584052003042192687291828036603345158818614624992362577125441614684330384457659892911662311208238498781541678921074345733297279399361389772494178201935354989581782253329877045581532574638714616122831138743184912174527600162611106034219647071646921130891600653930818440019635471226847630779215268564135903700920820171402940176537295472793811199582673523376987959475698473566469336775486393746485900098480359927188122182945477602233608253831669074201939278663110202731649914788542039134909202035009666994732093248646498797630359140563197673404274522357980100273685459108302373304637943446887884198438786853603200933166419686175869917399132671992738328607819014123154289928428071651339874158934397080675715443278483960919445645753157387027921838630423413093666004742952246130974138443533104893516112224876561159181374805456791832146874058507722595570960428808450915919710995744683352725535742954848395875828989835417490425424078567828209289765148761796626651100151768069908852504190431485564125468331311798887076697180235902237347307111177683958091272794347480965161993180391444904410713250553555188487052546946399140597200736152688680331930727155515560440086992554006396654413254057188245970548346985652552442404425717584460436361071861724135303705597861908396873559190051490571002018436452667039085139792146165161392876524869149863986583330624365089298483941928065033066247094941262045463398139421622800520580677370369953547315307583009648535239247280249921905626066348570563644895364361194834157525515560695069329024428220739693907636755932240985476191034136688718818982880725555797624966682597833005412755410271557910046075717432626524311534396176736232088239180015339199055194297437324178792349811086438964187831222700133294127002698452334167992516963295770041411207750071954376035965671333457984805988587957862353407286825296195639554348421751957034647300834905943871642207036029273996574464089688990259086102027464435640568372835373263042816538397824580425254798243303849372853668567179181195434963718764447285993664164725991915266334910649225823892881544281353584210440570516841584525330194617565174701654608765270650817417310833100467727861329235615616255785645056010082272285177051893330003654336940999067318405567413176430440303591246518515911713522827410660647437672650800571536708583458809218249753199470524862270898061702150839326571680695969583727998584876040923963192855939640067256943111126424111428614968276196546698196792580363427207615101745996272391647416188680497221331500811240317001942025069106740012076239718675979600049582299145035544294552334419960060241371966757682879572125629034411936398653567860499213949660586889782361398929041325967729000349990508498990957293743468862586468020090354715026391477246679630209731691926355300616618051977828066548315993200972305326959716949423635505152459503199640745566002768927547823531069562875523000766837969550569420125588660707163671115906636422211377228828514075335779886900871964964336471291822502048658974389135437203844369234449964733489287717821730103939587847142333264918182683329287885045225559755675932663051676411165345137041411981276460833068835524993906145379613312821242043511266127740391635893498454546216827150906249665023626269373292278175639974087099855010440124805712919228191103822261523374616031357378398761127215427702376501009080502095176052995627228352938133532023432789338693916413487891870734171453066316262929998659515608345306250873439269274850784000904199874127006511087142118095780878957088336829291548421563136943828599978094552241076266357771412404020102376224223698759612452704241065216340717770381583837841664705633344434666033470797008496290376518907022977168245777715075295873910860194763932512290615173221584924970741167547306444021665056605889708272284578521533862455463252549206623846942332846535999000304694305563554224440701428230663202555571055497791213556440162826001632200633260306288821411882259130124533361709697487515735251742526769719507025959231892691317995827296641376245718733686231065803359090772487889166323373758703836349534270670350341202201915099709892020323437325840104298341931025578132466588663511783453721004706749676704511542631984458034795575745555340603456082288057892075743222413049892961269414569361770839595355913716561896784912790907829883822547383929885960708243110228318861295247056397409930364483181716109440680135121342709731833014713508769676930259611191531222604304030444804360699623891835126334575967866723509746746247360586080809430464700184913648037730161985377265892692540507562352565480782949071623362946935881179618083302257133055949004306655708418894600407333184891300866921900327666570711449454726012477574505594320179745259348485320460006244406207741645481788306815083271250555153697473753536270335445868945446333456583441561399471177595419666458488463433353700299626199401256047319062128408754252938839354221300354525979977416701721118694646228951630396202684699012646652554888715311259774434857415492839191441549841281015110541939414180464357742957875274659481901323035454717346762348053518975102020353470052282874975204976628771269249015058347575010414985122198590982839259764512384884562741669214342230942287834677550328926354090232384039081235901668134598254387566463986544093509313616434566022784570611856055298508076335500918457499588898803562956819838601916279122405743721044720045523373435729172212396045043883729537691622000565793979816973679960457650736350593173720991230001122936253017847446061119811537824421481953690715221661084561937929591934609336945839222136793944995879690857554916427099875435931950502596733907493097760697041422253057417385247679916234041446060142845800620000041570192351416168292020308549691585548658313413289534406281406693186684575052103025585097006799486067905189868625094935607299860728160357334366889380090411582045964068769621132033332322261699077416200228655000257844522243829859752238032287078286245235864304792115934749610532087422718794134237609370456796315705673499757378886152291990746769174112614001384370453333820008638379741682901961392554013337048206733296276113361824813516240364179272987060783204280844258976167330389009274293333169625460768983469046998425582072301847835044784290297398289730239335850425492215769406245035177704639642261097134116993192733316786673810662855405710467342471916241748045297552488071711174951132376614750063596877002441062392390490566524782044905377289088464714047912382325054285901109201094803939770580213930997088991423317735187334353449024787776947810335391797338229647379062627686331004705147987456518498893610672632601934113190479456232056948651480444275230308250698538413980614958898825643363067766631002224986146117902189159399121653368147040963486620361934632599904571918941630381173104965596554822497752270667029637027137013651262247748412602622710225168269630049520621037543568079859961371282914741397408842468295762576659786795240907318852980385683683666012394040809671913604645668278421858673810749382782355402893913477824219609938890665701715696523632733799781236177223914874306635004141238875522685483707584410583551755675864031839725052507020771795211137663188941266847066896922846279271860795094253309440486147367902924214943024985108107631350981193413071352081341296108881195994715731378870196800944874194985654796653305852170755126549622731636148974651310363667437276151901258142482368188961506759670134850321304495547692607540286609050703531980872786289031401638788093471166384371053304362175655173697777542724818197196578106086566299130466992767018503591344492110286397945279240695823018210531854395477375252968632861584190751188843587755269529352491165423172876334020657989499566724186696992962558064400553179475346569928847423576732778969995605607642633396148001468895932752238608662580647515839228386452655632357892540946631595794598079840970728094356290297576314160985836207073470236776191049631072953858645165859195405331239881461961523200658411745648195360007784389674810330812396751643993161602743584230270640211391222410091185148109833860035577187584877841404724084732912924214657741997877878071299537189862586773747655155117923061971409233811140050368983783032926475601180522308218720366158499683027540795706620888828987899919534245911161254827402727359190087211230992508424965988289767549177735866861879362551075758821381414298789561680008812300994809280919738448391230890680332337635180929901259689696874222462679348685731268023715547601675914973155739898422954169791967384468801134597187990541325978997520328088775971524188634671065121390936706551647262248973844358883909576754273957304272002092563193392988423718839789177679116134703246421766846734215775211799303019999570939206732402748603921871287037955416151900774059166161635389721871523418908550743590085262053553887745167831081309098203135678425319821657779837181500173721112841203922718879990710316635614506245935925403539257351769369281393772665585797773960185799863129142356446037027736737716751871875563924899718177871402654141345870188686843819002831387192945694997758769741667750969225121995339765601152950836185707509262728014354654235961053311732921768507150207113412174980475585337402749454656322909862218783046163324138050441180199316677946289897679648128560042146538466098541894814895963515603575651113588577571157708375476277540999232143085496256453188005473017829400933620918220955627133257020110998548746788373374160448582952811571559975797254200549168817309721021227339950309011793688024568543054936559085077431003737125382256040306305632686228547518143333097632508269677397074478926739417337723005034437932775102821627404844422385369646861936420822915204483171282791443660489173577517381593526341527134955308770858830513808171660675690414958575090522658108725242429040525038307264900493949003833971579756896460392354556016241743324203225730246818508775517913935969942932753590293670579779006235234779224247511270382209718035328136238704526143443547957520452778548403870881642503805862167454693276965371003165680821860132506533668722447762186425556170759296499071628658398741491376093387059255421809217315204329203919740951763381525466054682079730649235973557542122914272781079382995386149618391448939334704392200930254245232117893430748554477203693406891407797511611937701860559451500598293826891900768592110791087927282646225138690336652469784962344921571757434239276036707990698944821929136454347836728839383959203250401098014453527432146786833375142213493624604194003560661131932222524384803134481182946576495924279401221437025881467003248809113572202083795146627913164880586878999260409140786426020350796730627349574390762969364015868265583368936437066223182303410701321299995841352050484185069881744767020023088127888091629231180700692251118860115339252343514863285067829988797276726133185599643383803069690694868834600586995079686834153069941226404561447363527373430128646840704190859385829034408143630824031572940886808682602880643509141029107805115924884811888238430180165710948285906821805581513304755625555973404030698474389577483948825335561670629298745297357068059425793510467082469468137071874677184724024783350301897163382146604667504049347299871508638019566118848944361085752822515944064470133834737993835626842986273872306382657104920392512116705607356563313877332218733106390242426858441491360315826525857556849951817279480463596105699213817065926390424665225413389725254005354102217399688713400063986944078917790476358748587973987491847281195729009590978433924569624006238714309096669932774989559080730641765622237669444367946728858574325712534728631807070704595648285352677533422618925457941035793537228390055855302654102966056760835719250592561329851090512723336881206791654248062550838987869279634434055435970089174402594280489032553365198903461463884559104235239323246337343371671040131017866955865408139408692005556750210269891825549936242854338786359315189164570192001787872983543833265923292905112379583795851537765403323926341542144467768262746469801196016535295848892722720978924901119294927071109168401117798373970947714702190761002850708859658332579533001574254455293208821524781737219787234712594672681990899064124085814593488214688887840698886152476710049084377656976733974246993054996034248629701336205598750773882716319507998083511702069318866236616000487875991233476755711564835377425404804745359429382291044007665056771066962255856141123137144801618283344545924097069633719947987751136503249892346707590333943235312099396929185078602034373467597720454936228645851577748323324348681854743955890118926481127955786288758108978723830174348902034453224409402767383308363480467971288095369274312984057432722524035606134774103742473107030423843817502110484931583984615246308437691568544264404482717031500459877494820585797148328504251740223282589286158095064751302428505526944643614171424590376615790268721486334584594764788417601880667028403054916798022525573507219693460158186822045745219388580275342334741707249056914775249479398088340705197897927782050603340387406542858498438165322998883849102686289671997219933732394060808040881611528535949005070238839273104653926505601636935131296345161317518434660232115135518440851969924479507792003909310361282470609789367346838238147220576693730842174535664454287849573585588131370597652574240957477015169646695485506871246977202027618640049242814222474864693191785804746207740061721826767598827945959447269468275403946463312536341194216516214737160890249710673393807141299970275876154476693324452580163166251870048833620649432655231794947094692268634514606071495161804310987582408919366226210612228428332030528929884804637036887751064785687964074964627094858089098123992747002942218392644159237320500155117107127816102989526807414590519333455144553740944003254665181551472716542832913650165931466791662500597785503332180585169913429131597695154874904011128092140843152440265207921046687211243810256209378615333721347758106911222713117482020466599874621493635589305837711135105761371362832208842003669551915886609934630541855442798999596889393715323060631052763315865525112442852469903816106508522554143361164155311271714120097111947262165101520249617580793347396505234456401171454499181433966279051418167377609276027868386446650188150449176455357792287138972468841759218303549395192766115153644651471566718512973553316835263871300335034095688864117038888921983190452928899522336279700157059900716080676330837249354032422425606698299241412137202946784819410139249525292843970843794336605296692105700803378358765833128859884914653981219448841477847109203790057056612713481737500053594024627122600596752761252749954406815508787167198924105660922882428561918880864545228409279548606261029949510808135265698797973058929056784237314834332567886995398403040179443557591402859974946015056782702149495996003836284390108128719187738004351081420580877103558598645666230116048593281185554958659939404013731620836441711458376273331145685672752869792633378775696013720050187086856055330288503741722341198990249393854866014895546504846156720508400548916068159455433917743749865870321003036542337433539290859821178577613460248134664541256251711033793434400710503063618365736491107089920398164645631022977171848134996299147054591606018089600500120061222195504271850075961135510220233947661769879651761826287336821870903199068491332354751498179243635146154834033516454625660190181852001014177624163457355489505923085900199932402949743364016009479034921477682637158771806039274149549281995469061075989654244657902483405401611283044338652635373126897098801734839156380997458424613999738505204801922623573633789828789874352696432014889428241562586737090531599255683453755408646037864662177120787971361910766155676604894236127635430596164588831776476965425914436296391280293729292734606384251822556042267786694394099225014720133525177229547500190004233467500528253139735005978666932581463888147377160624868922135246728205029799226602906495884747211432992489464595405332541469452327841234788516717976901030397577673375937227262862226384164128282811157248247893589407288101856754717585786750728076169624008356447074913999900191265155738012266240581331017698565339988302326693532888712638450684266611041608813445374260716259740222693132636997355864271100834760987839263611593710758036690558724589972748668388495365301612879917143390609023014027086344519439245226872910578718494356521387196879690895072297022166925993694275350281263847142780988022027286541744825488513396589467172445866319176838238070738631262667513616408260865067504568014071408446245716865112188674480904985113659798196097864826375865114337233140784858256599697682253034397067342667915873138711068583364135164020255185552873010316395975812731930493388727654118152839641169964818479728040259045570205801904148648346739776504729596207408562683267138767428123617811289765133907941003147522809418998937953259336274525271069243254120491489729920502322787838596011092592639598898105684020570677748956395004921236340499152898215101977412583849300929497743637772860972898973608386828642606832672418027765745748419702240767969651392706675584727593459839042927036206703042236245553706124270860036549290609063679252039931369483745468059415549268371141974604922582910051177897192144468693148908685655214541624688622987855122373545907033181991046573773391826878469560132055454449284581545692041022712229883583874244996139707481993308212182983328341516526501844942797389957813078495286238717960733586460874998547097699800730210729102238321716375109611203830534227433806497350164328385900048162253120009378568784137986002152315784406089285138743006986646256188024538563684369824767415937783393641603228026129595272072198554019421735695825353895485645642840145580052714773848807230921789697913985907272401448152696563606639935626239693974056505577071122964905641084874513681464082120967287018804349216325524894070061050142629811269381531057964705692215821310511523400103585965442769338608114897525998613190367033627881594166604952964456246559358492379780024124359550189522569158578318400123006174896544962603225334733531064958947200583261515549752363407699164903428060434458867150838667501886215013950869637326436975617736192443087452014903306065668204969128830266506126981492339560964933731070436038842771917950069343690571086837291450236679617066463957990799753872201718986057092718949308693439404087718501655005204216377152288483391075100855554036831774669504816344924243625052550501015612737539444668798875546658848242587451885295089208217287298202379115055401413669480428644502479101652147356450862103382008918084583680931701984741531825240954509990505559395123100084758936456777322243918465633523543064321954011276678561855788669496902046021739424187057611348336187127531368380388796698615469440618753403771764034383259777281323309421851572097127773867572047716303824126122193726943537046503563649190965882074323430095378574181942251003235059596308256232035699766828729095327347332408631053319874666054343715802017567153855089896298325871921193401456614918689036281537923012973066635529598341948081518667930320052234198941499341012285492528799152648603940325656964410285705582075673851340019822438123477522737719517541566608307885856198373315586912149274043752506431330549525552681832009988577121892548921726601932050339959422875653788762069139564469641593573009723954707783100570648359502422748860309905445651211586673625771764825473025749626592217642067867911499330931558497252572975111889119926783186081261548037977275509930714035731236900166941584804943982800594297057340879651782416181541703702578495538821935738865225127259791840551954682622590217583874739658161873036808858927471052260351117304824852840400977569301768191788710931399257851779605648939088253589644920912537339364143228386770074160147753902677987927633167895789667829176123377386658996022092236800716232142588198637325249589904584103917443446755179333724008899443808409268727460919660034063720622555604104607386753653342579507788428988156160712350973399240363131320177706971635056983066863165927245882578177437414630355626420222480076137071473948252787328650838260889620201651129743697521705693708926607422272627437642630940443000185722772359905690063648487954874082525110032950313732089728509891812140513344021936990668388311321833851742750542963016210047625984309241856957320698523275367237038895414938659211406086246876075770598160944452074629315850782775581327259267167008955724249031008150958455404213183341452249701137395572780963528841703055360757814214856138840023913999632482711327734843794565414629318299892923825759305125112790247299993350127964084632203852969492788956186377569234884394899190433059227330258287462589099010597295330655977392902462922425639312508734089477063351382696600080943349842296707118985337088827595384126185746964323505827779992357491186812965674355601952303705952994774136322986670079724870623183836359780993096206063994288814823420488012471254716916868735774336911903305423433425252249345045553945304369172656479031389002144686245823226072264064908803356062777347648303232160322339862587359950694419598080781091578900350140042958368590592678567176466306667431196623798349859992831560814115849563250864008377582655261251416115982943657071570164888549932988802754119356019803636291087126118891507977050723402068167148160012380442972684649504151040988751928471593167361385918046956029979840971405137436459189394280298933627256590384570194223193929915854032113715348374104543790092376748755869047201206405528915762220137300553676526725296469189621595824899047903272885128527580102796208789475187520192273239476727734488692396133879368614508469396485944519398878330608831730028634939193553909770416225493929583347338311165682912418721409261868039119836264450213512948549309285586532995184311231735591269309999944011575396623613107348870897794220648137535192187147750165823421001152094763355763271099556447109908284489741719303307621398637582212614975623668851104783495534063047113556427444778275931182415612659450044238032195131337379952038154756992444253264298769799937474649575074069541462771249462749940252957931865923637509756493813963307454509015688159573604833179583337364317931479464087030861286865421954232641903535300380321741680315621729451734481897841555095935062370687068447507790688350437371693077627977879709024679438531751898232618534381057130517974619373059768072377248106734647526962643721416924372884920024309150307935417702832511210064338216204540565021398908529787634848190027355342326092739363341274782908706923181211026706591170687341360113975549711817669217059411289546310496598325564820331853889487214934371229555937841655914143302731010055269918248096154026247237030371188955900001426239680994443166390417448353734635648944064965374099771254719069645720962965009658436319029215134951105989290419918675038665312810502033561634704304340330335896123139298025693379826240834688082609526608537394278610034837104217891428360844237994094555690147004819428016214504017496499514216262025935755133184481951809562878031730482214630258628518960866482980117911043309713378501572044037910094400085221221426165293171302307575771899052722843307820111821373559532355720937037381008306648787872367251537440657245872612125142640379433913130213808551029855927898212799583193560569588620209070344791731267796738174764608432181617512446114366133409142708480291712261441769147612873252739551404942659668915478291084350839620169746746900255482774131700490654394555498246368551945504576086268202568901288018519210417919648645044358630254448222118338315698189752200221712113986995330681292197949401659708881830967583560979733097789826174224113943997368522332960954909364802599162980569606677359099700352548294453793326597015593701822640119138419124420360957399976925708790601415414343602455287082074319793493591923915546130302921497608728644629455944526064746034526963351830592089793902962988986230144562807816784342570652507308329677905361415927720426770966506203694798448966219351819795063206452841646764890564641432354248096522400894088381947148524263822383515969165113552711765755189139451138510590662360370830579466909624039595904470606575045571613218119133003227605396978810440094693815802828407057153338455363932705201015276730250126593924685688727879645582561851240429869245145481657526148070486732641618071659023541195403065608985011607327804052371054253875103991230484500619971142347631253802825976357672278463879690152316262115604085466435744013449074438467386942921709076182535078397510665074271194748354645123416861010131192852068152866100517289979207542904907022960099943479958485150084574260167615757691074569186847577439776038205208279674228596928172801983589130133837341444546338499483370416790544705751085750258895966094833147120926740301169626411184911527304265009091162072447473390885511684793712157427283112127966772652953601658648512443206803152144994500731659288500800096910597371929357498529188082054887872519453802534397100202190064421795020833697317977294927868837521763377320571231981892352190157130146055538711713757286604980110702143203136218568582964769857450600322937067548653267550099415377137294364679476530823294955756093904376387149672586413483832528115722583340793250284333450829919343122506898324830886860623517321961452748978174610138148236025815507447931505435489198201518585448130345342480551327597350140261604603091451637012542783981502639016758951385583870992388606474524573776383178355326853702672651639593154453283576125485530633944361369858494542561691340041433770594740228473727501285986180476484966248058142573726636897228824754380616462410294103431576450457592331010468954337001338791811957548889558471046943912630922231285562532996728221827926569416493945343754060364115045475256793621105185851486728625915547599750892450005778163344178829316732445309699626046845895355647433906491182424362779077964886489407556980695546026638909715981938861866784213937466669461811046153141050317385521560691228431380454132559062459561071497449793645333225172116451043420969714535344981764138509297598145871188994014896607024334667013299355484506886563643915734713962095676878543269744781913009605611537748425282503726141349087146026693519935585293385397732181538720669935453369425352716040841175956890412633250076675769950314396375280346462721388785619378505953845266823599793683492532232205514816299396111042799501930053462454600393612362673507253786235999335085450863074887181354729497668136360785030887675000536409788883961600408608924425933262073830537150161427552311888206733225602826658270123110355043201130967532758425128281129178066947178022822896439410133930414332977265548561670437127163766222857991688507160591040406933685241651357637874330071032302297953898481832408007186677072849937688234959660455020712455301768855968332101316604299424675866768402999646330000919490376448884803676324382970604955184994327950826099417959382179829606383360626134449134702593574508932694628241794153880756230312641297712902537057251867021920282197012523451030950768702721995416595390525932296131241527060370599861894133917149972201623494530804622495866749929206903047224147957289322195945082900934413004750302489773651048505401001638008207070849786473169161937242608145775710161097242876482978221051807382445936762541021375170152297871747679914039572109239057163573291452513806308880300097908070034808155478514762658153971619215510752779974630628507267644365061302252345001154835902353124266903960212156344240166298498137853651864362020987066042228751244643982733032888381354939152168039635988226433414331974378226261221321402005552411920283633918543162528314334827936017159515141011697864877564351839333983633821188751154620527033990939218196339183738926154745102959752647787133993670811567275453088824421933079945673422770268311834739380140165706936751906340209834167703807454202006642830160122804565895917430904398846279925929219488804444434072815330546426309612000146773059394498914705912473590375213528054538264994834914321942862576068142899252923142693231019733528642122091661941204956738747071993739560663501982559536549124562410398716185597461665162522088546077271009712442823880320742103097087053144378512510048300121349502532002364888157478215674593622756604068591700484251718062062253390142631997834029160957511975806219321027468924163627244393912534273111605957280901540923127684109775382800895252389595250515195307331844107746450338523334418979371344692885866593093378263375719961651568319845495264022693596505908098233618469364988162606616070634707655950786881858727699366085999233324512557875444740315841679838228833052521115159262577478044365995927739682326719624336565816346394071456692909294447962983031460918674446819024126495091958460572499014642972602997785894273031486721080570760941993136136502293800221940449194180798550701700633520116192184400967862332027813670099394734199530871457349865375593298357413327542322112907809900180438899069364810974864605006206714316507142775882978826277220620510879048987581543922118164708119479860250262733803333725387599497008152945613742928841740946271637832432434298260047284657629566458139557720152752883354403236534402427855431011719309901263090421709668190729460928131375742141957757138114208103906954913709447408853381793962230224550280445591864892443095792853126708562455079496020305581573407688292097651174061053822401852824615083046085807137148204351263585942300608434172892626430098500454594284185769865359728907190720651348859661691657037514303908475288190991457295174783759154807824178122374309722632726346160524437656703129149226835288163896909775735887237092743671452635158241260344474855750641253024327287423961086867698564009518265612792633776506423853663681353813840359991749751828089564294720391594805003590804348265998808458639426430102626821169608599159440840663866746314057277224996609159459770816310202439133859962906606135532581814420062794872502012997946518229628136741882595799323667823783570791167108043879750433731253837134717498032177269436915225072371115547773213295838654174458478206968068502874907583481350589325278721892785711745483170113007833660225373243772063104617060737633386428906424942656555737111083550420432686012109963876119196333835592109008866069702315515862008991657783469405721169628702368621928064080099217364260145764409710136095725240494924533001154418167148451660092151168038847834494656999562282642130644942610463677185100442708982700944455948478525766417874207525115839379009920189657870380740112991515127723869228755778852718414166796007043116402655904095043841894529590758745437341207641136701278117088868883086185792600152030099319118126354206027440333788972777478010160396731571870359877282625455459692007779045400469650878812092012855091636190973813394402520737158378036400475192355825165495234413813670875053909303808401367460684215765677600353920694009295104743534241083508169931946220750838827732797127379424125095521295025321042322569655255367675278466743481340040762008729561696452808376980721302462871553247042389756594890249141484273956844958507181702149456743101772032092676207900297853028273928629471412708868189572665358815817285149002747606050699063790642594980531310027769765205685794453879456033049932566577242137201346395323012590837326214922314619363608883095702003546825445134521489247595055403013984063610874545439356297544315442473342117975757452433749410715649150902483204567001044270486278838081198503279834020272874681787264203199964638539928141393005687651554115887977671944875150029129610399439466775844932761764566352676559924234099557481796694223507617914286486273327375608074308904845139360575948878930723854704757167994310375804165567552272939531040008427631908628848980940830142093827747254814355927952292524262213087724919596447677267650391174795255404576349732966664311044793922213584899811843775944557663871145774597588575605243446991817416624208527748954361743466150342668693858219226367725045795485502794146034484509524179840782391908841035214391517937500301753139333138260054560931941749758267103004235637216896616580782207324184159209341331507025732120195554148062068382514502325185304594599207637187054830600182378968558471557104995467515436378864352222458001516394376266946935953507803870794484862777962619347796576315890476870792054548529100137512519535090466225182331314711870222433847613613013877916360340171177615313794947785888159420399423502557391520280462096961033777586550573060506506100728093248158671484505762410565707682681503609546042277855488150466080147556492095457046998678542115627712922738949556563807750904567763548358535720300072879506454776362679231519312308253583572556258930708188902365874804444365294301670842483112369728259439999953103810556046989169325187645359640409972286592798510102101689002626899218827977644324663296466515461888987536569199334968033598487112537504071848659430594934660049995866904803216665298851508838571237773739404522326119501964109457287741432722297958314696421674418583738321603766607155997250158318963403484650712627590737722266811350821260940568691037186531527305268254854858998447309054211030747527526491374236420900522518897648401479724369677813464386953190106920896847318504019810302620842523350226190109748216170694266944635846464785631126614082939051180478945229261700490033557009137340813284631852054937271432304978145530033586462337612566755214307335574112026896045499574883426719146657833336350703788013282081321561527994317868025984575114170586860918664047223057023664389412392281198005432718286778125930125626392339018931166363055841765877494285729586335126797168953979342209334282639247839930724926017900800089148228825840970547985296182499147218074492483053141041848395677851395911233034312118728920395886858525193432802499204744025291594683880711254444989822171515295229084179556540687401694068180413604724928319360997814755111359770825169767839659274386766568665590846717094024271342452507240588938882720759287433689436003652559577524667298448460653348320937863063279364487313231826633422327007452130461345330157811019851858851106615090183456524181575276158699534571575176934359657241817066252969101024497528319620814096176954568401656712299168691524078117206820187780419760962251442762594530238516898728611738091400889973579402340991658405562441265966178393956957735480223916872734584496416144785785896869251909364986221553208282227555210551748457489659806253790989756751912812568031273341611292778787758276536067187358520419453041716639642762462288306534495731858314578639310703800772358711911982728893463263045513108702850850736206916003587570597742728543168853534396038142999147644059146966847515015286155969631903465058046843470229772656056217219888536352549671608837359674919019661890474379609521432324935490336949062788059387102382388266575767230009973087848249549559317705062221871208130876610125871005063857452225216556002305050451942397013095823663199874479358235199190242212033762316300644923747844150483329993998909461837386823064370592518609094198899950010062278530622990300345876646528410444649885293710100039288398198719455330795736125463967109713539526698952329349748113243011404866323232474067847866940497049127233507340665487741933008584772083421024430191158721379793486440114852925230928423132287969352918170733345087011328170646881689148688530919755108561464996199608004246479228852503249604141307248822606759493041051361744524207025036299269117927197917106315231084899421034032373357921680204537909624343596576309697992384325301570146852838470174375593736307883997975797708530295065127945040399720076793141194266317692988989508228786080111180760816651177612772957891011426185071583562616528363701929728184737357057883448249238792796624640653162566243553113753359102549183829305187235851075307533935234825026846618900399312665994199064950579732948707438486665024770349231994534929011999614754536496705325043235776796944756154892969348177833805998391962705011257866078499939048724796090372263118193579957828747084977415516921937727490921786043281340713075200363677741862933392878735950466213778293715848432647618433633653608420229635927220198305205688730857171611070322673738562087123887607752664400956695625296114399466272183340593752737682663913986377348345239648114085775557849430171408078407442933908885266621043179912862745226237620355492612072422296468891579223168173808212758796848136376109548807062208433965068458024131367213178985406435864919666833973880570327940853300712903494207133739039528090036598211136001052397068117614305848654945616815950889665018752829423894217833053723812291748436848833299253385694138863312878845336108793175912353919572975689891716553803305376842161299550084940309173360542745256732317636193102024265361602724617806416606568480876893228279735486586060157343105940046973192815491492019945039258519918048862276343578035555428797949382105310717980944254007373895372590491054474246923204790995402204142259862484306328721824929574247347891690712848648592922863280741871819198612908673414241787794138947799050679791342668573408047075589998425708800560720956080756265003476518222228369337542010348223869263017008012262931613029558815182417667831523120112512755226187741457869254977244000787729053628055761375610558574304762823052064601309320967454162821535270477659985012995980063519025345698926096356428130039224818660845532948725123721589592047663632136280655102861806170774398232240863138654492745709568498763245732657495217870689989278954772192225838276123677016848428526161121103612084985501061069592584513687731751678855722815415234480569239120434126751514785408253168719710988824346540624074622555078327358578228874579074908177236493927456982321678791940968334645787925604336726376436015176705527348607426311913450325038219726415007840863952054416451009181913566893162467581065527537665080604922901855956590741032012248949191835729321955453678893828322700140962164371836103493302584127599213949801550843406684474467403178061787465240420092416370811786149216611472151005223016824992658303140361900145129547871127014453641858436731759862041415735785683707550156356322199876653197584917112804603046754509382717392580978429988122757846168050792198737186929236221635361527528740475323611301015044636952304474749551447625323233309375197912481117360720259687261035530365532187626348758682806257014161571204176905506699131325807429806506054700053670970865118815564869321006025339710745329155585549435072535293074436730301501447992695005886761954005915197230611103989991420263107111581039846842847476139201736690676208979686035918494374753113506538576953767690871423463674685042874386474436613583462484411952460472334684707821148844549134322196525769311010146146934417489936074145789765501933213519441043794779741426382457878612218312704234591866096971138934439530241232908085676145620447984428078274735332257669690799957043136563111970811896103413867162174640078166294091907489708758633654322306705027203867331800664101147163876387132013831994911129281687389661217558325972982177262406384729712744054770664322343894329163850118846733577218051043574897722373686709788181309709161100751397153977642074440902621561434744702339895705779461563940865415357451537071404932594298846446765900381211095499768737666615780111184801182505863924505146894079472338657299962327415183839817068404734401907189981312095947428439084072278423501645247837071946748137573218219254190359567670268811052932351823536434716756754612267641067457908615969051367443467077132053053121293756099691080343196742026819563618580625275684182446718384412309557346263618472345553641781648013581796676599293032099600102742900839828504514405080404954419118138644030593511894162870767914637748982480306444188691966545803063782586667111543183012563021568163229165231089087707034640812348258124671103610724077580668943010583252141393167512271572165830489265839434118053219211955154000319412618688457142137111277197688263095758106829348906548106135509610600021921823008834789038779253691512250961641600137047134270034424040218424287913647660932110245913204473833101679516683066125006568211491821299366192439553092990668688374196156569148741292111343631819584983243242393053641026731331082339942084613979271204221873792514970749873707392721035365755865971780544542659562091748571759398963298566219361637191484922579342885919763896217538297601713177049034951357683185871105112382817553421169444173064211796553814189483994945485877618603884317904166447234506244475264016353131770152338814375347998580946743698816414998252900146938957549459712564678826197178410748947454867933462326555602701626675160587801930791454260892112378499697658350657176535672669245956082094757286556266763614675864270003446040998703592800751816026242750838940089510846490580220917641874269169474904834021099454005586818951199787919811650160365831275403839915303896397468086991153811272722823940105172736868817577689665744906087210335914348023945705255595755625299170671679288852470707711372273097119305875794294128744945100895260804376562746476431493757477961737777250262520902218709571134622545293770207461823985672176099702519008363655214736353169359111632134225561033934423805039269292325684429207109679868897737367528963304024712798086743670736390668086669531806053225604719554604443307286941916203170877179557214879990765703623116321259301819103222606333937155361423870227641130399506282587491019574833884874173986802574623857487758819994738258217342536083385723786327988547502776564097098425091145925742823038238389936701932175389329514730490480406517384586805059655893557737986702127018657420019283403595722847688031090535037553248492139457909106559526402824685578152406885715837492752825003973193471656026529533512322214938848927695970220717673321525149882781346045665362953230149451953302752006577055594113327862775858412884790169065933128551633142814136721397871783399585997620787140506126009023419897795095018059703083175284245730307991061347576701119297734057756353850195543471751454004144229291706475657399016603231208462692003593084723417213557420184517798642005084961343398516954481594808781590603206647644193963467247767321807269080703854693558564553947783889373555826212662495670880846619349118136593762223604132177727591678832345554311564881723739455188826629272331389335904615858325590862459974970191733289697936593258812810158407812964263670667607261100215080695300588874409947699695956834966135637042937628181719327018764134038767804901565003850155491785440620710003495836795537666367020907202510341042675293853841775619873466349915509283130721029849688095136290478034437139473019246454213375274772433570437401031808263736962893372359257442342387277578224904302380089895614734049236620040219457193522833224100293795738771122516050693058533129306304241213348242396021212499531959665133717477560536088150754395956035940591461633139567361212361380834958191162635126889310655438575783764975125650344927839644192931998137079895490865640352619369682137955961660374435331776267692707211962009507734551331942221881115454853206695113999522585392499383397667226847782002254751314993365860662211567111074209346785274503200635195291805009264043501436716480742470432084240760949436967857880348273950052382163653889664346756447816450667608327771525434103573119571149510519637283605437109487340273930439076542670401821637803029700844122440367722777253892121756679090290904245957567737641576616878442639995386220407134296788425749068898319378305871946006215598792390407403136465495835114293148464709758094261599641845538830477912084208646636406649979358217020254197221446623591302495216942044625421698390857857786009210995298083854827842875608181465433733017228021778190031847301512995413778468047672654694948231554154724722664716838692103961682099572965763018350826388701680689704332167070651027310334183717047994398987773438832162870081418362440455347559062582809784760135667745391663580207821077632176057298257147099710345228146886074760755153079721377450978212837059289512805652827559811535937483466681094174546138746313558563582652242084748406600894546967295199900444020430816334979554237387427258023040650061620871795737621327508637387691713662998800942460786697513526323685193971638057841144500141240832617894953147287363624515033837580749735155769888762256338334360598605058995400991391194294975776508015858043863501603018198749288937390107526140375274267114540565604225972305780941227308500671477841310407879099298383889225622708718050745362089461619224636993483987528504898045765768640915013282459902298961150956188859249842986275671452247494283728222920888039426223397378350827257447842138505219427257298734445802268209120648581697714403284267402294497737009354300666400521663674134042953399840568365932627636418674150680446479700483650573634147975469293854957858258268599730990509688037224867838140616852074874120390924948089243662034250885090539367705352517529444307441904076232409122626008131930254904687336801944215506327226872646885172036336473345250087692678027596775843341361063042818033719362833280696369197180554055468830347261131325338806642379117539597157161233636617501180916225974301773478842134509106239664592477786511528484508139986865159888191592339329573085685712319612898528955221931836981382729140123175029361661843737224975726715362884495853054685855258373536654440480092727221645242139924351155404604628832284950982510333517264835065098160491724530708228813965069893372236976453572165730931724288354808080289624531368049144190025085980600243047997624769067503525784873651860501460340349046208936337992495515179699695454575620130187079808671239120249983474517127265415279423486653153098756358688214040019747075530069258696808237650784187971453749510531662660223324586199999403133755956425872278187325101979734954407784745366483933442378474064901214564034486824933716072862765694497694613220089615245700583673160409959572321054983990230582049611526192601418362899161681066496710676650127584999792136406739827874062474595412615499056004295512158221593465509866825775948269953222934122813461552455008387143386695260507723059420206875268608408463378093345534077148293561644454086381263526478048523842974703472934674857068764486365166054785219821380550876462629693436334857686197052713459565963843746552707604993521590212723198356609803299835840409656111663699120326086369051367620966623969151010238003388874628990380107528892335817171697948689073266188437366540787359081480355287657214126843678884139626349256814966169748600340225566940711102602119075565453564385076012572245104910539778210093972038920796905392334183446378114524822727422664010806438405485066853346182193850088376418533684337560951720634731388304625768839992165231807222418140802922601875822415009751653123579797098654648818301093766033091126470010062188938489484366067294309987703176824202086587625360849553556858193097946779675070271453386613653540708945074761144157348041540213916445343702900362804463061798054151525395669840130936299996637096374361898343783690875244246177376162924209771139802847862226420458350055313641073045779462982650069207114545076416271293138547515781356622268659363197331876007612840418744495248461506921721099477939061384898606892019216296791386760851977718021409962861077022065635605867291243845506668706806363521788664663158365312648883680500482079530686004376197884214783218223619546269502834190647143830992779537568091356659245557920641674631992577691089196703186305894427930767375477907251394326433298326973587260120559777758552548749440113551557114060281334917523817649167255904296180791942564172097123816223731481564447679650692626703923351885103089858051226943502536482991802685632418423044269107681704508073428481169604474880034918576715302903677932658277802492202724910423233877890760821555814014818022530519922468728433497676962667432230086821468160154388567072943223854947063297287327137887143433757478758349297334607853533311980099136155772284332055863976249440548437110729974198391326119998619802634224241559985644413962391830241739393472719320359545362908028320178704446889498927215502848884001468832601870516715725566327494471216870243349425201071754422295119162595544641339747748384239709736469831986619465640222561981199107240099388456195038914598007226874453278706572710844194067783334896286303276034533158374057174931542735121750514931031521512062691927442086297914684206272801357584384166597918050702545749051490093690256843506353215558545797865661034137626433821861361027710751105948934691612625409490343809794772995238543707666659740351793372715199254205412639466598696908037104915182365508888656638512904628795732981670469237801207535007514144662422939135069146294085031761421938790022814873131798974452122078325500559643887361578908625536144325416290660917616418744344552816877839925440605865439072187403852003805178345906682117527771587418820237766313027470503106843039014188373894878029004670148438628676989622713765828953514766681291994285332535660045693149427608368482966614463692870817833733138033701122608798255171758100201990898368454834948130493584768645732395710687308204987724816375917873613153013583536834183117289357153287067084578725157769167857708244041807168670612756432265623941822229630779363936241161579680093223190346357112330709771196037339460984255282743631347986110762505114411290025013283607427445774280961371207438124077509441011594821088714886761692118750241036574971465835483762308950957709620588964738808265625648685275756418499828057946445021738684857387363171100250855269174923190973489909096610470826391696044961757063394047649376507484213557010071432138398614017163227392081735238993271432236767977438920138050970058121711981970166584910278516133527765496697174570073747071099086507159822921585677757437805986276711110636780293200753120580060549291720175304418496842106784025530114883311265044924486645632214586276596012649573518079998557802495068931507652265930444687887942767071213364085242703375182508699333623868210316694723301037001342303760374231734998282146857838281832310973015755343582469616461374354704992215837403618581548938424544786152253295769215696286003399456152650464474745123579512835749094598656416394237152037944018174850008160612059945072956410578839756184909330077949735387921858372326294517641709016883432869126146905176292939588192012235502733207292319972668805825492239201858953635972469325155957649664882076723653358656157150060288848580474491386695336013927246310926671158284753190804820767623217356369832246471088059621082118919201500437157342275790725561367746898293701670296547531895010266188013839926775251072215537206103157279847628722929813324742647006449065332831421996377646639264239336636447263564909172887452213799092654470587855277783527784051800723786361322401664917564637495309917792306477079745215245741333359223704260655395271494866240291461256547809065828023889270114328417666006112690964024265047800324323195433135651541374072590935835526996647938677597737310075138963275373617423683950970871238478456066079098059661588233388097198938212810482147700317833767566051170908666011022692409323071072157513071285663390631150149198371364565020502431910124396703873628673122686771037657364042938426816979037141847374802825659544526647353530599841529905177598201163547158120003032333223192620108103497077012838074683705062480435259206808204559426507188810743995676072626156428954933827529176448932392891437831923039496841010128784860397948167307400533611569880759742774250084206739223513390499372578491197321231722054946700887603170511068184371602956315807294463723536188158994902493761258197524960614510627909972753200938567152213969774701693324233154333690499843662888057250352840695020100676782428689056538362509346773012868753666149972590565468427474912669105642508762009485372183281826505182117846574130491478142819580193055286109137440605472050880233439659841366094404624953556715607891440775053955651815593062830395616479159755814691878105124975629762764842917749517032198701196875600771377585709064188173746896444601508393035349649363972740447845827236434138996123890717364756594130702977062604515031679027330968275025381685621042993554132077079593174450124569284067251578918221418860723635493679622820495100035796391510766516560640373575009625658621243812986350821375077837287220952498142307613499500370574218126493329524305807104583819443322408265416265864842964687956663054678234479242014904387253898491932764564852464169198571222413897092169957952536677485445023505793420370133883790753558125804034691867737588470273819724807496514112791372395797298354568048584441649805456418731874926922299393673684153953986441942168335208810716024432731744656776053816046154193710653211763875425565058111518647885316460864713785376094644979445367643628758942952074118743060408909420807399706145021691322321630467429642751241555640925155898097275505756174153490663008784437458557305509262528189444206812063217390536046292067746279388276764149638567758759249721157004788566757023731759062208732658414577643400979416807293081571708117138259609454683772224228564570358502952687337914887879791407372359818773187043065069213165760596623197137494604786151568114889776519675923626026736555906467374500451816978888976865974026927136912335673878082614590578519573665334806592025980632815562609534825072266963553081841505914021633822290659837009621686756479576917854154090961489544492337449407048646212618597913095401637571758117106459620594017535590782479654941734688224023594489070664524577444950412315587611811034227499723073445030248183545423922178083684829982454526501976854583834620894217921252996331023966083545692279455950781368373723303535843152453732238395403514942559530163495476804166512855828428917204214535230512740803237526399604960495644139777640882653247116011092745236563649233855606123933607465979012501379023803832425888710369731154628880818463303682642782399881555499833999341021404869257456901210579227916873401084944747526621373146269407816723589706338579893213393101724652744171858610186146517247142139754514569232522750888033153641303276678504859348347759477497060793168618497418830904372584048232669166941439779614637101726957555539666342664353463217737874516797707371238184899087303009740242660762757264802118454188273129124106862794735044714088952651423006810903979191312478725279794108466945233424052036986704835169915130566837057018622348115187385510129706042072684481703808988273058857058988892476202993043025049128216352096011183412709781533807827399864540393247269974879451025440452850301001091574098313714571797579308746205757030528654322992220338847160372770634045926696953899279276768373107242339370322555479452311768990877468271584705898201703124560376536950802409825549106317893501085127549746127124886852570251970144823521380220973618800105671617654094160168846931710524858957817496260072168814373876596136314272293008940286640385810748795607983376190881719791486873362576064966010995337622947264660344752468993136079106120746814125878805631375650819154083118370928864967203466951030529982510007752063119718598640359760905993194713841206488222754131962593705600664860741014884850794547669550119016091923884013986044458645539024148009845838854021910664476384977963245332404110848797141106055174817362656292394438989293213400313808764568132955780525471460179276335063198466247939557744872827923843129654828689325394816325831136786506121792997245248234658612996975627606055280514487670041492226502550031096082992627003873019822440058902029148353097114534579183299633291217724060516477905899074575947739920362661723483600604187460988908498619263128047132719521557576650736583057628980011816653744752356988932707632172069980903011100205000140705652141302324600999001618621935961483322670878917021189885521164644911034731722963563916640013433966598758637436345512269756402213479152930712107101495930879792427646074636375132123563036378710120913727526063583886188831939599722613017965848572285540418502239836631395753253159176295165606767022389067263986827559042946109743381759285873958653640256196414440625591466149168771913807505465722480036818748081871796573393126622658924684935799063777909133710734253277074878027725691264137829229916715290428319708442925835260033154715199169665233128867133650890971495121488323454400529950851449638898426057099979013805642997587630676272399738457650873146541512681774554922786175999499413852968385534364703891964988595749939634839284351066167104344868143607389406996658219073281905174971249991170447628069358840799486693362538002761717599225534958010908198530432849260085717473131213722254667129767085809337873635424242432546465299749542529855728927386592631866426971059638252312937095158301948173574031031758148482292674353245515678731670760957690646552507135618452985246333060631035897157797180519886902609277107432852941636210814370639637070599624502467929667814189728790630839378734807856148872013623981818050078494814636696379262735889386238365187441313012639167719825092916157859580950556818471927560317880723249751731987783541792116271600973774873039891317949534945520525165699970490123752675658412739286730971590796247929626654126663931668709319964248685720816372674926571229955990188389602692546973475719213926957944455955820865176293369171604655885437635103002063447448209807432188099220499595365215449868451232762392098364755989633824221962381509254589406700608706993234584232817665561930874953300855429056598115327049218955922306685541009781388708727876102364073865773851213806634735769353215474444958355489942930580779003924581123046956501647160574838851481989848339411293693079724656008512649678354230872623925983186398055671180151675748500322056500850008311612539861601446737948900242199546313536144245484953994345048680998157064326101407841380303747573557216875963876652457998696897680056168404158447643182252403461242468230565211226623877680895814937690496128607424425417627667518323002204834027380896431518121841534552295543749823253655366325201406706271343152114630664409411545564399438626116287141940588975070289058610113845245736877198219212991685165606261974618078124130647029455546156102860790037425547745783117086637280389877435200631681447719349643233702864476904337197011838341761477143070900615234724480286937131352907098075436800721680822761456546109553583648937922946907939601967506105523618253566568737189596196222337210250827818680253618497507400297653417301227574339296090469424406872288188435497323034684770518450260683752560785175996945897686427609930217695505342616266658574600087429698228520226506056637008372727736946870278551989883151463949365869475954071783262317659718522467252890179781644288000566510191413944098120206015624763976649057941106563327854911245768190389409304868107990532581845274817300798288659557610105642305123761527752339002471469413844876311130327499711007994367090874218010980092534310818957558280176866459549584868823819618411409477097107866754261248988267373348396488714597150457802309392308259926868262112225543437063277965354791783794127048694207846980867901684344995133080896055226335498393160887415340673512361457626912416074259039793254390034748025019303910743971822125360166999836902079294285224928203508273257843091603952738570855948156814184783164975669148274520955104331846950959269917305141664922288613178367204379180041616565395001065685693062029322228241920311907025475267618756316592420783826992241063511744430435872525949433683453024507715675426710515578558443746746826293417148715624224716837587140211378560751189790193254669346761827842814706457401793685767855305682014635533755725745418750751373465227127566103674265590813131067676131336163713064309292815333936362423952798856056304068420043480917632766886336635225306268250773059345087038207070089353529357558530630107025751637654220594582102606110456510615387858156215172682758000419482391876878011176184570736377299569932867361922130732472687182480893309151162529857663690309292914294546171685861253276481120694049695731428276974321218555362207127967209135823563944684789202238407129769201912181962382419444988762221250039455625464028257504342795938720954866516114435561830539845227056051507131892013674947931474856443023914248415318394446865313768878162808565651302302820085524665559889836760899889688070968238422426917325411212939457875300112973408473849937980015333226732418155901607046265101080761946290013387258590898346444575683969916647344604956113038014029986922359922667209250311365071948539651301884940580828245783394860710020936415939012750011666115613317247048422061928922974746291612579288714219651796522862880735237625555707314921241913426309857399318904920414951177660900520423413978957413179928481665489178679613128268874284992081108852138464222808424566155547415633654337173692325375273723867652800526297092855309583931799509379830354781516700608824082195178503231057159385145558704537936115806137149847070967194898886345019989207976900227207874815680768091328188548338410074259513346929614320959308053948227014067198499358746979665287441605536011397846058112531582939871611412912507835977023199781543949386073046384389178353073418112573016753826981460053016021874518106690742119440258515643780472111797609062161947806366554280801001820639480909096521066649890258970750707287832139919039152143991398816710521990114769300976328560430650023008546574766164277823732570546525887064789761099877774462195832196529831204800349487893541819392214107807644267358796275380260822048497513152167448568380410244204065005261391374520185798173806905518141160518577414758515964111766364539835076137634296260611758757550266070066603958704044305180060802226063015878627122628528368436660165126506171208515436927573187567230140093243144551410512778452382937616405909965063386900895227505103401011698840534483743510930103957309361430232076133317070760285365172668353171952529621563734940871291129057874150670693937386062398312284106484473698230141262518704354009946353091537403126925888153483506826750813019518575989437929715666379214499448093099013072445737261037181889404261797799074392494243311911040034453861601873385434650264299086606705608065086381332606060338082982722097226363691429227736738793504244663271300903393944105957544114997457019521480983886920769181406801880662354920715837392975398344660534913633894213625668863816023801576793969068146609171395340987271658993959167202864806571110491368823507742440924702386304206870443037583967980042781213456555247843706651332328601170952967364137571842867266860187338288962900263934930765567888289008569220278582514662023949275618391993521273049852201225213203616372971787158647901214607590784420818289807082588309513721934181968691251908750595381007209284484555691805709593345687250037493517319121480107179321522839332574565173709975723432725478319769336547161824294805430234852517934855145252183552399649255595217846447103560891653358263036783424054575119850447150149477859086886326864508036046984984062284337212376294141418830993087577998325039943107274087590399619810406944914382597455916237894018544823347684691840029545345029080329287982091190392578737994938616023161916009472436359070954599675663246462958223646254514345890975414058093889489018014640922976832790389585959126254435889392653057044007966221101090584517455951377868261250846114321048644119695116887187595262828953514293295130801994408832488507320380654652106355714460330477050405016851814192708840183564534044211886202085067159776998490982599333370161569396925240590740954532009411265828081099091835238427253767690159967813325637973042587794519164135383176853583047600477149715997897679317041192730801699954040636118669432076921414792315666474811242425841765492101286665482533261520450402134945812181923390011815153119156689523937738089156822479630692208888623410056564755833038799447719802519493281472711966581399036917769776675810044465937745554735734420749522624062603670593493879644589238453287374332844885180251460402202775177450394304522135228721752890299398075524787887654929808698617632202425594509102087694304235972646501753516347663414859354881714611299804655326689881221216390045941952927582002206138243890536670895711702925565873509486719316842273578004062760026670980973324748692768681093614809847055102538516203249581338055628524960116531088831059186136424261221732573347675341168790219528680457651235737362621883424351684967616892559944507438208629320090477989836660353291426978475574057578523670576525680679857534526424319584529663804222609778546811828977721782705249104778629367783634775896223873300607049446586185960398528535717932748784869984961147697009229096729154512735366602924604640830134759103026394934096381841782278187905070446507412001289757955861482319128988173017792115300120583518619503331221351876434929553567118301770501095924129580611346304665073735875448249502106288014154758190185972696370146482879364147917870600970711793061275176466839424230975528330334031241030366016696829056717895037844830141541822826416571217105674388880638413117061182977516705088611440048794247465061881701177106903352918413776212032801930680287463885869973183686156832093615402151974327124229694959676174320455921684105140449073764840470222853151145588834582942035800716552091017319721516165481083882949845762410570086505511363097658168715536946273777186104488008250271335989843209737045248470281512716493604922701347763535051235473369757749666534565098598640144702760999766080025022307154570378318967528456175088466509251192801701903131559068146932210897689020928823848808813460681553720652400067402484058405963772584472893836065546424079617507476382194272963529599600516418393737032838447818029412857122124560780087591394056862631348261769920396716645886334987089429114052807559345921120177412970112080715522325995794175336233031014739272773710023360482356970943463077067861111889465088999873516481018834270965696650989619141799040116016174163916943187293146221119510483699850993465453802617823552648462015543407144599661052013499087905941123279343930088817434660295535837987733891600026529084982996978769066744690770966164897298938167429595888067525928840316481578614146865934510980520948973174101873544095930796238519941594887313140339249619968390747305442525489976559850508721728550712532774603895379363368684298546131116234140091519386967533143530741345415950366754595084555137698046406154530164329129759237783724275492397674676767272911102521794853688803893119128263231150946155724173031362025128131350968352861223710903676459775239584940150724756160868475339588229745441168546843877371372666004035001453647130994116349168287767397405102330620016480194514786053262921450810159397723475826437272889616225161240148835570388295891299332812691514273015002530759064488728076552940323159301954304182407851055338036439607712379402153085774461582736863743721145138727528484073507254194477408634466590955835065362980967461363099064418582993940758041158351987201248095088931694270475697392721841007193615244454270447151592834692102026198122822108775546211576229329105623448255597707533809008046000599774847086553431458322493662271223578023203661095077504869411485223563392666577207689777184196273858342235165508836525817831074669270604004331625335394418298608992793788133577734347796592353766152610816991069111619776090360941112791643782333138169223207240888714557947219094448090602008426955395032805079776990621343627373395837515683085046098463965988523138666275986747674668274985061955152339780194695484629180103718980429612413544611441685553307085154584428950842601257145949431368015415604948728173200179436629385133002345465680152409687695068452884339265170116095012033302510605294794669641109833862327033679214952459360396258588993614681401998910711422001622220233364288907372139434231727510170237323902107128722763553998773780015196770900875467007644392845292295842246523045559503646726182810956101574828417343678538233935582577021645918347131141423502576927317419324432549574303934734048361126380886646366150756225166001293294199713834782978350553006049750517382101177881182217655224113095079978677432111174434407587364428497160948855540835945312144207942838027542820694995417072017628245965185382810580379414104012332432448476862222835801922567621441295339019711782502126134975988488542841755901253563827327565343738611261522723318209666142258745246520795663747249549740459325753931362596180349411104977844230468844237059090776802255154988275442382621184099845573048109272239325410896838845126287215660943671182555567187846312597709147555500275378476225131348396119171333716195997550605516318763879667480336315655111300453517065548906559040110943193792772466645372206069754421355771063791406069532752723838946490692741238871044680068832392759757258051768863874355404302957408109326477351192273363654515361283034578315764622840978035218081220356909561593745288710663863170705074960790696434964374096643479402022799084561315048064093011550437096559348325308756072613436010874549673262009003343863893605713033991140882638908179914480482235481158244209832426563586613165092582013300798663161073578606770743417155932109800405455012808416969286346471087068515606136614822990693360602095577381299819488501227656451582816110761143633208720435078081016373113325096921119298906857940146144661652294003780352827046418967823654656987975938801694830552898488574940859172055571551990170148292482891901019577219366265029531035984371296353230101737304465302743147004600248425999064062116788209388411952983043060944092410056479492431554383878938826286676126457159501899141996217195863450698757545031603197058716055541172644395700650837554177003458184381024246696522606316699240130547997924713783839893089508795490025235320792746331919916205512195495555063263491502233696515041712125982316466170036479471077108245307069348886607092524100025252877742674421404554305475115864833171467667535414808154394313203993511609132226127608129598963353166919542397928170884204880662677624502849542869766189888877056492687519382890363655989501254403116049352501421505905457783955544924808663906019939454177493056548430444322979964084458256607354936880901246406593559565798295820197886431418791575538066943940894961211175388696240796767611814903149330099021430268245194650422711673210698745539786204683566281884988921730629689388686348253126143790083872723190241506038659536295283814348722290535806545347134989644221207567266961286170156347743125301809348214784625294532870866808448070402736608994532087707254161864932110707312471698602188720234600014811173604172776677116545790573125562817801781361712820308032180872838089374273162316273750591529304149215950630099719407871300044502640685169392922297886050742402909657265735920664619355212715569456548307467572291812247663926526912700508132725118253576761795534622715417147773950600309597940919698536657318882365532650223995188054790835088094278412029223857803178506912649774340941876123937765636577252288002811547565325852002959311412496790413677508121590664682172902468396169296897101984397376441120278766782480896473243807524739053625082219539349802295479175983214459311251454455468086191612652599693161842693297076155847665443564529522985540952031686838361318732272000855014023862359173759901655899786464840574016926218147654653484608183047893650935500494135215055576068862088443253132665789911449158510354016798707966911921174353464990377229220862305763956438520602717510293024165753665250172832031429551319741723724672679932413211789513937867317313822490348906025850827229341965923984304852329769568700510635472101811161213011337707867833649955571211641747218639737897930982554909892177615013287724166488706768357126668589901548107874171608416640559692582619234711396456763932854054020000801584266492908004893612362345769717029267194367850087345463913186962691462070707857702673333772285529700559944758587720224213716704028875022258475731035577585450658951652349463722694914757603240721323812967183279815262813158435984490230012283210081304920153019312501389283136933266255560916698402264082548600653249719626539175937382129453912631064916973453901022276432536371675118632846291895470009257767616914312833762293781311884650191019930788508892062153155339519005838951902342340237781589786120168295792107274679709615875908809140217753144686377868278954132523643668630775185322168336897894280501720200166773739207277873717828754994446674705311692778478040124796556307839988256554489975525670050980644430454944519100765641809325675337165980713668997928105702770960650100644123096384450613210399213250878808216613446792225397039906870783628342679869406863864257621194369942429296670167229377074758146922485406741836980278109974020777879986109319430585135307034185166670177951870096803950203293430803544897706415609014034540127525063013589616726672903141365863972089494308730107138964743318603003484098456922822128436638146554409018641486123873811457898763125398045493955116855688658250917562088339640798617563112586584223582542189050354604045554714188349504718924360529457708473628234427328919365393172266079264319902118954643481044249186565785663121759352008970242248867533625842289564702383619477469212706717558069918971239838538170354143400063966327308605091155476651155206134053257777733556465515407093176500870395015198882699883897206039247145104886914818266554619782305566398084276129471241995822663418901173166860171642087185900861160594545091650113599007499875459791713568198525080407668855232204922074924546628422239437403964751397135012549781678140039324136924479006986630711580761479747467939871421504273126381965499085797951622113027568611188881850326803752873220618103037057425914854961677101518606728944754783685304475344646114230005399834211728935334050432562067310464850646154433736862021770633491971218408454563666010591962080363123900959655454310678071849515956123166947793123733735186314423094832676246747678812415844879111444835806504121303662372137349046260357345915001918198703708437010380520063413130828840033233876283935660967480298921194084635456203630190332071924203141630002036398695074342403940888309882717953954916855273265787771781973384598740731381067977508625031472748422839754472465394099475085258431850324597239581563423906430237581689920695303820363544467575046042687924340628031073057610657218252615154684460338686774940234483603872317380943923259148870003983166362014867771747564916716721202367101550884364087468360105180462516478825746177121002629265756297393776636278943436206728854849044970144212339455500439108777464477638167891540607289447533282286668174171739936795952551590834370670903544023922180297811904467429362166415445601858511562257571178511009825632027018047271898674005828502774376409075235529634634116059794675218757999156297702453947567233126506724087781464284978438106832469871388832466131694759553234075004859315156777900084250677291114150910483564505649179715966360996674524259120109734521639283404055644587453549377990271089775298794396950461000994810799606632367079497405648321482787013236500443019766731037894883609641477266504216711326590270026608373139253943682816338560833666024117847397974253614332597561575038677885514017924076796347873554861077980416593329327757832490611551065136898729239346409287117534547148005762142444807324479099775326092481658290709718131570947343743150169502113302903102729523736317193417321488252816083205735708315977612533776753418165173632380380025717431505763197218481862438472962758014812871399077735810208082438948065674244146316699839178582042745226560575794676762706607100968220089768753706935085537719266444880593858962262973682563143106534644448575591248569887215714478666963718481696919617561610682353541685812848210718732684306604712789627102569554692505157745841832939638683010884627317988387128538767130441794840479690721772613923803583822102323223036381173797909242079516200047964161968754169767003123745315459161645688088027689784501516576091649222700332791189720394710983786266235558742034292823933470299666171895894915592382656281434391470000848491843226602302525534031878492329309068718799053510107488703877698447230564946928753721284619395671203265802775272042238795953001562191982305987826699085603927180747644934261715717876210617209667521575152743629486144143326221674352492053528485409675704056681160437590967404301026548896606106243931455351505004420381003771161633202983811206674271576944200878830694679724519506954862646835872468425396284527865842415789974159100167274302644391313883513479580373267620181370778996425293316211879828228565632899905172741838461252689248005396744352395738261796715940601451526849790644727174344979975137084729912911508166752534587491132975942954676299267956129691260843407397098396788364161175337829564535868488642375177203939065524814528826830321950527336028894001855136646930604196468891307404675225869457239860937536303475602831762784968706057814134431991247501351023433567100519452879562290999499207441933532231197270014131613453468686614669642855486362609360910542808999464342822382955242521873743916309711628482542872231513206758969700935662020855207637209451670592963603809344926055974072591073640966870187090007744736229750212817159281906058698741147481275509193770085981086286267026317248739481803243605028984423542330949140958737075547078689453853361189293355374897941797432197835900810002430571057819657151521236827191589421706836041962970974472311259073737315613733083074726656307461087148994075006347789361017947058388013440177240401329070671034761244085118728926977973820923155391606744966663615796990792218226546667796333795656401608836391591192131954722493168325822929694167102916488410489634806365554959959030518939628655509084460879841107265102709643200538049791139044207782545513720663083293608106101864644684911728055423967540596563970940333302302626548009939825906563697263787888579765360785138987365185271026166032433866530591332780129680034273593653904816244874312412180192929219866684773831379132307705421990904200455831230592768204938179428307197248473531756370912231226178855018416054177328446965400181053933675422935962792531134027011792185825718049909179767367509755830506664439471745610062347005177376076997897297556083216531042749173740135410516964010178481024363745200454443072887687520698791364646449349735531308853839637489154412347880925786337855247810888943093109410982883512327263168558659986288363671639823112202701921622522429087931802929332011916409088360320215373539126776141352255415747132130969185002094204163560711218745374329799887697968146811112869663528193087952567534503020505184180980884449853916910316482422398801956558892112418930017000963128241867810220887438599575915089820965302728924500408405511057470239386173706528204753026109171525292182238985791661697181947325561251850669680682122968875449538341835928733742678864767698168883655651129363428311530652019730094178968998723222643152701915936162087556342643039799710033866869468996239682085281371700303188934389660863918887279901708989377343649215641187983562995106370577731955664338219482607831144130128923173846932333909472968533282694777909803024805074247469059678773073325478177058349860488575679979811514685685262767977491147118573677951031375572466113005413469678662565869647877081305523802618956780379621103099690459816134852411185643896656071635677166134126367242503279957614261176653279860532344540435891454002836356339832196227794715949747768091108280894130799568900496133836243009894609819996788675169638900907973653256612063370829837056055716130991277629214919145626561750686239888666093213975083459319699648889451518298889666525227865207557058767730530885711186089744228592721823389134864236339839501036332274722903177074410363850644884092946685298562352158115152810009497711509790809972656248121214229216773041767680777902995294689336347797060696793166191500777330442431147692213379395842710934556919632680316049099315315869339551676621777161820938464234354389417391955237805347337197096288054058608934684426102141917147882734650279731100742385609545451072874101368094733636909512174528828212813557928507861613993745533205640260448613393564700404504858994154680812055283091388575903862187325335385611131078860149661112609180609147398386095328603846270843561722312170752920491207550534861342096537174951933487803879962437334387857974522351292362207650007577112835397146121338315915968627242969871575941565129815835615188007646775709828472261131580360510013226592329930108807236999234557755421942645940759335281410443666033133575114049556327292115962397561001658325445557674826874593315132401243298243280365235690860663945024819882760442478849647509422457890919615757313619140117816041417561754020563086396862368371287200507242582126808937571589400153618003324160568513234234423777237518060256897527820548296569548761828628492438094086268917920404195902302963956356939664669372126335879981326016406726784146622406053712079378958648973529078996464756363724346387806006679368869945928806049552875774541797196136037465797735664181770995306415413753162329921835269340644420532373992858613996900458482140973514478161642655660243307409918888787686617707736903101853502915529483215682181208400307193318167919612314219408375775322104128828164915863412565798534290908790281356818713768537254784990387096502488153651431057521381400485357726030392139627158901280004354278506167673413426733889869479265028461250392746406632868903675581365738608619573247185520635823447105677883879182621233122983868201823427088489419854101647657139341725438463544729470426398640402684037609722631026147688762971338157209683460395307382429717191240363963148429294746677644562119501287369629490839397725875060908240769940272858875986615955354359584314726031166680811516333110221200734704196826093640391964868609360797044142792489319237041449272266029495463461030421661840908874526304389971701813230772145398493356875386925823369103998479649095539861735391838618617694743591491707543055616244673108593783997220779041966393361706852361026554028829362998346109844632725769946797986737683604728447556278700819785256397408672198415791047540104644165488809011333112132383909876046860429021769586964725199722513158632556307786436956680363313780248553129365464641480473901228899599313294772624348830278802201521073304277726909943227579607409542734488421054800137253987325388938293232634837020257937674838838170626846554882856364160856736451736620744376332605334217357984389680348977500826666985421373423990588457093851497681343342781184754090349787160358509954717794774464302836467119140810894549522173517902402248046599502114469813611192742296423819948836696689408887239907267666706930565285601102902745657321370443432380538638529303573505708321424341472757418759074806162138333923177619887982050205822826567164740811836054747336061096002650917325028136933661072976540042417488267471791687546114387493055940546405679573264406992349082103900304231567108303437545723772169353497202538486128277406443860033080273844229462245381359061183685355187043332449635557108029223020160612965663237745385872314444707242449512214792165021619928998734714558610693741406233612218558851809141206832561822255815710228692970356133493630073551965913779956699184921157034762807395565531453556526831916674410220443097582581643801504084402031880522775075576660121294727155747179860920457839143149831786702251675483208075120446678148353185810471289998449458270827988083197401215656421599668275886982480989838125259538689679688325569933538969770767696360530179262673416386369113582464433177161827206178243562248090467760178518052382216449201368027828305559793808016661527923802692822688354413871957073222487154095998358734092911051328391503003122162576202864449944304574402244426295270838160658072466985853426238759603543453540470840935818092927169393324856889947752333181981109007062570156271158802104017286773400523855583798822949172510909848156537429049692771073363068651914787097353062320587994973421508811477915519291852436462204583577735197975162614175895616619472602246556810523540221658972967720041040211035195259000580191901549577339425962187992688891617544881737313052983108299260464103787786131017333013826664834380554434606294724325621615303624738992141831933834701055013694729881989031397708925377741344997618875363566303215389870909293671417098267899799191314750585264263446541817419624936530187514506635145187017012602712558804276314651768491484116563290615819576134461662490819353596418905769895083727494989914503091951338648690100667505569539866168802292652689079351376227208993183711934100953313900700371923501341866030845567302171736585868642802353937372711090507092641869338336198976819085231700071428766935155930738862209667460945042808087877758353102230659281453345020114283272307294778657145650546416571487458129920002969599349132366035237201871375292582095803214410848041791529455114742888161610620553672123302704907906365120308009318434406397687367329550282934064354410491392565962589595125105142957782393227500044010168734912690658861975994385558332639740185390058738874732047115031244798480412016457495351782917528248663456925949382808862745177329840496031936440031795091476917254237598110239981686050960218974779657658249937472225228186917108675947192594210060173476699407474218022401205907249906450550303148431371577625741103253667958526107872374092211609231059329775132821838793448829354872042548000019011614664339968244661584572257162432299881548497567423649108107567148471232303800702296029202608719808929860183062555200032986623260397739958274806372477321524180028382243697656477473975933280717169483738471071710590828194295845134619194129612185068161523322077725681590214586324893379480922364758822431709256323713116253243085689816505620720103037030561351712403684462418731828770176506595761203355867778096711939212305461087558501631731198402716247767365072995262457978306209004499247959007801478281723338937608427383012021511584082723459961741756017710444543249766721782798290948945472705919588338361711371969585100632288057128892684522774809117150936714015457715764983436782814616551426620787023817786387407238768000219501423472576812516407029406607178920684463645260954606860044336185390848391820512945473957355464408151760761966994672319414852711819165584556769647297615890255532776630487797431139170004729440824666546895516463300839890887171276979888008801021088284127833341309754653781813643919091019102134817646791907967709927623298778346252130051620018587364044756352628323322523851515844990266271449149124519507163569757868253613928292507801514424490631603316516555514521125102979191010495882412737562230062680662810185005887868804693981763859643259371571691470969769314395395340663172974210813238804105139605528512223813116342714556276148019663491063269015918811159940521460908298360704967419933570522691196191146287364579516069932033853600211288484516765606130133319910972450142745778096980393122335142642907606791637554197147411295886375814011701809536887482158985887438932294121281718468105733803240327201402194018212201889880848127847956439670143875718835209066043101537879190014353679203432177791354848934317190530096810076575900349564673140845041661657627983702433814731391278117168200466178170630621347104825562311796130617121892199425351554728694946596481614629817673216634847798426337599288411481954487698001443351164055744777198615588980393439694462263012913456540143193017777763420244726627703930597949640175524606697610604890133214106151325390131021367557620830018101101955719197470042739858381363160097809503857863230395790881688451247841210096202308238849372299843185637202967984408167519103086834113504827575051406679508172261188227619619947295007030488331060703343521410425198969636133880685019724066702398449366439468211348580371733242557567538020847190940599040029366444695268003826837527282831428408307366199593794524641614093593662151294194072114944796179114358514758985978832623210751878986402352454570936233550153740023259361338545620511673637559980773134199656327212247387678434061324979724894935328068575591821977393904073314285173649505767993121230767218596604330919812733678875676865373402055805476374551641899890236075748646625526179128915816460509064300222430847811333115363676474552480638318532323382380000301781060142111042033927073832946126760530013235695538690191608840064449951071026653543709647055610290731750452544715828461758590566709457725418791046808630110403690271389126221440194181004886973457079266767796910714399029962697325207400770656877875874981908203664598710245212566103130801147931771961839030239125714415162636391225854852955778934657240090806657514909003197935384730158391837868951518808016157606933448934816789795818091443392461837208483306400957390962418353301200662695044019062936469990962176387590995344907540903128881965877408493021539011673153702521675014761921074441534594071302456138425924377077980187883019183762763329611819244498416837014357143250416618266246114463050912080804791604788526884153042123162973938174536007447420825401291586085851684260853219273567197257998577321556777988900564994125851427525658741191513408749600946557230543120598133036121203142950227581184459198382924698946642818880944756727432555286691799158216567588903140959558762609601787054960527101401890151860182790914456320383519176461428208879660456313946096639019024985073184271892437088780397806780389341528509436211641967498985863104227035267560140993421242262704412274285166213310996877682373419274880759973374812916420550936699043578180645115188542578160210507057000017328978418614450444931980195975092014484335994054504248510763154087109160478436021750923648331699863258876892747892817103363133383593313982557139865897594663693213773618441602629852077886007737694035428868106153640259796492682714580749101558415035743576231233937963663959232246755617458027957546613677767803320741983482539060664144359927410159247920888700530914593335735339500647777717356110335934800050129838924857991500429077588271950717589131708398621195800254587416367004908322078494620930829646646507359751459018211836689825743185021810120486449387612187164474414273974799878031965702038948937196671786142208281885465040345849800349627430359910257761827158583596928763359068944595117526793817282945246910389423903883857416663097588112508534573648978921551350298735299156310882759397674027629662600886778347654505773472533261787139106423569648414021589056750383879917829815580339932136760758149262329305114496558831113359560093431715890311298125710096224631369360443030740353398657560238325931056616043157301620005386175193964121569810916431243362817645703057872371277217580403835424371841892883044976357257087352024727900182703182883994063119633831171416672623483335857168126796685483235725934287374510305468528294562874851003676908006260028116083375339494256034637831123838988819115272892775030832293967347077052300916872991322305725335258639138539134493418849023584132309967621281984927608690774197459263565423891887925801109714133941300336718442255533606275712230896656310113098093667536784184660552818782162589653473207911924952502093697007126899669410535467485940980807515025791648419883202432604980881562116914008539083829872823784039539964691688520292269186303630812577241756610809437803325495013151639269349285337086696480655263341241038039797632299576440925411911233181373898779274854222377005741544978571564118468030431273206076540894218066984188363935233886110895007325925109457887214721117284179328851265651379549097232553671548236564367754113003057072050526379247675084883792326137038884683698723837496392505687657535459923537894107736635782167959029903513420016632679883875874739788724532102742901586883493401400379708984000343451979842698746720769822049542001673812261673717896863531097398702125048174359570344087390960015719598680336911384531845005377951212972208429096185375192773873006429285859868564108276379128775075122764318276644992553884295304311996337393849505668090656951785171722743679498296739897097310585582655149652823482191492347883534513588126840064681890313140586026744104071480814747074164384590645383084673583293673635173522241566840532221494116338383106179630331742996010174985614961222663337041418292390659433812971419455466931442006023047043222122047925351321152412870580659331076485712694994736234841320185590916586241968834221436370665048821646851168718746531677165909406715912727762035637038876234859251690483283737375367026692837704299480642603859640880978947991970807303524183062004333991800441831604763459046007696004309513150462370396956279723787507115202099638506588161007828665499616055246236431783265628115308626484686811927528800995290036249564913649082567448609891114586296112594327492056536397175535403877760716905077047541450785000609755811854884731647655135807236654330126591939822491909422957148628300030100336802208405576491432755669989270906103401239865789045866698831989396353287306528042372187346728208768420063624814541097608260215684821846197228165917727120296792166710359800056707614378157218837053178456736189805853367102142262765313116703319406559173729674152388731584825090895570327263943155607677016694761570958078981651807782893301489565689669296314745195454905291885444700314622579909098944683275579509330600229571488039351366142537480376079774670585541506075875500402674300703340719704586700191196679466230632951966846991704163649618572056401182627329758728080272264414032213698861704482415621043309608422697172694290634150053433044785284011560070680193159207246854241789877825210515141016423055587823445298601162959230983056025359202684075451706456827097129315228412591461416496563554177708857409266656860434224108446746122041122770827471118524752256514864310386166126839437797244774224617184616341991345246309455813576380018199333516606343875620331872210013309356043275939873693932746727318589643520795502522773978203033769006715757941141443680304309259551504556338262552915541814911638101794054558348176895018990825193715712109053749018126931310623461069179139983728692225271853129338120149941819688043646928204718927198036451969891508263113217404963195664498901964351319348295854008384773258241975951022646049039311283965630511557806710087278549882536040296731361979797699212097280945021164928426603914755308329450162640764733466241799425413606258873195271215204009032128823743496483627643414788324057609610494902397906432058018139079095774771925667107669902166050971386842223167608846682066554317803403584830561761972293429777933128461408385405190867158446444404291314795551225522507015888612178435811679945546699341934381525558805724367700275741680267059563420322761451736417919958102916387633049931277367816070395658467535778088849848264451986193897702365190311198065183083310361331060692521254771553206360772757700542672011661360387671089617930341872765327557913503057975210123756911354250144252560888375251903519399171676970952806602685604758117535408259065022475884041593955375079775005066116664221404615469206234033154707719936484670439725728623165495151671882340495928917264010626310076594817642883198953115912877314274915760010607961861322204723390194791028177468269731823190060662781591127936749546799956296086252650806150132260642411030811574618871782865607039686453429347644433367734442709233284195165748862845947645578519723968393509388080811221300017704992437908640505934479048889293745637391741251540922358520961217487174699551664617216331891839034894955469629034472590988200944755330644889393105535007271852547833960810540606617869927946545457359340487162275882730788550118575115953885260476892797992383540151118368608842646334962622881003036762360414000891193272513860897187309095092263755257156355156106538682156198648416562074702641453617327667921507644519098171614488621881602358934813160235710988938681040101036642966719049801820939298193724995756489234733812253345545059944523787021857453263824817935361317635769810274537696019691832025490677747756563303805490070155308901657221023858759084576183081263675898983854645756715739350880178149204579352914921411683366516131317900976699833004984127544032866962456628612331824956595769654109443175967501444875334798012889476700108469079295911440388602760105969081379714500579486570816438912457129332487516858585913024298268460022931932237715310469119263486139791521393166691284396210402143636478081106310280731527116531201714451025143267781405873529644018539352768851973757167860271399826312330724344245436612904187003190326776524039235984538415898651627629452989800902407769953980105848159130415053321946395326487472392657922723738586138025699303340916148972295669033005768350300126150409866041735176013941705149873256583212054838425116630399959199697669616178178461661038556599321915297859512465791508978632878378672152021361383780347736254643121916316868011801426141508825621468561202495259870747977516170467826830394428954826983088869112015640321422557817072666385526707603424182798267281086930676164937620695581702489545758673950784511333023304318850037522709255310596799643495549405856818552051180780825847749898834475084424950303764918476538730979659153082778226203998688868404179702946584346935086796764512876993317079547490757980020065890259302825171682161127850080477065542653664641586301609768874109163548507014459426177569551855776655324903373916518426912361837215085574689514462833651453221221829367437995677653811151632839314987298586552783131116695873640748525545465312219646711150241175980932161228877740578829164852839392727027485048572962649600895942355015952513081957808455438512881998305412805529171543241997143940609418044004889994949757129273984828939384313074436135168433803044445238237245801338108056595720529041344703243179003942043953953807066203705888256251023467128919579437738535240759554364340695531920695658159059882911637639769683738689135779716272153322223724003285608360854090621524426933791599407970545091363069216491042262744237033020956140343330505255355375323519538071497821570303457645945028060925906550588698182725469054196282530641977282060641441895839884861057554531909890485580873800729688355024379769888957035532851118575602214331993692125908745079427904436119963788871597941608607817787084818709216547771083447767856270416609429222921194802035120798874439869919587962123749950694301081974980462662478428932292101228030524951109134522382071945450384548325983735332024292076093797460441771276940845739405279001543576042546133600060972827659611787150605764594913473730796996086907217442794774086604244750354991440695894399623287212906396865334752579150914082990055289840399808899303022942778448954770833748956745599212705489459151577539705612944580670310847762607680102529549849470635847011113335319485217561477932747609815410299436055437681015515636504594720916566962343484459342163336024919084239374243213897820255817172390637692425964139310846878144111320915947966769167476780864549033007999855202751533542726485748008742395804166976001040475912828570321799413335548332491857892992520844107266035091035109814966363312980890709888284925365808117955120039806128236813237631044572875739362159326199198306668928676465582241303214523316464682006346312220616069046719805953618618006099992661731731792966014477690345826181796260199415833024954656276216304904238170179971305139489142483018873989841727181988176096540876020472605303928861725730611255093492120911848514919466702421354285237422679245505784152079479971877488852595045201525092630334048788864693560226408607268715350096805767208459872277074133012038604323267646158253872195983911076511854718912710940200183681717848334173420206091475488222348637483170541622257950081853073133940137171970571225095043042031098229451199953508496265289792400359130399383191022689544505025104808314740892553937992985036018461015766195370850559162560967051558010866334662309952898988274159841847524654533877816916251285305850730293360898344821660552390740014353990568611176259749410055751654310204339751138796085535735189269373532236749531934282417168417108311228736898253663186745428956603637711528029354196505754975738378219589263412200334614604730310044135616057775012757974584416951891134752033857267652768087730492714422107246552737383714984757188708696204454668926660429070337793112917042725993936556069839658455201821658268126401041420278706301067646771282524341015590954633891263961222484255413291307291979007959087583209578256856505323012918426507995237614410223370797431732660518274997822219810847648336343323938529730250996007689405343874192794249562185442988626190423076242384727170904839465206743993181711254225517239495282493847992056406781510341099795214797306758010338005106217436698873998075113842177337498724487903368251581509449246415804168040616842606422904582518474703837425896697576016198759133020154957527871319349884013591134338170736015753841109914497445935281536169627656738403545891599478339604684609298107390536083770369038519960958702024648285550380107438414875908090020755161546116305688420649502842746782974196251280504115782108965454261569906169340023005762326614755032607642574837122839003679076743974776675871743535606774932307357819248972442779229665663313880202310414655858473684384403730148166009221697023824419401252387859831571983760540981405853031457270719793937363788155928202226640740197744295585472949116453753706001025788572107940359690181113302894129473886624191671898206099282077675215413034942324193911193282360579996005919251937070447354525578387437496658590391605889006816013411592213161345000440449339916266025566499792194796735401217211006594460515960449845811853855762653908908308377156994278603238432985310780838429180293936187647961486773003588716318251745479950826165333297374066079385164666737485648114984145264062502136962268130515198515612884189600294615274952482644069128529568818229552242240643572881300886814964512103739470187242858685476201631550824711262693483782844223793799870229408697686676592182777173224815689424740952693182345044050283651345976960445982755334856891570528706870651159661717321859160355512927796501529587559999974491768688266750082821253812840981348215675081375353887217921976237220722557379220314015487905231071265012099315970250895233863851210427560906426537390084289109453894340995319873867573000114083617202955572692953839297240826538286925218856343665845955444577653544708189126477933737527761690333056503999368059129036605631458503444366039434571788500105517380793632279778161090759325738693929390732893005644026311562517726355554928327100294139246354239187198803690153338504811581683014655249332319041529895137973663895184447493937149370600782738667632688306564383240119669429858418452479628948760841693115609091187785951440510091164136176878409871186489029374426426431713922546563502275779796208384782900096967106188759289332600070620223904375603917997118659534903275845291190590461501740129873001680367175747428724217982247947110585123517979555051281779339908349257736352654476435610000670333155345167370887199644647459435256594270667117299769888546716051930654214807190501404892599361912144532210550466530871080204433027246702343654040923655596833254832298937226453382139116582668174705351078592600270349505901192017530004128227834659787193726018948643840812485365584471198915565134108252642446876313622278458319218140929989782529798631351663528207626426626758297932153984083212049532846976610414010442440568316780274091123870661667664595258575225122968014875588958342933933007214062441116684282396603876289272061806573741614399243491326026552986218352687717816389459027720938072817836957211201582326733107892200582888677721556046370985941313578272674662455906011708884191182098246107198035478375315337832402096929122362701633973388561728059059593063331566764333304839353933313072045153530696091195343304261896470437250843494029213359538098481318161890377253859216856787544428041483063292690161441075396333066180475615459707009101566900843320336239808357814820117446596276243997279874048234084561508828007495769907722849936661873399355973415912832341506207605428672104686563124332174782653734693363240647218407214518800415344888681739632626569360902848649008755935912493333842652761838687607887609684714369859155040292936915889699315907124567767844435525232208109274433680478485874281837844745459551920941167831968833961446436885149033765621839306670730802146518198128121146078509896648586797319978004603729677882134625274923208713965287353880144211411492998213448918046625507292799405675008621413110063312543319914357589145742526290996138660382829844022048634721099074755759075660397564931796089270977019630900627511035139819456799890851317758812930648459231894582176524573245921637851827892995115492008822315254065070728211735777362109841115956537986659432881254227127817914602782099061039029449195396097676537072358844966647547587190880013171708881972965179348940054665685746359596346051265092426089543502426485685486284370003345218628739827746572315895575985793043147508820024317859040308910793700457675811411305238958722296123106159970228190272511859894618138130377282276556553815521502949873054342981778184640229916225290917028260904364482276918111916683534279683648902753776074559563025694785049864801337149818458256602075477296235496612681792419144939935943778359963551743546345211684226609521596539995115926975874675899334793343059111024333015061756778790763736924785588278110342294192504450307885000226299744120404439473052911910493243839922412491347329760111532748622391799220776615615343676196417259760711020932996543753710937803305044981323286045326233002054687444813765910039948146216660583753636369700483020566618774817572722149037541474548969110757442386182116496786616682628486509994100618004622817951400633788111502346094003646714291109967938376192092656194087277802739228186407833738305725282597984466262347121138953273001748546381800055538032311027364402187136589094732846910561194881182520402820286942912814805256673186294178818160641590475004676501919003139989566295718014382669681110476066977022090199346827802262170196509288992807225707265896801179750958470290908085321600797703527678279628088272531259228425217492971626494147028647327519722942076943577842699348088580642532765663356654382017268682263880236501661190449680534878662271515228451572145972422493069076945316670840418191902448843114081108062876237800110182149740758038548541323248951771568216384869655395625039940820631339871369418599960867423711873879009043333084466262354932013465460582396565652750213853935384579516899269455035637751319151826742531243283408464167449326551556608434154273754964536514822912208765201859640446321496734451415774547879883734877592024926630343301161011274916612246132487667414026346806227961724103831820815951464028914215646109947537636923045213368389957806248473887493461995090368219804595728367515663251198151237053638343218125945524688235001122194098075508097882431223816974007804448717577780879334284377912401798092466347861023721060631141575604062913518551604111481529673809241190685974342584840208514165277147916272066476862979650855271148576457225530061352853886588792440589547457997934881343131619990112701581779924113776705591084338186688674927306045186400624241808624959394927719990435175801914428847421991664429357544239570197453501726880292801026051056003908114002508744676022738474293749380361705567797204486792192002095778763433312092479545453081084211361196689345043633421100365129195086171023460814562958792118090169783822811672974384136252157632878671640040362532900278526266072864939614585552098459327757848822935527938321249925045365836005572937834792898610555854979356492377725742951675274727045496129145206751866736151115237125207688177544520153562961574294334534894339284282390362009494855663376036421203201668865254137361538950543999797626139978949103446275128782102150125003814141174517602770379114961405110647592944819238924830150222632685598177414128236385819939231193279876600233728198896666143037291717631349080146715555236812898715852358414294537272127461482308199456114779891635336809804603532753011545411737256847519755185398077951113042202773308571478635711400008476498056143873350876595526178260878709592116454760585200742262960345042090085025700535857226377403030955791411968768939055285095456138627272080720129631435962343231131679719820439485864744268954895668475252529586317720090849151392178056627509088615695795163372766729514206992192117675029498285455297877830394371948588366401267524440487932172105696969151577011059825803535026012430786824514291637780794136290637564087426284163839619462810929189264221468592342230913088682820131324130830483090038251017016388173588100098118475492887288624142759480226903868513031321886715572240150312430887092369363103312294768136908565229320714405377835874380325883927363367373256357971240547671052609626235234321384261477087711883774454764811374905598573525303106804560039232223643735503651030364202577470298901863680583367557829835699872408361433542787160059929332959878329891844949604608370621098816600769519884997014703150580900615477274244041000664094072376194573680089653687015081907995894729656306450179058505055835426577119239832692541690247991899841524217176575546564606602870039650661229819384499882707902771782731003209610454318376466190903733090051074810858511486769801926217129488622207028392133929238516017908076839086086733189897198892936092975267443488101497876701918737000034745718290409999758657921328316136198798651705880334992752618622407994107124835706854675195599531555017444000911068934966955062456596912494694556930918137084757735569134420960964089645992867038257734450808023399621292149271563801184438373537306290126369201176834105395808315354647816371899956316543246904938523761005413945236664261720325638393463609710621705945127878107184572899608009064298345796091457052365864429305109095486648161235577696713182720045835726803339234801591196783201993027921505289784875289613784167833991943627270440101330205306751902748153657654325258684786616900491845361116478338884409744745795810954298946563033634637927996249471071218105735822442186092977103496436711473114562723078838132063982825760366845638837653522700244443720032308742888956380353857564934283132096856106668238523650532083219661255731231935442490966350796205748383198821225011924735165848290412017080842746785966910159657210116593638681088892454712002227372117639977969349570347256033775641059881971206973463907745952486417637193610188188741455820772627992572534323243784182834017953520500213237124876292846755809135695002495005145595861048077423165726295111765425177865087695800254213469941577088396912508084422884896767926700167687725562073715957979209158518152347047262841045841742550696714530320663093073472147432490313080307563643075453837310440250494165170075062050251072455400846019833768197660224387593324570970820548271179184148272808603623761961877911646502795207505763319504152678206177656825093801932234874409011134646722755793836871673262651456081495100755217100036090185268177035437916491364647838457910968822430073077971702736967779801361667280898647794094771820726262426192568011104952992392725828341938166278541248749397164571446888254287961674524943005530563193318493598978732952119203140030339058088104851069959329839875192554233925040320033944316752937374237675291812037957982851963883092468832247497647261068931138984166342411145281570935909291531500281047982880676937594449013218626020024098055767843915595213516224510202901698445995030254274467753286679436017752654087073606086612013910170827210765475395417161755063409395976431231011866464653934831651104163643097744870849396948020237052710806389753792770452974016935726415567797219294122406116113663698034765215058747930367351011928714022246677100762390290942258052764223280457394029763876945306948364776441074407756960405535084738844108202808257640581185312014313957320381826071818859781819311085300429921479290290661397824001777781720775868773616836189354119065861820766420484623292426455695603389764579126518895985976328005600955183001510203763219122718934119701456008739458987244137828497407497329889596788131874215783391901739276191617612461064478540421962455805047037029987121140742847902669466207963996731210756654101337208439344383063197502157862407428186553078558302701723555578478591504809471560891973673201386217375460046336028691020610641596969937013172192444614090836170791565957928169152258732840006157831160376659549009047092130998534908018271909243838000790063605480096639525335915690537165986176918199724804780524671929117879520344676083559201282680946561303660079668199404609088067165212721738664176443174503346332815986637229383801374195788012837405767750866349198596195920399700038997106896482889838255124336568205078719192525758651748524956744675610388458755837023053935601031523231191510001936364001735184010661604946760559457235405946332375098726036116648152417225138099987089464637101433108946798861990041877302526704063817228214529617581617816596707315456156352138876395358629093774807180316159749790121572262144573948821991918401457385937330283719124139160049077470895491478679714732192776712199702596573238742756789687789521524907054891171503101790150922747301857993016889964656349941932770297476066781572387784097367696592592257411969545782496894080627067171825147687932743489619426512112679417120143881479446972550640097008961296840462308164448972689224270649883013680379633051483778763385462331671150387365327957415737295009266689322309655581688758077833866069455213681148466205572457126044197086366553861198041106924375538875599615358058721713970999473142472791850121232430701220901576205217019586289292715518292783201385522088055805019456767433051568672901078017184131738034023999919455407451570131657748626660269889779450725874854515260983745115058479903417086477050020393285987709568827200544129629324341523821518722742719010266501943415475406727377846373464577094594348289538855663677711325773457974119893375967133762667002553553150380831363449771172484813648822596372710623307674723545225964798448880379477366148305794550367823204195680353334852260900675243940043335309670361131338705604701054049513007504956236379651936149481768273060305056376444641553300694294893146739674587839664678972239242133221488752675412263799331514920671471075911702360081106710685426154565816850419846298780873176638650822873215065483745304842756246052575460576653065397361621604679377288931498943284017267427349836874980392193099853157670563223278063866275032686935766461765355814409591878578034640160522220183638383869727197608648464173446952248988338788433262576038855649619809762819352814791111622144054297909060555355291259284128362931518530120214695539272868356811815413554646548998711233384476540263787558038007570058156344747772414547521362166171457751391610839338129390096909479681454527782726390614981144035917301103896625965001339159839344327842099019906322957461738015922827651009603937323940523463848735877220221115078908380010136476265407848608069942746483869981479246401141338432398856873400316698060961434146651128223625751810667125688321678609676873538518516553839395372066135387903718272592849737284310287143067410717005627850368965701809167484194175910784601836047577629809660487525223025168878296738842313174011867236918051716812562741596760945919525827346708544936046784615246685904346122949844672884175705092952807277042841653543336930605504493996697477934977655084730001384675757865961987634660155913751279315288543238711494240429091013634202979997518450637532900348119000802847450970849005554554335159064490649673310846665801324932649624370276388035468610852804697141100792849565983197953888353886874449571561987846486081551908918871085002149537507968355773724805310879695517077493757257418188690079299927531662559861583421242130979017986727401135303369694209584149884738942450196905948459755781338217531096359644926890571111289727200006879142884892235628792005134384167841065136132067966072599999741175854933595774917924859868458273378753131949154875902569386278014320810647402012251121965298109285503219009922617398579431198609772298283480128055599396958040427071056500600388092030596323014871821314330606012193458839826514508492467315938736826267216026690790278501823336617408714812227794662998506012620685571057527183307427671180870017571959147013745766231920973039507320873765666466314508915751275120278012880514652327982283037154304942809486182102536597068506767660196648373325421122897537723767696812396357079150732124552083612779938439450531415510430176450855186439400748350237827794064683194935507565087636998797456963237136881913829085263064427182538844576648964337107927321455731694530698431391751513041203785140597315069321061269205373771822127752650072516533185026418946883458092311466991456133198786100760705238182989625008124512165601295867505782394355331021268828317384395072211186994993383034382834506371704872118121342783210461083352185333764559872080973898335641776598741671068909234955403801970022996593645117783331416336252107132752554321310998763037921135195768423978543377168094124764870933044072989872525251870559777789376911549960729507001828958409771117991740753511416158449787038490609152698876125596792922344441820929800101674659570591708528296593638486930259401911395664924252916500283016665562037794266014197600872204116709211896211385702067743789323409972725364232199835304176510681127659731855552833391777065457651338549653125053301750538541237174211485509326638167035257877826944601139187493987412230771118574772164863982442344847083048823529592354222411978115728638532129734925548799788374773307698326139370803085316739556240361016230995574669776135782898582322280235625999477357019905990180933668613533673599854914594503029685577899539616717484832010041323830512209752572073051831639765619358334191925063221075164850147444339356141895091902245633438848620469355935000743396929531777610701647674864971193018427813662481828996103451931617188791348102851335486244512645909102097053314253065801375112342432181067564538749208683663063348252978864297040039705681180665524864353487777112463563185336954371159452938009289616177969082037645025595311421460702158554396361715819834688072117957705841536392112445144547945994400865851880964503076430741670593001174322166304835126731411864790490066697491932721565053076721108241685660149708516263560344281456503442514514102343405139765649360553601277489950991304294325496540896891192167654924210538206294011324244013917954086373929236615117512006291524041717066680312520476678992204715845785943840754131409979139057160326217168520956797056930834921715868207509694640343101676213351468038061595341738522119025029913996315291286098287401838376535409308483246582596039462381149461594452886411745168009895158338889474110563775786435850666678665257782484426180343901722548890779645150710418538566273029011086697977844428883556211784203825761212268022290198190999026765637576818497487209402681870219513553000454739015166010926332449367984168186521109917156702501194670775147527762865224450736479476584799642853514240345897138185038594389717706334167017611607636999927074992368406553229430301699775385473065423584463380729044540869912850482467769183033049006950571318616397553662601345810842059911993875977252381634148689404942527024556879956690683762787247696965794723542036001602631215589101817127562057682783767124267964351703234978170544357858259230570303404678589526772576795998227209697253411614468038695183495259008031510407537991667857372421328725769895644678282064311893846796126716952471622010428518510370446741885552623817229206573587721221340036969863615125383260148096216799610100768952451602374395582442155361951973274447985100137395872684017464286151195509306382774888300939738598385043156828261496817060022349749624055670259909533479226547180592310075063341046826882320198661091260684895829860706118127418812107015756455271149370996455056357966824730159372306034334765357589839827057963511827594781060776940887578189923078792891623603507520928886937888126783839133465913565922057725954814503968898513526668368875996541247001893117978585183201552304854557989677066265256569992525981679898938957729619254493360675578099414955918551138313106864286056541220450264835819890389143402129569203376612380884894086124396873663668011441463698361873466510896095061140214661718850588971056576695676539178055237996848988652833302286679263212231245222228102623455675119440154768066454723170921369745825446078719209564451533480587990506515222140081048794324627505739809311510045765002947882043741195241011487725216838026530345654067583012036618873530125012660582952603607329207979770486395516269935884503134336291448342683176406510822853768172622339599581713554125259875932393557686065670072753428047232400057087228293888295385224422723498186957016327130460144918832572858765096840940342299545496631834180342618143116821782437031609983604946989018701451527213809424674017469543360772892066196183242065090229495346158153109520663719941862599766794100843307094412281110639248221922091624904227989046445831189484390309967451130059317334538550361068651786762805899412781263706094141177209591528616087270052582908736605480885218841938034556843552036878308202236055344571293387348019967847668012670704043996794684279960331965850777040730913031877082448847318838089751910116990461255032196942600667001315772938829861455869386926540850586151963328947734997148853164953633019895048307709554956386189505838246616141926085506804373014005724590699873656010736379685490867116095478498744730531369476630140067236440524802218409548415871444113035931559098082864021976801945138796773333831606422622420302117143035821441744928785591374272034661613171445982668900907126507296885529129449598269645726894016965477990567237079273847447281880433498638530779084542642439302906043209901369979859867424874447940604090345308786920971111899744828623209864000680121755491796467583506882195882492171507231033821805769655949066126138218741401217819672045755510523382324849589707630206942006472367617639091207581993943099163167318828588401859124535440940559714639697166799730846165955308271914445726315087501179151733285524567528221175933831510929718341256936294208930204525312937495219087068103013779928845163103573899900173020551774814577028436005971099346401644453248396527952971740469227792510915938784034030957656570288564372963666720070621408880936655604181852979881196997332852917483712796978916399876088724520914117060533725045595738860457355119766946965540905985274978698567915500166748389837937219632333610072519171881587788249706321174837718431060289664689367341578762699060093393271011946309964391532373434515111641607343891381766303836178134951757533205455031370866855641360709136309065458961626335221378587220701315548050026513419068551653084977418306402579001193630886603441064540882712479220753378681824195552577445047992986958294633933592201900578481395998324738470137843811653476569945772921976853316878548373084788052712759961725867659677624217415685755153960942432502654420728392820884912298527901971211261864871479194694713148889633418938059466389093840435789074279878179657190842401407151190554923648034111188279156300403736375077478257677639188395847086404582261419783307495320505712271386837647407007077469033027259855258907813709599845651670688450970801151649316335064951357745361531986583572199898746751555880574443255933728099227864803527196272330874184568271322347411751296320186554254115357234775047059023849378399797706348945878191747730949530061528602524296256743402949172904130930969332143242231330188181973377392380515565745861342355318531058850917776507357022708832723081641338035766323000836712751791260471712048277519720987422765579811186561541938935994660540702678249828474782216418787100368008279702359246366048702895598604123365714878122819839755693050075100267396616147108988317017221207042901207850977614792987220714473746262848249799774886485129584386527599007152138133062184304369918168944074531526511206954997584968497556859558794779661036382066923267468022573439370668023170942898368546740676740036796775752289618410687585422794525516766764765847379603262699810315804180631283666389607146097813037485243283056902325812757110882396754473944678631031791673663514975635382054635502432910912307904484541596012186043606537004518726860738034298022323782343861403211423517323236489192216297363266606249175775736392760720073958536741525212014112725698788420671472307167462030436520385379648861942818020158639372362695747267698570610689498145165721959683164961411465950922045216336957969011080168544504677329298379127597794273212392545085561787580825327525579327648001414404081242102415713379938032763238928901085124031554940676128267156700231272884458044697144167222330792801039154005884805331306032311760741744765706463241690724720647205494862345525215693266249270981893281724375817108191402524787154748926574611113246170545659798839127988695631263070376038061654375297439587013171542858409167126196186888812617893503261875716085425136959968752593192815246828143447387308831435272323792018067539977508175261365878833973047721180462346880568218066732220711148465893080586605930889811483897175823384653060698115607344081135945871908724121587383020862208623740946405164749318205784381976875130436089678055755570287858090075802505376453094513387116860287357822893511986824976330796150668874552519149337779173989698533759440538010781893792670100496440495197483920164849442830783520936147873856259159689243734337852893830448947506683601935628740670802202094542303714552638408470089149892209857334264357094798603930935972775568780369107465666213050963859631968754888683631101647235545968353670344270172841783502861643690804198370927777898786424026525098675442255115149750648581707624702028364066595011390166323741376446650683736487263282238869700578800095526872415551933305393284051264728126013345987351455654145307174386204830047222850793038827988014129855284955001050854676274816351894018870821775384196270016024743001662716952786389571003720316689720694867096563394161378451285983059198506198116664384326525337575554447873449012553246392066447136140183257137734643154582209767355127408965146879285410767461895049647556657198668490060974176342667660526935527973850460906500209421701256267017349153544633159418361836581077558217015602303150999301135639660043560517711923798797905371091737703537029317517229279138601173346032222500021872672862726748030763993011271756737386249013802709071415802395727030494577494316169694144046428262703254335200609767170535997191520724252980156224358078626528114178013122246871342979939262958814000613224747647887839555607254532377531202347963174001282447547226516812451165108241032572303948675508563418567113076272126571621158035981280330856490083580326036284968089016991239886333900376870760643961753226257284311370441471973539320692970299089056390413118339443521185206891484114926394931192410470190197029599528551808688145715182404236030933883119865905267012684597266004576516318508572667250569233420555239223484962124557840095749635564545907833859083318136217436681539617914570184817952473639731113171175645675504849520166257966258404195256846648172404032173266822810599819868146442395481577236866472805798390793395774452913449095014159031748701178540753804801846026194997589848044618350905711111311790528936646997969955021046043774050226242800157157908320757756526141393565742215275343145395818937331866415182803943636586110884577437280128093701875596624158485358731895838790149759837436279067789543544951139693631225143052425995880800984892877179662065489262265574901104521431027953103862094656195870908059713705711134070826036010322182361411980281542301983592713249150640456600414968487290060463059359434895155241304169866737856879987901300540643253346810117405090813465722327620231692509709357413715510549057235720846483502801284282827687137464516996422924344896936713947953387822494748863271452171472595748085263928987629122860170705451735714482997800094066862176166315090350672901310402516014507049485148349749578650551083883143134481924807299158585467598862127338957332714421290288128212572285549192972987584025095584888192080667427993946530701701789895986683098680726682612090108954035671603683580901369372116242082464654952232760493823165974753781557785990559059009905731682258735951743556930312403911182077269911784177850841498419108776782534959353956769282834339554517258602889417946342296515269844667348006648087633743181198362854164452396680838843186284623112960558618044823814072847065996897944083383077193017590720311738851190193015228544978555064401311632120591924247293081103149337123749958139665756241619280709955524350118038522086442194874813118657976932271147259297392800376082686201519278136093704288036842068784369207789536714167969997202442199921318690702969765195589417038855306000746179374697363906267469826058101569229631308620545109573081312720039660962252328704118359499031294848645899965521132036978713537071700375766582895187152686671498681274834977791262944645292398804713679211712322470361543880224748289656496637641023203840697957769347139682221076641312769432285630783144730339135231929635815621642575804372493153297200263797534465474211456339704466737906133981999824418035194192456463149468217501015606570107118371813819441070113239091797380607930572767808604248810570063077028548217193784993489443886532074444928885079386360037800248112088860410186196813551011222372387838393958005190415410733875440851012703192479468555808888362081402547135300723906910641489005839657581269614817551973259364922485516340920631750712918398455427997617208858963389165890019398062404289242132314701457463159767358983146808835775127380876559023788071853695646932103000141303422987545500532809355486713649086726880505681372310275069971147617056934560731138055469247798567977724201787752505964450392003812302740986570155660343078873458544982541365154120318304902015177513656446684606925947806980223163924063466709545324348458888785208091126931329017132201952555093139994806320330419594142508465439555576897236831055141707187490256978158431191830969825201682175763676258533799826156414190600375937993568253318841503202912913441721014268707567296342231173979525098649202887998557554321047744817790307982351396587720278232146399298312978213361326543832755694670989747077637715303949912688623733517986873706857818616136984914805751909636869399346967484602899521176814471093168111025658571421768097703781883761921924390935274960403713692803825765573089143685614968042841347739868721786561136141136826566240100900646693436243284325091167400928333149425607622586398096486180973066090964947554639138764910892856234683931662261327384094949088084394951504925117629797364029174606804439995323252658976618446394341714091603245473323231423810541031825541505282622778624877111450605839855613066482100434721173375633670236468941199937418747806138804382685394370413234743465619763765063749842049894620022699124280053777944765423780599934003764349050552961114836392798985587996561333913365358772631381034998689609223041517459909320226365167606928583688200940635477136974768481034650628797434496424301711657565615607287791255393336445381112274736172394696390881606097121267178076076946784409491190780821951643978541121249981203821045946667707588176330297207916450077720657701905383313119073453534678422421086415084436589017731415103915471272921651726337163955034816070754314473614840510720581863608095695553030173241149141012416169105946657740513025641813350598468248727243289938832673541027589119329815700759003466592648588975367542001843301663432600027933464337057766929998759542837986417309606650827879698193553939445145188734817477746201053616860913384721827306485085381946054583973712644186338148671270886846642226431474290972079437331731749845977120928554594324256532686770722091310572721987244548222895629765835114498690059486139473228639463441159262036998322618000185610777873892846185331729077218272443545752002394754074887367252186079014622816085091194567329051447190548361928361728003638304443128424235691795131075910059843317249366349112333080771191522061707432043353791421875462231075447570679365482153145592850528906597326998008468184621694780240650017710457683171781787885870324271300951857148857716911651749977003797289548640742461716233443905680781283262095764120771573434612573678208048716272843987800363758622887661055786183223868125253786157024050312490343532189372215198604314814766083940524048470517156901010697586083701411493062198048539213597402958602788331056056498436243567620896471988479411433306728893980647546396984079980854629041834549135375867928382729231032905107224665617385640956229021738805536126325699435645066883646701636271211350234937990429759690608629117455301483010957229842674007157658406207967862982014061214219652919952801598583031653822611586323066527072371607147382325302664793315986840430523131938498366402409344324224104795109197600243208022154262727201471193569248095432341312657696121890088913621295731826329564525159827679009747969956241858068971042438011541125146188266939821796204374892774848232865386870788369763009880519855420253289971397888431564466358838469233682843157617416380438482298589751374807783895300831324204255364447418310445143296370676174665620318764810479124181096298914509927896570167158322688470481441164751557943468273241865998016103487039157365830845304839128295395143022899328752859164727998592001397410204641519898361565055868999443411467488088133717232185781268265071848560393410909908289180772227416450375637236217776202069721538735221059693457076090691553213201806238828556812008493117373520979562165467317466839897101174052432150226354703030480172869063445370857942521341841309929137871865292141642641596597599108863518730125023607704286659116462944585613789610987853182312997655352804258172601672324843613203641698261257530559009333224196444753142369543453947521361260230174116996078019195892065393279254278890430824826767215163721697666697136658188338828043519084635373276797004162372012973360349887916609229706618378944029711697599110986659287978069257043809488895879245815910205290530431281668147638256498231644291050313094212601981842572829731406674718537406329774538274162761307403175948043106198135139797192966819459677994270090261291873038088895021118604278839091138092452750441550830789687579346567385210289356684555324119211788246065454287342925686880206438713725866533425968586715862807153411118622722572156793215719397056058610048700269835815135589024401743793966334433656983544546202725373367472942870564811433946072752803398289184570855548153122616357859428378524827034140580922570458198247181186303581727530632120016042569280750571936638199423328029190916312186409920394396738126147324398789036849536780058879825453057588008932604626344489674290250133344537996583835975718828630900541216655671792825260982269880646431030198840155949162356966471147340365516722509330858350596773534722045031232916643692088148952173204039572168350334731425092855256040610753423201535466206459377963222490468977612683378035685538585086850465840790855641208237152587180088231421690077310126473011421873451752988353316413659257206326189996428799709735605753936577165598605488714490751460110110082899042972217129009226209791838719455464887386851072617454080230260397827782056380857247483830765217800512279451995734942251992993669188322508924842545708179351668015729054491739262750899801004844412728503927555179050504272807019044721105556517410799928251787166828508089216404803950563851911058234022615556474567962486924854736168144865140434839748708542269183158969750966843149027413130055650129278626769344760553221501826432416360270152448027112121833422514893356123812111482752381874610835167234702494300520521599479393438386958115465663878784267438581426003827280675359849263827233196950295045035009829556735927972582201932759716077350363717402433864353276856596129524532636199284441417095831951873246553701841340390130935703280816755258004777094594660529625969644808009693526564208833131168265809868142818862430084014089452817533869859381625085584281639885863642567018513585435968058458197026418169250989320310908178596554359694516626397512838289877501992889544975702828218295080481942985286492245454684724146264475801798251122587898788660112517518729267654059453103869381764876016757931506467963912378127308305187984819471588715632586701985115728290973354148464715655471016317092873371338798948665658175630501003904409687002664137648888587979257588027110080792564390849605795261080252408378078807258750783884243635557526362765643058921035668554864962728173149761008560447711938057835046171806934503958822458863931635427641436581599889545762179151490182683378984987984498406899825118737748104208426697206619832748710897615238643937622206189196809237601411339996777725373132013836301739342428506187449251576207053382964774436598981892162355273061186105584090551179752165566335420661130137223664486032230778358852618296675681841706239282326738567531355956489363077011012203175380241549671675625352174400607447163006816488852222103399315341932396971743142967475433387479407006318215949158872699745980987951540912986212584977362224497160098363350164210256355043269985098780969486754712554085699775597398047904242953864638038231412614127828339318031931755206488310627970535454712005031735337627132865237281477323147462402545378743806339568531686212127336553413560430106874866675777669914964995081950888635347288358297211287673774488626761894742984940450371260048387287853821255955993940195910921173420939350628223170149157219963846001964826293689753813894913132509253577833091726559154316948209334888052167952835946282661452025360714163123471440574239831825082019452270729680887864494804543391982560001404204858603451862379802037307555980457849629817575062685046586153304337458244135049413562716712527843260695083377695073986157689192070194379007472788890850509068678829276975815408333786339778323879088915728732967392309346691763678753447451495375418225410070281290439355953269949105559352137363419458716294234977590246222443211624944367293525229618090615081758130315694210053290505563736637839358882675733146844410378320014926862067737206433093916985669151632110790303959954262171523569400595620748873699155215374877429808946723346585824350618277880850511670347957021761796589204053759642070627531434918661259059942873342626829080176893380427082786812258835193665219078098815905128232471423763986598586894661980742817915579421697769777324788558201602546248243499495065588757854814871368397166430558281204525515261914001814605460752112171469085871900181983138089961928880439350642270752292037404913159773337206596215762138216180520100440246919950651910087687872012275922778945334721259938780717621143361101374411959822601472544945820259106773819323948321653298206826045920220419332114746865326202883352865800357790076044236818105655238092158802469909584376107954399352937677233026470697482778244606415758716949435036684058821772814843912874113093943418482841511037170078139749530344433775610261284482264402194518695936605575087271383068642424992102000307067396874788729482045648980561620153681340834198165101482600976220655130874327734633014608144006452214586235618112172330390113238065849125385572530375776953947352491799780443692294111984945061201690550226006558406368770545469442542160851322471661345460376614538726373675957296254673356559971298915664641460170203962887050253145239090132173094194417301352496357032128918004106433496126155604866654682145109104452190026767783326656636532459554543559512171912197473398006625820084480626478248375425188565943408397624168448023597038623111279831850503997318105259579641507383418697162300116695012438912201354263313011756111940757199390981231877146280518258465492558810566990183997972912275206334195351132106080802471597311329391499760119470688887157918895964871676560164778093500182570476576617907584468112474371672733804846463478242124317183209006890838280203108720099113675481542218283182975753373918492041970628620376797456280879753720948892525324721470035020169965517283297873828033677563722929057055074099375404232267980918478899946095707186825464151566790869922941438987296627365953793566117149223281181567992949817222608567806918239835331853565219815247481223664509565932487807576450349228623224033077716849570656158544827037428081554968101166041182079561402113301918875862089395446461235407819166454586595657878538308871154677980286301029613610755310004944842104557868293664431673288656990366370614233093720292096083702746709810768027337739670695806941534473247933894658287933147211035240870800140539537729401336808156292108142753204188216541098119284734859810790235683467753954654942085530570378690853292725794575716323881977091100304216781916829035424991585130832862798891090138276332815533907914144007301482709150044451728507369124738921581145813934765030444731119325134182179109631332152622514692420972241161876435830478445127094257979151827402377600983609220635442799067228462607145138537094406846577522342657413540265599239606612803684989787806495694897056222134518631172338936804800068428652397526434521649373910804115287754513989804574289455265116579345316356715957408871834295565859637246566879173184736922284922352287817134781733598784410277536718315662088580198280898816861104610865298257132176615492528669236588706118831293940206478380711713175239555509368639781232495425429144303790471079347934928257468340451304963846379066839414890566222168116643479515123844324807119955105259987430530674180475192808229167475856135497293763113664140577047482518798358814696128046264608000769798682607199922978517598450181926564881632962398643112596388353733619251310387913141310150988225943978074741245590005081365371865966522992042544971592288147988641475027904666952979827367986888988792667128772461022138162244101646291616853555522303662133575484140247868747483243849986283328333700191914921959056227003773987389569728575760499579409340660263437754023102109158932633171863411190768041255811726675987648904504156822225960843813006800060156983805063991342959443783296878731605753469674061733113072755195237029200805466299540882390263499263302315966365945987575983614767711531548422771714056339397786315672766720945479310861926625157808433547122511537664818060259569259759005979805877190512692712962910593399889792295222895166724554328702237746760628067183870727626884731301187904160228749005859846997660486548927202410569780682320940686059954590980872248056093623871647666768692506629024906745593297649866835335807624428258369091643180778306193595120124346588859996622336927202830915337755495614608853749126583847435612340916941932920915757066348742293715434392293999144700462203608668984111322656207108853364936465803024898616235868852295303038036817661512600282858330897143225938569761868513119628296345260851476746186577546582542821509181386881808764469313159591690990948214658778722903330343645985385476470821306864404140612097779931487340623914722001871567631623383863352823900944475747555516792511243588108230643597927247876622532082487678671467628572961248769377994883591992176504186308045855780972144000732868270347468454269202981430907528678279005440131573651559829788049616160473649774189882671825388221189917030584558757584061344634332589028528868491259769170953826790611026790296680585837305652892748525115337411684039790368230558094596024792785089820744874464822432310208293121394265880692174437893073713804719714209833170667544930600939459231691067389862248468821360498306940086374487483921029824363146166572453237614957785123601345095774488502191959983610777713048483075250099025049970618821306601925116449736605563947760722354592223414043342552865305646221234289154808292435935508148251620705949040003618623762113119321056875800159541723101014566849414224021012212340180485547612956186327596157047985428537666118714206918856571006546874367173823968049552340829195519094363230147725426069798740446554125838889734303451770742008082126366299476067220539146926882358737342690772933344921515249623021549545263065285370343978407757722211432788998082106952607555613707771630906942084391311896703929815942912709740913382345490389982356543535296937484267624180705242943427754639209810619864474958168611965401408791875751933295216695783772498011558126067841714016325978756809182728947718671867494760174483152610736746732776601300996065589277492241218800087663248811507912450527869409683770358197166879630753696434015864374228339849611237832852815402314520641181174366539933604804819211200256870575216861111016271354063904232149428553243304152758825233615248657506821169667380685652044102763983546656857288364001091750460838621559840428333125031317409835297167772096789131428938422071152641988152233082078429856902192502614406455751400492018173424861298333031812314566782247930191223688423929385446139667909810516863696069364095477089065733990754920838829671714640841603650157322971572947348041779485414697761732894644681744006593780050514006449608373041032621118702592825239989156606065026157348707362667501117118056210800380304350905715761190283728804244700399934249752241721691755312735729390509210589078873431784358776143967729914921935401608946930217508072314130621124514100024953882466679033235002721053221849175241546825167485166269447121008438208531273859543758436070179752806620289929171896138701902419219766385923606819141294932486451757326895200503861146637857757274216572687428815294760469391032157943244418131435320200256649767945227224155026529155372980228926986655909528274147465372480312354120906944061474272468052579288943683135554979936965415399724145649869073858057824576399696252728435879826891814671614623111536394989600203082669432527487070974954206584963647636012281971664748079428167100888906148508522587790026913811900004638793028976650604946789564560387639320319268991565999865884118424676518135839990512163946293079107589392881425583674092561570805157534831244909822676144960481587816086282291137758439792764064129536477924372864196417490457829816167945298433172692301947055923966653895187993847253999857010320810257197247341517266883815200844195262522586620537831642471798756284265071456711645843706311766444451016634084132355346942781213408155934235267998795565047709156144356448046568266440002285878666489210418457388621160610337663682986071100829110588149110192535027675947926599092530408618762376354425505112783062279738333946041208018731760285831287515714520055630767012858694959598601635307697798267883117741379053766295322106590742649806748499367734315648469326441713588961447355292691378161540682649875826290474998508704038597628848850996692009184617574537741922971210063984330029615383345353620864216778261907300833718363873930121023090908554460738007880228725140526667185669213993090542630185115398381198279352968677719937831086359837520513085283887942070727218249778445521935987215092681077835606489119322131907744613087371838228564474686765367520187425096337607218003625374311308586612473290601567612765673694183488077780930919083587550578626189395105087489264305220174137479976168060416446018950580112557684363116226988822394431173455071751660080280697475883058426253873678149374629276803038002690152258330706883154395561490818685955844481255014665966968966730395051681534359149603227660712856905325125214283867190093210007777345133877454370971811127846137648246574039576620613065218221066107961598868201891016920114296789289599554695026309114098064431315657342705522456391716839066969646542780708455300873750465937076270611002969761595083504594300994609750262957794300296986127303230515209997954509372165241744590224560840247256240404415512633461257145232300338995949358920430202422886239943072690382982993656202634416551904379397119109823013676923891819349999142414016457666139377236398371372742038984400197521045766544441972520086264239307848508763998696417302511805060809403527222935430707913141500835843790977087193318411203132657489369821029317745550218684827540158315233873948480460060580139915583411782034749971148119948950270018926001462931710256438136638028450083970312957673782640581556991601052431487318050038614767517022052765651454206430482826918776086742571955670057345721601483942503945578790694474071023804762983435464887252354140775795375957199654952030155177005225304588892743298010308146639522848728775265028236457654442996688662401191776220940254006219498640274192298054396525478821124883402276601418522121947055466704408237635184331341501320754800767983640557618983767036886531851597117244919100982736059630300579767906278846682309347877309246751354382455643475630486256828688457867271338364199262576300953839285632753290232335948720041644347841810458649736395866875806767085261364326794792966083889731432038468756272732087877567295200713615101934765208536421097951160726350062958087143839404431320313522266282964826308750621866059355416550581845372901259918919332027666881551273177404293958759267114161815871848425975728920534855815232403481219201350954959923722870750332150688041270544541727221203747260304605893720561555718035508622269676054913402598498784258000896376061277200171723951062208269285326260989784981924069813271966302997195708025106710745749814714388915120166907953771797347472697270189120168753739861245366899361322573480189531195681157811892327187519498903495170174395167110475380779596699888043539686776767922394166328455784894535640527541253216403825827604910755095203210437926793229557725997484977185784454263365988411733287497338183422423819114477656475246138844976023344180016156490357203258288662986276179568935545662217608548251868028651648702549614985976588588712792825014507404572303473802201519513632741710984867716062585920615322272002498517606956358169488882531633014037937765866154335572836364403019866156777592180191284861726118533799459162658272249835974795671726083342052620677849536360517980237370667072841797321560129340833133316870731804545413360476594271801189959891130378273437043303497665481305625670572788750337504785397950543625974049291982019430384834520957654426708947830690811242959133976428054316739173135631026880343174446966948929047711481677862928318750413092713394128748654520831743805983319211545659365282721705419399190378419906751590578781062762430822545787400654670992517506212033524607318504279007662560395104854983143093281223972753251484023309650466470976988712701732794107185078304504933207350601697139402850757562589766436439802768642489905943395039794835654444439665449911902018270743218784862723796355132902824046568772480587093652274796753856602807122725961715857455635038088491004301284493872648388078082562030493150649328020057350830388089100966685691903300169483429161766946516587750132404192791856322475557196784780990219083082258688963940033832175115307119325898201019646590502717829947513010598417482689208181243913275053852992130748154498194461690438558106008262915972341473444304023360509555900857165086911308006408785841929089883580687841212362724085329882445631057222994968022400002555181805431532162873867336601746878723908691247591807781575219807044655172160182083764019100687237440328555732898865036424611615939234112836310969201663186262403005086607611423797511859842493732416472198541704304217605987197924233574053999366931662482401800483810873775862444314484492408696117100254568672889027037219990523853291344494480891121554978440652063014382933463751649847964112838681597359107943610835499237520752144789156541647292479870395427794845709186958585474996084725668483566502382034939977061764239373107172538939888591516489397547476368720393141717809078384299590941717766378367053188685619830477246875976216884056758414653232730381535207883472460589551471040694642438937242652639629852447339097249417278774981929263107737449193584816089438945806091822582564516799344284085843526812728724023464669476242606808049387322353028648922784840494545698661941001217258299995345590960081356292186750556301584717180118092439129722650886476237969084627620948500212644811456535316613746290420537460243312806544229762664651678634437294593548407194944332683294343344898561008003115051569817048916956215493718858029287806508133456916845388985096173558417682273755617334427880742484891906396332415180027898260370068445327500423398500325316415513154189080425550771007933438607303540879221538492491331764105227944382323368355558637443965711169526640725743917198059683314421723176131895622925198054293704319544145922252305981572600116469785308949410944019460237301531086818794668324409015381005397722819213129130870630787774303744499447810246861567924344818021526124200854337229577176167993107674570828449258002325626037279406423126582864428434243039863368558182652780107249067380526145965312429532386358525976125484596897083508317985686061162248422691545118174612754543353450316738220942985093024344837651081826008315643844543354802371149618749925548103102833644466128308647906559920454798319083477259072774369108194345947326541836439931743968680852260340200514848772549569429079441709998287567098364005759150970809489604230026018924947324094059777126999361482864089108665060862738185510978309419824547892311543105281493517606164097559655048401178911882223938231690538310417984138463730060748708641637597841643491673506353317425377079358058859479128979104978163203043935302991811903093102232454151338525578593930412954310135068299228061415382756479161762614733294787769150650507454940500525127424375880733950232707542382339565615937139480754792006550801247948942475899171041772927611988416595069197079340468317797240905100824901675105453708729561783944078352397407045650324001380026104107312770579737023280118846182818469161485120352717932669902274001723466533870762885201302401687837889214303440197524326981260199936011188785433983642185133806875966359962848255062645170856566805301255637097189449808428079692756452857747971015420994576872243378969803401869453111750746618862104602347607464651369191493981567362296430335781600086386878544403776611754307879280194947556291456069499233205950626994042368705760206770832496792488267776838520755214544713221806419925646633946593500163948790557615003951631306037719994909983275965865446823057490924995057174199666408560075942885182273812294809186390764624750476485821368674450599095005059970003773955323381518480520648701750839350466111490125535293569997373090704756505709911776634712681209704482629647490785308194401686108204454621238330865324867477957567357792420812656198514813269879150784500208960023719857949814962360187847394090072849276531798503096765224504051319234653102334944295054209384731609372319921430305301819816014585606547375982047835055231629683279882047698885617468766897796945036700557777466029542110101495095418815677861228047703420185701325377538445652258989575073533165121515885938387558413573685657419555604249819774549985839272814978869195638233335441658651025497504595336742850691999993639044478362381918173166269860689444784652494167221392629509559253829019604683120460704767733375794847193050126472077209457883961192687756691629900865566370442733233393987966119302642871360186521129380811972857871778712316480551619060311807772400639074659286809067744009058442439962748824555178718976858696990437817392996048746628394874354820555419248747554336730876375960566088121771962871027291881970579616282466890069865668635671932158119005659137605036362192420524999138965713913800167563924197472900676025545709504548375986699985183801463939771770554575631481560298748474303532660005577125964992318976669030889915308765519389167830889161216619454845790959146221568145481973673840407107325544626221975769475947685720952644542729865652451195318427084101444582505810110277386628680540104988103665667694833663051567339551292110865242806908653038315421226682605585045519847898000745936881556355712781038605834998001742421432783395795516664235880558115921876560938816094838075283036646866150282913713209791221891065781589021683213096364068073087099738784855964390020369137903324178570587500225466417622642861430971597860338355264635447811209000298297272787110722123900067165662276474371090634543978395760554960907231402099520846057647858122559349662343045830857223100601500963183159246462501802362749624489252473938099823098064769426981672464414022873281852088697691366183224624341648993412382481338284451276540951025139230780054277417477226030672681803916578954598915589672533909104239525335654964257733515134787101729121285218245542718422101650604533866367097108801638182717265195550236439816215622888676889595506314496510347697228072773319804426804506718338340607907380628208563070791103581956483959317495871413263379550416476149412659027428778696684085011486804152683379294901400423375887895092320287066800410407985007643735262274610069468395367038939132804852348017707366285610226749959801828367567784943503221666664065258357578518801222269830201436513485142479083117256158893452003610336791177801226228781410497078991664480210073465447846235002076795221321704198136256173511647685811685301277932687080305846902855576897717338298004255721098619556275444312286234018606939402200628364507171063211613250949539796987118058918282088918490319557934168258438940044013160162781196914661671930961853360932741391498343292961643262202079292357134542549588738172127881373603220330674781425316649715683957518593861485511521046151791994405570607637341673644347873364742242338413719147103029128270177761834673299159846871758200849438160749085398182635996994016625866021004311749402291165060138722466636627873595048314626376154999539324787969901183042925714902596994213480213060093580013789716022416183281614128759430685078060478565367584905191449830691745355911900855072566921621680001362097875750149644796008037921032584408557721933313163109422232615201104823251099953807156270905106011821174763506809278350190697353250084216765277019720772502853293706545122380003235222018621906404374996364692092251247611896923433062829416688188344410622215227589198153243613907235196785500856693273740489442730351681741349285805880059606175828908247857758478525419781114426272097837965791225674731949472960620163318685505631627693150570070021503353172699606193029499108562946427969304618965966677247406517566662331393322384107928021458414620054291833560379004756285755996645704896438788786616091001671039718061223908348080702688730988382574484100705319727924561390386176879996668870811022897351845326319032601289745495286842083194201808904993461079294941200298477643218539965257375647312266861607214285234777229054255464684503908399802001786215667429518794477105233027235465286821820686535363940525661003830249242529173425363122684007693893830629477161630754549241990483227222858950129655097225151910011134862521011470127843233350121633104225640249254402281077425230809518644896262945046320938262744594891270906201328116967837907794678956023359559511669000979165059881273825557137354161482616492677129548533177499478993898342892774139563757286846208244864535737751657904353020137038799195474977817079724262039360745607824623312895993947322185276254899344315887752929422131626024906789239673502929338794453803205607467381459710620079004671380130933712242146333776211352232401872651435520378712715881733243870178439446000110364128411723051229093431575628103094125546592749412842125759095926598100797430469990020102984557933107229200892370220181989819853054727386497702287565765418839866044048898539821006401240860952094814146280470357273869550138669562860009679855265601248962345082706171306301439168374840564115465688899124629543358728976928621253441856100143524067066537212969860385651964904006293663169090218561956694386450661950533520684141248749868400861118817614146362692524041770478945974006083128133322674639575675384250056529304668546655292235564037476124143115792236584483120357309140698171143171729208451703299828072289284945775177127377210045733898130476297858470447033587905900555906937065330034089492946062532247259389919671052811027929454755328926011054241659350306709379155298181542177973281343858681803337645519813636329070003304451308236003632636831951033079664549690763278778921511965668479391866108007333082227201616131698445090013867239140144591572861880987096842678821683620301016645158643970192675966915408190629497490951989687096440096270027457530764384241528476627920584119290680037280170842627896201935625657618961183873638477938787108986216337846050031947702673792267151082052684502565323342266488455198338477243478697967799321444590566085615050143729392228616006955931316738387329367475511975666321523367805206667508399867068428566578172319115079161103430010580716894149365466863698973936797657293167553849972747019876042801296208986210747183457034733957082319826632747181389225185779243368571145750344110762316808107489280277048987594533077011865485838439158212226327967464815085888142760935722354377076533930674346090194100654533170938404499259674516216426706903806414082779141558102437025373669606845001413323533395931253731344570981154067040481999460369004498171789719783104952901941699351952299899854092736680694434616553784733702713241885070465014345562709768419951174146642820686122594478140947778451370346112334698938348074236743405453386670457801784213132004893977866961414756083521806269539191760618651319701225116460101279838327612425676056576969911597466952141302218297331420177962544896324223895476030893867660791954386168097234983176980784439500479604081939733163474299255813468736255918040861131126703079978893368125970084201539916089846639297790267970992208726220744224049812390200881547210746472466135647333952344215657906847840671004659192257879863619218462496956098469080493292809132062118843032025123601541760657963237689313162183881473029706991178683215132143694293157478310813673401960801478423800719876623178568580845650711804769889525379138986202375218091785931535439662843316878953913901371873914376262104460226665246068931166530714249178761483205942921217673076685515763558685863962758494737620355456000621617264302260147390974644517490058243549532395311620327473423514652164901802260369541283291901793140848016212031025541957754473857668738973896631311032947941784610365666145055797082373551862552005272009628883967821039758176501146492137868880073425041073692824979656800567637566105365813299066397538912398142541474666883566673708423747508867056826692489640058855978124895418631735267759373582783403449973361284738837309221309444230372135321535932681221521020114319276581907027668222453899998063672435470069723689527881446111104453812715459961703032808831172130784010918178094230532186490299252477479395946069889155657122545876229777359305510474690222381147312321726697659913169651035019024022672490799549663879995302395101848127444764626644651795630469382733284625664921072579327428504668514506689370718605585448679497325346146865867747887380673699169018284186463411584715990050537690537281597308738144147163376846032859585195960343624444788854062835057486327654743466587778884222977219957156328576915875687988268844309797232646282257560901700148718531210492911212669880475739148475320698859996574094217537632541515950164114413130334228144013401059406747631540243606984372256193657156358301772516031079978419924830897726243208934382153556517051641861759377341779430038221173327576811131737106265599314298724969958610544276719191014581882179174443926831871316546901683898268615450545711264425901460159464778109996930793379780226290171278588095591627228825706348424119048307324142008391755610631240324285360809064329829896674533264135345304237867016454282170649023214973862072944241984248017101825829694154452685201991619803665632779248421835399040733856460744047445809268592859584809339923360944833123265234461092020450417197018301397299517316298199844520873478872352513653632232746047994462876232515729392238414717270984054501445920723194852048750899557716799715904910763640906139206954349519911838988815381083758875102195019101571769203649108613234541510230131549767817755579437610748892156401098121101591536283641921602756826630390638240903343810000919974756039149008887685969113054069734290535860485244076646523938487618755223947056251273555579744772397748580440800313639420501110202229036890257701863521317833971156713516126795172200564995597236383465680364295547029170666662123425414164016344103748169761871516385543680620282442811746263701598316545509363205018196030169084910894717382882895280384695215781464379520152221720695745786487321817144660755405463973834517746310516603946065431090374746410373860250439345498087063320494556235152622929321880707476839394059962487409223537719488972601723938454711218797399673360299139102397101663503789723078498535036178309671044246196650484827333728173574130582861494902575059396995586092337644948844461848790918164378101044759724435944773212999402881797990175047559122917284654400215806846785780839346207945972410365582370160384814400199003597614354398992982368726556427152076575520690001133370075699147228121237740102229256771358222027948210389183643344765089476277964937039302812010782960368626466766229799745201380250240757993800620766427134797301461272402524850155103328921060824587787170962904552927498182511331827965862787048603718830991068341278813876168148577163775068983101704323201988653752194154326238426717463374914225446049013538303501068901269452967133897812648824486892676085329034515620002406932503025309122492690076705962342923287823469848310688065953079434856310885389512985199496838273983303667782821604039872636721461432573568913967512451234377864739317208073648800169720290422554497582312338589216903878228699456693093796155512394514780453668911887306839804938584182734507660802422482890278618087849771647070693701835115325751652193082875402215311133287709151162412299988536353319217489252771818423037277026117930888717070415780440178391157678025728375169516166047418382188300248507984604745891381546653872677663283122531240293276316631408046508557583632882484254902823919861838096838018034337067764396361092690692258635716617063974086941127302857559885061417441634457026682111517545193114053155027873200759077665162415797708561711028394161116995419006742436418821990697322624357123859133443172786078052907438741655517518899016332163585992568605643740911680871525053891643753780600714956829911117542113296649494945580058054148858395008962593371518890209864371661516422420161445119195473060418591055084216184089693514851552220017227773272275505585384276805355865811953291231355876761773420672381519636410329101641863300966631968916745748493859023963717841711657330721282717768823186242686596971927237210064790196067480925143024542913757066869493109664685809188284336169508130200486729193038106805046615817888464052178474128054115006889955869209123194801860454310631687154023667491079588207851777323870542230861628365143937922510349189096018060289656685751121316934457943090777047517006704453276802227033742866309139919102756924877980828627314905400709538981597416613709636259226985917345037826058544656390740036592873551914854668472418008159435576530806387592488673745737342521427835176579190442446852241379510561148490720369248973655315706084180114046164807262585075709648797714731082824169135218535676862071913332417063465228136366257103770985124559634185015871678549405256336786161704580109451490613500683385181666375242308797352102448639794154825041994770714056931757146309662775370488047907941222704237184543787531202637002557862521693904519916774193033880225959849846567865110790331451434774879954747274415783198816333401784981100707765564782575636523174741661668012198449931056057271179789290705001441422916026466237738467005516449865064939458369198373976959923299904300445275258758428212183861243840730509777891744863483700257950711279185327989920176052440313844373443138952366083154272622430581495012144924545346379326466158398097756709250592541169679652261115831099452306408554637132197955363886035157059766967823025811316407325295089767662620500323010118090130817322268720189602988175333227493763193071038049336914139814830849712057126632457317947424671055307153281550787928284032431651731671558761576975256715340166647309213602871979172623291619248496392880017890528128729539947905704399625093063564238321907530414493661804951529210225708600729848889989078300550806593218911874426975317551288739894728682320011523449711388206277827632191336006709181212586637421921198757922023546264796551482066894224719164383806863606817309538903681629941384540442726165760847842712691204946061005109747684640945815252605475931914484615295831460768299649210573208027311063090930228426465067208347272307453609475207872679825888961446786278236771562585213695495043971197001547353824644577613126346044327072131044642210851098060341648269956865433692046536853491050373940669106324024107560375971777451928052725674892551838876736287773288770033289141971408215570599432818716395675070323806863117625166098777433842739155722552723079408749835834413873652535459909047662892705327259603050460112958725178675000465510651931705212684415921489463620853615294333299527617347394085478622181404904437413983903331709627557298694627124257659057859543955778120944342964372342770777566296556964932290534391761061831607719684543317728349043886526884005445402238212009896583833974587461191656731511707914006052679338871962700415501702459593472785657011987701828570412742439033917503511521053619764216994223185522861946835394458606584152761238131202971340614584680474273020338921594179240993030466924657833047530014929645303721236470007841237430168987977831867719319060819557181734373985539224086495566716846626661102639470251593180838892611069168167246801589126441039407454291781482895263062911563380075689527252770360706681925844889238721191094201585432675262708709602213016999393876180259624319283181911780538114801017247385710697222719635534298006102872674176826813937551283051538566662370620027634856155476341993838677241518854513687709861661030550598801475297338378523949653260551171251678164283164991394227725735271902482818895125992157080423980589144973015172015341122011950229518942721768692566031124804571634278677584290979097286011544677365475624885235630551042293351041802776073398545762364094724580554335937186906094807015478766550662823810976263673085627613082669192240607568669096451018427591950181993685348140136584794304551830483569795172859005041111433773818117348478110262602828318059825411231463117254783865258820038244327020463684486393975378001308977651938661674934007403433393871389553779360792638429667100647345179679471757042201263189075398604696705919686073969307665708604034631842438326174488472781300454080388125143220571816413205781100032857310469095141157852814723169333779023757544728445724635744773130354299177164327417868913366262883993699745471859536783379320559549025041117401154597642960126567670349664405707199194552869238496731607266085880862571740167419236224402885813635157289068622124828644815858903135648464150763773085512213343710716114422098843955999012995957838589882669724438442333035082165159593661053551005733869008147186333933402241782777185131899147828822605965769171638999536713809185565054781948732180158967893901229785984290714394885724998320080154033029850086128959193067399425835287504024865363748177402889659287812359485279986580809870605626815390353386273984381605183014919912517312071834815189605246287254139683602175342425851313822171602096407388078446880778937710953505515306242720673507509843102651461972104491867428387953042478562414357471129102203042626417508674183818267963922772079706507190234252156135738965871372546311616421021472659757687840934443824460715477690366193946587638424960574989020879389098680434136404832634468321774695492659882122021283174305147062165046653369596767609312478213556156737406231553922221939515080010963918280187299179902383969673168469015965593073801783913399041003548535549722561705375661148369988769482576215947017276258809109496345999906839973081491530468366242955421838713484158840874348679679571989494706407941813048834190100282635983872887454983834414109029229241822039594851645631930245769599216831643073435419804882150011423251079777220904730836563673527604624637877299609966095658533431012406093548992757072988737670438201283015582316850515448520567764795401970416744572179093271013185694671902285935664402777551209337640040778152876140911788332859569334734713570003106725643148672457377436848350527826697554120684168737926330810475675079321921267417384752479460122684903396881525419978933831748899978755598032838287464092503368573369711960623315272990893818848408691739835019656942193540686065277422548220691621801049272148049012796870090910809960151815138044035261802144932158623106165558179440278371944091539732453841077700737767627274083304916368456601899216486451624849367861384673893847833700058084034805319465698651382626875981484506870774086521621342161703939510030591180864286694804585897068515320852396443857781155335449285852534035133776038133465777632233556942886369241670741520056891299418300522236982599277100217479143267338752431653709877045438185577992177335919308933865909374475452584350891987495584594434954461558149435711917318455149187370315292820412424878362387224708880535908858332917805626344577059718248008957594995142197389074243883147579485023444080219406458605132668009998096267258588153222849197574498395524044723996376866716928971489680456081593508927855797882806151481956623952163313770665354066517463364976106698925212431609746132775180768653682445354832386196563199610586508829708747123520817809385926929726807317439365847574369537897423068028635527555434275828355285581381542946684957559834821931931754855834526754447863000225265267423908160294117976684490719865175068762995729058712681439181722749368689557321246211117919228065340860468039369754157665520137436595423778128953900346239431577729154504575729429835217963372734525817174702942860328386207824743645133027403812645675195506879873517721064693573303473940594696458960353557818452081539845945482460781513602331497225201338788931457906798059940629860494281035151541460584340615945589709354662167779467880772187402468124076620634058528169082775721420014627742293145100563006309987573289325897827844968641324323499669667387066585221271512619460533486470235262146520616848536440941183908452136642330106948379308623453927822843994267523924663653667805571691129834464573000112482494064603966268657151262645217980435521098223400507081455070691317718566444116957600495209449692099030683309213624314187401753608664870350402590804117370232682818536631979918732163983017640351652753036401554478672719542516279797450595240247136811093178362793750188095240592478586633731290454962878832967413874714877940563795540169147273718216946200668967299712450854670702098695533146717470556375257605297194763317122795921426985925542020000926425284924793088633611940635767452936419993200508956616026078506982951595225654173192491740396477412661248645339559445938699150594593504982328069896811384902883052909033184684042158290843784262832059816260797840450327665004367798675652123914944020217227901642478887355645162563791835910547137984004272000980508977566444316358102820724668071917539469668533246201971888528434674289259332477921773054591926082105427082237723013676258785881431792579123633776591297258740146309734195244272856451803967422029862656204132051799181931719747338139371169923273145610942029042393758264759390102004985425167175801036829339561975824604966993652526892126133381993074617148162537609003503033383765424490982990251589376841636144873594451749171404532090337388093677631627216194066130071256461611615951873341779505175652955098671779280703462735745302396186676488029295988332851493037478551827566961482918643032811796691624991194393837925236366610187556968401703897786247531465978869266567016371455828710318253779067073641384716507114080291200641890522999100067251070129446493621586624331450410543951619792902814789672097969582000665485415000536178577374092862052077121280700048585852101064330212116710601675217607494876625352880418457665494825624203487044682516508432346592683820809094420055730781528954207120206334636645184278578296408041826718438010945814754043844496669072323622056820427430431708604645183656937615930315129254017747864020382940684474471614464066967534312751432109149826550909618662345151031902895242313031726447695603487698426822722486476223851365476584077552398370016881972823481640826406197046722774595868682411808572792833019037127106823949135251183212679041655294223103905161133717209300324596877143027062962568770856950581192463717139773031342302303813053269764015749071733872960675011968242101419066495209734276695013390681753321513719353614252815415606811319492420535013065126721524317253009488344836990516304601346447502928845712451074238256430590056559235037413241802083566285852659217612160690414860523417788496306115214007241420384175829074887495473871052116597092052160617347081257441252712118634857204583938817914717791666844896310052285294288729541581300892848334480628518066504429169532483143972032905523618924291799534401707345239073498596493485112153530865899210688139404320217389493682016128206151041939230808236562208229709960615551746377528354870070385858733819686517538590974856560744203083844227894916341124279552618122280854804223408134449715990855443406216514710649061159387742839828839537968094582368665112752146277147316707981760900404289344075680707269044101157993094194107774171872839355088719855580785316241761666018644947092449278656185780797069256809014831786194464761212574812699586915471543157203772835843657495128959780282734387626507912321055469107447782877323288655351334995472704743420277291110169817869570440498064433381961702868671861636485392460096212345974648233091736254042902099485605518516241743917778675720701603104421480005315318917851950540287310454856001801598133168600939015502382147669820245478319501357813841957015122760421366486593569680135702429618948897450796488732768394005729578758880029623148568046242780694650339450686511206025476760547833108723143170574600222681099197330688911715083974201852114840640014509875370826196064462180628110120673361652089849107582581051429414078457632714546534995682637474659222765450641468919241101469039902184330910493534083141343512862693403098442940366117010897705445044302952249423309154523833472303655067873568003773404260822849180221290238738123112752795286861381140811264097955125934137203571978314822737547495868105758847910067178718467198516598093532505753002302314593902660703056380387139205278300202908413533753964724701045398505788452199988587988399179592758600728667567136412546794170968069132726584278060506387280390744023861529523004828192269010017921846688717682437453476632177651170051236412026622436132380131048598092901116333361702792631371000566237872117299116683307535964749896942887207912377807761663851961699535773271826289466156498334585778875891025474147002416249728324563908016072454422248852633676705687008297936007267274421071327735128868653362193290425939013075810424985440833027298785994959127129992151519346728125453057518733159975299546859118160848315972224080926249166659993934847555985054109886059931402452397053351159989044283957406758398762018844483295294535331992588055705703957782692798103270337939852456221785244460032591675106175043089199284234755626458159128283218783009440838489345882640236058045783683189368201548231372291220455405241238749795515227564750200338058149480553264631853586561852510453078650427206927126505888849520840187657356403448918783159252104364833894021572284248224746653518679321173605503572399233997042625740466081685808604549686202716511922743020158684668630038170110153544827894336791643969571661451166099372016493429945346936059591070174623723025817242513500365131339789514675486915405395619769484497229726729977568672383276840686678165397862304549609116030200107370700336397246010336247333576568231888619318471260492672250993564504796725997464999747233573282121592577879968842185043381839648129132137011677205531071892788216060898910242875013870520604060009743581742503537950520543580155163134912220456250052466962607746894111918619984265115564801757662984568421170394104589010409941759023270045690233034723803796382107475842834233319332933345354885808352738703552955803182885064174246051907636317161282251140956062049736507768763199806777981772656081280103519944810064549070701469462024449512591255528130148134276166998397651495550730602790560470189854900133674495358108981025414036592781869386367530159566652724999255154295082651794251242757349760980723569991228113594254143949221387220814837891374692352548095380872612683397276544052074255931812193345479885137082606045349253776115968838656867340686956731205198570759518766265003058023560533374940377006497644008575036772012452468220670887632673703240025608290612839632225829658835865351312327996756493363575211039781425416331858276487832133916958694141908736738055404595682327294321796321039514349021483525164887261922941333407564391468338367233489038229610826318458793587294977268970653626443727332852110537975971532427775967247952873915607704491884188869579111756821877355852152180880899861807668058088428307137936987119924605081938168112727472928425799114585950540555877952738800373196861723795097050635986251858726047750048848745793977137545095940567169729057289521600295464104045230138384603134654884203086867197201729120117192240737605085268486052761635702425902299433407858900540164035686930539600744088397813669240109496319740564337834260537768678964680293799516731128245868568847554959416810668310063940590411621195420323087675644384437349095873445715979566897106399158226246548088252348075662412170848414082462650860671566248650760613195027578901281779614171193351522959926893329902189423179997273114354411227150447101718056497980934391132659289764102423838486507172390288377327652340021252634926921322504713438159114283551860103361591383339956925538772475984137140242570706430238150206662654025110727988367440872826997514297370427307400166750389250398541441706907409441298812065407867081552476679728139707554681378559052437084229664174808335858031581504921450726999421685399850794531340066942808488114454115934049899717451803651192429958698001631550120955585188247571520475639279630532177808617689381513102664344027729247732569451879957871872207882828249330598214378805618500214122834710209321601976419518732536062052645111551118828982172465579644889368098758741013902590493058351768005717950695614548322818106351788328136516999712275450941735679064473575368734418036585539139958606359041180489308683616943976439937036805667718532595447492185434997849599300610058633587501243787815065259286261277492490992292449617667793076095606698195034726863785380125521843761961061983801561393490323320587734353648516216476289972516353273438971800031907871338267581579532312635732333822439014659332063186126463080690279563048340424972692105759691066300475144028671743306665677728641512672942873168204998062243183534833701117369319149368037031650780491020861218000060962290274403257573247165263273766393852679497415614380517962052455416981711838425785653491614749229791346942684055786943186896816642854994607678672075530804269100376512287244650927837116564856145994374687123288747008835511536727574577302816306191990688750276202872609463931441333580137380539370313000146598822892786596697953135480187796308118516631008251015635827146708333492901387357571423311309549202782148786048320851386837174818779928178785487350776772183523983802974250117463372896820036039628502759727414233641927495898710990414383070122830272094758741735698335054834721368169066359570914387883647561563116151482858932421198131338720589617255353652901021518324758124109616627238284284894625706176600603645857739173235990762479344565122244196703463725352487810741459134381394516373101836578644870984808073071074677772213745453560298815779002776943153636248802063884445691192888057722338693812175756908821788238906590504424261164973323180892426414544987554260344996048016257039547441030048707531935054182540489597609240639772357527351534941879268374433373243645688556480910128245792290101371579392978980179926048853539966830482895199681803727717676575024571661313747126767553001409007073209480930689057672563148559189192685479950925437069129125132998764094586758728751473672846166256846960182142639768337689137857020027016714135819213552313307485254674073722125749056397045280848220418773144065255782754155587826112892159323712954383601245336871719184930775401282981683298350921173719551093723608403324585331696279264662622980459114710929080329325296940003548867463596866765223437783076571152003176128175274723642737281223609185150246457189666842028151453929964314734990069894470235987414361213366929882767367642591244695157840002376922250007933452286064227088561673251695251700855189274252240160612376224299689634360383632033365883422224697976213859883992490631573438327080135300342274644611111917422343615013366072069139570118211349354229482259859921564170672632159323200765926007485493159367459035674770065030569263488985935819322451626167174516186850224619272477446889464321848606988018260259323946431425729110612455096077475840195418977710281433584307635490813893183899532828422170975172853568219969874534760677146435571715449343156541995027505142357940251446848921431657340679307102238074855884760608059000073817284904710859011588339438081009640331660360892571707917823034761345548061045049638531177143875294147339882704546254782119709368349793163944255199331997650685750698915143317850744491305443295499466255011356940439772912946072763194696487359714514503126312836169223516807249686773092695812731049323198101110608516502235936407349629012639930661554425306853261151004092966819285859693645451855340552032344443187790361975403858033760195378680244350326416088774066248184433568266253027613199716763049881659407636063349412656086247507214055863320992725064432294377055900418146765545986395153750840762290742352734161596877299750808458225692516579504630385431358586236530680401698794780204877692648802805943519865012372462354209317979834137568988418861589717650449314053504465125026531026430648074916227890146392921077687180310708402992166145163409812905631405535093234900427340651400560289982893001238243071144177910202811995191201752289377120509503221801159065044221931010930767177570385637772637235026122165403873190859259276588919952396475241545123338532620982959729630452440984098847117115728039721673282154323808694984173247543397844454190204824812290175027496834920918395227956430238580335795241237507030982042177583292848262848431990334672471362477915662638987348554782293537638980292903573627958107686995833657396448811068114887089924737668453225492326114937795252028927227853386275108624066730210772014705583366800874768778748734311943879820582603446500325042337872086069028558232397726426645888969585573956779006425180487421656477298294790740045241191592855875470984554351342090972673084767490472398837395245572639933821007136889718814022981823016519567250462724404108210113604006764898530548736854570811859576156777020383531785932710362697511942250027550117583371739494021995160684373715772145041411067858539872383319632975758065528484410239254826371823645623768536064068574340627307776483518924398593205460102300807951932281530388511459205081453992576457544965749944458605600664016675737638870989998058226627608292023166332404758486823354303635100306915357971481128629167999060221173390962885734712123879541597611382659266548898736193177258377453240070152198680600150938101926165965861406162483733336421643798531134241684727820647047150019387146006590616571147524481167199852574651372669731793492489933203719043744491243999439992944121994416329148206097836732761571929653179766076607298999395462545994906027519847689944156503315128057631449427962737652445803971305855818305583280186905873822172078305365434995857869975501221005990520469521528140393608175924146734448102474954173922690017655908918344584095099406089883004427718621253969633489821327613366952670446920647740338598848776791827990287617535889559653485925316471491419548829816734904937028419493913159637398735260614708295574905901212436977050730834378248436516465454365786298988539981551009086738703998948355418393673504759110856197659472426491432206249605876272041114218484153978221100470699382206381632451268630234105074491777338574556712519956216010104536446149997150413838108126208346525481612400348823619883378668287171081645038876910513821791284521554721838838966051242799790706058429053065258327423961253910183247218916326972159866674605975737753478323310509723850884014531637512978031144047470623552621728548501264458982704722389211573798168577010479076382886118351439101476103323660411274621846398096092338134042665401980097538386630390679168226423072539337630412332284317401269872910338726129002539574105364519525462528737568986515962449611897700626918783049882273351002491988351803061890037283370893588021282681696767211980292689399278578483236087420871102928905892889834934827585373039635884210964581815394147986252123889803164537630770463175080149397986772153639165252051826117687021808127707283266728043778645669452359593577707318521323432903818335973220988155981742512966428337045204933320828508154233990280053298185961412170823205681951500711705246509736886749246357294334827245483978129490070977761520208898501055755176965616554551089161490183419865166467578788459794733570663097351834393462698670880849755215030396802251184406623169165035640283087935498123277267196231783948883245253723707676680904581905374618455386070888188760814384998549738698166335716671452161633586644597732853448471066502473736599965491804187369991397276094344293265874211064197392192678974207993486495558819926087007078398606406649050405727234040894384580968651396392441906136791124659059184251903453937785229082913038338592959566639021433675605502194009371071342355980113594615107999729254516810634925144817882390794805149681161804895279757581300910297755678295485148595826077250434332620735126717456170169782129284007912393182964441264129175490423224727251419400297539259918524216787740988584411140965250448728001700374943213085185678570944238938103189185370807867577450518478743252639380964051694143509960202902390186114889026147088179819756399480979129750880670070748548069282497203806537413383799760903998511133349029762849919033578090848068680219068843036239243332684194044278382981740219257043174995857192309270317056233364251483544347434389559913110082845023157241973286305963777922496429528333405526738894070386746844796827430931972767283015359743363709958343561316107036046038729640896445803266399464791517001760802982565198526557012177581344891888272287709949152114713150694523159079362008065551848979496552910196523865876979559677757964395787569924119884955172601548734728693334599240747128862343439807792623016915510212765855936892679577317213299562238366606465241054609230940744430134275911468238982992247416206940670999491962583391710194320209029182271570610000899662600739825874397748472370429972216995873686155791078789794366857996330087269525368866879264156246564736878103460634577666102182909344734117686995740893054946706042134816531642110971331112286718598790484558604742347735689509979608158736799512869742728559426604427454404754233180560595227695570879938853240022977066435276690762312174576513854216380239864761108918006858340498551431307358064778828790421736346196837608499525090038628296395295879486618915857116370862778055521063559022908554048913286068108872806378133104872625331288920084494511821177714566096078917551947882089502958744736200319691073761737986681058588356005713176805810733785940835152225863517260662280895357365671323318859539176870428155845276517844734961939132584098693682861849239317676546674461859474818390515497845910393744015294619282177869348965177574123069728212473940639917843408811442355441007556689781514509024414172094069927467177254188775414646436317315084740552055911172944979886745010912828547514349551037294203954471611579779429765078270731066441230774984564383766291691933631669851957520367632298274710189848927088205317900107542862789194361205436610859304499117815687185291406422714348659964919793762045486880595664819153103584399278518471594886024952226680922644464280408395380225236745384525306207540203595696615702517444515473872646180613746090309135233089555009444008255950189129281852172382385838207895537912656831100987669154582740588194239361645653668208914863535590280748495628481038884030447273330650957017633844620811329932971298949829508804875729535652447141628285375423159989535337950534944295948448307298963096072451271864770722120942402098764113897350621591327890812074617230353117388595272065884206050000099717269589613273269468363119296920880333566155725861926983119410023689779546978419256163182478712933795443511012790147046302078769495701947749512401141800615376545291873725383333337607382306191007810496439966509356602855442037513304507414097665300825301255955152507769504035130651874573931033495197335997704957566448303485067908712817742832339603165208406551484878595946225488695896822822756756841925326853881244372480474597173398659959191961816278039770137985315347903574494878899508661457914658138375383581273414284675561984070026578172293831543169345771225805779534806534919285591220907875760804454503184487181637133195315265610355618140777810852386594059460711809851577139978434133887460793652817910690681500437882840072770094171665917704472398129994727901335104923615391298232396207277138327046501669017369488599500884251131787442358136320823465834510024810860249474001714032187096948842513429041651927038688998591947306201208191884747440135448313315114929433089969588170329237879370550185045650359413650385771609882739735459702198705349748813064782605948092240804063389083566826899494979309313592767236159768384637768871888618880605581120722333294657222252125690220969539505229278852551835258003096288990741706335399880668320674488414818262551069783411788923053180033408612391330102209476218999586998332928111423738672849467335295943703824253342621640169702193324581747970465059111881507329968190322115263971278138615280277675088166478784992651949963620435612330406436005255718306683167177195033505238712078754789012464565373767011842200727615472626482112315317476907560192655375438736702503333072834017345641408667833969494016162536935564965795829680076831908933324743657862189617667169115777115232222536206545638440525261788076554193994954951340770120373118910125714813060841718565657890128392388996654824835719411736078444191423832989978955177824057717512873146442503795237623964762126228992474648395653204062590517421840191949487540137563308760177584155579164972957184956689250623198775225373062410268560202881901646169769506157906919750551187956569271229016476025880357657083581509645416132863018062477043877508586171300477859722247571276117280800669707795872190341725781125540843400142231065267480069481595839467475121945623969420045090020971537775280440542090023517313924035579324695800106513734350077542089979190258857784353593599985898829901197003880866156664401143087372293057584605884596133184488565755638049153324987070122060529938201807904866382110922600839696606831988793188081016812741127838037667807411447652634234434949204700662002428490556939387081410595905217451704555769052703758411377036673411322476625331639483687720635784920036019817206237982796273400438858473739542179563101600735452352448106360603877355572732121860819422214705509695276943817801553418111018091682179668783676186948873298285048672559694842683595866767918782696807155584268573091467557300303628329708556724100302165716749347535308967640558463405276738207559593186433365762153217489207237124345683873216751499992187619295465859192360216463940214945973369227726659767268886624623690946732430610776298992046174389126067703887061962673732860184064689514343337108707383732320829391561086342190252973077837207471422472827955255527804578666350711592604442767912149795652433076352006924561716062010009278229397982100924016762865281211056141197308474034201221676942059238902273151302834462642424560004274204626347059092371706228499046954411493435472621085778521171398355596364942342597905457277460940852141427561799523216332666570205624489114145110469936075681887257371722258771729874287043430546059535424162028382944412795608742074701142727097344970020709844544373989955159479186742985532154838047212218509612430106158525429579432969997388751515362462502699007745001466399436286437734556226457613217175034541086121062347071277380298411109147975029638202818604134322104785462375475960229676449891534853113424867207663770747173528094430149519313217061669717276798522414715338691344729820973018004021778858543982589919175367725192119422498358306878211102208335956151096678132542820994997192617665931734971656664043376247713572397852329706833371137188629357300348121078098167355543992812531442463424928141362931790525079372688919387797027497634421880625366296998394701846149053467721874503342679166573250933284714391736280470535887707731379086491352715679260684407418479003861174676282900898889830402500008762401162289095339872892329986717618025498052979769619025313578855330102396593426016305854491414097653683034839349561648047430229976716479532713925976605297007142898948454918438222651775443509812990355041966422337208041236716192953327897436833737101122155276237173626128564814529624340965600491601933135317564705949817876308066165166851839214314235368197655541540836235334261719390924822340930318860899737497871579677459753992775090987695979526771421422200479238541037180347802523528243409586693446522555125287171560199367937851579331613377528917476136425855390398838490285778709120358604077973609760139341478025677432275887027277625461083570701217239994096559271421648367579106930584737258464267155513434924989894846553830614346816110326033047137011711722335661850327760741799901825228363406935778174235839177455906680794870619553295469763433352966228689829622619459787705428784375853658485972026282331397677950696256372924468323001390675976941911746399198908359844118786365007572029414481808865247524563763457339428286866895662926118399867413816336698107070103933329919049207393337548347654059025237983425834031267644473956280813448050310285585423988605628380103242590059846628419351912099599673279415289450164204662646655364377567024720026823474327037738070287013850753068718163420034907110982429636795654524751307016098291515898355960107381540010770935669551262586549366368814454975559340466473386393248419760147521895831231761762758614240003868063619743523475739545298091572558806282791648121709759612359378818413639154964261595444539160270452721322961440140992645052724701743761986399433207858199882316921888671119064715909589684172383061981786653422163977459752524023749812884935041146463105788850316218046212205483553742501560086504562797324412475297769902947722524476547631075829894431908932987603262805106146102378064520204445038283463506847458333680949354059757126820254377688542476335226439979401153203544636113734796823433827906765167944420109380217420470229820521680352257089983071747913189046575233721471665830116361529323681744080479522439330399285169154832649739541187099211114110548777360579521436683579740480301857771350344252714795150354792286505937695600204975605263964456649102601022023172032954989923918409184504677740930300132435746103144705346434869726077965997441101199066303017827074106626013990455625779087756339880626036582377334615951693057303407790662345608952281268481818521257888663759783401598120376738092412143493691865042576423821757427789824823014563443564397305513466224729910559771368048630206718791944302024208191570356480413447071952545206089491496091951799119924377760540507475331286907097023558126392477609736030366109859731180377566825434425832106202380865398783181178536682928426336677327977241616216421366488403515462492377417221615281290415960962353752497080672287919622626638609298307518008896997929277974815619992222230756077674404869003604404211247257030278440163734484571599580659229851489225826555574465805016637317717107833393966126240664822325082017670563277881669814520098046272837498856192979045116486767190713531760550047298155765205498284059641064674630364201967078476504009264831671176507544644615442869926018846829118867922963497208714988152484290244573691858156921429971687204498470684584770401794371129354845162241575232921654510232935165822412079561865571961763037025011836152259419169623308755971928391683803391131876844953869942531294546927434689470737369185161452007738216332942326472666995771989960675169750174320140372215682636683211555787863017232356004797825477674236822405370720140333202441367512235918162095614808642801255865461573643458612074757146414830846027576308894197861985626069180070674936634948498140754365947208143405570040880754728188220578329068223174454809604015414823416019567470932664760279428605924133433476847337976246966413044739453639891910148541065522629497433011359228721921133300539592641134573456259767372145348012172729237142330654866178850120426690945426734856839223176663003010196430420883270389175527495303734033798194589903072597045734836725830939792085604806704012070971682861024092600039807873407070430315416309008499075606195830936378465443691974978973786733375685117857810326822092420659543547626204431540739355059225998346044765835457642737237848588782844462125327347819023641940375099279656311697265969681809429862464940252235958380529926437030061316154691285412609748188818275659750131387229890196703919109129866120945465536534292542020269707407412877947471495830130510711955379269402740436399306529847244368037720328835165530241472786732860295951689171210870700383521667425143729147478907499923587024974260554020164799035939197956230482273851174244006814443643462337814599094988415331761152361981144333779958466391866578480063529242998710014205366435785598279961623492255716271555392343603258952676052327156890525869797002962293742586355078692935600904525644141557484655516692912970863612304836259635766847088451195816333298131825437363939129975039102432225197969708189782965496698169659864541351304949775166864934727579184295090585967673743351947406491182691809523697599224086818530202367236368254629620463857977850616797700400523685328759737119588737162592572984539290792423845102026972437548208520422921935879019895620695455733707987874374716829370415774309286500070665275435198170914692130276393263474783335909575944338604764349584644283753913921263616391772082678675571022550306150830607253706425652774687495198363851783851579141642345535094435338292638815666748943568936948412130856828135177188148056966367310140877468479613771107420838314552525182695701897417450120629586431485434930926134567885460747422531720169462918462783971294261095166744520615674522522791528645321032168587422885062397255417756177935468598993321837412964452130059116196220848567599352000955995410729654980988352383991287329264518694464145810330819846142296376677902258343423259244175613280832896524582114440650821835011384952498918612998394395897727398495405279383571710464758305582812630505585247778878507764718713313287064000278984658624422961537014728506671606340100984312142568658522624446430584220131095088865822620050665672742191464691035524673097901146112816699975578454732283032902323827414365951055276312454080445431131975072363884900996132591869537045714057867832041448968546163150452153737363659063686637957022087543892561673068010492929237872038925290772601338712173497879212351825808733302899444477349081313381399748153823220535676638927328908465265716413141653147754624830670226018200179145101564062581032122006140263054115000710309448348838099545602452726686027466536646511115444568009970691038237543421089975135088048115762001349665392486984633639783093604004870309042167712277507115829564298440153812717108568213609446133315863222088535334560176962686745412401294585459707500758142367028234554867760433084592781113726691915049992221494966194671208674281425835603555718170980152882433924470882722922721836169119123255807698386319391403687413038149738266215717458454637886492041487881196415245998574708173677897128353731511660663746977295814363186558021371388702368055692749760726468096392093587077498064172338175947495224369673612550215523714588479264963309463383719288133400151389440482186125120176519277699933385409216513816821769638808334067172880329265169600487001023928158210251427691277251565914453376784766296205379079859857920775556191006651363550724347649017974319405709047922854519664240328107548609210611851030437342826106263040818361425384442381827153756412412069301548762495498158127957283136399289127794857574228811353343035415963515929909611820817689403209338984523064153170033278431629209079868963716132812589182120003778047450586342510930843897549202758762009963566294565515557472312531199968072169449100160129863716927882830456320759292463756808284738263283816189723862724269383612652963038733945077690647990180002507929365676456291291510228253813184474678563956259006168948160548529440152613556763459016778327141447259673156206367834181523744154435608331531728967127074147283656950646123774433178078863222110499116544378367450771156826422941657185848901042421093293383715507035007102280503368021854978978868104840260723058198208903091245267695924968462412194767054848494704585146518861447073951250807124520193777743619657633649185858165484555878477062540020435633685692456934815056827235411142487801253525961771457934220810819120009465047043050352024005560711891913348329322500260518465712183963949672818920164072321222557952944208592140401872452662209974801071727612829349944767262791998770303928449862307044323803290332449272326604725987757277818613353580008755043211360772459276219935511492444647398221213049548836120923055076269594773045781279422089068147547405041481680727791129933069356114865120888575679339477658407367048543171921251206537316290542002172924438849209346411408999577100423999879759511703664477793572700731286469321891584298314228578195352804494081733804009911643506117038010380120361337169229216043972737974248201590463865205326290915611568521485186959032161856670247469844400646974172141841544984075154557472028233709796657326317730125329346204080418892666186171853399130715111337298232379790439341483545001643908052065333282238361338330178537161549599604083530250914087851553222902854526299303524384021331343077193543096916083176851770086971212242044869205425631618335846745533461661151452837883492182810098003504557809467496847300392293750548136985478193861828762278902653508671455559492858968647652002003703462376256630099339588771171348960215500798570066724214015331366207283924893653379838451445030482546935745069277515853611715453227282053775746499747879489822082490408634137304331722293596906646363743429762670881853158666356415035344796539213717691416718819016147052431893328380190544561385177462860417542712148945192134474920304978311413605854482167578590166417097090183442156438988271556941702846644996954808667603490986732009927974045473692604522158763445645759071500120982560389140186467077050638056315998225002618897079630678308732631520753871612198355520558359981727381858485227479512531652756101176291183118144231997456902472028997211046246490166896737307839142272658147276081322792569689541062089471630429169478457452270725363854387750219847145158407472947039861634725631878336423121197760417853808150943116677841142721414809520917412696287088398086320986986117014674867186894459496746798760669707353288022139226158862326392579086094937827465034470409395421934935423959725991695087004647039257203035859549063311149129009792348656062224900203982199804360880906764247492463572032050512691643403409397829541936680495840485472730091302965218877673630767853268210418140273564359239509439518856118729929488392902450871256038894457061342586341410504307040158535965131657672958336008462019981700421641983407969504473201778790815443983225884110815492600536137150127550918034013458052322338686233217013208698730098796444613039504136183803125759925510670316659618414099514893908656404684888782520843708308766525985137190209383303260767651010062647652575842322950155414830097020774938277260130832904083646829920423570959117135925518765360490507645705753143408425535818192067265877152495038070584927508321244719134042489919947273354874221836386950186640296287790255945167240665788628699052730575613395127978214723351559038416873299954409047301040987801578329898214568426198302398324301998894311329020283217004020929485769696356706878493622895465361879032033449927785730805895573958727388215680277211032158373264571148484430160560792760256401778789867609955426899249218959467226156823199140714729433419274073934978552348192946434521415416102667619010521768277257267161805801780367019721750099928179003288193240367353190683420196963740268512903031564333564601591595398020509314477395062038426989846499960563287371250401609820424816169317447371423757774888565644511194121250616463298708667563370708237050681956635538815162348564787457637236221680146594291953090532704438361209941322880338963570169881952301592807466922469891095608222401992837347489731815235320112348304870595882715518601043002699555712488553343185986888902869944844607725799423829184525219571247091192017325457712880723039475368127376013720270400228348900441093318453746595714440532208947304927095353100372569331858697205009441378813954087965166547148129729033511732469888555337981432246432134490924919297521990952918551879617854538718054748072910245478871427366712787392251595080287599801189666753016066211062130887796523680437796331560152774795427560904308145178777157047408892168963169661782653095608287407129517832987959168783357971241310490414657485661855928612254246817632651428909596725860180977624332979870206578254425599534907129454852511196894931637820782824486334673786345196063420999201076876760177071882247183173809211083810898760696876432857704080345191553535958185559390266288899597638873116492700442439041146371911980317970498381806590109596871105741376692986240645804326520917548867614534599714043973830178913227965260115393378384055006668682114277444286995357075674264350469634806565344513758434292734606770618873258157361594883037008695367161182840305490853649494845590183621956901900579684673428584756568042336778533479012084578518828540055849402365547964043200304186392541832188398530877203095351857866422181321391705081294709853521198426067711111110448787159449133756405962449638421953904810972303069387757243657431183051043592446828561194833885988030471339599373195245579715265187333375798396624523535396671534075731398203867362707243692543764022615966611604636356589137628563185937209675264128151666029066578765539619773961356349760759451671914545985136428587555818937425459040036212583922443960430057772496131557217554699715438815624952243028820216193420780061302874924362346345126000024447654020810450917020637985665096726263703623278026105839703719697749636641816813298517067203412164255705211094348757911298760907974539111987721063459154932293812907184268303907776245721207636667865255825886264146360079339654677933616554567159992257702208407329166086348481301249512209190472072339020578835367175517729002509389649986772381127273925139005616844697405345576133165645537258680669831479225392201853414794079876959241684347119882588604030624633418153517141335760389552825074086879449891062677874881414930173716525251375209360135365557734277830978527779457134383644111191462058480277134931694206688487076652917652716888309496457173891853008896884369593544881688801247327835090809270774976284970918379170121826445209304569153395828052602192617002879568973364741164788578817577400935117919170255481329066384409377558243202728437286439305374355938524716968778686845347297859210235115139748032538956487878340302027896791177394581569345846124730473758837062615787696231524038269153960787315167910443391256797178309353088646927219743216109025174903835675919696309583446065846962733157493156262401953788400718998837001396537704834027399653460888608310394851039068220496782323982296869786504392509105716696273848177202793549202507205730231981704919048670305097212507801189089779295057954343410569361900808034960593782466256691779124271998575194641186202305941452062912885783830971113190749678575838461327082051897129773492274171683851469947538067316225230419261692109709159475500257535022275104045506397339147235587495215380071336156885310802495828038958594982651380139292469562966945505230490718894547228475972143861625727269830593753596704029054222670962164175518228800307070599811366026078679838386365502458018651058573618637611911772913099704696943320775308816624770812264151632915873279454631930805509019537728610115148114098215449041165389338833939086793242775609017640892082884813191361777473384594285676297589115144185398211789134768149908245732517562165780355270632105594869441641474493408985940984731214020215504155161771142626967597904787883431288090346929299257945517674054010878981210903286865981526986857505859697462187151124323738015835826832913354304776364504098309086280914540897182810724432504539967575644109770059449689884318355227423291727156648811859334664225690765558403076941370636106670750937692442539896192808533783745183741718427871532528818786052163456835577543043921322891317399185826489452400484036843463039123827560137933492859433306168974496173818925508585474049086011722640457315817509517434426328353723849385735373978684194041217221678407796804492790917167225221319899956004385474733730366391631282221443920390590800441394188987222632024835087261747074700150473273394438129798734149116800689066308207978264136298480298904482517769168110934577131174526717315190134808856074566435115957597872661713546543863589662215579547267605829916496494188106135439797243375144930958141836866163179703194054664532329665659084361758729178585462464766010106707475876323364875822874464351427101494947972444566941545820035388285881847046360959181110215522654111911525000891544451002138622751878553060744706268509691258888727897890399043742789589213165663324174843828004169734044346387889703661901618937820139858929693050364994346495853019270900241427763950038079001552761769756808778693154474761001598977246985238619929434921570338628719362469618303576973297208652962140297107759715310671230695928809957847888744053164033997376136804298094924838932747831771123906814955911453389366900371157112192104073792900848327389344196313937723495416012897270060646234564399542740490226599983921681158302176757279812052386741788587327966858747118918887780856762904535030401593160896962014498599219621999183897684277903230185480163352233711771820776486346763160318159016954080502434846591183884643085529407742139103224014670474112993053932744163592724451622469668674754898689454832467433641895183035942906475362281588509427209292752544903256277305654703624578000973068144934074531392977426575432829211938352354620181670117240367362517858404187441461954258336618696062133198210667652933213939287359955743717366436585645287166482120732717330702275258266361186921345116260958107914172276405390086231562772854897301056387474154312138452811642729037659896306672309720434685406088335226828692542145173872376440411294902900223061778289868740109136611989337104104446514462191275268933013327795231415852061497243910384081862041048238199912749419230000770928157285359701258376831228463783741659683610512783086823684627808817072626843227273512058404447750369844257145005941660849080771692843024421127888569004595093973704618918489321744516610431767391461331457965516219881860806958251672149821947093147531589221248076528077510950542715247370519658307970403871908924249046783535729219015641694046885589535614616992259517100295556861749592202049406384922687181820001553150581000327707896422099260541496564619661322340274793473794234842003649285787453356989543752741184168111057475459898552624777357122501577309893743363122040029143767932880219591207591829445408192326217301449156388258765009099499310461560177194644120640759027092377204607059553048345667269390355364933058718389204890711486999114137919668900045327135297422411162317824485110337218013506997399063689174059049374273896140469767140668430618484883790917203033652983482499676987041291244768415153839872382832463396195133587841324760898975847460146984687163224468098190394445920315277121283724315818741276102079903990083450465876900030842398960962940598209367316915274822603117223705872583975275331655174687342145541530929407933980587930281288364021418886929285773297232451474274579968372173170684159366113017130039966691631544457456892590822920962075740771010718190237004195054604962787659259734939302906265039608679534841045910877225963977941187059850255757700945204570580017367220255896573137323986700126566891450964078838465733484129015253144695205122239067622878958229203939708308634490743710185693693151227686351434343767167222881238882977159604404823742924021886023990167123832634736471869887579709397028419506195810299218254874040272246827988977818941254748977838413062228049977042074048248529822721385926331734612617974960099143269053600058178154269559671494983660739235044099971975407023544516472917196586156374410370186925867889169359739445700978601710356547245593015825840881689746317280062978566143631989089577198022193026891412080505843844797869435114466880333760474485805206514522167682733070346270186579292510074454460309557583773219447150839959456744436723583866219692094268356072440299266328776433534862456453704788270215878287977689163573722856098541461855989711070047568628074266258189060853149330247235907554946171498785511807758613183297941762993083793610560362111397395078890062468734303569489017842341821447083185531189111165300191640437196915017199608721646165549347973549157624924134409462154104768972678536266931757213756556881376737297284323697687061681989675803133605797420078894216453686846934194985351542910577070781484465986985568048984821954795082016578900306233866903742751952867960987553104448742525665891175772788190405160264226853836211677519274448170406844127707692113765558603977114844618560177957219392665432557691341502120857420129157371218965163538118715080676156522836411962049258510706039958895050816301651336074026605716658978180781654334769051754135538494504599349510470751178109217280820899662860218063994012479861229520775411985860669586281610395562278904169047269303902064480154800657310185069872544758534617185303908019169429840406044195005877186726813646715964306323210734385015620861735460605614602527207802306553964144306481126309894489073335697054126359155980465044126225315735911038160576137615218354828556725458676012551909910248260517488350826178358744544443679570474568979346000789585969643583649063571064982246776147324463241515617166854490587729514791292956479820241544493591948113431674735037533903718985892525145106296105253257804672739864546915347175644865738744892647982022932475801781056977264972153897615118053498365145218249346100297907036764050670163245727353496949442984182848261605915529140333980042905363251483897998604715599898477922548678721094323719465083049191329399896833295283460691087225089449686037915022645642256905213527201195940253498244531366327029185343183720741166815977454996154667308431831108456124049819961042589182515154063748600858501767766290721623884539858592309441089263065580643501385031626758560142734292259774142288057037427939911641857008411066471289290797078240865279542161707319685722579725527601786340806315814397172459995460365541577831105379001216816364054233315133126425873517534856329361382728892326764987167226404486943224946820433792798185262263521825507147959741787870793272736830723880781195555703557848897922932931018621563186603669159044432239294601051919842964329894695977137464953257659463684070895554866275109186119163882463041088572925983203959695108414680777394164254310164183154341095009295294685537475475493571040779764844080229886685017698850442591347072848279088014120170378647935500681722483648325623269380473099513752063376936662925571619849111813196125510301849842653504724632631255851565068637750592901960301473449282156033061618078024066536203191068605361220627745486670969172574286327414850461672279465789351742128340333343639518900867944779032653191509886416362012148644087891828025783905307898857017389041095978082597887913795014130354691802620986457530863894401765606981918094789515370108131842193763454561299293895990751285505866078325136676898029395564478872311858890762481067059315967147688027725106262533566613951234031998284318162795010275379073687370039370189011355614898835694681028154283665301239204389871431523397198100414501105015712124503016600074571768303841007019539897607066797930168768504749200205587006594004232687818641218903754891754107887237953879025995851709610484462337091809833515250676835208222807367722251893602861429052758979767403581927761178560097351200115971177102955635881184260345985047419337974165469277175136967001581075929912825465444184832512742590388457409128945992991692974751051351755574584058380139740838845555967140580865078371416058348204042150643938368006792946389424244495783691540585502518719070026843679342192876618902848199186233869442150949874669056072634441492855479078362917095517085762567159137258093941251071662503217079926024309635966893191231968544215718658875460685767137574407539025989655938113802605239790963376704618870385745705743237885058417249352878004757150493976213277749129529478729785248296524823449579479139026782570703580031819492545721703707505697950968797033304744672662377407232662032064392874094437869682368805393921904492457058832151202144742510885722657773431453830722675362016432494257858637173593550544665659464828247824355285571204360992581149717414274545189816668372319403899690798692883936879847062879630939731051845097463776811428936698565061492023381231916430354286668430979123957659297945100369136431596539276147960182716624262435171358344543214950033541000637059056635608497581711773620445891184341500428390821849771854258974239409963797015576469165818915722432990745824378826051525747566401116120449303072058069248158638265584755540751755202104371466009754204060313954779718162206514978548204240292176144344665213745263187679719042910012088306257690635787471261459052999809483522291557708734230330985327001344746959795092756003312221018799206160321608380156016176277236050377559468455363056278044545502698892139306494349649204508860160617565571166717724318569796933101726752849660918964212217244449155785614283144254674509089758007293324460501752655852999481794400173484187835475811897899004044778506207900829044689510737266708790351973008589483165908776618672399855871917292019929610230740666675946407706898783805195870796546000485860330289859268118365573710903874973995709149112053480745828701025050601898372619615824634307112652748143379606731482728525039208526534402830432838569611717616985465513656074691984206940774138803828467737574626742812716469969956847580138329163673574477761565090608259631117033390923121912103823888477739264976944448492034620425524503138337473322761780864629129444953876483486634195420766860838811956736375551190193054143018292871615575383233740258362174073764789919864809985537679484859772333948779472892914198046543816600409935292406569207054690543492057782402433505150725000496465764470755752622124317228134021312256325169481085527840489841782839769371249095661559478463261266882189034510570454717205357529230502254990777341150205193506333769695924355156472148416517791380081457158484687224800694872697620890450211813770993978062279632554573557166287989247883924892591873496735546092517855221477707877831322851351144500892787162360470943657001296276741080792139135811045915477234403969138954926977883824187169993901127880200500624105323026841833476346374113106230462656768950176332436998809198873888558059791715332163287287602745111877412906665611422831926365300052044172201134037658419910550683629293924414670108124111663068473827420885492707811173465669296854809382014459578819001109839733986821472545340506012307342909986645512609567379352109540806795041522704342151210204250336013927871382259843468147006558936857929041758287488023320526655489030573862969697211096911895950120022751271133366721958510975131717240272689882927252525526192308902753611506569652843392256145897280552472735983222514251800448524858127669864317461457735738196568107468908421621830471837727541132336677932966813580042519715472111692919250773407652473371073167637299625286082539573801376554326208475901325256648973706059741268091859011831276484586377239376564961691494200137329475808456592040414841566740475213864759530309935261773522302380767890029408890664127591136133696430377844344991155581381263640356386577353657460167068639349941920182634514376577644218840893046065715719054823542505373571539302784101777005822440125553213999960846522341309919014983070789030753852285479028400697403955020922996491236916448870083296511973832022314261245948692425654114841564577127317517563616655725406308616715420266753019709325965142850102154844986961209072051885914897758062003658046296233723625290529538564503298934132153921964808078677047513301455869199829664582025631024362826590703992272440192890331726407522271995299263936129568410492446015272758143456466124245540369151601008956142560127805997774000443613958332417509967879865538423227186494846309875979942137583021929712668022258470160204465990450296570669501556628005137236566996470491928529470968301517111998747536653286815128256946310962094889628308791806864053088155674774387497588735292853530146428826372177567879442509929442953239240209313423919357041586391983208684762029601447795630608275579789468435309216820943970820928255887337330606771631935245912152645067669097587380704790782517652883680078595213632935077058609669992461713165270236508090466361725104919812604919995154517174909868162917752997503551980406781912388499270139919485161719677242687003374424290273267253907799008174464006979345418730617218019566001108173196964926390404081203452075320317013072626553882421722194378878577371080912056651029374705907566498671535294394643890907411866144010136723901077755316154318458901964873207835479606517100577783326480053430217950015790699270198936554281261046437396074367173646060307400933991060430122931679499208662407742926966247637323913886573440311935659908458398074873757314518720644204095421508524226605572038163580003432851314452348661935151131059383446656158828008172656685711056680232698001504236649723596749732008811429969771862466781515746230858687394104842856510201608262231341488913838171242686355641893319268120338309495004727858047855710518750962113872934341629991220132217998851118507149881579996324151231974098761160279586440603644622051261755321050700823693829986028114239779723952453495943877557904082556083429683993546816340331023223106253702963098425112165575354321866704721830783395004230399078596816220749455114058835805369833903327134740359971108596035186153284862993406564436731208292210142217815041593390172612823224774910853680390422489292786512999840351933857658320096822831495698040321094217572291945726174742593711672211187850933958581950448605450049059578181100358304187500934454078846151468312652135187495850497920734326545356682280155142048383308093391686679837945575239222060394426755943976089156914596582310682770240257586290435582037985453772178786980005894324677226653298481775113612265072786285171030689224501547617629350830700638319846975526712044214913851118085951905012209751312765232283486033973152628412225626567933276530229820010157482363235174641527537403882355422015920578984867901527957517075055146083658010210776358062172028270065313774832044917996213893902823790527916571254490019991041628165048212450115522302064940016033368243296787821657705147776476894496916942440078583632907870375350583906043522235542910829541981614688065248156407118966748857959082539968689339001150332244234437224099200370526108874232975956028696487867134165166746956768264461364273198786563896338454255575053639459104199020713451699319308306183871100267950703988598348424056550365055777973605025582803116981118153321581958572750185620233041227944177601120192288788297960985274402450344844107933031677374662305905570027807191059635646967040339505749319971220496905479522299559091712796242627856665713522765301531675627662251905117878722504428830824964281860947732411592941699890191150677576199993103873023119389283370012185916975594409053341716909297381198304367191447112165586498756507948658108680707725162987001430702174189551106445638415052779964958765379530732942110203251046259232251775942414489794718603491106002749032147619704612637358870832312374984430745322569927119483993186435666018962039424524130598811946640364801056292800497391969737378897051398381068747684482288434435563064828713686179512611076798136844078007505153331109431677090972215274224835358918615922336446654746916441765442578661447359024108908735231763011723946130638773534976764788963387182529737374440016059942794828164002175168442917584213108829818113644650659271424275559990885976536142832993341768611903030162798606495575334999097234071233243295130435904270713168452119978038253800425325441985574293612648588063996939284357022177504453701651990213973411925810850525777580561239357848360044166332445916289424158726986158429470678285218325265733459839939387537665187880620667449344153458737548844777282767434171186957058168715170152126357919487928893801175860538032544239720690462063285138246753642512570861188418439209622135060310859971474546242437763759785196582970882307565790337691140629435555341827940182680797929296243284860736646216207498879772514032651559390774316974411186512579738188200088779143967733466297074170794632519069262193404019443855411762105048210788351591873122757891863133077344068417688340278430243615198096004042730677505664347589054340325581647213067906890097276927148532783768451771610436658193316115640149554973459205332897988727259134422097772888090577337872206019263875072534450143404179821246794333730037053383294354501211472331899972884552667302406701303455623756167957516389673487579967912969398953806689062324394238001515231292233960358000969463718897152816810825006960785349580646771881078885831992990103252145395343948583817405189726798711127152324682952879111021741938539848252676870904389432418783505415508516850154709977606514544920999491427199037794248150935099336704768324585434770446435119681335795510181262922053814934496492071979836766818413754665211977831099663225762670471414156622523367786207283780393083447774913677314797471473436921523359309042319850050875655925498503074444463193066997344663017131981884128276145518696681652210809108300475526787149815745285470762346196766033687209707451754781523295628280925301941827019812077690464675853498722581528273017971518560743563364587085137361746728943418418901638703560285055915649175695106313886341784916321924625781916200943470628613648428252670626192399281114351810590277552831756886437708982175166576868854973378068588776606698095263999544597945266518137320808660383278370914222699169356359770206555146847750377987621191279110246025652457321065626917667662525961198164226058151873764570629161715737337038006934162140282484710446426493915170718351511029810564023046902781137470231388897863941127974962294825171408185570741384126754211291836481531887356691195838505700843352134795387158172982293212591412493161846790402968414116689626256799927921096305112410921760872639374767397152028546475395979658004865686656786995017126003764952897899730776651453990937553920499371045440872752207396343595192742041108674327209097018015265234266440389661688295371737034362219389494511081956965247097599640134576567060733287188275258913980681647927097604642069653599410126661878548699482469145785051054774762919877715938964809006094416547768579160010153828013139455746501709231422982966989752240595544236780380870320166087493880689305652911947726490509772047904992697713378214790361399049848624870596110994720537772811876763361117790147345054681149851243578066395411697911000432778151666845910152295031687219410390327924305406454989997796499936792467173607560778770245162414510256961600512210641483054097673578124435453110376971544213954417822713763196779453746640712854117033670859627144232245214242427247288053604507149449546387889927524189818218167682119662664934953926670590772081121668237502331684244961956272563077398114227014874469622964506288220620221151818897698208801406581594610559846701794907773267124806144112661219084366127332891688875503107208318734574663086362784230938183328971939714202873397912975623538548350563157400633755206718701515968889290913913341972555378531937887057490861913765405724371791456217723157652447491988906795071715817105240874830895128474322589554498430317618541944563070457426450004117040364997678161145921542186857708985395792300023973651649107076120469242634515333089787167522436521579812752991108005542244188006561419380068303230201944386200669444652322463503760914720252817666305723885031832652379747126222131766532941591999188060384309571543657908167421512310291215577332554025131335508310112336084283170789234187104939440166355286287756003858049584103997596116132253936531068133260801123555518500186848102512046343849222731982888616698806534556866927470151955867589355026739347752330536838873388524936610009797570400217181447002334710870570585581791605801250249720351474479140343494696907994710091295388755784907723021212983267671565499577689462012057800447681984083781623747117931610696491751440488429652272519165134657151532955073390245276148806574102204095730559451233595977619246277991019818684180708291049724962723743248958914133448156621584598187537945599013654593458378396875682957350594636859442557287132586348890385404858517532376188298310923571993435921805093621892601633063854097656047266505520075958220636356149920475614713757879968390160483752282355387820758782288342690450859143423404154214926955289969480956515451781887001774274827074055103900824137721324373186189288653757884019216522789657170460272677806525115136093067518922579967004815901098004174470257997850341028753942977696940569014614289664633285913278385164402082776267134761847472597964130256248589925814479162887396905767126307234809048039781002577771721758170152110389578791705967709602646971636470866360653170152683071791257654647299192839817380391078632076562403423113994525350825112291108692951277155117604713811968135091388801614821807684645851621395448970015495739788797631049406944305661759315878604827382029181454703333152604776225274504841727271597131987587255870093934090420017037410854623536085887547425561634408165479435014087530181276755676590891665858767716726024696806804161591485036370777155204764073201341991721873276550048487971304878352926024208313930973685990559557107685125814068113843385242515257243481214967416569249908081362959844405398910338947928439352704267427000054514524219636078356487037607292249526110792261639316619523351252999929720671227616704499431629797186639307174826183203697314778257485682915183566356900291824786783058040721624456624425269653666777651326008502707572538836516875749422138406325216287913923259475525581360113485566531583326841887380213787761107009460958511925041104297514858411439054171864083144984769528349563790089662485284578825559930218458779309711914174625335295296980004003416571811631934587925595699094783343405881576188925594975962269776876518816930543582597884755484643146007235842466803098526749684377526480966183527184654202167930693676344369823597713052922565066154346457790550873926444999752348614515241661839326521566337055987358802372603550858611981966996468787177813817873715668320483360382831240802679516663266229710552398616322356692836626370939924649124701904830096207180290071165046395582239086951640968806336049228919587425697515456831245817407227375580687845534827167443741092337695526530064326322514114708749026213654344413653610192916363224328236790475082441908302683483948270651209666017165261248825591656325268443831569010578183648470185280054026301503333872051698532872497286168394572353342202982548831491726235957098610334791428569240511077242669399000234420335158974424117210417781035794229950389516383172256955804385021453854520031127536947474476792396074647263630361861908213543068007388418425974334681964603366867440143713028613103637051254808630003055187570590212875023286751682415339329847136907075781561327403419387590149707981915124518146373643664487054174238145265305499844412974597224341343654731456119080295689157272043881600260152186926055376929740381226896531063567635817593108488375473147780639857836389606916779568576237899775374215280220793510154189699777156779845790898033572126306759801899828209428415995523821334863616960525021190933491866092181057973413600515360727436636854622648282387062479014623285912314786598402176214724170680894347995985910922578884361991364590085381183451357430801065056315696434922209762923122021729960887103088391539254932978108863344220458078485831491419967321659696578975474238610361136077844436520876291795546319346008175127898292472992816059674638356683309342494633179247149342624648143449675452720136019240032318717026039092514146090650312240891823792640239925943112398397556514724722767404257751465777930042256527711398392589442466023613882300914983806259776985972762477616490270978517657035207831549459563906606280081361511221470039243703853520198701322671751660007392849325609888188582105126059969457362193747556550359024998128289619995657976111001628487635438878608632202137656718152137988901379857332436873780821579471924948177519589624032300227286140261232804020461024288264363575531175739602570072430508624403910865633485653991825290972079918458297341481091042880762805302515946138770147875621507193591770304971934828875190924455662061130890310549230306820855372709373414145177267815174454624174623111169111227766999583181508770416840969379029369991067632225815120861171368534191620634108623914847589333521012951120910805909375526013713925747865681468000360737828736212121618959940112007467033997630924667305818932177392387318709236777218169860856719924642108972734913712860733157870717793863947161364134743146504165344436034156622485601391489279794373751284863348976493138701266732153027188921281600178089635662350486247586321373427791471002890569986847502078395139275835521639700960165999243401900323144386102551860464261710241181389438267803544615854112583080554447676341889400918260456446572312281097965548070279593964755959078066844826700446352232637891883804866653470319220683555397459597577581434857095379935995238022333136850085006037398789973293571095876914984516161231052183649024884064148323182691741158846392107747353845140320016327080897928492497722979831138671252091441946416009871216702625645476938142816533758786271392750384246945888991089946307323841378800723864065856032939822071560602748960499308123867201044622897278230726486017065683112647630823018182707658012283623161703529270135415560773766648044461291437745181506687057957079828087855918910641968435362471983549391950222867150171437644676062009723452006105283179913169387500785579757462538579529833074764647674108743949022606792696965115371966474737468803661301045163875143494311134502190168217253878958813273336487826467749607196196310341014709137838513875652771446114993177788569275343122758310388842389423020774641746768590632684994253994042459568545582304541685810070595699771733866810464914537658407378215997769213837547781694125157973909741891283292122730610958425791556981020317538239841988897387519301256311676912851943569616718332862223603400196938883573680489642242644847416588910452162668074649039744024727783220104925511069191586680418496475618251916369484383741326754763473689851211462690724404962398665153111247766322052850468825782682355895624806892205039776131471100484026895488572336490096936908420409933072333596864877400632659200890913288619115589743942555957175999787417026738248263699564927624037305633290910428739185397767334452394965475940862728798261129605607492970530528682149201819219411009657630251549655086404672362460456701799359067894628891606686288795940592649884629063417212582376150622880966839524751488244685759008053167625449886575359356364310446346468643004367713297072087303010869092016204971037668897632454160202610275597378823653552662045585177371169463435156029413318693386844039891561260675866722243477187009033819168883282955197743783241052341192286551768036562115510969385548130098661206842115719868256708813227515363612134205227152076466902279214954725887938099241185597414181319768496133783371709817298476342273342085666377731546345255755302688776044992582373474635222300179435643749833886997276288044428461019705573901909803459562272050063751134758437391622685035872396789601035763271416441456671429193025153282452187806828735063047788485046538759491162962562227202726395658547741541200147488920246801553519503186421261675554778179811933783695426002389357064666817024780160128023225076075335558731481021903403340251632399863923123389489926737273707373640868439891328376470466817302205403849587793777136216318764285739971587187655879923219968366706067617898184660841029079862972256271255381389039983655401506199435532627112161177958407270491955957943334424612122875044222709843569723510439158316480844988270213515099432506927296833225413525707080952582332221684355167106095418684074286438261531190917428093511552606144896757608117754151594319923291947981498519611074161716497307101732268002241886135984890940842380006047514912618286889046580341790981176673509929431833259545813239070134894182613838298987845501833812077599386680481718577930682954613201158600915318568753798794920061643338072654063657891252554680687596803527021385972073371648552257448620761086798962242077319392915602274392084963004807652979004889617415394772727600974910582833189907329663696729490214975002834192364851215828003147226740534359594843782003131690236131520171720613889535575325409263495992565273367990108747983531415797140885244311309308345186434664836742628184428135986736623659672200418032087768410697174391279545087788545928746393039018520519405341195807527771086735715365186083798751024634358569759135426789275530041425643798548873154459848123967964226322265195382026525135747208918084943449541894292091899798190226332353789957852082640126515025425511443921191775968405971377206672340014351176875826593102504574942562866138601990275777887268371270528063212749922268077147894452606650091848578046183818987313932367571323834307193966893085419074308493809212432843162026472710060623474377513467231172735468318767407692564350585677783934422811830362561303109637569308829810982397545634148997573693876611663177156142264175784948795940323972836104863837487919686107265609495097024669613280974276830895135600772908556512339681686881012687724968312526158673051990085021438524577578626640121429710082403889818013680912161084386388128289469907406536084676601458800085488708679138058057609193348634498465550499690011969604432759897613668032327800988044270065697997700836780460114590831710915177331972258699360328498614970077372337991872706606791819608209216172553450004669672538557542255255550809492915848326381989459531657317808690850721788525956154328238587917561429854096948548795432239790570650253092432521911995398406781697441906964375489989490415439396123643449915403363990041974839222891982235764697069141538484037629236828336310218417458363280557482033682273230476117578893282351194376476253340230111361113427883726652390292941798614201199847467828267358982312091295453110530064994614092531735567922245415064925679866366887368488026245398858649308086611036368630176798817882251089976448267949537948722726971201453930458442587835147652470572532699385786946826024239139468130097603922757896010336126639979779943612740702160857101821306888949389321286032664853832722142080820628173437663927924273430730075226866336070043951389466260110755476573229824506669134215102949252025050038768142407394399519412257578692792251951292708918698500585599388417491141735459019310012003733312455794292422358691615228957026502632875162094868338632750615253617019063111449981687507803808509789834567023329096455539953698542491574134691382941218208035485610922255488038424269537055729260642309368113861343425724361288834378125230498871462503089148275488444931268702339113408598293236881954125737364661285233842043987418139836269473704244507814719290466231044176026003805834563921419086048974503367946557795676068297860421057082808405604309146652124330984846772835697336097911838599931995882381870762804117325929682317035434764937981205077768180141981758677289847491339396096677650035367176636793201972273529579889475041412224286654916874502564082325844266996760519764506595135910224059511176023791530739430900813692697831571082613302110257982287212380943961215431749309516148513429836991457573852125845951979897524264231360840729014776110606547458240110011325411889012457723343986054224244886942519641562502668935109651936692372659645462672650547000199438859592671498813336962818020662914308372053238340142038403714562725372215655026946178168748998694148101262248319241206092853745632186079093779652672081869194505516188335428682693591164010830386937195300787380519800316892221552676247571222631088846772646711915536520534903857729330274648043644952358927205269731250628189899281882917496371142913363443956420372955769643841788361024762030594340101581182141965339282004958492558114271812438321145294818505836496275793573344596904387268647318334845070686871998277758164056385589140202792834638840639205847229412467473384645047440580852057186933462973460427525458181352843427219262839360991168920349564765305119361126151043495375102325795596769463859459584272714656708780555150558773630468596634623615933496221465862540817573606594052472006773086485410774535770815973246243456409292621127557148768290185956435953412202266963628269225356251024500159357020736868317083680187931474691363550110388211083849723116574545278391628412622210635091354818494779985861545142561292110437325311296548678928480451741330939248431823845880613939167165648342170571665778942044328831392499425347408577642943594080253366149801370179183176212466946657922317654772552445587293562646122889466451871340808326578307845710272133450186673801210711084850832530027758221923537244294619771219202965301022806223783119793408298596434928884408391816049332829736675916456174209289679528222251151404586835554105291223864336479710838695414623864646485417699736486267199002889731153951804479015380503847265190092013792600851329982135622368687468800202732060340817877710218067941129717726257286775820044584040941240013279450935409468520811728916466217508606897421730275787475636867674655327892248469436658282669726128717497651172434901086634344948079902423669760757930803376134379534246690305247662897691235772049722075890545484920110085603417517564041918985777751866026667468645601697623716202964750582835532078718409545303139029083703368991292039978735953805040810116890334829971738348850941830976315578505827718660644156434831023218439510530468070238845613404051961980209678048752401196309958972090439535900076126475502397972364044554561552003454693931236044063527538290964557070334048806065472797731429116354741329765105932997798073008540798212169010331062138583228539050386675380074326043788810937784922846919076573749539218462644994402787349470205051902130562509843140797148004463801473096076415654717280317047375078078822708395510681630577179047263427875804259143062165034317513933089046105959810448410020270496729634639365778066524642547648986070926348070647488924208383135260689889146997698140762592410244983106768156438453294998147802979593619972207257348788111303210253061396566779615323513110512093656562783132077511135402296610739935024803439743437860366084557960147545049377547097538021118336984395338447117506774516656530596620626879791120198998474793431111717516282970384811834480281033351262552810804991465130045737082489698684314196863588864416593016599274357293414757740492791050069442115147076407708726557708744771562176222303723047126370036840190761965129039444591268676463009047413838714516614888400793614088706934982531857275601151819154426974132327580787367570012356317541224216330202993556801089660227738085047223748076647151262407310027716672123414124263373173642710021492842424069436932140187787958516363861769712950330315730140536302462800573996871503915453067378967761431347060198770769125803127049758519486072170799938062483014778332877040702387686546260890122938307374317255456501645015341097444031874373910756764599136026223183324658944489876590230000060555633993103659395207118083638340007372757166954718099721810135972448839792285490735985247623290951865301476652309856784043761776579469293050783616944136710977474101027644599553483644126186239906627893844293282016596431195528425833860791059291521556323827450040676022009849448718825969539662838006699814201749082558100560775272328622751934003746261849669789640211185904174931846897411590799850629786194901127651345535312876395246113393295650636174677586977708758705584977801128126443502614119957396019726164063244635965186434132322174026360450892355785174473025344864149975273803163108883409383219770064940627652367856428923409827475976874834907527108814758003200219052716031688222718109640851242917298543864206016161930759871155694506745314777662035171892923601737148810450413315015174301905765471012281167382659243378164409241525489394757800767120616324916508931611406631971644961211190132339829049660359732459346003248187500736453222217267317569173091259184148613271454454947394327616924462024430788329281034115681647483477081839327577304992575826818677697808755989728173404098457863028938798561852166340790895002978288803739199274713893324547416811338798922905253330952998822177955014144856247558623673373585513826629790464300279902063813231343317562405125407995379850497537004696099813708356356798229102089419509268718061357614147000285574506584941037101758774041587250783109174049140784860866482639754611169542769834475929641750070231992752274899244731478117683774422467226529652845473306851269788758905757548965048650734090194035161171720256109583853911761502554080058838549472659199859634073335845895774730193820158786965020643974339028750955186836957205383220198780597687498231367552852831202176108920336792211733725144474690430834553538309001623757477788958002762973985114703739604651476323315655249815053521843448182052676833459064798048437259793708193900574008571349836500728399754130184433677913554808998929322387117113528702013156169692515939053187177934873506186809846723840553999131250755417934892980609410070734876492162425838383663099203434468374329554427592026298751975572615038605849305176148961673165182557077521597814258901965926148631429276679289961440200497879114562916403005538259193753149658814836861103033339143845582538365144776116999264009680209399783549425787312589236530683025406340662717196759654858605437314732804101795483842791918594562713598666395465367573333387900207892799551128391463277246374213295368607231023170265107561273676895373258174673823417511694165233955102161186066427981825097314250935277235389816420250258564977814404349782230522258146297383937061974764029188516526583675882563245219557340957622793382857450681815268178845214358562773147258628326824942715696339123717706128627080805657612814669416688827995885233497010276099639925257250008580083983651598441075979878291687788123876819763283855010865044702562138592926784394256173987305083834029548704878114070702190425012633450360588326729573488809202701355919712459514185494440008052672030139645279955900649693277401008888480405678183365916620782570898836329126123740496070908838455567746425729450000914076405401709166317820211624266095754614746546802981085561429364672204726577891277981470932347940711603746757966533152071944563365672692287728376359093405509582441867136695138806799138358346248345097018954616393549416190964421785853651887124798211754976381120579384425974579822353752997821250771097305050444119329020911319218559038313922797385655362272897949172361102895908967785079490599796920706703734850051091712777496748767852401105265944278008041798308131403937189158840652410548401049008931792177016875133119042453192609748251471320544537530224100135354261834441948157453044611610908868472659613308949375857361743305450835715266195384129240714940555483553974245353175769198447142255549965617793777741378561032516376412978345267764944637311299306921996597446841220075484873876678297795095419409768635410384690276865406861349542950539644695486449474532187346289759378845793507810990141119590083379090500516565095029406952545362655470989391633779810414743951250348486692968475346204560651133954288704801853179669601675100520401542700635679871073678734800300178466044860979105221252550517890247296140547423330281524098285575870593883365121478592683519257823197516263348266584924175195700081010077227215710915302905024093095362679976813357527121771119776124868571918811464626331998969026491652445703790497301003578441262983036470174550041610475151034831542368191020179722186550924041154094825822349783225698912848499461155718532739235264802254704043502998932456157406916586472745453327748158826557402100908171455886778634189276265727746374429143036212332939360166901569543937495244601971646610902545158589965767314905061020430446843696766777400612159787355706209084078496281884761283763935960163955561957482753724716698534226254136736848259874992285913373965680375479821096581782605675466302022389279187860440726351042290856659917629536088957735702996893826414403040938152488092395556469533324098693012029797144394139906726854454822977502027845604559724227501650110780781534051652373261540029661172155522331393212212139072449366028405803465499341178855268975075137138834707222972854737268965277069351345053316468004406495387059741987609820811167303370929255321327601829246978352152814457134633674475209100045367893648917778747568293613776760798575938363678950265119361965389529914665764201115792269946479250934582807883169100241517359342599296049295080306511752544428107943308213853439473394017716015194215737640855541302142655757876434257938582451938348145643894133103738687179561870597539160849681040128441243855244232464092496927603425360438106877247896524696882483262440322822587060763773169447412627028338782766773620740350936980588009153757521579755252477293659544656519664131695929382881587672346548909993605027832302060832260893230833824915070962309299016798059019145119547053796432066856864574898430787970065586987335919925881181659937171331258413228252041443465434487140199314774630103782879737894200164152680614276071039732928993248483723005565050588305259640112473455458840302970939598633801851592580289450938645232605064804851191082793167835390934385459122019185567495746734181412440511743510232285507377592121303637032567586866655634353650781163375320527397324418778158661738898618269784650055822955724735624307327111520515203229262809282466097479795911726981332333447125809116693004493888114343997193188284932520078801811380224719704831223624270405147896586198925367194819368460945494514864754404928169722728487496721481943976072946829132852320860319329656182657883108105073405554474664701638575054343125242053991032399077049577334793641665919280979129936141550493289941485540568745777808086955846121802255386175264027349097590544471246245225398700191146287538520373669945373087536804461833953261406664948283876818822408194728060302169505748375059142620161839837763477320976209946809742366454615981187475825748858804149433806424516114739267776582651935513843338149746212195434902305043841150080615274861530226748903610541685460926828039098513746655924463332151011607253097372282449933949110607553454551376245908193062870302324982692720666387537797969426384182093785487336349019781853804156928075239216696003166630440083445129944645875282278825549264593705374888367169051261571045757626332802592245534197741039165294479409390323028625740002544505889106215815975222353482932348018265662934609859258932756639651452593860339298924307476153962996715383528389261619821319690939208619632505123264000583846196427613539555348142295503476173786711969222803920700154680010293075930638774446476738439087340907661329130537525957520321829587978629167227335625663848641725816979812779307862202293742194562277931021890023036620222587971319585743323462550900364852017251838219647129966055489827454660442185040959053231670382559727863787919181858583538608829063074571472982707694927130593908379358522077906008960818300906822482929273652642172327646238867779328992991145143706812587423045352715184382660746622635498115955467186635523979373100046430115221485471716764755023721273141935851684498143897400589620113377665605403937547189221507086188542150287898757441538062751972532943384712635249034985980371274535229905747461117713185673079541520486242246143848295353292601980388723759527378680506881995231406129846534051469574354929996846324041818997899876051629013565216423588359759712398107418364850035394093697943578286300989186369028068659876563345240424995290792764008174094086258267539206785507090723330724895973006234271542290289019711960188202470299783743429841746530004603316078652776817889116561841913374872037537110547451901695734668200023551045962753289386612564878967480131221817359114706856055311593042865652809543914722662109569066666948552742980110598239616050448310553846034224807470185129108523063491300585789882008904995756908439757316644970586201219433088331510638703404188483519854717188367965824477918856145446849810349733086878380468046150137198930344527288129546682769412214132484470840913886828698242466667400130722324359196207389720944302015955400190781167950488180481420002940815269151342959692754506290605792410326392219096421921579031119267618036293817723617031114754210309674438060878154699553256284684246773998047963904590836439467275703648657186205153609022563597342038382477548178447260983660410853598145176812688041533905721187913368559995326464463661472059719964167602878122162617416984422450733770801903163966141164139083282010765825436513160411009151237016906680593743825548978325989989930525257903630439298173492846236402951437478564976433030722508708580946361862925440401976495158461806003485357150408176539830970487648023329357833158054044348941917880358006216702101648012009180775229699443752562712330637396942954100155325159745729706908129863222911870443395782107750673649555591784362799319400753441423749219212463670894050654905052549193746303443549251962559809421112546002072413935228675677079387079557414607203817853911106772952794444482645240044473084455390258620197489718678738527091895505845612326969885288964546887592860071130683532953833992286507696195711624991172373610696069557641872438975474866596448046580026073568405410309856175804826722136766182346026631115009690651165839678255010808501656287023677537901545923173621877387166494252100179121077895333353709374711605480267659151669756943877237850324773674536746133307852456329345478220965407464259971579365466224110341161294289745168150158491366885346972262094694588329612818795054500294443564822144178169996696882722039536780209485787032652236840692588885931673601351714022044473502214904943254409060736331209681700310494904261921465253988865128278537706892598361870434590880937148411933439509879801253444792385268913822725236192336091497697769890666448036385587254561334268535949218467486551536522518719006331166844003868057345320397843900628510867247624006339975366088003457429026561499881038825261315152523904829496670203906669159908256568223316239992083564916628798318518602489258279581169793457194551094590677669472733466885918228331664112475929811672950323518669447427806034476177601146840684818142595533555956352068431943998448234719234248295999112301231468518667104553439108001430137102451190231336233496005438503459122251049388218246605773423947003052792687741862561693142968940406439710200249757238808943905443033738614473673897912039532089974732802225331209361352554163220889834247616711509855909568891846943514852492080468860357892367888992096658551546774935563142086520669990550129724514615080037562464343150474510913153539657647720037816574016036758901083662605341949055051239361987774008137357713689791730399045793444484933131046950164494506057910858803931870517835099168583526762625703183998542951812044505245232475759144492853045143390811822202389908324326936442607116037723045502964471823458075168228882910647480691869535191034805719529228230745677773693548987392089469270445215012461956450447037250339526641723764658412200028356757142992183117912717405117682964673918326664600044800676031191900723973399545363977056981531908671722529012704167856334518634587706482363853602047940687779237985281938794062189188349970895900047280594864508467187828434032883234212910743338491180174346145942177022107739662112905404380571311093211344725025808386237622584083945078732054451849496941667592529215979377440679260950379509702942996314763197281094160867400368549763683726764386342536176747447347532891862129704022504251855395946168495471239813460332139854323968471142731070180883291703885788634377019399633102633810713069572690930332908379792112449997712162205181685328265233061757682267592323199986128233913804499911569818470189567554180329882295385136043066193005802061497153803288365150028536850837256409780048423643207106963209086236728267628616237296817106020188006947001125179034168773913793322979492917321646777848564311876094571356914129306768266755883534587572650193821622576201217073389228365719521851774057285106026531461276602934693123379704269317007301242073685789824810443612338061259107347959701736048502692599126157985907814534276912427696047945454099016020482360805221385547454990024162742729433859923897315817594933749063496383869211820801016212748119601308075630064758580598215600242592582795128201031913957003858346587069688903263255876132337991910592783023051570379030021700908843686698033314487511743973073001445073324798722678350237742258182905577866380839591738273465072980666630512020257973104907519499845321016340592622129872390195711121037608839894800685342982752185135993986122856724577082355854894412100116082762063143040163946580748953695341097702222787828351360464711166436709681775522190666810151066856638331792651638272668289333189465502118872510941270081581460046668187281337130399153856204571106846609026417922123031770221457159419757011464003430019992280956998625659490646204451302963345427497109352512486652854418998360973029677411263062724529136526491590641785323265052804017858873286762493257351311504733227757079573447833170604464150936570771372306739182153652508053507804812218573485894648718532975669857697475991593458031113931282098335178277109794483537572012619642631643385913223506813667587092595919201642219256207631929593829962413449887345195856696394990892080942963936981618776582566137331234793772362914342049184115879826382276777517994703904932960742574588983170959348649858155034964180078986294864374161067808824339359204589146927717090769978780924710705517258122331103601702503310037331119536117348950213253196595134958619015354155186355558597643798545140942967062530861574979812206890698391650169315317727946402213139154335743751536385582358105781387957360723872925660987496505135178681590933993931456154753806796478799331980770334892269527603558608873859057477544155411974907330464828166896192560120913360736331851870520077434903800698671981255445291725784371854348963024948984754277036349259149122097181808382515938115576205685002303993287618849889929380481939418576800446393370485424822108533133824232922006294586698118918375456879617069370227027097663022582342181880243601617831530597590839043032627365509329462157567526396222248947459277683255104855737042136328491869107551747327970551195014758663941662913187085650321839376505435027666735458226193904324281659531337007617859089292689825334271277121116703335744919761633422435536776707589870057625705280116796686978149434524334982334671886484487422065737540402330116227001882007928784609116551986117165930132868672915122855979658201914741213258161204987339364828331287449223614216619114519800815946062273904367706504700594254235972651890744372290407444753895650734514524008042014026230664486589330844222330607733810093453713722669311070672095496584354830786145340340732753740605145424265785078946472226721164495369264581495822542992925104149056424557004259606024389566746756750706441536287479936192583787486259544231220551941274359523743703236809409497657173131495495515039644753622574819205736015684404214788524164135087673736920714073008307101061765403045434984891768215732798052405220531164129015426440351273246214489871422613857334605948305939210051583060694497186621957604296590917386452648089889090537767555226240235620904591338431048990860939017331933767022957124975529729957686933601463687029164488882114589988133220607756049762325287742277778464674130206635029247707911847045915513924944189081083357681161949649970761905135083039337506599969751664797745481037590996613909607607191140377358044614613849045170870223355466589825924470627160725810932901493388424593390918976340488092422846327256167934786360728145641826003211846917776300394614682204835433155796043343999304174429783117813423822896706752912714379006649746207103596004258115496974277766332509680184133327659067761096298186144402574490084252540726926244482444961990551763572181856623418392048262142914003791494901742132038658929175265514107545995716837478401833914597239314188625541031987189406425223513223872462314247976049842880872455400716860802517889957273712804173828702880020217327457180456527431133765316377329622295049335026775725123455561405861076022481331037739672775140460015189234449588855128902169157155269657311349247249790207022082760157143615748894378548853436790365048673089498331594571464439310681489369473942241416719040353195923900994284783077658567889136067000828009094439752723858449058145000761709928718785617552305129891214412613522989084044061432082893625134706075791534145422992945734894518490340977459199545785242381135192864040149638884096023312857535067579154966029098744871803218304789528978069865291459740140628347834242904800839203949947741082942551865568576342609259684184150655481355614829205010708879928286440132280636028716366053868439742762788478740368511440161308583948993639011453539022722249049996056287884271838116846507102126427665537535837406308937342342909607098942466380446363521408760950755547584077144012157627286004151013072342613843028644387123997762607145566141897674830091757837625545916324598819051712772072141162621151657910936384096361601767820456449712041903674227845317572482276862461485369631508199212426335558116156309070234417987243367096492348986837399059840000417801150013029505823846792626312197702811853515096876628518342794428873503413280456520493914575349481047650295650577267801194708500269707092441390460273641659501161215770529938058066556079768766335247194103731021739533891268939752884368733324580236474122733688171121391667366002812897023573812023353255101437409010855693525223293629341241547756450453098642546713638040895277707801307081217317141411233088723438198770055241574990205549794244969455683778094363346905825797647218218057108512157442815103843670603321710169103850300218414702050298084499445557182957334896117069341864061045046110609968738654315475624154943645108984006067383037210539680523745157930723607201772809517343954059171970339673703468020038211918728618695781336458476839024177424035999351996062792699582803495980678204024106402353380121046673152292346765222163925884303681471435625111170141802061719005672149156398166173084896962580514874523619780351682417651289209434543347291148130525927381265024569649096861034658528895491405003853939797904156997533962100189159854259816512169913881526321609002321240287557472113658813331838242429623697920072888179406116771335420262353400510467115205386855092321469904231332908953912041583407284688074553959078874809259075678614490064065977781898791167424843600615140999135686631279664375168257221990863262046158847002817498075344550391588597661236354235805319615585190389507958917084699160601606392717715765217237503654330988329430155914142178314227941004939472723241177618960943995212501740470515975935189113670603657123073588931360905859891521447614979722130376332667932842242159742256961932906459542006074276461608915783229954664827636271780873542969911376450911404572569320542892100314017034788585874354770039238078464434947936050370926733664281790574399054369127366533441784479894406071914754699360992758372415351756130239164155816986954874233645029624173115277984493738547372571184591181220686916084583103594657858853697315387997132245531222722801707543802071613941714049442234112210438912890632601664168742964329320514763134648643868213674692590735065199341968525687833831600062300270039112257987858233011772944446458631552365682575353762565446019938931756352470587398137449535857544236149706874977833729810604846783475120745065879290753491849341415922513265043033469395540852115927636276094162422515714217363351536562574170653761013187119694130264962665764701950564842422434266730173346812715863010555503020432191644496760971831992448936246652528798858657208328694165491378904369121392639112628273445768966734379555939262754052697688251666622000128989791102126860504392115337607225574075837765334258542178632230863760030207565458617665970751034568506049985964282605205204237242478067998419520333617278883108240167293006062744292207244873189959538631776994266652633094394072695969146865535347663037796284225642162440084519395247003721062076387782667874977218531319567367694020493609478455174972237709730663425087139427003402129426788911483425713255411466809832850141350592255275674945607966891002057683202897739641223923823343307143270751891962373138391997852653350496978602437885711291444032428430517268739841945089056199043168606246891230597437557802966512906149745261890038882570846928497966536616621099785246814972613728529711594269187066365731105493391482083019413384072877281468238901697742718172407536636688600261298103853200210415067152657065300001346728820069004517672659056393008264557928862822378711466679059869505363535761658075262950504691683009299561339811897617935971963774883394021511397086028319270271668344122443222613320052256183196628868968369102619377940723661608455816626893773832995427775962891514553330412888684391019434730397301724928749816113567155937110131071894930019324474351897083037718905624433312016557967190647213923153188526126372322738058913085385593823556843927997987977687693152029088516663830170635273302502223852263702452462025776606121190293603869255061516906988171823126749047537112274824104572638777733542995662903893271722345683392873170021952352994710717351764139674489022019594633349661688531457638832384442272728323211382105064431262722505697155422931286043403700477491302565880700303486588082177276350841600316770847059843645701747991872300151406426465514640812885496295638232889638704526888923422593160499335238578536086457801649263798957053092479527573127845195515943556083119814169847101638040756722742544833011160451307187668748041420851793188408964199871031822206258039962029714641924939994100954009368908335136342055069373227190726947093993674041087398785205436214846944416461409657833059811895716366843473718515264328455326415839962278978910861659684556672280995339997308717005327629992443478996530621596443918291702923012409160681627497615132082554374978720761622812743627844410442797806858252946618760014953835278005245434371372523866110571189714004617729734396652719643295972432957008531741418455481744637817760599590630728265667817331334254419331418545052716551850305533284293911586452618151026498626206562489284571076036167869846052442394784147969275493307557434849665696916900567526494303760641875447000838452136788002760297366319866512296834249622575455902710614153883870956000049745118810811476564779615350404102158562415217896213309159998405428556507495850296263772222141437083494453764334787895112931914220963028897304877638444788770911241751095513320886864791084912413229847226480007275506646653221798927504163486531536580075280237192839720494700815967041904744219291927184923138954071057138420331460666513768805781448013629868539517245868898957113250210949348246571571507829473879933486289302047305626325293129056484417620025343771354940034664379778411435555286579749825896062839906213947614546753345997014042248896178854376059648064005834314204247726531226441381781151554600991722488612126872670943786536975084677188798751229728924196890025457532725681965669936060803637394483828428267105508875218477323726105804470215547328380103074101166860811420678395626508119138018359861236353670386327189508909719990429999357932333432128524881051588799393803892989797576043107109346796961340521115998661332478660691911722857224632878158643065281345051911078175229027989273194340449139387113833516755127235668706022201441320839520007225194121572139837463887755753285921934447225074998086532698447292774697382192540142852519488845115865042472880184960679100934520122935512758389948638772259062955694331637454280479657907975789846712824931654164888564851876667261894467840907846382544370176556953392017513227812041803902651061435259339652570341510909906898783342257569860769561353394546901065763951443629231107715780825580295912180604475965184836835479380322561337898794365483738724820436870895330552849188216068488228658792307535548731958655562269395710260163127225452591481086606860935252193277478259115568454428513823240147725545420469994797668171894659117288371313294238689045123183884817877125478420131598916864786725829715349380108908995991538459101151512868590440172609059503271851213899364252659640398712838400920567010202486907389413843701367569629279519018846659692980569253418679231200307623052349351126744664868890381192883233700163282954279835893886793471994308981772066161278211211171341046858863074416850207228883798241331694091286663508500527187921997603628300462987097714688904298424511668188224001748446693701939482098469856850248938519149968543416333685221956007836827150873822626235518202043911255176181507246044208129440111454443937027157411452909158013263304648742068779787891040630533052839528650703739865540650422257104355479356225670360119152198222952317378776455835828583666425967325500726795256451555041779801180618833542326475880435800248251319412922960448326172087946995885730020305328879967131522104636019054689803819969323867616328900214403598423240389488902218033098503919687838370494199922647625376242547418017572809028924280378408137857391038713152291135403389151473321162418871603283505727871008845721355580251301778719044024381910753824746298751588086003867303783408857966101024843502298600365539032156296513831445517091041855568561746798322690018913662467822761459820386311937056565512803012725949897383360797974472730573088265802113548847622943027002810053363722146119249610347601705669043105482406618119377213026508480765950769370457967141771401113988332327251377370753355846504368267514329298707339002655717834729598813517802663648204130891755970423077721259310300543016364989239653266284972558659548048778315096496424749971195798328274440529039870493353579388372794392682305743021006807631680667874737567713667560198004096728277672528052660168053191677943861995723912301510073415861676090112555322911147061942588786286295080764856246184131956034212477419488772642951015619573933468572328090769687452916223532161630631222549739902759260732464832905097504081437592444477586296237550084945110468470794209841557169300682735400511478850228125994688583225109419702504842173941142963308327088888889606554421446302256610325532238699345310100701625196044605189042166345672289073505640111465281430051654977820148427583841960041979105852729328932190338583958136852841248271638191448002576737303732714296217274227653648220946362920028898185912111119486838831004284129364823836557933787075560988188303564064727881359547109823485661978256482690397381387973502951743624378676996992789392058685055283155602280146123316058474786210024175710415360232096645956297297829688210423429720076031964750598392431845462856128444941287697670076256171173684904945620366832976307036483873679985246176742994793942502435551746813844026161307474726102209161794774832197944317198818565736003292525573962311363372293605945949732292968730346686997894354793513700001153450149602331647664787589722073615230542169875703131505925176640753830703317236916944245484454695591477901076751047230722435942385135251467142796838908160902508850418906811750991501819652637647533603768720855449772401007659682629507253589155807780726074092385674257637468652696746633601710339173822360804373221232555908449136458548381538749765000003276394322185875095186320165488317042986485889063508330851505736135490333801901921758630151063972904125337801772941632497511146390059718770525119776693896363793460506326969543631084451538647744810188939149540762694701626790736576930578884444023441214305449303603122859717504352981232976070806679740058086832843907748968421296991820175972262721870319362382134632967793334856659600768272758786757073543760914296649178136430610246923211901680300085180130657359858902515832482122651099926644167212526035596454953769126805623933788408289773773029616094039544641712417094836817524940091132253418359874992049762673863806083599092893545816437157148965845851982894039493206473996929458862249363165001941408482297918234055155874591897033112709178942208535442569536618303822683425169557032000207932582721703811693382761187159001604217207056168223287622827305502339834962931495888112003706947971061467715974491208118928164314686310489379167814024290118120187839766907695199872070134572431959117359757081672726284313134145082587873899911593976680611684531691207174170236762884193838666490471089956165289550001618278787364107308567946833433599333082005283342194047738522079818130452918553162282588745691724942798787635712198492644087518692122517199300154222397452872842169571678437037410271766308000112638329487931863789393653554362133153335554233897615510644967699638432277371529993672347393341940901868385233505581328447825384074745498304964552432926836806587188696570386590862811536786021775398029110057927940209179038810049690995786257034194280939152100331201299475694902461102138530382542291773869811057072801240774122289605792300947756732443232312411564058981592887722746064717338491375816511463360390677136889880129997273995450279046400327623313704066075434210448142796441645455316725433783525803826478972782230097515708641180314150796313149757176430145411032605067552723383621580254287296468298184071174985412435055704555792717309244956746148175055143064937751278401904004852083490477137674530952530550207463546901504134469872016620770983659495760351361599437494889886351318140009591673582431666053851375231965231200893489983417581586500069142525765835432468183002290684874298851501202107768388763957117736280486080149750953767622854031713236353244756984135453334055122767498303841215316701739712228562352780777046373787295969331868440364071523841750953549321582481854197402988748752246086583461598681984646496491231902434130222116515979266374222407934894908314227103778470799075167414282071957731395839998869459197193188708581230055721653357128849815086234381453405414218483154554996987324950429649692224029951679560798718312409947139289558573029928703961507413309317913662254530419208635353473747353043020983477157827494773555845067207567088840427411436130967320820469018506263237283127533589515043595596056667431684728150475020591555977286041454441232353591628253378355023293537721983971554299848476532970130882623814767608960490956938884573070240599855753969727104256829413681071386154892839986246439610103993864311966211265959142237350151346329425544009714412342841211718586635317254587220292913998274845542806561113501857989292225757750048046247543282526706449024002188591036722931422495544987461270613135135602574423075875571143006859628256763338438315397899088803381748317710024536106990123607814248842797793488921182414045254791118142882462953941284906713867662209135408655322399052969076279746812133761336538721901863506728611801593282809832434130930897646507207412985313900377804495333681131088691251676600449331843111065764689564508225833067896610934755725114524688753438482911638051468951975443467796145344205263693420774168087597636422636945817630430792707537874499338758716594059918307120602402725705696287141584591541694065804426296651199363870795485105360221976922808444010013943982753557110868107836540876485678618262392678555760850687257372359217394817470069321878772336885237911455379742858151438728111662377804278532544309419210740214121233218429992042384948075763764201053315547577915742612994136113356637260150119211693880871026169415711185002141914534627890231584924029486317622430265028299640327850452263074411615218463169906919022194310327337948168324187952077598149264169124137062144573858706043433915950606713335338297018783700963215453111317641145524807968303093206854025439002254687776813954979333497800044377249697115044930181587078584152204615067750474497780602208589629463338649319574967398969192145553903360185840681761601224834566872064161980153074371801720512553060307365767399340609523973298971715060687764483180811158647555679965063759014798239491699985013453591789738302709366265367149345578243451542098067959197882183305490328628523276001009263564426635365072882527164882003349441604885431196150575265014758798236377103645622511518623359174704274296691607627931533871971185974418324450588974409745032211327920778951982181732588053884007390269808692659285281693278260405783730941155697835157234907766480791039527867989703057411343067974509844319541971176966236564303060127576762542160962277788902103581847674312350232518729101901175747072242397437300697599479766893578433668315204228678484827809035768826119217940334917054747437891616809103230122218840492090301708357935891884725020911769454109537544352557389744062047696688928724377418290247129530033229028905460171437644048299119232037990472768211440771294325406904417798498477876161492195151890165875038090029921651277241779940658438805107992627122891067450170577740493991684263163745592046892739563039809083358780887268350393893277481282997802357325927256456867401618459776396857167357171983752523245314573869546524463472894995120384901312946546850511592456745046548151783445941181348848944750671237615588178782293606887344713204066756843165113573022712224040715194398703440681053465783783268174721422082737379483872666196815529058348835701727535137833197065551471098311160553163175556210730766022899760295247924586154829421145875392245041025255862491872469894576767855770053920884314774746692791507348774365904985467650970391844638668785581933210459348970988737715745207026260291561847908591699178969477899317078925644368339198308030565514493933817482364594128316987234849938314581744481165189775770616913382748803176938930952978188268373692201617725064633070553466083298189733716464430092786373750991528891689870530819836492716590804836356336525574208651494665685508016355415001936754687486152319329909727630469037688109046769255273532772829597779819390746467437801789234536589114174259369710744728487851541945667450313918875653307646813956807773002081132542816318107902484784912185714218812430087108178742100102399528707038289388415633695893648357450029153011917397029955159285144717177482739402722135168318517487692759871116506982454875651454975540134516125440255818051165508260150753120068545214827623412868731347850868844258413920550282629199920811011821156081062011360480378663218187278151064554146345853637400137143853444355691591973953116018381691481965229373678602755395876616478474832948197924474591462869130570898197271517173811251646425017766071489565476155509056416391049370310728675483812832467918987814976520126141611224949191940440975054098666343161416616309681529221791358818222717733148816565499875893243477951699465174234475148624705642031151628479158904339855559016955931821981726829430228517374289657355653348432090965857300503250312138544358569334285722077990627245963439136251790488495432561691981421678904230747703433326873944259771405101964064484180763212458245481354890124714550018940669682799699555339849988178778292570118377625638178861925719110009073398763648889912879017833919636261070588288725657372157319646578986558374087176694805997356207087066871710250639432631120572709432594418775919403167102449270141078813685812697334323363271910915182835197790035165248179605699462596371698405418240988236392362635642531398509957489357978136809014545509444391936436654892145259638443244063302621230603883973742737771744822220415227360959506838506130393559518788986262723440942692662944833799651228192319376650436475259421456853974102503486421299463728073806650673938019804174419473330403465198110949861811200859940306419003387544363370316402121009152411781618971876849320176094017209214803455627251990505473596992206451002885779939806154689465444504403777223514726272654283331738931878297037983937635144257530204437933327865713944538621522673401085337295724930984551670747734976096750843864442403263484272946036683675669114849368969193463555159450811334006821655126501871032004887523160546025377799443884297054775839961339539673734235054882305117617787080170939430702545122973404773876185604664491793667906371317013685690717031452416134149835880016015211004712325036129856241688724272259831693685323947516492044470256625743616559291292686877909342269518046964463707199803148844932634267526996181983968629518450941371639345655721314654945169233936404010250810863686097880474769356889193742492736050918000350976160221825421279357295560781917026005169258687209841887156422183322870731610752338119595440053893253727503185637609534783383526763311944076143922287772206695502969068501310838868192439891646953899769817813870945364462901204247171377946415816668953375179790385440918652963944720802980737979942911014197200917707491249768703797254952906204048942996783540317030744960384403926358815625798383355128191508833256493879493546054077155763449993155988609401364982987614873872270604922934008952839025693503295057131031486005407234723429015323870524579973040323175449024320248222100310406355347415464591743167884368009489179300988522843947932836049610665319575258438434671087040676778810293048321482850010844316609502218393433737188641796251918847713508585796593416399980666940828429373071022517538409134236755526805592044357003540010455625688375004327350204812824646001340082384496452286890557952790774843879521048838390822784051149678584167427762253840707979823480229069469199674368618814616952922645243039520811964153552753301176775375047827106257062557479004109536470941249347855264496047171017901222106182738790833772947061269773554385749891485275898097358809521093107126700604285179048487075061516921093526860443923546426046930858366574030611358271603069003575296257411760684337267870075741800057889295565639850938516824847410357856554014106882171106780550848502738756765377985498140785681047347752897220002793670548704519800206246615893601443400389505883564942612759758743545576453583940686591813137439223054673160992650734676175468054800810891433206069290739145320863049514742776733509499018175314502832640714091879532284515877590629828073324251080935089503952900530380235101279769909937662378862757996806223032171150139715177929211634880075096193592094871318574925062516840931974439640703924652986682874683055057815886700758122944167875292950323118859088977021110915158457979917943796048676434524904422633047823158758534526237052198530867834951341949677244726068551928201366450081823321878333799996279319579642564969770905299123123810965830747615985720029712924287835333829172416858933600838759759394379286345331898388784881221377433578005695165633236825868866342332154679630411413880773194569320717626167655052437305558277236615505968625911449045026454749434776875090247308243558066299725839145253757155885752853344646828401579684867598696995037619671232859231766882760814107069912252690497155531504408106630907073411565254347253450849590216262568026292310450555160615925006104709956088785220946952777502836834085031773578121459735189598564715731217453151552803704390629876933781285821603176892067415653485736238098442548539483970639326853811238957514126828305701388173016748456025784562353833511875036421276089077943496453301864425035949157988745978379171391090080736978758358171406957009194448157387136231239044653931662428219228153648853330359379696703639081477979686870808976117597769690972025739183552323528269812184938133509670577976365967765162058379810116165000809300703104891621470027412790720011829057826098547140545395393762703106850989028143653640790809008398864834108399961439517183916693213513423496395313128852077478678677656905179775796592551607209205546911605146673374486942815875445287578482530795912566258137502977533784505974104403492107316981831822131797424949810996652050790299669475547711230725471798438408966609926717352643867036348222693638546219210518644800001985871107645614967143132167130465110740704472572571242742004577554557192952099895515617875804832262760082855884951493328031447274915775797580398502484336056022656976943671819009941375609552986285423049210406042592576556930638890132803294627457044948000435522547266594027628877890242202964633502240040542630454735592114605856588462919534400941167589147817374421103471318883103980732016847476108420538403453478209411367273320271164517459396798470482687885939104394662384863209247130090557180300240072508297107613204280361326949123053345571471737584193475251578347294440911784129390523287913051934743639433797267433516987930955192518171419542289327067099394550295575296890242134512744514078167610011119524623428308160481591024049278668662537570859076954721713505765851313330394251555364706296614774303286905064817208648945614790523574041776815524015330899243397699941613251576172583379216159232740257134799418373063856053811035776395637142867889483842271122341447637139233312916293835391097777628733705316605232997030261647566718536031649880046535852451896652698148928838716650403664945336434222455740421067938201597487523440704628327797654528025504276269307793942179449476477912745897730332678411798144715114000480096396482278492561571997130933718665413350975821021138606386120187794073958513255353132638255580001895450419999637299306572989247745829010083178826190859036368666535272834449405757786521503015193401705229294996720995758906738354301310244399805160399598156263860980188556544422436959506163477235659862594977734014037664266699027664649126678829811398307103637863656590302592212400371126358785565211441046802506574799342442028369109528671630126703842810232529926999378947109775126439520767246466783128080247310896253767276529260363518491466352184467838819600588430630791337929640854840587710048206142122984336368288691991370726772921257099299735016723982826624925380509021461259600371713877033398822068989060891508406381435053631303825630684053048787693619378662473556871944956685343709582425332433676704662108804367490814728232792622920268001487958224937425311188872835340008478551434367483810923039712660369125359170014308711119555334805482591885255884847824685757547754984752054668292798655988949262155460905614006806843597646726227188508308499291855244833410228787726033333154659618221989903537043565806019778868036924624162835009865747802561810042718523553453838231956337937733956933164747729091302591757458321187316833416644050809199011318523269007260928801660695690431160438685184139256203467494479111060934167247487747931113757314604679814622223264817866658201239460940528072875755288128022125571675541647842444616813738637327739367017358243278892188147744870241673321490206059354604635687421834489819118083159395435977490672000217845699050855827252595390996633381331132569109513819305399255006414432253622053946797264636564130523746097032398150607139982592671873341265182424058349834342292307107078025829031477627197227371663975110628164699725749973415278917130532181261602135238626974498772880806960454026051645940058414061005160232790428224777797935627503299577077782571390229645833288621920852260501209815453911788332223613979391676303071678386369883893916186472244849212615263327809310596438092184030586818599729103066301447469229065887928093549895342851381266460479458564069157081809746472976817472419055307809522022423737360623063536680040548307820524870354374273981131400624846223145752263289028219816418306433562516970286024514609647637507294098953278021918961178105762396272778359439136412461917660330456048208230174713131187980781838194953096434121395679334022131212369230635784838220351568589722976583633080652820597705979780528181156880682085464126906502148928733865144522985368409187735410643735670659931248490224388517707295426169019555796488812437799724308189529651366119412662638343379357332590077135446265774810126694866540525391167202446276268488557145518418865871864823923850596549988509574412684503805814032055478866712051318403009908927834740152671360218327704633786540336020759044436780384276782185581636914432602592833939583163704638222000656002767292993539588920646245132278139755186985325029110465108550646968240361215678339823048550683303288831225058423620889549945214300987342246653605979534839691387251957134705100576257780762667151339021097174795998943958812959894888626890013888237293532259515327358456818650742502143034441320073633039287316003817719334308300673435915100478050195209236485837222712998622234937885173925977354705836032624142500430012546589710837827204823869689404915933698043884129474781607627157299281857487849439574427404604143589453154711473051670264036297375658877776187957261895027916264367809206664254820132332455590561200856758755414935610038989999934759911492778842872612669588103182576381100165894846966563378620884922820909099602276816630784197669654404931713045321073636421431634225394830397866212644216927356936393276285617974440799043325405306287613639220304038369728286229899301061750576822659635223133425378662082261760225530205470824974874360626714564850067476747585668353764401232630452994372324828467510396617321668792329179281068528590731074364978970260680784307210990017367364424938047531250123312400183527352261659493652805247970378434347326315465529532968598992850196538886195981771194004973951323947044431750942033352791025064009704104539968274459632140075593661407409342920124195253090774214627904382233923834864816034261309910811046286650097945370039985687637825831818286317226474481147638010821107867536824580194091540781394833038335764255995625450189711804457562192941067128256173733107976696129889734917584377376163876789318680516044682711693001893288091803349453665372409737635470911773340950956428666638160355676798162362494449553270163967789508758622047160343526500650706440977377834084739361369140044026507959700085928722384428381833534595210204219574302418926413329733711136393130339637557042581803523774086149471833958006470013933929453367782334173587154023988786257603943156801653936002972353608968819045603824040944290666018913293428282680833258686395959337554049748240462092921903044977034351317256967289894308304516543113447288650517777663158122446641357891066083453445417500484388647806317321814249368896166014480355347076899509428865481636165307859019354029576022536830735677619587099349374676135257879391295716696373806891513375482746507171472029038953287384008221083711318384753863917548222201259280349513302224979433834849578184310717645950469926186526584369702672017539479268977098636721068224728529887015269280967040670220714987048390828523305676087220347061756854458564376246353877197851380904288952716650644589366252548981787876198006788465915866191782015931375923217952774943118758810277650936599974568802138173421311612408307846178783389174456156264353098399587029215709130560326164169666373818332657923081584452939388345554543806491281610860706425494092466214380331727961867883898424116571489184873544954487437576511632052143997898314922401842500527831320082500952411949789434009491736483366586472605536406922773969072571909984637210744156431859290406114381480265262895980193125246953704335433182501558816853984947380441044694893237215630235806166160573472087145496540482260174328193443299515273110239716539866921890564191355208676443844388406290095686282232630292640398038523070045391717581167932471594850714202355160420787305637374336848270419144540932352425388677932522396094593044426433599676366610914910247144058523417831822470210366177015168607177425610760917902606667119547301667258337992820615927634219545308114989635367050951905695083246842509637313054492501988094416438086905716732450396815390183686253796442230078582765520355920831764002092082812513619904312820701982606637696417587365292654530282422919993726882276878876510761715922595249011703424618368843539996729051552731425219656519389571584264661983711122265993634832981790261758129266809476658381571668363659411117466131387764517308626650418135731536522214579439932523925832855540655907598941861769340416525673170423623147800380523625100826242101746032217070187288881207913120660937303835308007877319459444986868752325638360047821812573750562534554570353099333209161586240269954960279847981168851983003493065661581105327769140175243777621902500972604949418904471425417340946917474543660464565692767248860832555381698747884121851620735441153631540842216391468420861564700303550744054530174169699384869996795622915856050682078456091928078887625958490077189119305639164570612877148200664282033166740355353613880863187565943800673329012195582338022270549705538235440211413343024625326668988270154396307163503839315736240181494329922879366504357593117923753446639786765265067458146528019909106235203812888103182345636716074476846556903629618726559000945631830776472641705108832067718340801168082517231402173808392803777795077072006019246422349399822403630293177861261412632039054526878767477410152617081376626649029567056865498619304489498220333570305045573163989040110571486070527208212926820243050737370516699470669592032165687303182796788037853031040572661890150957529949118703569205646366719301685250257100301651089720156310778063566042329367108164785679124818862315518033317138614630865760436471804652973736193853921017401900661758113624960123172878941205871854718908121827838641190150979563965104819297217239212098778645081354485391898513638391840875231200103478061033229946205422838810889215230370541851263094779915197101620808236451783687735243343158670137965711116234539449952363316652824548699259360618528699016794307188100207105844124343974914000657055283056258543756496133151550479517490474375725448052417073595832592558332700453786067106784877752353215099782598703598282514524867073687979881157061561463390749574998667898992083656534604263920475726475676821776755164617928411111346163117350956704797051610994323280622800973309702104077404642513886035429886101308848170599198650792680934708603847386355879172821751746785589932003232607258867062880497642904891388588731830260253411097626156532929155690152030797658656135593363179552041460363786220832398952448732836613551781726360660657536004559096037722411697935976622042647328524242721986894929726494930388391153482696555532639960484547801789126036284481594895262062292843811454421233711109908717292033645020018081478592771074974528820324271786475176526972726678458900960007315134535909049182359712766752186974982722428231801102261866483374836085481771932959772317652941344487143679076092502701484606835369952205735409437759767806758064173142462190015435544675173945657431907389137261844373064463946414396741924817255496433616011760434962951341010584081617157927908598733926707657925318539739290855046378208218563408188461439688527126480865916801359777331196694443489382089057294659079942097604943407178191365931958289513585279889680822221435494437115802098540085869988351386157535444275967885039915436099710484595111859911235409051074918907677988850763642736377004192269130942840144180269045739166100563621865444155708682210908397030268544974860783056406482073184214461246728187843183919992459444877397941265179293994892890824529899250794085238070480326277769098267473456387047753585303839566273748815680607856004004699628508646459511151279754013097210530508136502413775920746643028235345772218792262549648757705544217849219899668800064420472610385137212865186341790152035178675907693645851855990916289236173576025109355576562439183892652795237551763381736929225618363861531998192964801184893392863476350711209003596993567194090673394573222640051231023608200098304895112508473787419215064609233887474410759812405134828270687207727305142469983892857710732621040453924051566972796289464307014029939755651150742493542989281344786884491298324041923310680092649652831465614838162431072095101894141325762721657482488346122633468600247813440529126437285885114644587088333743711646405387157719099465768868335704172498988495750428417301062780648821491314400357436177819089598845422983547531709279032248203594018040159614729457193192407017380072914434722303428368257181267000226858754644949769308378593031238745249016859888937806791451135911468932733503088233558114231641032469745848783524387850480904806396959906046860482811335234550172207214521585524869610849483837053955315768684546440639487310271523960369665032427937468084417205204987361935522233132956607031745064394118063708797198659668055480216194312933763526425082276760758309770223503714546221649637743228495804185649792081013093282106017582677160590585209617733590528569146711853637232350083335152027159277999934768620764366422389952366916815762210730529671006320541684073478204043394425855951117893490198641256393694123022776002416792832499425688168572838465403514432934177930635621231382350572015066995318106099961253067231493492749966058594827435111393518363451430577039360006084635506812619848584290121843830965264193253318234446390726016893281241180995775071159159361347689816342679447807540309071988462393688140158496723829172976620802054884996399007266023163669264894725399569316956016974123187340151043454880224815928054309844206734398199873729074986582687689031764146612512907796793338391022300989851373212557839742864251686561348892971070986704830386847536694334644947075544661564497458055166238310135296809751714320544992806321126161248214411191809563829129247133926411183698382336593039251003047629721869848680392400524500620062889700204096689259026722782561083642005947615178246659302130017903723600243018941026709345413877492717944755975298233270425769227426685238344000531193685128180884581919221253098598296861827198449298337400690220149027483127084473621538800272102961536832597280832966997794477814641271138633315462236910056085014995206293498624602591096824307397418791415205553917527999691891414630385685083739795119993492029028683143707110313714655827649873801389315328112567607347816099010501351905845098934372968725402416073446705672840991492187412064598426787107533711721680883158869293511057870575527263495919185240054669419017342803616730202005407823272103877368519200239493756375112957338250348986761980716019886011314483452650061963048816850321375404678872978773338200766375093805963739492748515555933900834066519002723912872417436391575203978637871450085174819020165453647202931528566620547209299409780490950451805242766470774293609158511016544569355731028681627037671648702947245127624516328463438243661998425789847548142197191363788854277477878884222123359180159494814707568889949735818769403814711996494978436732604581440260076660915819220436621685686188214983519260752373612267260953172887855862519227198207752811181482272744693526829468090204525009979468278661004798815943807781004866330651805521090962564813845308954172842864613775368492776937018680795161464291598308260303399887733260968421068353244695866441114048691941851701444963184211756036208725366679875776210816139275722069695945396748081103668314632928563303813287616068987439128536614462771501753270430760899137285397052745479070241299121381953666322589558497637636230017245823601202682631134942305733753073946720640850084779097895953488481066648903954587256439519756484261747119515593346990555790099511471491108716464878452186093435097267470883593895047023779024009617411601173500549185380854220693220170251192730036771410735187909918701161091265147961976787174979132207508186328815009123274393363295021294575552566134259755733027701040639058202135752023747497793922033706278926922473779958413772968353948212474156678707309157582502710224743297976503839403002823321311262847964848690511933951250667078853289222599084647711143174614674614967267142644763192548531230057870227695381172094977972130330397414116404540279824396755166688232573913728103931615694122241669998522672890704727783049161568774452406643619674729338901803633026351060193931279063353035054004588021996360989137091439243677540033626501645952858973507583042982139307615451931715038500211929013558381157819176884761429969235795805776670594424225343725144590057672444648253557525238409905459548816976236333586340835279047696561270203092604801908643158005636689517112431975983112156295791414450011090022517283839925532978185400748413584562834605817568259050640412867304065276900453609098438978371968984272506143870812256538992813510804786895677381579068341395414519930591282195231874591052362733278209862401606344346682968090403966160275430490854800268421927363797205839345516199983392474611375533219287369533021161199156564392537878879722352457520811545648020991208212581682666468827506908921547254216745440115283077408308722765926100407571879245488562107619242182086082105549496691927988802991888502464400396641427396704070953094093607465866766101464663015643857539576458844638650748775396170763267268215313333845541065814593386493188374669010938465750710201246235860443634261308002973897520557058322441768430467601719160912149399448968047411915360890693830580995788052069559663476064914901410917823881589012734266706054694894779491579469576245065748083739386571777327418020201599682423256556234313828163119266869488662352746625417683337482997178164217620961194559707815183967302506499566368191724771719760584241322792894671085024667024414215649163277672020702173635902689129612898816879148113460490603749428932710719970819650613637157073454714107374261421073675107056664715604266221558759440372872140170521705289315464970690403521195063772964503104498713581596415318554704512456751605355179723441990653868651069429025085102534637274759011545683007563530460447783967359458362885371258973860646072856277604187805521807128140737912158444752517522017774056847542312171237890012208614690451248007252648746187778675104938867290038733629541289923621772611186519974445007688840845191755692393934831056984178581036349796464691964162296957963774502464349516203739896219294197154061381096620705645645336494984172613567746900617502997426479372363539788439485699989803906192434861345448141379052696067328786124906415078603803260861158838671955428401632941865506626090461764676721168627899591537532883399685161073477909044920297728936903516265565820492154018943954661597198916410745143192133856228907218017920123421464824269779973578394388684238734761876984596736758995507509919523128805995099926888022700391610071677366991138063981139541230824233374904770719222349269933644552592759079798652233350734211698363681640585701923622225273045599785562545483598664963491651912970413813293816392460747126079163493806063499551108648274793425625652804466600692527774135849904959963572637004466163347518187858783879281392087345111364293691352828681621873819138065605346698341074682555382493107160809264812511025860756934201701764374901689920607682588129764768463315141751697907948724595666179699098721849217072113693079961193607564439335339042367833840274097000628465680280475634925958242485611139526789606981134813270509850220718106330867102970486774332111888949341679582973780141392947904118454760984036322611363014045795667980021743249055779238360290171963061991522915913064524096964609800386838698681416339417212786962044576224727079010791189934646090157430098286747089923609057730541958294922560861742795516458621687420035988406635250713386187809125305259631341805659197166452243397184422449991046744205257470956103720315948857035533496744640858362337498536804978237517430834721519214169655166439386136770697464213074222650063426106840109342731417093131859442568631489893002093417818419382858719554683255874077855764400368592035898948761517848181912381820024288107872497524262945246364191087158820489863132808823455955427442133458879564574240120322597566863478623392943109998555318509007519763362128093311550414892645097137299530115372432718336697235020598986070804324984145973949770535452690157582564994510883121113308909250310949317159098138901730185169109447890439630789638899919434414999075536836812023418543781613712766833724377005128608923843592640858997534035141498734540068374874906571032111276720406265071625292585638556799277927776037357588213457749856206923561583631783141603887657831796054023041017926464172281925844201703293893930975070855507215154335261127730224000086970458691264157845444084367499347415996576336811133749417585893295548196333870274114753784852434805870408848899304835947993980200254093448490246063203390078698462447367050293542031156150457943952882679321907988816597035351193229559503675924689047641954437418831739662284725709345429298024804676961536770711177919231438891379321609949577714048932522806180768410181182073567105150940872315559885283222284572046030211311754143185831452629967609860874385466051372978295025209382184103305017347534184875303484902637084494564941406080279844351130577245460026937267689287895097275367242527083481914700005750973252091283600803399625847932374886560431551360609866628046929998796678545097299372716706878150422562371989172594385759033525623517648748951345433785632989269333188808370126043674204337723449032943653375929826824123582477588333084882039923980509144668928146816472368722848229439912754310470011015000464335400197617776687335138027668448566989129584094101375503350627040780898000173034290858564854860133229920863494536237223401843858006626014212781304590798253966309077266458313267212679200101048425087503816256933526275369948538754761495808857124263655941953802738197077118338357683914336009420598132686813406460214524249882009693492039239980579482405217362913258163881955716510010426663317845354521473392715628292667660889725379309477443102391443699323072295156026307780442690602552845178955643640495858666464195603239041351555444454545508406528899043348005265112656076165261987114882007132214999387027162592392206312101229019486528556247948819078348437235563994220799106022740088417568218708343129169504236340323039656907365578217935985166495800169435775155768910008965732087879895264146708607210985675337105763581232150450368277256350856509670833798498202029565915367681241003977281712176716424244972881038317320314944908406951432565009297593214465141938249599737816493058417658795501301021214363332574391042084602427132789913504762079104836973815039299866772368262567672482781439972791579452552924988911471992129333247585427410561428249919020828331710328173995794112820281651930661531970902325260684477669041353498812567391690522016507635434013605696551310219098681577091226422819628265127473720355515946763133826287812777852138618870814189420190868469398083223619641095065617348121864945469059107447650108812303884459936689049219558646694326035219398570418774071810537278845197368296699446194677743952361410886612927565512795975841982000262728937662285794647204521323693613957872782401574464366333361858048693430200646428853927076849239218768870127111752244225640347331468675704217487923457474512867059468802423051011529863427007263378623890791155512891779056301220878264429959967388984114765480726876771262877811623748843300008754629759748331331671370580935510355335012714518142611425256410909422863708129604443287458941182431233499748419212518848393948271587477231020588218694279150520780444727928584681480933760936028820553274770162116311511434697075711914579213692753135618719531124011200665206832540364318857848192810897592077877514932406259829986847153165374382732457181677411481729275854323345675515803878521338353264977559415757251964061557784671881760845236726579984234182569166169954154834657466042663168989372238032444152848354108676343631048376103381151139360103431203610348847360736297121183061161676126711698222433837895973602952323107766531473050359153138162603466810238757800574719426914335757531777192288524152194082170610149127366985631098619600502159876721868986286820711279549567731354046007402254427036638715352326262779538564919213327544853665033367402199549641185333064164425112999166290580462381511847715780155125683529112642884171603638004821743674780935318507328604269825574251852670829761038813093253173860358428433952115027793155098498068194438281948041850091732719551987766218195801016065563966181136689891904853205285486045112584699173699405717005174874511042064327305796231330480466917750054708650084544498429865834799762589607699229711677961915349759129405165712541673913077037074932521013704904379356697861736212680692453502957358124078682232153118535330950905839281737443665433555974529305119235457088205501668049303212274473259158494537990810881185496409838988659268529012675485067559221072532640963466040706820219501272101969524782447021176678380043013488607612385200079643991071392085787392599564112733409769962605466337021744238308076311974423869544239380323785789992756921384205868878858045416496537073095787423454299343295486059674359879179725526373340201777076232747521979893430154058193211941658216588080571780687543116312750023380372290569748869749037207768861068298388573274527896493938816856193424445297925920617510313116452990438831732187530072998411682255195283304749750142266483011597334586545187748468667448465445948498954090649611070145836020067147405626911009967420672336789023254588801473727771082574513609369063957178870752865048148671895115394459271934559433162518711092691916382780071559771303714177215681166142065730751780883085256027957758799554449420109635300941217360548818847381222956896177459144057177777065589212946712797351320761160388369974068302092190823706623422650399113374639937949017821975816056118351589560782075422554737511059739399339311724139375708997341889142883143942991127400554610445601714391070734877783610216017428786153257320613411516682810252565384975249743387560935283358659438489866427036708297108945158102293946642959696251009354063171599178106607558215633243076265250853749296954854331923561363363454315641052763902841882299986361528757819849891226635328304776692200199016886218527362017804098911746289015512595369185815493506292474169902653983168687710566616918680137057687369929357847236443543510497950682691527839524130506088067457560058030566964791156608911771175909390724006493351665637817776595135864034656730024231779600892748541189186461730836975557992284905392622728876140925400262379812498811689290929917947667692968207368257532562087337275883607909248180603623956921764916322719161779330384478773366897048331021071511775995168820116620021903968815872276306753446545831861910738512852343994050038028989437366272122364950873964374256774351314184870916279067301713155741309193805797667255354077836263238666583866120517553583670485714697192832311115314094374746161083172006014307584872187215119328679690362772926035038774424000653438907767963985868940527853058346549941488187978882824358160313917004431228493027348043917201146172250463515397206327498444467865537654279894058654505475705100294147372658988229108012412599868355876003586597303385222153731737234638678524025192708139181469799673957557460540254497900630959231727177395023592390439965227781666361719934727526046513526412251635644061601812144402380023191019866255207146977153400536664693224161809096956799001066079940676494910311444448100344751101509785351704507050311625093743145300852763194570889772830761723235197224579690224504137961821426287174981574808759747325073335425993899402024268867040314543045399873156817524773339479509283162471659974295903321702825273290286034767628883023403363005570919315487256907772247027576332882622894220304393613558172748805171182016665706624401385627462948926855751096955194540125879086114692334172309418310529232899686501875892733602851430615118318519558439409451903480203832580227790077277071777318232172837887314312027026853479775471362895069424509409630772947778444696699963867456157535843579493561204434374426417150664581148774546557044496422210781119687200321570263656613980934058243152475777163047250638647335934887608922617415887983428495288387960555784993976879369083735261422629163317804934089711779673122147768714581055904936632272945536801077213937692228478687917152268504621635218518760110022545114553968146218683933948006998580153323333724277131973894107909557276177647799363286638816074502188579298072765838869187272616951056157072348073279212651846660648015304300409963976188323134488352953983150053032572813170676306740161445324238023529213870573000979891207561215624069279291323816072179512330719264126977835548896065635319664130575472556197416815434936090837342719001186655221466556658078411385200651240359877382147406933583472012877457661582678896527669230367370585539251410084871055560967528991896721541119612835454279010537209193135629844637576280530735032371466503283250020106902066887629566960527926463972982966174656478622716870328388186416654632656058558376100621103092290393192756007016446094892102683984319829815370118995683725654207110844049239642852715070043248676569575037650031253506195031933392049853708463627389032617555758302988103450153427111497129629947940538513047326153324367243598762851943344376747394887611529529011783372357389727021459024133219800028392515004197757700910311432812220382171545022637416859623180869559875110190595984237484442732490762737203411089178761293728570969911419106831112109249484080090222465982312647165298405210894640632866989510623259872462253590159409329000472529973495938724781341376926612839725921434218824430273715775367754432097683020272892259922784980149322408619776875486478514025015218871566465147681673710234236807131889694761100399716824607740563276171002042662478185079024431874255141636494226968374200996614056522264164065123653379819446842877931402238483523303023383323377818302609873831639953460072248316996563896512056369623544361272538175620652383857235709307915358879597664469316727392681060300896501849875674819636720128768076550415091595477003272713950574765303939891343342421509822047301284121128109891420557345987538288306332983818059465911705333457902634821453304581462421990241250344531648284530959896972675444325744108470705046372107374655996070254924539858017858744469367140475294785544702306100084569183492347918117655307882324353567623790609758020904018958107398302880954066791853105465631459011301071085390326898844081548577962750515227107486571531952816923365609823941261462548387602380779840957466652151084134352714760723276765435090393282761190719343438688486135291600021217394186785264833478193615830005802108583758581814673839961633614494498291117525120041296554102890218216032491689463096596952016574178072492880202706637248381497963842982756893028768113598970107026726439803659375666364062439506824665078412955833744627838973949393002009158643885239878081264810930180064699450400708634799513447693467658354916861696507926812475780181145685746539192632111173787276019833183493584923951355955741006612611008636080973624968411502210065786146290491624479202624074672543439624248070546036792333130532656162159551653820206309473719993237557929085495922086547247311545697086204009416366409932956865969250569690205914978926960795754159306962274350597606963855640291815980996306676128194824643123329445250383300835256967208133371712933083159696637272738092029386135815360564022701613412239328403850050435208913416631013257570493935276512218366953550237002598215068698755724235493303061563904157892463919672870978635466743110611582484877350997159673320232373468850868115918608685683208436895335775144387303181058142374426107905152886400409672262824079757606300463689932717534720397788025392187903754163396947540015831672465680057851423390127848411802251347474383200390054102656859595660570735637090634786184986195228123916555688431688390604960731280845296443628886112661489996446262173199010373648559717193477108272389604378514038545160127383148650237795601567261471106377158103537370055773713461537199020085258845417983244108073670382550445105013941674413619202051818667283677078910260692871953609518515131510888067011648457948495084541462425903420792838544206312371278637992705311343909860796748883749994361500874106615544000920070505818563970016925854502694371866849445405780011223302945269083980270855613341426827257030092304378950136802857070429930678744093472041255486399961045379738917954407249785114802195370834156569618936717960493192205740276780697794390562402794344927170502613596295643764543560220475026136827128875651009636353788857300489325798399853562108041212450303339278455192620541789241680188940226603528845353434816617537381382306844596305431956078774499308618063140921286127564073357658355238403529811397742895160858381776184411429870557827594698087089244125639586949025172748136034153097698073467449674736396969165851932744315093292143064803386257865743077152427312950206956973411079485062165203261716210506054631289512014806858485331585795776958544554269773774232112353782160939625603318797603604010894566654767463237167128720092819046711413368808613017957295918501478579145479540391121815220046902864524278643801917925822775768704466881249623505762593330559653452995207102323460198822014991952244705186467665739501160785415920820049634029235461994988801703139668741900730235547897741004015426589150061276771257298390123152452589688171321519915858335320487024411149472662169759868184286948364695523960540209907673720638940307974820625688573404287722311146066407777681342312871601984937369863864405281403182520704491794621978725222352702128871035376853979774457899509557790808884602777110539810619115839857889142687962940651504352262395915614482220376090901089060686478660583284406181323733308429285469554539340723337365754450284752289675221203371148286693059167693898090954625895527293933106918834028381897333928003750702544802436186803144193105773602053058579947447342793151093742637901523758827253192528634392908923393029951831481039444128827462755370592732935798026257146613689896707069444846701944671592361710896049339561616410672528925459131207988247964928281813529558606582226827633300683020526661121217468579259423140109869120886474237966113019694891053760723960120440656169318588525533321726279524308747449451225846920663398161307433754791271802074762332185691508296354580316413623671539062077465428957161734701224710370285865770584599947709448014340252963943255152522184497633644710945420433849529731951199216188305518207659296828699698700128400319347441235070461130881537234923745356567879199955194648675063823500650643306814113433254701528335382009266221655884347319763051642869021996445251840833484861838711520000292138824209376507492342231222300386411157381926156981795331209889175074122278628700917773645349399886879846660368909985111348598158730293114460477388738717708203194554260126345504486071286028764368762855154207109317184197270914544849907696386829908172307016953029397154055049798769052159492558240295431576998155268009201613722471509783962812920744354386150191842748683634257740212294378474345194280326310453734709724536470589366239038068831849820537826897686912357121804447731233617616041667853722568366395417548250734968645285294884059342755079303960306173067629049668633825447960194137211681005850217570135707891086747394380172474989197925408442715474047893609819959730228970088370451522670568623008602304488292017398632403817992299124368446964283095487677812392002092258045933844343626557075687099114174476358798291470477219004960961699272154680002840474937842189627719017019524021453562891270690265484546752575808434446339103448805057813052972739770294116375994565251909707630963252766153773120763125845901699087255637323653587764146418457101864799850309376886340976947551975438038880371853686369536803776825959036695567624399555822319568843006208071625827405302439052750814307265954679882918792181515204100529141652466765221896135771449220303108023622137295256720098802677786291848701258481021648076658790714476881653089620964245067470962312884962395937913151793316938858526529742175533410771838185326816903284299745526415018047646686244193361460816563600352336300559023937434368286178537167695467567666290246128241747169915070154074776775317510224531381545935237327179143736530320399699425864239213530262160425364016505556460548784802593028516708965079724097399956286353332405779921324077614464739025859803311885450847411382157048837090431626028481303622998877941035096639142425934414769049376551074727389041576163254715927956895107540598315459502309363057268122899314257310011097216396332776277316838020562102954710957930652745045447057743910267998070257741201400292142512016345944904402502635385014110761324207689111930985279540128333504823533065216091088050718993269337497009935797780792314919936689066491563240501813520818823252760176714514045672750693584171607946352533109575662424198412998454161810600291262100333357379584765425976918246561195115989700588376561058745889215878674426392480286331599486212839726363563050583109699365190695247146546080630467853890467055938711284658392353960786997244033684064708599056080813707041102646602813461598507921134355382130245677654894960926931709549460454264407582500089143259012509647852622895570913107591572499563724695726845012014678879435209088051635768993541812529893707787921015272801774176437661943032140079347844332582259846771002091871810861433415398940312728753993515964729249528459064922414289818574913735338214288166405090604078884595570251263881232779995979292874033515438686736298356123834431918700581778847559740680049820259263058211922370637430809576708716876626871595223027629333067502361887317839968321040823568255973990940017856763111056790460819222627907427112175574004688341955810807797787571829796273598949914601696194946583096498674572666513444603473282639342431237652538514949233887313798907288526181744764599142134007784159334945287362025307124610986495415684094171786730172653110851547968397895940672222626996255658066043098365214733837041703522615638829805605561346333417358783632990467116769323246389166089870931555300239320040272913385481836015147018421210990707146136004074331039035988168426156664147095764952910702065974993877639844736743411172031346256293412856582409171177868166311407944597949347020436155548306324293608183231768790559067289459429511372163246226938084648085894131832389815021492610850539340701368506295237156613667305235725824374889008952223613275200501079325743562244308902119356723864536825172471571346025869231372727502611732026791513899114138990447023424663756730387053683142630920372562257048021487153062267151955493744240507068177298636637843334670615422204409970200689876920142735854418747486885917842548665845177065907073233760005431927175296914995905858819688381642462220215182822693643433534136626782173586295475734479495842992764414283590567865875075836390012018432890630147691673720847929590950498200751660126565381588761029032861938264080821253342812276467971394031597942992581457664694298812114095168051395710754145650068355261305816085534020273876682302339203832572843590893476542622346031699185529948527673556259921240587899975244834984681553994304075125993017554446624223249036874641198482488844203056248750613811764783587177732212655152722565103365962831730188844835635233953517103076445280158211315770500763241864863472102209218894336609177267271854548914612810723480449695403689132752006690329376617905472219517918709084465543916823861481958858201254384905097065699683931248594447817368314549115558330078048557335616682701023036187373045417675293246412763669623849521784542922458314375620340875423124866897852595349697238700600838020918871203883222368900429773656085180102120676759019113788775662196803506580180701839345950680742612902948658278909595566723256986033890761253253192848405302445084647317346524310192614620463777545030262090890334609112814304196901060072871832179905436702488497237866904037950187126397275222237871898927759496361218131558731870936345755489225336631738740588996718530369520202395092795933169199644622677451852189477442319590563553945535707338188587403937628356095900781740914797968288587582260937491117889012524528772646988401406055821114751150920937054556688272875468347614087886664234118450525963656845814499024591402804099374515771566597583459292933937656028669987888384152535927829623050809621427843930481507625551505658636550301809305819960920430351464070380257484077610663044127225404653682791739095442269258007974857139139016082032084245362626491466419012705972705944582332070982730462877972801311603590772626774900221408919166584787586387524154847071024704249303573750477168344268166151471718341831651584123920886065424384624875825131653627732563692125590639277596513967883144346939117947746092513923512843765279827062761336597959911502949405094808285507259364736151504079267335423931148318003100993827485980587731770157738009320792789542674078614376048534189148784082327346396992081773694916604240153700392336171091330116063230713947126453309372234539682627529543619983798077846633404588399060212666769164503795674423389488821779073002491020719818461640137748029516636290820491072721999198735278103507293964623261768744125676773331021947950537911640319432207795990733038830038874681273892491324562040462620346577521141763024461645235830381024146837963020692719094860805125239794508043198613851982675371398349173160102283519820787761090778238437585059106199594095757916128771013824944330752525920733728872261427993856549612380351087658586414943736341413405298118778840792713288167696564420856592471188401289209332653301648316718144310961932089458519480045239957792211197179162892586639132369233146700737260900897152625235133098554433373203637012672601742704202106334970215738334576689458480256717979340387698815406871286116299346236078538514791309001477406875599686326877776603867846836083243274847750952106193877324061830070262264931671911038882210151258541144969112852265645001119692398582651105635634320130763767722641286127480314171461178981339165844292077410238195001601360125545886999393691290390215956094914496634035426779813621056404025053178130571615684425101549228748084954107828975954942792148103821091390528927081620764551500261047305984955644298737107619020311628904685485659872714118539360652004250661519393914678844458038772436427893047160781725776734584800136938648169454004905716092787107139956475450883639028351912393084295032267246486769197791502174801550752378572311006935086119962868017648370559640499688795127243538721682023908047430873432456601970518324959144694083917968163229744310113904369154837083973949189438350673952150375151940814995723793362564626842019020767756816264885092762863972781307912284350578920047178894557247637842323008768110027817482218490148187897904813478881694572588055111713162593659546280540510757150544809616938695344192768948478435993540133175926039156552632592599330762743495367325293020664467732640185691231978960352476978712643645872909378303347148518216357018133038555935079449849932434898223269583071663669180349701099029279777638549021021250954896728381801392667621717293320982729366030049378493867056727365793752410695656148227481219218610164358438268013842769340607133997016875909427210636983218521758340400871642845258265749324892471854483662460804879314324931052053548708203599742267597980939051017648004095584139335555155796759324441206043012946745299675511344971520470305626566772237206383759804093352021164522021132814013601847242073563708781415393240476152173225569787177269794349156525179735325473585923402051388669583234281015320714342289192054976242753262256574320012718070943689265583518908289439747632951030336935270789504050138001892527188645408856886146397914167727604719424282159435804038823240332537033655724338198276903500988506118234480750115836948973317365438164115065222539068199036193756546580477544243620607294552745129585164822563278352131671705272881242780141847396962513824814115332659230804423436897881844476619334776070015576971167465558040954005020881501220765457691885535124381768752516026507288367186101781441848598423039977007565408048904775399525750717303401950171631476640411834099067946630512150437904020147887538660195972660876953580410508364866786864988821193759774964787888703996336762853580123576699037873334873486244343322590520754692405245028482725721770408792604989774063512844025256228970810688159207348727561730370513075820421012709357103285451780697100487493497871224859361628469721425813168716305395132558174209492262838260269619997676808509919444085836500924766790590480568347671623513215938605926464300144092125784026973644246654897735810846906550482124678665333655859529830404769368362876299402822697040028270848138525617022905191564300286419625707574096524301969369710244254972239708608404780651909258644261207830690537251889911360383193187770879537204750495727215687846918681490364251350169386823274211303221876653364037898373058097219349923414192202795038421699970512276260128402811995013901501342772640026152081863049880315376312417935618453743212027161781350662946261190304061901288664843634017346536758758240593814143073954805696836378895557804756732512774022729627996014572550209349495640740857497950158775504113405596057459481135866512446666731634800845474568392368497600485195367582457056550701397703663278026385008784049324950060524591316091463257203810248813520270963584185848572417304487027812309342638681040497935647169379671266956782318619306662409287888310379103719794829079539758599334457598425367730043719555000627062763321801539932347303606163782024511724605031850867611755978329391591483627577207120016861183968893949827992867539873889888922487763174848779065330014631009800748988260086363102227076870823485879604667216206342081505028361618487946516265835662078554003252044150547800317269613072745248258385160895786208153194043046743123613440690370018657042793639328595848226759030040099285730554714878073647684235185409795728972732793768622689755785710720355474579058763724504337899297964249406782301154825587949216674932838271891198481903021655689313598377273191805567971709542224789895238318496592233388176742846419431885320793111759570141722745072859302447532669905324153417582548906285842184574352092756247596870929787227590438403716090959563247268518866032425693948590574566765914748104192334663428219388761783928367859697070405904608832213680151752547561425426529842309521140826406872496051262052864606734563533142137008786714621327027987251029528714535821403448829001158398937425737258644667822501626314268107960677964560759112215577305967253493697763991307408567191727457365124998107220600328565152184456162293439367725353086592476415247999506582421454033233719667339119664164471347464221250346974562799557588929223705097561571968606833696531539262873785065529580180216408495983125366789615516623016995990915068869327546591446101299067438057825918435469957397914559505459458217764319057336633404371441109163379991278894168585204252630302093807168557585414113799665048483757286588538376139375438942734225387438979908470496902536344267054447695475181703822806069260750242739735471648155811657538085385100515444712059264451565967250477586399973123877062070462225135633197650579432180187164312663998791164755062866052478526586828896017851172807337483353644030566289475670002017850019888991495988715207887405067031649988075365465316962908545839980409210312592221836744028118398588584673887958603986588860534016911578008763763880664761399522096610263093049082374809836128554601895145049815046946760135258483740619912435155273965613659673831145792300351487414918262682756927990559434961343356753440665839780010679340548351618873166899608538528269988661915898838865130518804264995298342176674541534736648746019221093348033641725479144289203509047866827074413217188289271967753012890252894258621752449143719158910986353891043450911000070584516637883911112295009684711878147977682574871003689193681153312698329913406151195201755960891063106823740350891782521167264308955788818866696238266716146794680540710611575813925850345678233589304932187145125122549479591910404419506087453478262665617377177103060830321177274095859885928355020761342042915995850696416111875479847547252597343038003890868050170749384746371606191835980854978045887556701261056667675109184048074699284037853291160338537571331904994214010952753032274957163450638992752363573362473415969409026088396744202355951588868644654787171732566258736095214419965251853423063236903492878123337697410175662613843495460516993983634375115602506248940004967072794433308066202460699622286667810772039206315457950322760539827614777562610540171283663766703250418932386748007055829835794837934176497923401773998632369655583114999315624503198379566680723281859129447039794989734859848490003426273736799203211210024363021007089096480972405908721259764739422827955765876172372728879907350204450229574687445652237007020782003510143905634878670327510324276117074413042911630214136486610645725440777825665333229378621478850393661095594370663134487074276221869198528642996046501136985348041684588866824782196735680667420206933197884248671102999338003797064217998539415204212725841397990758768096753684602894292409783616164460790971466776678813140159394466564774859600873512782977780694764294104430447561348860169378743476911536843815873990877060872703672629772412003180834132702814936303383475542141581018932445396948744790794737488599537046354480006233578095095519063711223029256559599490834172821576583483431643580213936393271006669214187702954200345931213574303168821202842435049792711414682233842768883026224532087286319048922849624118715319870789556400628549767693430637450501452655892492100379644700950013109652828568278692637864726969922658966713831955006125709312391054284516467635619162840694569411398042069909965013781758850875302728427285240362079357723096920336303151702515264086719104398799383259117189589976175160888519604024880726226640741469308032303504292647162841108657063443361425504521996517872909262891419327327280230455399127092324996161317225470438951399689504788773247008673858883665400615054438426603602838388141550211941160284719205203150935999090539896023636990707037361967074458728521263673630772066848906562303226790909879961744452974895510713474708691383410252599360917498223610635546661486960879661755142422168401074473321440829635251389002257184213055589409675155066456177218593284003660539744052860366301429675692210774823333498862303529703869109500254560948786087008494433963399883137097660375481665257844576373934490774490464610997376822677853860244479967539583813909801790995734138687952343112637611386107073275433159172474015991795386659658354012250277219814725398210387543645166010801306055418731042563916943093753682684289309181117312357560657064584340937133314944362885475085842169413149341750487611909395964334634454217845101205877165144438208285669620587809315660651084914103086200006788777625506466235626836443667655131548962819309024944757113539436608708787374122847290582849003682017015489682836396324879214788829289987477730255223085618359403199905212961761984237198403657701524916167201205928508556207359535104007818781165120106671520817187434555821792134559242453235359750526475221587810954561365376578961940168434237071219647153595958316788258991534355581697253812901544548111479880795858156658341535249464981935426868871543375855045755794815012602238337774819635727160966779969504334519221487753485250416210665547938261416068230124240523108124497520474949556717702107248668598302592018712831071431690103715507541918708404743454161422159161438559728214425421277166186880089209193107722325792070591614697802331958141157660782932147599134957388703667268512107223947590318945017522084064540366592029347165876100982660979688745248787527234384653822763894051193825375408798605215378101238884453181578719417780432500692611093691598199832584430083243889307857236072859364382299659616742539645011296453238011655307866967251155206040009578036021602606089711174964834806200133673657288878947737983693813066680852867799974556026071262751142477292938842616583071942106831068416811610247859890578669614623215234990817282138473318649111204624845652373642618534574359502592771520298228246606416939591056142297279533933463665362741526620186407044656021294693964463497100221709474499613966350240394748366400257413057248336472263197592800694118957754927533656739412669048237965682154970331040242863297535071891131595155409225321925353918332909766015825981029306715415861649214894874397926413781844287939172612445485281452404640914564680509087413923446559362461449467931015703177792463959235186050607693741059057059624990642177523273182178040737506770948849361746077487893802030419361267322799186051933598303535918133545698028094641265121685641345579072119992429517325630761139177753110560614524774255607628751065765680812270421835393299812315811870316628452821404032772387198278184278343318581629317579427545638768951906894295363176153271639348981672731899910920712576689663056693483191189086249187072419555385364194051492610003340264736224551490471855226353744934124862022442480240372404550328503327749117871094269215858415499285532551377700854930018500745196191961465133256563731833443602878248757182495386964093608180817991432871906753396479283381434968176330847026958544541939231284720170643474363630672119619822704579011379682330909145214333328156000375688823518658695257516806776995130208390362035141883053606939842513065724286821132763714687442525520301401254152060377515987383138399033902991422469283898080180593716645951218407665249874490535712839592722410936649576829874295353294312271142885213326076900510344655712229216539245946523223850588408334395968474029070688813616734363410580275451536807741601001861344665931273740774080048318885083167095810209637089730044958855832772564438681012902129189108679378823769988877691940814923118684059224468203741855319448522227529221781048063662933146470496284974076961887695104686694309566482733417877172820925853452399221722388790647637587559023469489039128881014977647431101470699818163210535277064139422613710163532207976493803221136325503935846705877816513113906322589797915500747005509270343532223085685518790999098746377675309204343801203884999812968561600366258180922585279117648440614717320358899665300012076395056581486211805538573694148007637325733350046851535164331173494149900766128582952088684383397728903991542253848375359112631002128771641508465432773456934795352717866134159566591649123960120648131567714043450664002207279420134530468074786255627289711250529547523232737230906698684414087512492415206722494634540764229328017768140930128971125219281427172033084635803002997124159246643678504463279636319144079756256782401033953330953977553684206562828134149727288245478023399617595260924834051049807603750232392619931872732249998054026845392323509027426121388425635137406472824970295430489802198928399058192419581001787320190265697276022835571323648278895695079045335753231291980422509485353610744033646364676220850526253608069192059553370607537586080466911616180280630751727361492702883219362191420796134549684248606309512202789526861620644158588939338887633319349626908240072334284459251904056284537661092516779545761940648095840575049389158645253257196762488042606923946078197215216319987424738993673779823463733435379955552485809284133509521665427232958633591278316313424252742918537367278033746744066396027723886356409425176456827245393190342101801826949467054519796817313217392259513577015668257063796998417522605179298556476395691103602417274616295166564258384978887173145587519606575523329037157903079012028213513447301757887931679667653481448302097942632655389081052423559841929150800775588077875235792081721828555323264683978609851855787264920134459194846434717599300114669586309095166314236773619660245775992282655428732262294661393506968067858068090535679834594475299185765123421255861869262033344415701318139624014067927110296763702044082308405928699434236394207453256407361982845699491122154906032341067841821877274028798263275929682897958569717513601125956986279718946737800803229050796561476517930698898627831663190360112972924878195558685126145918503937488596077495664156055889489148313204520898118407493817219064966328811055650739669145567580216293239329288557949163599332657019660922910558656935270503280030389461011482397779214695404229243649195455405519414513500639558868190695029039243545024565846608571889780354768507043260028279846224801300066373414424920693265638703504564645050380246668664964277125703937010224697020272730834043835784001473972406231308819457313732211778377152504899384924926017698413487552861370434121888290202135660232108075532422701624432304828971430411899509762791806970952439609051256320297372910338306090598213988445304171675071281475026229614857698257020231866687565818992914192802333146224511106464621772954339102248680404578890556811160632486633223685830438907867210974170220031123162943518261780852713106770951364910855054466536488578904351679170900692410561742073508932041788208903711321823676627058249064632460316501168816848662067448049197891878661792714440858409460635313142091294489273026758924257832046616654040742581758705300143338656407916394822126886007564904850153394620650009128432235012559646770965297673483554862363420875689967651443581200591690748266909249382407565410556031506265242839501283567708031466254143635245479956862264783812054619859960466215094508370126792966759520485842899983510001376806962080484633389061240309844340964416083131956430080566242978479074152410016388891047949503388748883012615711513485029058231097840607710316672033191096728824677770282847562606852460495658583372484351955819305552593588776580788128327218670074730723038543694901066152028953034468090973233706487217794505056658478064146306796807837142390818469428332631881189883675517566554535516950230946275121299028622575679336858254343560260055097158805119918678353921661771213735442674179669032221139882121983154520670881303419267487542629795637216648904986221849175431944015245013837383636411720151894134438188851845736105437897877239244922301032129490820963012302254413001373740702898165122903976196908768795268947753504852352377166953533572548758855153118151593671788216006373958466882069153850101196009145617693220533631673198754344189610845320604841742276564567937720423182436969493001956820533680166473857527010816340439763597704981756068193270219788719093499072195197800280826724562518197503065005978277421652245806969016391972864327754085011788876482222446888463478437525938791041847479309393263029989713270053564837112411638615769883773022619066088282655773213889006165806737213971048693138005516218714835670640795244680930742933086682499205881575378379537100915239333540442248707887302741362781747399341822208912951788677454873482034052980515124878781701401777905076196325432762496575138198115930130599185886334092115842602312094919148938367586655595652485961142286827442456118580246304268391409768712491419024672252931060707650976477286331320888791845894417385057693428005765846205305907480798994727072396091075490863808747068272930152964877320437927902385235927896722320513883702732347682125537996833742232909885510767212103563565859086884783459041058085811306571193276910124634276440744778158682324845474555054136291890218081535080593387768958967835864222060963105588326048367891399921638279091556868928939478534312054524505539923975021273242833887961279364426499842421370152488862993650431720409280023112308206221426308050272823481312537932421769772712887156664787232466167092772661782435931601171270290236613385394643886276933666036331840384628431708647936545012578018758435360672079894449708501714210640582902212356238297210425635295421936789247896370395034476774854909774825140597617388587177199716523356446301583334158690501554024949098330664323101213495565474778468079922539343546026835221810523342006145798014995061242565544589791105257874106378329596065843180785807456565212591634228832769645995092336959828449854536822325872004655784824390597405674827932019348518364728503090129643563053045374559394607423142444477657009474641393327454847452315921527085614604792299252942037251031096478187233951769752376798384003409172758166243298919527617618714654972174919939816602688369709327830352055015460845082375371430877046630550051687918913275534886646685888035661375916855042697888741887418550059869819479289526045032653732736885639094495876770840283453561270722147483811398272387697031303409473383547649659006589208488743999785129302145135430773473895598042615026688543913377600375842097152361099228973331244183760818070404750014536032608680209135883477716626082381174833528754979324430951653040164239611232208184840775367274293457841881103437717127471275926680726129997631853397654798626115548886640758340982452585014467435250996355707257484756322049985776945777432741981367297046532643273999756677835654996751716302020764912100665321910109581994529602564797582739839682743225933706474627328878233506091059461724646975133397469140331918292931651451996423821171792427278790540226685907274265058196731024119133526973804657302570258109640961633247537148228477142362671381973294383183610217245260184558017047158562390477060151859403660131746736329320712759764485804066307997186760047947749307231333933238714293660921177620085895236875916369642665475315809380974745952817992969762276997989923350205891530516638980852645438733443331774901409113931832600261604229504782123946959880978005117938313852686195813155728408675103450563632747374331691090492008425389324860200967308578467029428876740302488498089907219040918105618385321770386994616129594297238246459397066779838081310888989670898913794218731935125689680929319035179041978062707489733161854945859671199229056036042263158542502877735693262142238055125332579364182048860977377519313002359381604481326030033101508513809545436399112810539757358360600183849828535400894027314696669456238891939179167554767894044811379743365486282911675962459137895853645695435354899203746438852239003122135430651704821453697240731894476010449581351907171156012168424867189435158733654589464523324401829632002564273624686239544833928779591637306329004408260618549770916730429915565667575327481913395516931715426167211371901989647108414470440762663706185547037032136872508139419276951734139196154777184519339806587013531740430126551063372829879813519173806742377964503478962229561988590627927766804357577117955319997416211003144278168969108324228850622889671788075879044174521721106869085064986690841951911911568298036455112240133595782418740289115065845592614454494459046676440473403343267384196490369571129823593625935877456477042827834900519025378534095431679478415212115819632664736299682163240212768029809149550224504489917737656642746315404514806929892393976455973820782674663284048906671723345983724153530812189834863675249294965167198388669813082402343600261409479986813812539719097293685550829694914791488093386714138843181315489951923195724834013668756284511741410290573689122966788956860030631413133163911447446450913022095730738181941562421740654495656714926864155461964742565798380409899062968615235297188956249135784992850684948125915469983270900839111369382212601141939770297564402819509623508919433374755674836720218957314771545620728744112935948360247201008971095274221936694849130091821884097665765212701641557083300245413942856842752837798956152441097144095295100297439847034741488897888341313321442324783416085820003455317843995531388349908596127041895391151844457882727219822634175094613921766604419291384481206313010770265858170683813831093140534829249049440089398181710623830337257967991784225977855854907819773278407522176093494256890756108046833575298893700321833849083516326475857151856952045422812925288794168813896240985464392065171207401011829827600463472618185947442364264393814268149092993543537270462044056516187441017808565897353493563516490776295206325782676207678565559568942740592199347509010932255818721346948193546292552793600572890240601759071329906780535925713332053612852404703350035662559104334569797154001478230580547664766580771276041918801097003132690670545102929640990822981771931847508569304308693909917542014365260751697224957227318503523564097587730450066146175385383352062897320298199731084965674287152299962329077155443732643050953556234615158370904357862911648056538243415317559112271192529738069526072266554924864134301905748540758676928329535749355841007471996874362902614593378747236682663397027565030098608620183097726131748768673231306747547080470096835554756477960693948354410466388029785925955984520644393788932969374440742295648753450868371899657992271173424349007617038016289966371648937252653291611971369582426926210972484580219986039769055804546567025469719446699808274329008558580385745277611478325458005502843152529252738372479147372231400389539997977267329846482270170195485811180166474957758919201332442199742643521161062508011465821580154578554510435947490411352256203668024213015013531048957333424314352527057877316628234081615374207383352108647004823579462043435184974320540131563434799580135465011630985620319376262466422236093756445855631809987714006279657256631001450502010934795915844461239466271363877966378143579964706279326406510070837136730106067464835158345132025802266953231037257388285914709419059803382933695379805506163145666535781556005080782605378597679752905290488931328840443622343499760520589583227172266608337761041043931208331199186147859434291255554432323840560811774946754520325169262658405737223298948784011442965108407894141627106413076315005053805562110476177846555336931858783583403691664684108659154767153443095759907417143565477722095074215831541639731903429517520101785926029893566318320040756077493027284045406811697416000722251267152788917279220546873362862731041740387878782954843634745589048120082621845697241988871372204998053952006825551732964526632911396170854952447906001169911305183597782212093701072989220579661661345390420918434455594964856320652006555291657237267207847460432863462815628083557187882532554589049282487259061580391463660849213136096960500511394740628521289476933187515819427161317399896032883179021083631273589187153807481711040384776002692013045097706367101610655274544157985563241113889295318376826543710236362831468892314804064530697797820712643566901875778547242423045164774301055330220486781938202272346550123977041911956739753124100799337354599841302511928264413944006786546151751787341394135994297654907503667241455046465421796304426868821851858036378341527944005737657522056670268025828820896894592154560850878700233664055053108102474434594938031942781815603377237012671678624690238726568427810468499994760856930446827935025567887770518828526198258742619890720129622587463415841320600383191207914254444728970403188076089123482138030304375567111961584739231464254415150936952237871685354127761836663931309381594371309845954921298792412042939042679225286138338600095854595200338038621306845252918170940311840455099732078118781882609264731484704464771528082740198580951542018523366133274929417538700347897554931534475302101955873787416188530201718677546747667075718513438142511506341022008433330617185511605987826643152685137045290738878484597802052186965322232355039928098798567607178574275052426812578497414734555103709373213206139221876194774807885501776630713381549467932319300574088976989728279087616435583468146908192308534137767538920394281474592043682291332985866592805840741733124964766779662734240752902430028066827453084325603772830451416809979646442603952858975416285804874790681525564475462962480076810146060339692087592725301267502172007968444249233722588315579225269701753205048036651008255854381627440046724950423709999430572652635523137423304178099595394220893684595957830041683658749050895584369044809969197012388084545036383052237234343755768649402531576467559200337733813932666524229992425112335754744955377506535382456308977283473691913498153607042735465553378344175848037246350278708051776805207459350928082363303184252101212961451163794870370197403737145589139461272079433019887496763920356142583348902797908407179985227798895189250319239132340559222616857952837095807787592364185166833678457466530924468647004068337613494679794765157900039014693020829567787012260053451926849334950685829714207356100597813279769459501229229996727627986561222772416227535195160563441331344228107056229346279101706687993648023615922871797999897096285020718135179260626159013315879617012163659416356105797261674563769094156706949276574651088817521905988078730014641275815227619275072426423933204368672555005001511737704608138216461944432904620832771413733520591218280498357657542158205347574962617007841631921146394107438541908554466379160383109409101882183574260709774473499735112757518737363332232815013548691589515974608106149098816968472359585983305310021939656505055068069405655227535891109890013869436060146300583172744961586354093691710154265247013857016960791515817738109216724546267381852429417712134571389728735432131220127405069765003204996649169176259677344522078654319821344119860223171070918404530989513951675409857302824803061496244889447934718254575152777046774392870370607433898505457971712561211834440877493414851812210782288671143261084743629863579791753472058528157465589933226924243389674116663417851569040122976129235784942561223725055696893715367472337705668172529952567034169394029395393529221843624236630097197074843987883058135419194331701485475955858224749743253794471070370764849007837642610174718636542621816683871262002990801887139150452455411769263462789131476737639441088586755444039505075965050208671642861396010101090310356126303973197404592899896765769973902698094802115905334823640726041320267884826609471848671838347400355653838941184268198832904221200079477018625665067323052172337643344186365682097807545368244118051050789835194684818295403467459874655703199107845015317510820286338522785444774031069907057541270128312579698430496774601717152870289532847217059548802723205077297087254571602199707781488901360183452911944007250310894694296565510992555595487812772980094301966134732027450299411142278215012405652972186921940494702350103655621032180168821248974287949046615576816619828651061938388243131458347629825565661310212901981137211244482619512212988647111921189826455091839830171259770087095527393888156409347188278679756139125650009205299781304029992907443758100669829508038627777645842018350192371142939760536624059917602084205736715295055204098583576565133247751906429605317719936146372284509302660213099644301977677991017992538791989271590060672233138493587538790581743349744423549524968746368531627654986312458648659509103081083741294441621279686385419732536512264031301413937875260102339383944370885207856762749268397516623927456885558011058451408596456303996161130669018341469285596221129515791768739979109193331923913811142329385145015165055580885867035301483799898162964944327489276201652121084184586552820270395081474728298325406006498132856170006582740353780569252981336354679637365879218499520380351242423537314849993292714680433334887255945488178123818396237183283258252181254123302477298002435590066988454906435045379246943574172970793760883504128173546262588334674791895610096057817971623738196469380876437696223307254119345444982993399961287915987133602824553512550718461451810993716860996841160577808932504645345871401256437750816754499561124344378109753275490552764043886411966513059915606547160786653113558334148390438009254781631792379900951693684360083134104198830852768384256338857387863764716554227061196698565934317446003982049708020693449531243986825194516162079778868492307814556102542039269009496873447759161696482363322621353224524045731649696015502503758134659237004036279917662985377368374498705403287697047351915980367130236451398676557303062536916641607209133065684795146550866973384162495102301732527564274450593421658949775428201910525325482209219483262054058656611978011530680477290377802354354565237333962686966145175653725802418743546983007288268220246873378362218479340148714737746061195107095002991381915259253817528391314734331779697613353160471610523313628937051365623796066940202106315104759444720102762359591764348615915561638392158641069331272722086420042032596405954699033092016941500133980532293890233842192226709208418692272638089928823451736268288636199967348097926095652919578165152130247856433228583075760913971739892935949154199355793888498323570296088229766673622784242602814442839117652303164805968659084439719554238213632865385153795764231011065396246266864385327518835118052403921925087564904360451709651072496755238324183266042204416922013906525960041514651739709489344873298639421656582487895092219668313692148958493082221250706362970896764571337055895218053375524451611640453921227059299886825426302547605104868827818106566727989247515776571538357899054511639394843007933980754712742660271737236744745461926480249780483916427281943845334440879453298688520815186952478122928342891772764582581655449351459685791528190328671482850680258559463250748036288666102315508547252125572680381558222331797258679937750971515136281608848969992949117245916857108928031558542720743994777831423657604574619907116087866154785801277591026478448942133376999226008751905503288428688578823044664472549220467325014417638129730001360850002871262104826854004230426717870998018912270359285812780033060806426374561421790803292552250928651505791746095610235092202537223720861274730532630463172981753229019354293040844543532556133772722824268500170086996812764514980563507326833549768135973475840845665539407476875278201078289012385618204702194292108032137749366983129637921000986312199985331101671779461062355122435334618168820710494392865379655950480252205422930788923927414513084714017008631606402877615737134998773667578538453505605197426979809706469496407169250293144772448080524248299280409224259458943844037921628076281358693354232674623038245486572711038462583591858796530445152259845093028640199275628427044497341816794183133354303125925865061696953881845227938082576637529590513662542258346191060772213324201608378941651835324225297938720575357313850540641887280736796102343845018024946994136594024324004953616811365287048689254850399068981559615445847611678941541432640279115068061948657456324668174163307558545125541079434687989743073101388420205591491577198932542690912738414298500691323427708122068093762872279862690250873648647958909286182939156646326330198566247163525458438399244653190214605200063455262030398618366229154512583650620299228115390841744472471068670682702519721504239336512436106823770673748558173045794891816540613802139152540401234290128769179948858840179961446017278220760150740279785775535113643091408741295171240881812858835846649367869153842548420945096917326225418853666388409398006633668947850324598805755944236817255826227576457678323284706886229405402144905891655124085129381024546309980831469541464505924282414589049046314926994559425848107266190465509132144414471239315969849064873584550380863786929027373624322038539175411188364993336002084142897647177453538158099687563836557116383469931879848656181354602327596324706245410093874910071485339625618777779826069387727395147145493220201232225427125448022807691299441154884981884057940647864194807991618094350718955221420392892356560502108269787363351455641076764184807961390319017480754327367089371087019956824773516617611414513200541755397899498917382015640655411347105857842161815201885371773169389527540267065569846680017265019841828777080978715241411141058621642145880744674663952226712570645774957320522881588798197910563550036829622047753065466284469079632651873701376758926220129029354831065299758584597931064466078318679987515533085080656362227892681640646869347051600898883852211382765531694725695488306590138794488638285661456542980661611642163417092764048755623391427958049777670280137670336353476812770538920623032111821889435269755673637598082148287234612751490517685143549573220374279253052026848960921424838460473013011105961711076147612013402639909535173453259850294472712239797024563229348152336534591129562216524975400805631580338261478994013814869188413991099318767335939866962613896142760998099044447183495050967944276993838773898254081728395640825127823110133984309155508683552370399652934438836443404298576474079889317958124813486616027613136420562464360731604174200782916067934425359591424070540302024475592160791883867348167582073834961088222269111916571840006386702260572189798676592930253854874382940398126010802339206938220975770619723623660078722434378191143078600907669199119999276377970987618141389971399597410596638981699878884784616358222811333100405960314129275858511369957216047766846041991074593120827491870048354659347147489907617556576980225716191126554001617815836331164584205791752259056290407148823566128674019903746789763589120978156353706728943763829056644273314242181258540585351659071148961475590975540354302920321719860732963995720349148454091486244835278701186375584157174900485280977064078666607361929756863547339663055855440761388526613839266194628911797609222061623468673866313763083108740613451255954907284455826402349616146275068647797793154980570724067793093496818181152209577749576496848148500707283474471367054407236737953947276736322918352847199302819076041177147163848757410601377169880021654948152512057157381770634021537570551326880230627448722780276760102940068171956765315254789027460838924969859106799861784637388357009557653790001334811473968695461319815517971046113714061757572335732386882161011204208439311037925358662875737395563476114088156830018671703166652165066028986187025441458071612400968212869751608984889191671752664184251797685256590609322245847835146193591656559429563902145233033585845161616677246158931067334125137243472614868118550049297864088192100025526324017225473672800098073695756769929629153183261161191389857315207762628266330906309034692616184648568444854768996356271240994926663300124935047946624002666898304066637558724362220469388264773774641979299302797308233806493957918904628926927868380279086754759182225067563772635875048096940176100430036388958468226171531196906890863138592369602329577506367453443639164234888358386803311582316215658878297699422863407412551292197771701298499289652400453401983085700930329800134710048818338857522965503322437021678984717649129905219293813426316879821311574165378149514625858860976182985082525919044960906622388443521378027520130354316769011646204887026284216434524809180798454127918066256141768624280077389502407166311642192201245899921605061979584222879240964408972625748541947743834541881117540365707417737952100529041455181696847606707489806324424053311338858768887105552379450086858719862100042394553852059055126369065674312893413470738434403140149152501449910496437084047012533227533690513236193651991035499440430226587846609948489015291772834820478036797847387477186267332562094995975787062172811629252550635972949957563255159635576538570825959192931036590286700425026523611325533089904697445591152942189571035012870371588744274497874942952299208772886079113966951265395351627247124832236643229445183362768822708003418430698742551074329815738859991775750412057572807153227779448666802529371977267765098234188293881880506064286019807049976037511103172798138818447651773413701689185547174158271308296654660021022244313254190536590530488964628229708711505811430307096384523141904899504984523046707281991437342682973906777835441975205603683314483281028748705712255755435801291092483579175523466852570647495788179080128753265098041331009069235961091496841735301842563620637724799781282008089195198847670358849381038048934994313393008194154996171895371702764576845424423861345342242977038111868146315065275680802012179949270716049144232943839646050374849314643659214844381210187654935916027643371240756383287799983037171837788416073432169532958557938108389602409071329077739401251461001978046791283968303360208610346617422767455391237739796566123036004196037604751299650388358242855246585558629449146476569215146442658537189096177458560203752513292937211366366619453824968886647798227869533048837177321479588027397301376639794395920539889894171221188077945479209859182436859987777078946413844461601190552688613259520718579228710097384748870916695810798852602887459535356879451287703402212382572305332448965284036474547626648769953072946031673542305149380876203615878470262915610240400295942121377831513479791247431044054762172279831839531286830952656140831807666872643215627512238611160076963296786400127116491824553954603125127093276169487413566857607240026884959641138643101694190770274446226104506002452497974148272849945348098910310763199709405389710634196903237355393555288884267923876948374731870112765410292132553949592866333242745197673381850323227188097467013671729582203377337586409550364811423176867553369605738461661566247504757760387116084433092027058663554092885531929860159738054833286406621219517850548573284142083094630034137211737719415424746375702624256058383789731755367238852081018298082453334711287546285682319406681890315122062251881399502409007604381048111341179593654129235643286960895214164202209577788535186838801672571657663968636879833704824483727261577434347947819545132970165431476993014165681233361862035476253864377949649086546267810480729627657123491445857610384021277284909029177888822867032644516976410001172351541878606731992590766411923584574375124425822278533363892991763924512604839402329986318230686296279680819456351623620305120184446219397877214567085072265344261826504611782884208333982357603373178566868103615913855106918211203727748079624789740682380960933185323273563839158862929772661656094796821593328014004582825179743115845595819022739834771212831855644649283711362494163123176950880147495874462031819588478839057602453161894521062081119945202472386314848976955454346590795843435139126010960030449151092966078217315552036250592695146853926539765786029626175789794309994888425047924026863143807645418605814749989433910375003546633287620328280570345551935185947842366699397708952108780192015814252596409815982883523447315009301005373694943828207485751353917621396937012979873030990034562011454093344157039528125227598239191714977049505240763193968321174155180823548553289484191692833537094093553353995626236439376563671351292058543181513973715398870760614628852616095370026093497362290526964841269260350869136832013019813632811599196471922356266767314677495415743539012077298376494130883398860412785364116585735602004996184708921350075040855303255783821405598609505855581329904714804633344971092560532003136298070186197192990695915078543909815676856284258315345660745093895806370661000824760055315427297169055214939813544682116184687842688555731827769290157457728257497696122564080564377320025922535320434409374230238503394120064299496448662741156385870629866712752552038595048475853130057180923659697361334745357052985088006096053339386529782731890191393347154119889708373909910263146551817917856006278509836062906273622911000572777749285452463284538794836980003194723633908836430958314003216688722677199385702967213667400377320489814684552213051701464282652138463390749848824746188652838506391588614502530398537161917007653397178103606557591041689872462142404777347200030935700554896705223811368646288698787845899308334305735518634531512201194454154195560548152947930110748349364254886967943533903985548900780810532875015606239227792768436579816384214496749363477354647044885565612318832086524229791210519373249641644783723301497328207633455831160309776318608013314312888059758451925129198560187671373098442393539554589988579070064676505354131269908602014297960324424628563572481306108832678592836779255924577345400717820786107950487294020812961259433356165551471355589432834830696635045580458376169115227900212081686740226707601405047570191676672571132348128969649382800469990261755052469669001302174522239813308035421969792403226203586718714126271687552924211809612501618282422334521145276987355301317107308020699463391548844312941940952549654289998577727174435244499349697238042879226213971295023002407427250038883344407356510020244836096720459579167592209348289503270565869527320196164027849645688217639896848017680540895740391909240870888472213316307783663143855783869150144151031086912329212080490809928811015585014922885771473018279005055477386571147659684336935979893076043875737334525099024051741774360374521888239783197866110466373899558168859853307601758211259625541346060590636973474581092920075812606999753169875259367109417836235225017115019232201001661051576737572052261572211106055743732667164357457617599127900243134019654785327487631730216550981735506886177139736418774881790227114885150056273196669265082901181648237450301716854547120893487554655947004784333170535238726397578906991720355137899095226517034457205022061588984976889013745047579829952227961647242350282310225496006666007519624126339530705346101461374809185707622545145105038103005914149717352407758675945913671092515378094719457295379493064995502202169661766135715003130853406134321712355108178041964754165372639155850895952406697726769197156056530043747036522305932868225815596091701087201059311049021048998229116224605541092723166533959617793930828357952394459938656856010242801820504405098424869369417558749822196276290321501846723507569854813706592908918616533566330626039804064927366273847348042739540180497041075613348557631284923594834380775764517117273483286430840570296850078023983509316776975951123061791795442064534505255502245813777309149233562646305339515448539379871752023334160395472972829522958760724597726944752519109499136929406717497066038560169511220798667544198622731154637746861001604148021114168986632060134406524313665335465665177880109792270087718610361040434512292603575021807444241807919617077690763289541392341727422442338167941330365311768874157249973213431680217523444784095023990321813248790590190192175351996956397980604341673511423442945011767173754475066147750106395599236946206908554074757664059332877810977476718726099989232065341750829031578192887834784290413088406836506857820395231121619842886938071653328129042203423340844182208742349960881765808172519636071804517685035833317586505097159560595459514112486721232722017378083794441847902449797515312525903434800497334634660543830778243433820125149672035988499476695885399468958358546486335694064435897546353963904622888880630407459164022203790370914991315284684067971396279096505831933496127297302747858246741610542235645792979167911566697809724879442615451431038481855636880126467674267457456518244914974561493537038615380799687812540725898764166090837269500860971128154947494634077472518114078528741698940995591650251521486677340072718380584448504577035606397775934261129297645172685608888872916995555979991545462659737625773492927050684190998341342328817486767311926472212868165421429913180255897035982328917247138291043341377995880983855857096599031357738803284518345530677442926857316198227235388007874866131765792402188356138946923294060432278196521445273586781540377322598585115728671456880779128266165885492157110916472795560251755023026143179971569382745488924960042048490103627009238869740160724745892244742312487301907972009796761949066692186790816569266675761190342857923876957464853627961662174764432362060383398439041226027552276787963798252649647502960966254378292748063654106205882004932888201831683438341620502155386247902293239273791455052168349800103412207813822328067787433718966898532710558668240341668860557071702056633186499849510480576137633243542156929234531732584936442703842510521686750282255801014393120990308436193161032440192321052240223646930623884546697051742725643338110007430464371030604180718322145773307087061788298610508098397388776928402339741903732373759209892299847378032965740676612363282120269774032025196921164227845135233815396762621562775816177225676661737948457426573996309407896360762432653484932475498450422682139995698531980202748810432516311681973192920861809600082871341119547958915456449006643161120310509679107702362195487548097154574530211018392084274096056402718005257658729257621716128192922785673992846316190742787749757259993311288794126126594406214709958640752450065174836029511541120788092456748400966003624079567357181936987895565703000323444895470873841129358960731511111983109509298773375910389991489539194740041723483901708537284887038666325364957725415835802207441296937801452441626817128396891033178203121124991538611685536206444862577262878530732195592526987621838837710095529229607436210092662759627122142213358843663534982725471450009453945005391760556360880479911372371456005170432439205384930003216161128181712682141229237606200489034956629749695260052899421816660350184173876687339495081140678216135219617840136857523821854061064408183585097557623906132908588178796278529415610222580721241704778539279627003662721874960057934896779677302035035852029713696232681402392634669223601874752434596609951630547070844133738347357009145031762400906532462672769122009331105454423139677971789850569463023142015992291130951353051804225718874005936785855506994397245274240133059807776073663344968735962127153089170151219338270792688186349819431987295859496265573008708945805873294200043195900661503704206276007335878434339833917840266133806098747779672535378448836455482064326672144530944291329653203507360048540185163418479793850968839026309084649804574589637744791107431643485514538621703263535013319250913623377150368386440681166945864459386826905952133940991918173000290366292361874503595859969778246971125400688025819106805715415678061765120158987824402251523117504812151421561805040908641773353806328773234203310904724593196915428132681454896844807939188603981032186654657076482944796408106369945059448818514999510836223570915387941062957250937673477060178585087056613961666980066969646019497558381572042192253253002423155811656365572455309462694267869875073415214641656953587772395800110476427698698814862665351487494836790256660931378942975103070462608089152667181964312113866975855420818626447740775504764901394005069829891594026532759449837937643380582768462629111873411173027624201555889456933009925922398944677377552524274786550761662489710806387268905246827191332936279320896728322591585512923362868457939041008369510243024456630311040044514267729341730052353392413515679273496213360970690701391235856402913196520707338542993630053251271328443711349378953457050549692057485476753105201276760114501175587724062339408599999669698722065644801663477331633435379078910321052282968986906096066727925524233076211175050245359125590178652198954607843149772090923832322355073062158802821947692678260415320495429122374176684908707954487192623266694285415676182691848377674353776864254485074004365286159422452081942518278607785238736607374568065886068303504204796360218431095733919766027787678937228501736517516537084952493739007776833564966011853564458022615517735995240210988033011613402805486788355299012206116185902141814532597429508166165979308263754508758025880888047542318106016362408829712596981764480399323170866662304298604041988653813755775921698129166371348684613363413755980236168541424271007131008611217258823585827881117086416676708966259725899461728122193824082700387768791436079375168284327972687931441274175185936954590888244550102218111059843892724169811839551337856652413508840655193823573169435448127713747148711567012317431267711041585660449196791830534363532542116863579673199997536601864659985858400584901494328012910463088891902434021891368574338356288652998360874365775632298390238105974793869650065192846308141625443270062146670970649405209869722466297296741328120837866116519134868777392371367749435141542749325358784481534642385897660406248363173546448291037430205148324744866062049165326448511710175534744998910116707745728803136222328431641800426885080145753378025140921149342289674835296914974546616650083958052877641997774374206034165403554287933726454800063288398462313632609564193061782414050487334883705345482423627098923032743357684570522455690220232761374708387412386801857852902902504548520854004803375563653828051513265283175127048147717461396898942945356515564588870978973556274988903619133345749514290364118853490311261585167645112551280591287974131411957925763972368883936156396075233428458295807353365846217577780061127032297072115994810237733530167889480956033436597345080757199487119394092038822955936285017548255410956817815489410893094102892950512106576265090211690245146504143807933400400293360932286471761150102286211451875120991318826861151585321123516629052069024382070549935804065265991227750862507608151210644757347656400270073085433973895376934077839604897257899772365051488357185176862987219141359454167562249363145478642781779776897893352043632962068211511951536622006039651568374676184845599775965712218189936056808353425512875281910095609931623535465933276814889809504544693026169127191236534200333626796388791127539682466379284589680958281827995973185575613486367281301592024866102489667950124797882125242394388352416800214809834894314303856136619157604595415451671266539196381600033321696071848841939822270529752680943921137789267312031231474111657610827367337537761009452086478193037621863222829852068232070106748516246032066747682986768544397784224175471585248797060559554016086944311061153241083264332194378657100923776774777535744123065577795359489624961048720620697177176648651835318151829180105497283607182603070097914067548379503439033701194683242511989354348042835730115639402307961618051127463240285130632560248703567811706292592171610070169595876467176394818188862231901452403763161699756469957859326014477172851306830535182049597459329580973854304347990902122424313144133418447433427731356359372660067815502514432506165205489035791079085448538718933154675427169159798245577877996494550381532971650488896792281914956868513480070781517529136454605546859443942011152245296592792374920502094217792804715241190581478309828568556314155915572805995884791372536219247755245795946916617745361393280823858333610676563510947886954259154081313961998195235061896639542269922726063735190055297936777894347760144342803019578956718461542541793373779299801384825893109842098070412982688062192217464117727352984646516380078995711824038048105844865574816020071483091812467312613230685496391763672972364186951494071897598195208313213968787321709324482837229421855790441165794960513801679607192391090334192013239868025575633274148950545576068814279982630233789755976460789937784483465487075223722587569462632280704177306440261915374450430566018067072585371361865866835518380530226240116257070742819464946541901228939782988572306441971840870440056263139326877572584480699892567644499250752466513044227706082937120032239523811493281424081567681199112792077200236000771559482181929000732613775851828057845997338956233548536089121975968699969144945038713790276361556793321209709381075739228768359099984065436753119005162719329410419723140276203949544835588400319624617057427210778692906495166659777360737837472451272011311867998471878400380939842183972921186740718950534273397156983214470979663787681779306761544886919409325626159937145086269198363119137590358916849938974464248006651657478573255532477565722358380405061909809550263377610743587006892240933843786396550926141757596886746582216309772527639671502571747749100892988999370018362808601035466665226270244341009426057844940962198211931778711671914451797168402396263269855400834478935664940876590948744097815094097209085298946376499508870785270875455366448998672069312303453388788909640935119970166986976782061862393942323167259309817917198317951310882739773070625948193928086762306988310397230261114777424486831271140351787703703137636562361874684228706262892714556310234190922184114520711201670029370106082410581268422755803133071548233395722123182424463107098451704616494118067878011418068820857297919061455617063807701488730257087815541935740605018018557567508845512594659236643056469919078177604200384490536034870002753527104722068590836915857549982392560302584996715050056902160615962951769222154746090700968240991932573202611587739563917199221245903900696448973175286960110829474984234946766078648765601085699546090835004411028124479924998161366703245992004294827661578347373555499342594257302866903753951010417168922857979859830361638146333531398047067022911940439237785984307224914461562671569577225465993526647893903890590673391020650937692405292260299913789813135870702031880645982947330181541562025783659336060663478868231805854773371770116731959218883871665635845671669292810407548909067488513866022559888819683239953249486012847825804236319291537383614135226698601945110364870346600057824860383008719609243980048198914612634161386764605950887081263540414435225737245266520131087005135985245913342703235773548836653317135647568815860875036385118928568290921835952262053523206261721515656642328885710902488811357198741235961951814393366922384674285626730949416855045971521846684153429818563071043555606312320406777422836586864796447765618362846207455012122017578846497391334318267160024727830418358966441887667959386795924022277541670896773147788957350173537018648470775902315812209781666392267421078042424393025113123043456283970724189720035275845313744840566854303419884911032543565719464633702198528761608150893938104880437284468578566649380095032448671706665601449137560345714208735270944713689220435482430706699185607226273446910695773301479515733464483705407495718460185818745678233775046675874979878843208753062888273065841394242020892857931519986504568018918218306244921894796903620120395732201719836352263263094493858894594516464014076721631689468029620800194160071166896719004624803570686744131975109786521710992622584847866714004010998548947494174020664712613525125781920040893363743648884566767333927985227540625750789727763624396943506783078217758004134727720350214960006011209385938739275950301548678502345514725964074007912919036934830402088919024974432362752336794458596544531382810258016808685151530399582892019181006931528894459051451294522793625738955225074849483854840471452520177056947244430542077184441631600672545633096811275536407574750618577208440657782525278199862025554612569047133626278177354626921047180593680113425840586415387675036964939569829279617490918003264858986161297545966630106130140981389577205256138542581242957789276250921335999882250584833049651378579157647845134818625928782343672459002232844959690334687501201438828313108333755667347109238785836870510794565186684967713900663851424309424518538403220362785527995672196198689841192579840581787126883033913587150126003462486929343014241170377048667201795882515589421309652716759486454617807905622532628656897750370736587179364504827901202627999010987124630960660377324224679969136545985723831797952292190222088963800977861212252964938053639624860928909551273224466344280125497664717474580677516567141897388739797148907729474425041417944076048762178295879738425696038583906186525736706974149449534644853334435779247212153274118846574803587676124110689307445178229543944820013860867932532829346567782849157220832988097229480119605459597208689506538613511229143261911153683217098302974945303869366556006949704275768885002659995381287925300361768833263099285767348936747872532764003094211910091827563568246746093013925127045088106947191511715454156254000995785404023906656717665467958083865305039232511438612631149120222066368084212720993776560135630386516225570634753630832119162957727936624181476870312791148269499579693487297824164449784557996714728057463547839428412545986395114271550120324497104929850236627516349524104154961592239961594104648613516562039104499195582802851477301144091979893495698105588664793299985854792854601178725600757691422253626358929073036310964685654810348618442853141388944307282450687535759443727381200949856156106615509044716912067763674383755385352344164345151092297507514099676650964742948066933603124223860476079487894117255951401796839236740186740976733830942900242838314816024790280991496501057175983817418417623224388154637354106711946706941358929226223380633712210152354532730093054718727103691696708390616503067951407631499181724495635759345709767521062780685530063162390292706887095394041273345730734005417863080994375872437230711296967752482372555974919680549053530248807722186010417079401874882523069260305455879006399172420855145307741569918545320501710696487895022512977161246549611550476221690545642412313315458483025496635114076622506620749528784902606499597173456096230763496169227016172223514409642020459555385707715633954700717030352599900640695990714541579622112596913829433369786103747677845089756935647827978777994229277794198009185536057780431086425125797922795739342119794617950094049949679037476408282002666586108806953830525792878629944881465032029462442096848218551335590763080323388111150479728561704727962190315614888425197738394519809235233192403289480801569251318716200740166621025167557177443123552928208176995917139842303863932033588825158893544248506164966269492164231226883256914872273960903139014589201777225313948139111055638584116595746926814021681587567376176764085442740474489214784731082325211837095651327686358821995569810598379054630193023203976741457976690013426682760954794862754463323716970521105035121996098958706223917396512846279253103043381514214461895345682812358450258642939137675454264141510222530657880506935488135030813225717463301109717853659088527499959426753326731192493355795874002748973093008957342819406946414018017173460699753988762848636200667334926613851436771773163372951671888040328397875690585368938980304986866728046112648673213386179528368729588766964218169159772944048929303960503263108157785058160883169196066564368873307315127103995115424551718155454182762455828987690888964544769132213898103275259445435706660624270130388572849528471674460577273513408422912156429224730239694637451894261535537892880300132113320604120502616097083905771757455350558140256412072809899773116721434808059735108632847816946471059871866643489370346676421611298647787537756688424298012168512252214359336933037330018405786633355863924351559461923321038414369668710498066230955156002989895962220078663794426559612430083250978903784346757751256844350884511153815394428886295514771799286911819020245158310792872066688132851027989757383915880171791774575365432153398366001652807181912365321359921283913647465362409726299584827618325916027892368903580266076340476016459840147282581131158087335983056186168710071455470489788840842432820851397943793313724175221583286101792713632678070459059085808317945902781243170102389026733311449429679934533172618221254133859589363701481382199894648568915955278681242001509629858504142865786098034748628453356758841746751196432751945245178012570561661066933036335932227066502605326169928917284423941462929448009985361755100477952636603334093335643258257633249644787274430614467316962844986352741002247989868481122370200600292626903985253202514255372558407981142813579907050779053229037396055595513804621118118051462155924875891492871197195426850207770394302325461951965187670387008326520174107653889177486299452503864077769999213358028940011978924036916216552667936315111205964503821115212392897234492690568604278789018033031740374782360471076076521395077585882002793407180506692029670502956001648693472759589499451067217641962161162166841629507841705168312279314273581860685729898142747065246623775753532824449095671136338999306459955322711228868963081149300451043685584498048743667883266631332905565041737408639384801899705953490247868564235367613115450633712966178603387104331632001173705764134598421217319365524278916875240502381871631058546491035664555980712331110984964701936406581183150502514563607171765245191636337947901652170600215540338774116578930452788879723402776856283690479000711503287209702522746603818006928393728708966816201046996994858658861325885647589794201572161586658292694977046425036997476977530470876449431008154283199302549538842796384261429928859701998484866181386400417587923333858867096458500282055361810617616333290914356925292573582002671583535999594326654639457445067996234141822490152479834616139034782863276613887813407153929452898610632380315032003756947231486636358586058775010045856496287403842674642196683105840491529745781184764152511999691896274091024250953300605911582884142000136767952572571999973135185139465334332392012302360243918358805002228971707827742084939525750988973272259199070159483776560556226720660941372341232589932596804109026715764552644911961821845723302167798017926793703037839222285600857881888787401732110549614371703800600182887656638239306461983661024040523188336252637253794825578375725034870795110781590515068719479343015434978966322430089234687827127982124135209824794369537120967999070218206884236840948201687130904629697157762456407422144220562929613219561457996286675858725601594171393725995511669244041671405041546199984816157616203154551938389982330127056081063024974331262430108765215730171074655979175203844308814451266523671130381452119004158070108190498229947149092646857482630881344789636128173187872275176855303963608842011554160769507037575360998002199361271795230584264486053952229728500152326679108532614390678450682266494382787129417288810158756204180658749514937116778089502687513921295363470614333280159602362371442159804334707649863583739731304683616174799288013924212545122228779527215015487260695789048548917339288092091158183565389639926706943839361661509236808357348369678707611918103403254749036582079210047511666869771788716890460435459771823883711085241739974463656969969021416926414622913246883165915786985385226702574231241423504331065574657646786844565078609570616751113778794697423553764605759612239909990128518849008475304235671860821651681643482848261587199093443482320066139405109746338204177607689240180746133286521136473203111975504984716060240084034522537201368587767506945717391959838595417617079957600239135099755969609531366661309349737357656381907766435162368015793646811854984829339828850784625463951580635844269303894652164684114600368139789885231444523302453046598692223464411737806617672116204574754234479739851946442021935979578366479277265765366144893639935407082517690555833062282843898637586012623257049489393940544151078765168584409665705172543910825470700685820885669064855059690142616417410817265909946497471730349716804933365556797820679725275274120390390170112918115752741478905584363242340847779853315801799957839906341866855273790996137416074068518352120045447655815911086930019897398714099128061961918537112851045187135947398650845002549873685483219462967187559003887772769290958748886468224250422117186591084154245050752709705040211172655963604313830240416043189585767145726688835850935095268586347421286260466897545239239508565424007441108400272951974285097832736252332695922072575241604605490646014468093537564364839732497768510848821236785396450585758579354586825440754002428631972772160249500139723917513494451453489310590388896733406198775694257955774436012484222113069832384341241296514393265576325623478240995755522094006990439894144949232406510890281110452371702242724419167656976896999360343843257912487412575941122717904913435207624829196450344876931187375262388407009762991235343322641537722141811860719020610864852926826254578696477891562492710663533935612890346274705377240480269871982529202427225841015615249135838136300359905993622227064097872380375756859859800015038327762771634541619823627920501106019361042875556680283531467329137769157246863491727270304777028335862879189188064396976457721104649766169786443780159255669096989373648888196113655740573344605128165642046538697908325465868115020023676142811862891335050082524116810241658106347936233146682301934216904820468108393220830480798698641382343242736099572122833148071898874589463835958702065788187090630063683076330945037293431142317304546559043633831145144240757099892431489225339048506287446231349924660416002741003423219388414107587156726586548659143495437456651687842758591840323875982347205779693130004781296055552910528743512821279340508362854898034585455441745759157242666582708816692850798438957360661974385528056947431535636678479530083300341739579555092479893729957630986162406812333525519203630430136733279357073148828898760605555071717523263240790851566692038388268957303248600422145982600917270528723004923736763470224116599110820465076098681306266892428208736829132358873020394660165514808228822170730964286944045768124789867397896417386304679647249797409771006982797799562285704756303665563730759022262804004849784350282367127494030233217971183509773587640007705924821169258173876620637101312759638999700781525945723346717793081465750981468628256721476030522003608023783620031377158568262502353067968497287277396611452358734051794377892660573851512606452021824262878168377382251830867244304809236157630440629414017303162441395481895443284261038134653059208748774791264049162115385126008515268931661304348387794530921486637231534392924730308252465562334574697377832084932358651340346238082827953173384581071946921919122370024610098235754452316526022984506113790948328058502225435199653352004866457892619082835833247344516232768282681442920052803638509432471012653023489452869480017623494056936107152220243832073950993461392143606906367001912579139533989443495521370556612238478092158034846917418508022876162103866584585882231638050334684284947626001982662961469032565810208610602360659997245755815739026608582087698083458169656573014817171997576038905111103070768832387803707520900394861376477028709907546348544213781863486890120436593512211211092394501679223568157576713821438139051881065401323314794907568364859129686826775630054325186627014041654184191481306413474546886734285924977368851863691794009107766299143382234145531354986458863972212198839821409156554679228283770805659508404565240889427667494124147901909337356411248275974454662483586358606270492200337042252660056430748786077681583029395729769200516726428607102156964927203974635991147391850908920064903210277191891130334347377803975663501789665922932927366246675819011896102541474079752839790901647231384613691609997946865619512165778142702396168384240372307727473445737424132706767747628883538219518732537625847813038146818699641968228016870132956687174259571228610191442077144794140370285592150889437811724794895532638856103717414369855544244391070605152529555470356421786886846055124606743894520601541731130426924336285739890323834558807430828387661699895934448669905199092192825992009880896119534504636597190205107232828276979882039151399411794794477920881264304525271508620171457016598374024278508802326330646127609091132511659967921455800691982306889570538718190446528497946191727436981310370651691492218690100238372372788126617114277080965082424082814856920382394945244123915707061027192191022912576889443963169642234123192026288185876722308979425083660275039375895627374529636210710687539388185163927306064411581042008027696278640529062064400453495927302599893184453673408389112949219059697333652800081106710039348322707897698627314058101958520703909369801776047454257545769974960779199920900257335558138649513539797757399886862033817444634183808205882757491674882227708067284284284616401687780197727009390390762189682392043135928738704546152520314254049750888337401480540596412267959662273274044706120309637890706611177433107304251609640226525850256209181460401035739453204126732614779660798296028740844784627432594372558392859704874823058656086102918868482605187732683332397308402534593318173482998783494778570879136571736229791870891960170221528667043789219713123372509585107499209547896064835302533032724783660287527532738951854106778080656563837989579229741012057159604574023514348587038408131284305020961758677091989862053851676079803600306179209400692785533886374128107371939613558387481922590249555892321560081168287839669810420940011439338643793046866032445727714736187875267863640840595114866293891859979090469431066601749293430497738781767245672759463467631809348746655885935095410803358235493376949228344369101616575593447327526107557207320397486152860044920296301110858922705392102167733129867604324623865670683544749800744861346719081089406941578670121176666563537302182613993982394840922817965420651688812114522541892846451711437475447743141754957539244488714958968469422761413430038474936630605185744746485254925626022350862288920654661673878048767022611002617591651775930719206418049769723276687484902701121770616133157493855751602675519739612853448271214493098094424172976840247138562159625709711365219025468531019292762626296325618220101024517614756547129835859389007898155850263221945746046169960328348083907974654636422490797294805728417249494190650812840274226896085261291302150919302687009688101350168741429332197438268377576091952720628876754360995415549804856977507575410152490249174896375358536754455606542618535170735950937479131008169590094546527850606768218589894034253584054198355206411081161257134739912173489805997073091313863547158680458717625306160714691370926891261384318128495501116988999675185782368852914397549823379849452719777832583972108117516195601592102802180569172901927867156216505550937594853174562239875058367992197154332784965002849568325737415216254610377536065318601439788509007228477607182152269973231346245640608758673639487787527566399664348951236539324649701471436382414107741989503316976093255225052071649389474547202877897687575577781439881742736574262495699594036739415381792998123626211522249214242287035817387873488062608248884386475551288878578530632753035726087564413895024303721625630896969941787799106681039755064336874753716131195192319793559210009228117408127150146500032729273392701007229775897413924892874423827643378812674038777396216443256493683813917739843316001987667578495865639422630788465866560445578647175751664597520501822228375625963192180786609493013109677152319894527016915265376379025690126393373414718377442095254761835850541430331551173978210336843145954253123684166947588667965390130605766044858744268670391027228578163951347912341705557465931353129907953432337008968305812107161716358158254566976128467833060230097401905700607769568931444943819456415918889419406123547474115044826440442893914628266400561130340768796634015114674543219482440820453391136119343454082763242692399067835601942506560515725955673232136469596840172756027626004788972291670566795943100282137114222096452873350216227850850568746283301517811532260813065501452598431663126302644794370482180158700304011904347525237625907412944692752505464890480719636321024409125387845855676207222945003999407770652855746972503466972950140757854497324054241483735360174031558091640086557395602256514395656638555471961904599527513840438618868187752573340808967328606933999933837067125436255506577087692992503162696119140756399725667306351278920732866226924599275745479310389668311075858309978185320686318429469429480922980703781106447069155079371304686428255143035203591108806717967137451216962639438483821766826493573102931487039030598155517291679471845898113080901612456898631055381120308059656096084330555180789222164445531787293453715969139027544094147108127853431933111516222180535263398211142073474883648010260714288869825440344527216514477446703740165974955944851513111242730935568587459726817839048117437443633576619189427221083754214045389695356087312215611760665539930448054184989454373605092118217602823100314321856861594420033482497297727741215523619392325638417041401475430270628671854449743420635131810072618442174538761045143347345365869080442749663145122564509940292908969166179570746654999234256556305702302658196548278148795545975108802325725610403651991799860297322773155265586319092718415181679717581597215279366847233993653265796477182536506131260678299526854041238000572014929328728543847544695773797030980063672638942558502034710157506473567922727502380930299223462104010210673300567144676096852960058036437634697428242193936956297230734765751407822756178878333229948136227331328668357818495233467692230287422550800282963550034518040962167106591056696208445736903746360563634898106144033660528030011724692974337351936186439188863553811317582664427425545723669272786382256046937466284869536405618765011830385094012635933540772579564188594636416889369370726966819801491824160370599078613044689555466047403930295898579412794070308363762454599276812235920334280762965547179733220608983830944315246838280251244990234704974371591973205659953343138233693262406871735923602443360741540051283711875807755490682952605072851986208507993083103075487216807260597410723630862928643555740242465651148613347769800202014307336945548818427152315992925024573906004893060788544208205104138787612713696036771571608091604318270024252630975050742790809549149201343053280554757952270600830278275097315684406149838282915162106802806562409843589976701058697628817504504349520909024332902777881511764905470405076339157176408768562418982510154301691642073530944596345583629893363961619659066076811039292101136702082260992701597121586498951830946066691493642564694250048501274082518343181024415011096549432130472760534837910259717880285549976748076548875034232021564346648055873592458405819765607229280554417243602420923614031573392253037698345546139771247001456901221586363120630148018146719369423167641403862565812286568351738904832214524888392775661886518684281537013759033859690224278559487387759695484431859221187374653376966957325369411378256515965209924401984941572558256714736915250507390805855591547577168783875693460714782534836946275721019340625345398355583689287668807658947911354219599774043461876645779034343826825461944715723766196248594879302439415994745037101897170973420933343342282727767542169205997602283054879315045013849257258215958226495746677946033998249815623742560405621674989508185786222140788726087344935526306804850532970198795931238806050792099214918406953818647619341252518990083718038541712794341752892921889641147751720279249604602913739658094543630062128101217684664026236042281930978433498552314730779208849100182097131782225594693035344363070048299094377321506709054302930074234732353863962552534859131885997511134312139860699946956094373761840114383734700844532088938291617008071950523752879834661624647126670168036290193897314207844393298195728006121046286223619699989677144036036265467016157422990979524389403642695170271547683280473382561126920621147943539961737912470865315812331675241259863278692307739040767549729611997620159843493290693322022947336003250982367120150714537904706695003899824992237906292397117498092566807302188234488596400218049123886496656486712777666787713059222469422561004826977730098700911495464838266638363730199188297253588406116814968950011077329706899844274169035930091668027587736921154454606980149447677859788266535793209700715541305551688112531995339655373330470773227913673540868477217232435732584553726727040293688160430999991638315039999042748513836603880971846467687867816501482689384641483721759626939193168554413662345770541705348345666832625907487738249267431695930442100254991086909377329643080221210272757907079668775521874189703678964198144952070616554846293399826587537752767254002385259437803608735965642157348230078659026690598712093938366920139232914621710376158444842468268584159605841558431225848557447247445850557128730991244344912905827590250678171261025983109095383493793974045781354255083116217106804591754187654770883936540119736108423215791040864239169942007354890204838364606738035958829410788203846391866937452629672819378841805886201006034525204366552049227793283748996003897948973774694229286169220559590035712042882230879345821006092909420607358369528632400260951287216268134540809935304625090066554731630079267691127036998798173317077924672825850384486838876940868705166826191384150286580618289248696379861557387924589345799384649215112953467639730346423288070087141411189324722240890402273445086173420621164285566417677308332129571064540997117071445129318499410338340429006349850781452995501251083635235209272202989583057982226454284733390555468610104192136058907766802405585671754377555673370840460201846010716547627705605017538580785604194133973896008644600154842749845839602404439733387937734923270920773417079545513012410775984111999290252070053536778110087193699056524585026802347610248308632228720682829388766918028376558214458718925470582943431616350278831769828094446079241741767536283509497158300726529402421840653072223188267990898585412052807210461110803292367955175670097642077204768164332312498953641039760590590170504621721499779444039751963698502844109497032328671945503636384467267277978424672274867957723202156885090157917021483231869254711851806865068538819237620289606598715569549983242840336272652628872302765556218736867251922261586214679044007791163145651148245096898706132248772967637332933270515849501484425855116318312166503235842032140356801746899286817531496835636154610403894839437361868803341277319467574211522124325144244560272225371331637998474844113991294704242255725438411840869214542191500493946264030318899662119862906476152732729220320166466110040667029888621189507844466150475246458695892216898856512405987390972318673199959664094273218536202620956550338770418622248252665016540387503848969128678442780116570187869566743992270319357029238204499274723269510280077260213343390148096305382529102378512216317648482722778683764937883764789007348646712951545483673393959481148453990173586112787085026385717227619280270345257859005763689473584190843311177402022817064180054580932785416839505605053017712339913289671511253589997260308847371222928331312171205067563821968243175141049207706210203547793704644821482740083698526259814753491759385750022482282725463933276636301522704720587173277524995211527395174814386049729653268151577294889438805876171397231999309777666817286700490424315028405915107496299469004661478272576263543543552435739728958586893135172153582994439134643441930401422243609167078496847090174881943786182547596413162151072635147474247670861071190679260162485935127473354048513622157672908360090715968866735419480490454684649539084897826999445450349395754908485456525754496563153079972984018262957101601390028014751579962479862961489098544608524196981783143686770468781276409216891225594199596651430525552842404353308435288536630115168652249798587318643039796735888253823310138877167205670738610654718203832346751709431363579214329465517446754206250748916041158932509636848973971992500028187410096108678171226980853200944693981413411584336383823921897404376133101945464374423429765805100819174715081279483258467091969124664925786527209228993744412124712216233188126656024988249935641499077850393211918806990431053179289927727110405226380723685713810294461771893137293481929990001009708862230609128911742274973442717022063078878770848597731204387671765356500107981887535333583221424968008836589578145638199135687434185932373051443035684309364899829193894701496365817904769999468191425298213313700450601522260832723332191355465839796734462662724831845279901971944233001418753806334960005437529707936142448051869996635843183898640016786787241271899807159289702198170839831536933012318795151996047262948723105054982463965503524485405751635289564443440630253966599298601592391085804766109608639158171652414125389024468977469476882301330175077571613065810286803590071861613368480048306255452613337540613679970986018340489178487053916989566689752916960653665501571703432684730121833802006354102177778047261461267352868240463883770440347992994842563626710534640123550022182848090555446062497413055150440458463716725556519297832699683278661466805114838170421836060318286570213606185320671566314753741911876139657327122790587313453324019350088654714425586443933220188794273541563429065445509597228580651132497314462444050451520340472739795281590031071190345521376220323696376246985092978083485004724038923250587331824392944647895474847725085764316074788321129320301954586989155421915603679071876535104892135569302693133630771281949678525045805818981081040019476094478368745763899844917266377372804742901024470984162539547876838236993784445814514665222949209455135296729504814713900169907946806906737492599481747205202664929410269481593643434371130024497488896124761925623707846461786270028362784975420515517055082262154969867246908397697934233909292174448285821176222857853448556716090242692724066856795888131356828638445629083770360605684576542449627075881574705132767413396164514558224224719662915986045059694061947028165850555032452782458477285355745272040122454717602892888312321149962669128388118490688553098994553832295801926852691444524419327306915660119440812096417630103226688641127636320767064267555067311495821768227608717454545830445458127428745225086768441725521776600105417964490630209809192630877629995368356322598082566577151696271339044709065938701038563336446336483144768000293968713066567115508693414318491366967939812937722058451088309889619378433591105297620680609248588000133767750125786770448627640431352215891130479049220357741001504610975570329871998114128182361243457697953773233343986108611552796987675565049075375959354947257963589597082368691631313370712664339384619132943330620696390526459388301088320198326882027244255862004492116294233199790987408810764935875795627569505607994578774751843604563659238637468628417156365250883017038281778366708987080206425193244185706153369518722686879996941132039000145024115027793355198651116656009792922445658089878099865686195813447901562469214048282461173305492117304581907796412970448785687635664808281120761252684136179795109075852601499554575642092314063319744381488851240603888515908167247416044550130899158695642961642684345244966037545926359764515500382026516103442022405797127527413671753956868703736666525227456763327837986418394476737458197597435595606704921064336695914297529691660449150951227001509890688095406985423139715737100233629742427492074835501959790820536783551393003263963169276614762641088064957006096851235401275765967775894069699989687221466383201940748288520800808233681994803932459879546372016223240482580854057234456077113474946799881644896027870100973496289596148160690073460718491114956571264971322910239117446183543474357153030833083077691895788566138351326561473231317257747368528406353013595140687913920595180401156057329228178247904113119761352825450412347382957031089638831870304160279161642484586884151163048632523908049678667108221738546475927199829824280440299020082787519073088128034772586793113196303793492211900303010150259574709430166852353067954953834076860455359832670303022056518767265776725475955702206917668420948878289177317713534309255919212003313892652087830336414133392840524916885175798283503905708419989670048645249458125798089382280463937865965487067179107315301906861153029049937617207751651957565175848743027527729037719462348106665010119868788942827735627391921141853537338350382031626898866913950512239000899022363381753063378142644868699498186717350714096981723656497716575646894087481521118435909367890956529818862469930060718808623960848139779907468026877820078192696347698996517500653019954384688749865276109065826067220292888121381334376549199801852182693287209140446263591544958910892280161323219370976435173370691597002986526291723382280359924426440856191085354535781911836262339762396450882718924826621171630391265336774350667403426475850618193901483538677556610918631108574156005622488298699091093473110508226113252838656868160181702975955529166496774682437722015005222270931267687323707392564320413817288215146296778972603999300637172207098909242463488736400740988051033328349879914850253651801695001136740347637964333322309540619125370674973538149834852412975173241209617075943623235195773438926658211211482702822092727078314767749496844063893813587219403800427434363799647383898017684421658432017594244914025542412471185613349412537247676023499461387187210247049825301313606354047767897400513194597905089914866924994221855931590988440195593681499369053553387167089218781320709313191618018628243904494300726029082086144291629632015814640427202620089090987965098257286883028645729603518709820296012966366841080245925903928959303041465776654309771849645449489529928927724090225407443861742968099269669936495182190799729111313956564153946216693909310781761251737422605802416433889527259364397137185706676834283144956025369918856674476682240667249005193867208979224187589001339820142587215600286828078294956954404019465339646272951299698546290346012814019996007867324727950137290670051905584641658880400273365562536219743441823185747732881458496156493572954538772892925593036914051996259100812700386826509636441533499741053640064733814254339861989836209908174863538572247706803945784863948765140763347263412713227247407086788129622272477039919320139646040906075853149974865075578237109145383098576705495590652472142268073192866660364634019413490817638027847459199887306219660876529338422729852215545519188484460782700242462032543036092643391568093913226333286411634254834029250170549107562760709566179097101933584389632783042510266665715275309184285802082281851790192584584754258622182872377967521029640834469416363541185990894065303363803799034667759052532490274299196063031715109978717361476922241409218232096519944592068853546303309860536238213034295791641152693314351692057286270226881929996096974321898014741167345889104294802266491725598112075604543801959653591130855721477675622164877086001169623453463985355972434028019697150764763340258208224068718373248165354488849572471374084069440018380549970479568268646599529785196619399126921784690901708295205824507057309973743354540084915826288896507217059378288363945289612538341308996203902046168263156461700955117142273273933895366695252773878461155808292824755778075651179994448280358166101061588058931778446076832566400969617868816618951142790223399331144836536708062717771771381960975254145018043823372810739252330284329884379131455474305256138421524066946482802689657182442681773811974712746818137435500659649147413693771227914650604915373123072816174605779943401212674884646406987152019351763127815526470021771579393891556628451103677106413461055009691812150706682186925669665315096710332923725201222376592170999276585331401936794010966845715941426684011480617298763205392256785385003564043855948673462725957783249464764304786465101898791973739216104888976434456169280317153255657076243409480680497184142783695614377200357728944513107900292669729705438186210387296652367986269232352797229767418551940090832033006847941005118667597909122985439944121143683125150586915445522993381198599364510322138639771178032356104830566912891967917028647944137712550736627755695122753055767636397181935450692810275455380648449135688069229626930129419217517025436636111077837639597166647702848648933137620324670031390109576812239972738570534990811547963343943980242099339059235133462249499148185662743605580743715740330059502580787997980845171613402016588479864633226218682805364197755890258462122413046694057090139423214774490376885725279167789508919388819619794840644973168552090642160967117511585928270349551332432642509669618156776413640892062265981214571314049537536079394661052053586228533934698529058378783753415728722791449758047328404901371245398786429369505305965992095793639347845091871567821771341220094952904897252276536939401922630939682906162028557924218403188263059976724598161949591959339134641232405582677352357403608842493210337029850815321269346574827042973736855065227824561674408413268528710850130004273164050780523162255618480826409722856662559397544852869336188977885181586543300422812684240967955787276601157040207329184823816416077328288395686044386164401033685811485113333712780791367819700346466433883673872837280907200652785365235110983647510583890907112763968679151258204152313472591087718592663527542630520433239266878166801843758129349103885403137436506648104907811595729409396931495914911910265072420061978943102756086316141589134874147345201264472101269214445319000500101132203078142722893589095079380774021329046313215829880454259049671064601741585837676347741058279136777771880698667475814036077787860165868128575330856974048197813955381353341317858389864485484951728406030118583715838425282625401175301802665391712875425375623856225449843137593752878606484233369892086497239772538105253337663487143589040476766044149923259990159048518256235629658768766242325311597172960166986997864391651412049895008054853607984200318551294174307183664385136638118387181176198291475278324776741200747034299819347817662421610078940175471167713500382162722670346401948516705865457631630649718632057935528619549413223369561290809458599498717052315423518410407430022652088900412853416409389860229890641316644940761153791362547264650189579672704572077242941970973023182533664045814802589393829485734032339150250136627068635766154348755490276416507676966155800947189436913880258062585167447798984714109035625756443395897633587634201771407424736074797316685931590541835882643561308806971321498150735788499768188317679930425178469617089829291673487588876781212815136839455320090908857068498419482147253554217641243172101289781563487876208998528324065758624254776006778643473312608476066803178067648387735026084982021601600858001325003766417705243228217800942891925176292417388333348295536425349667402516138545836467791588237331496823810412661687271019574177244588664402955124831267489049224476064737397945623233494851497240352978417500566210577157890014161814261154375487550146833620750316705214186482457662800973414479495213941222497291351493184488143722981960494544591622212780564490307516294547391028454299601228010317876026670817450496985737982323931401650298727280070671491362069330703097179708394088793928579936524441034607690082878817271354543473113547330539373631667936076770632353283756421532532147731827378215033196061631148371687599972439848331228875145419527303173124204366310519861817065512568750971025494484591511722991937288714895052344322864063653646124107224080654829293886118507387302235779494816683732626096476005640192198133293069033584515543007095953842567282082270912394842332436838006853701172521544581485627750776146130341883290572717765092565574718033494668591205791886611721611607431295527061429673238977715141627416282650159827476460003697989707168469023499723936383954401334387556947639825596258367200159751986763764791470979770874713610165120036770124920677498341616819023286853094623420228467741929005878862774822815376499898845648404841701383062086347710422935331090215660137244794787257069971971030105182126628218588075105599697389636523708173424046551328717047701688931006541477769128644179464249369861027033014680165498786811611844173283215415526020833934595672376946792797563620533349678004397001813509268709007499303465031370814531138636935971548241951547936807360473471279498692397537371840097226321645891829554245775792239948563930723600615141686573155345528718313434794098732814650203574640178785235740288425769854380198697844787665500526981535440067706645658749801940587579797452740084917154220743623041507273548201836617166144118966783598763390066566354230383841450348554605862630776674673303967480652299077011355143225362736781406459280113619508214001958147064375742045257605016934190191339915266029149855856137781108980606616807899160477088351489428644088541279993579410372796520608358094849789442360116552256772084411032389991705265575694097879476444852296948775655941168243831811345371671420626339550750167376391663312510710229707686987988402761351593348632621704159968449536512537814439359160774992371350615597493084534055039229426538502242481338643322206975881287203554241151045959883762527564070517305258694618569927438373786129772638904736746521495072980840041162657355628018517506528986278300879625309758342116095634295289419352375973074633991065423891786115810735938649825609213531945888750384371577463670522903844299977483576586558447132053558659737912342722993872561052049416916940491544521627710486890195761099617968381313429868172069603726226233882544976893717216233991506529530302818170848912186025098859129016648448340997226055488237231205217628582514437638457944788669915586833004778728722679104933877637557258536037958595173493292440776121082418340918463077513031428466433843585736598763693647100084765173210983884460238031452848656599350098423021347741830679159614872081233211632218617548705904793328344470100535401758962854368715500971789715412120703762687387742654633087807083117992548661625562052745871722656044058794230900663650159330617532252120101579025899562335203727064681398728046673314451581958459227898717020756866112484707136232435067133236767833948213652168227987923236442738620072781865751690398362662511317279164528133543338632135464757418052939394545636618712620228697487844166121635086707510389622721465105452999505339765515149005069401220085647372493910548602563263001106883100280105675021139835319077309517954283307285218862265350199560281970801534120791978737438121209988055122277688575929140997009813647266392051400119337296581996642497295132079697311187329385313321563014674296325178102190008734757750355573171319278567643503243280433670170064721214675304490453056980257658653587865361723300894875649488824121276486845897422268195244586380268771811317827339195876488604042715245913172531787552830874020089486695400100700486130430766876332969280134494642294706396708847544980884724685363493188471246503537123231185768445470912293293292272836239171171424279282530990638988349529465653034817991842115865064743917019205975898505683258433571733502902184595456373321006388218086444532356341013813077314694925333464995530388003172072610782204109366966669276835689553302621849342037069089948321665755036033830681537839572538699970588998972463620343967310964528540676892554681268350226206925270512458114138654043210088099399433391721944020941630310233105425195171717644376466780562679326553645298806539993969048283421623976691910270919206904347900381112984951757925459459766157735208353021603553284720382217071844772587419483876753630262172978085988854508052471337272658393871817692815812463815237414019891734903567362299553204624542649300231732356908433993924836876888394504729601817519862318912701761509613283939935303907017075485487315197837351674447191720629929504650131450749193937075755787262442640824275897630125019976279255057377818184601773555735171157168951943061417324194112423213504089761217634357641994072355692116964393904740175592991841274621222525098600234737067604351717281455838479055029042245059184064362824485922174237237575554036603487552614516247578211307247108298539463412406234920995381420929382172047582615097175664713786156498575159942329236621218574408259171611092895417878377305873018738198898131849339108814508060852830072835566125138054491532033533417178816668867277402197615340679359666173982644252271269005276019704849897490712649397529172799694958633520118275901606823703941142082946487437917296884894614032533675676735706808586007410048794763395515712968228162727721716104459972556268218726311378955648596741396482275123098276904458202190703791217558685878570019271640368179752064855024005193322141109263978778556579679675771034680285775458840630302340617575519958359843596213245815806262885851859782136923956839408043102899645284961573689163911020841971241178902205209176878366694903411936959183839800549602794749364939024140945436257179794361849296350424459974600408864297258207290756723185672056315796849481801579368221076866744147073478698043643083694904609480152632064483652835329131053184682874828993170330792684997268732003807818518123058588025876482332442950301929771046109204351361030405695016108553096039434109273078784465760904181922667704531708683891447260547514010330838092988325399595669067410811410364381221706146013651056613727466678190563601044283628067627872272523702595324439462160010260866410598722417077819578642488757879266980453118366052805857058727580751186711073238329477483203649735771262220709111767775849963258899990560926714863821209322295871858276877732689188729304739285914656285496541937853233562161621672276360287620872428719287800869838558681389926674199545979539684663238244644032357065815823027533370653992457303740017713962820481382467651133327742368115082107965914787637215722650285586786803568068414886394861641455685171001417057664425331503944576977845956050292909641187815550530942647787801958969466480282946695808135669936401495327396954390442212720488386979769088605949657360321635459582036696118398384414959634918222272959024636369695025178842305783617965935378862163471457712362359731716838597094770091436038697270695080174966621668360659210760219460576902257149594740388669017613646522974705101501672898870573464970065082946263782923190712767389520494866966791450816679435540256751217962609075454227198423380877054118893726914941050434917400556596626807656336531888663851143733800920704854372896774576492735343592806924389104164589087560589737516127187043295512547669762891544940132065645395518276706228863732703270640472164466471000579343651691115409267185232908127679654392381621783865380685468985920390344728017643093593688179558195579263036197519926494588059330184103902263949936126125327447834470942041221319888043542605232465062564280292184811162964086367175107202617481827339959289609116929285186233456802944924320234201483776885332479355021681934996192533694643807689665146820103197611861639949479250849281418297027188520286167012272601580744213963461415767166648382391164335394822210259410188975175784606808439351427028907716151999732802017763762717703887363328397842689182059363899770363336636116202781472806853433544137512327942296226795420032322988076984805739465646136327194150452037668977496847576944056005968045678401565699016120456924328910485135440299741633562712317147336195193612596104860469882050314032797296654389899101444980422833753160906390601518099147568405794711289766683238607276591300877834510666944785026548681236405356325302252002814623166559804457808895501263825221297270979564923561049404949230752115624273286720644470836904983975560924761407133729847320902075404115662995093444214539930345828357889461849358954121093522218465879245534544482332163831064477436763795687810492037044094434465662199066787555547003062355147185519467432902202411699265630180576710294151115191949968810797462582907889116642515376658575150765421799151008567022803936349449055983640529989096218308452568738975343144411712731652521778936868678107033516942782558215370961403413864943225093139643667769065340450795925006751438711244624048309648972672569121770508708334897742937643426480158130477224519880309801190243534539556898053486319117172232859211315901222320037151757187011601163037816680189402494867076132858171425316320526046841491200166332768774985258900326942874368370353336764596309702238611716165885214175332873077053565283620355147252173973461723094625506509514497160218308989817411898846225960326648284905854826044045955836754838230759641114943812194723313381087841211006298718621758142563379035317837038052715537125173576463508252626376111147670447208880880445460515735976171774394666177005725897810683451970859954269631055616255077831804107377141328161174912144213248029418363238279000687943093492516441995393303707315547055717132093182660374483926541590607726782034225579141326458549944919769565755668366383132228726199253655115379425320980085675977467097917076429143623158388669202087306602099007329385464404904720837295863296958372446251353256268559291839519678173288989735600140398352513677176456061085450744018055712134475684780481022408850646376769473808991303222972739156216073436361217037619152075321294620510594595284770742701902280810942329958793848247975376949153357022313973243669809728203630705305036138145224050291468959000855605841985155262166487483013028945958060229851217838271011678361805112525436028908104434665953364908133083869263174963463124013441918581174237598774397460143585456366589689208950776349616308292593007953905059321313864286329087454366429280353725385558961530577381483168591217346059193324107500284334775218016484318752377541173410544452332220077447329639774639059125530725766561267671335119239082874012798133557299249984432712922752173685261678524341363312445958239193092224026373455058638530894729939115640402532384354236925905322897137745525569775394030838942603027710735650196982980755795246043831503663627191855391513045451865669451903821368508000676848710644500108053441778357779232859098246951758728729496921517954147590602533359748909991661441056059348421356534137929686427347600224248839176529991319911257443051937294494744376256082884303817984773422156791299711450795258268352385177213013550023610642658846655129761593981233614132229080559955082163744396816649387864995067188530140363030759305012337021310124369080639074321217468685873547697291878404590131099372871145654471083211684642339616592233085235917231443374611145999446765729192240382518792850147447510953351036198811901069485142386598638048364717107489183193544945338835303854967666326252912182241392705307547070906286168124375977134191288816392336235799628230645240100407493619888808564197118021252772921293342561979756832723856877308914016215816081128373772670980228641518883070510425974566414000825031063466238675818104171035836735356547353715393835161835954021289669012388002894697377190017170968258066909594785862658327843530060793393698980194732397382966734872566272788287150012257315741410911919819489876175401798635321068685638340273755564356265242047084963615570119768700988817926005978877392123293035087498916035245125477050208036885651441557820682382248402125315623580427904648111807635359821112471562287897515784375400308568622643303247496548738197444986451188574544048460739544512619243042449825763563544243891362883366817931428649225907317958313831932910000939291850001278977782679577154570952207485590324227904511639867860157442073274134153404216198862403580517001410095427982568890955617489856619553504443727431273352891059958445305274867507342125890538520161118424831392184469506252475575657646625888628230730300450869765976476396871506325795777892441603133436324284469245449230898683103572515319540917344935605679458960981296915247126596057871327318606256688647681090139878200734609500264219747303499407619470391866996803100300757995381440769155554191930207359445272941526119178551348205610954504045434711767130582646262574401829086850862055742387496199816531718871312763565880051960001388625580584255744158826745030504787000644731705251662923560125778635967551977078302013642558529748022927843696528509931265036580188739755348258427187033516420378580914858344216673029007605512386933124501824258419590010350636418785348397711780741086259022819804408754957137543601455978591395807923122589006862134539481937627562044793465193182033458774431645420241305456907071775029677848694284405696359652337492526937106522274476476027351327401337965350894964428125651271735870541413237349761765642850535991081198818568868368125526095804870508482181064652592962650341124812598475259262220646577750470943771129639158016996639632938939029899107941033379602745560252879943316552617168959308965839073461036263049083009234091919682876133493958341180653168841883977613673440115763247101299948034885066602381262628669872765540522723102616126652802074333568959325195100553599073849986910654919116587933286805512652534860926451733924966632712710235627048563542899903663988379634618892655336708694606973785951003388138415895569548586965335414639657715150646025646037212469894090729938780200278688330701326544309685249239929131221058512444138682734799095764769135959926086635231978152219892917823409472581278016619742482389822951899284499503262274537810507683259374795093512806259323907812929511823637820851964793641909518197151874434890258184611534602336348979829031263997083264663544373972464958306373912225069089938483328803661592057222767519770301540477310696412334118275671533968798267396451464344027266610128792422633650673711511751113812884954356777226729873496259093908480842600770582371473084513462670904752049010048647323361030600056104262763607936976010145217973174546630718981749861367279677511162379712751937733212920536998054446027522827629560170572416111981055718129467952324178861455583787153553541263477594223561506257143946464318530549623117542050305553467838393604184751142038425278490250882581866835268088394492289599280579141265250720852989161642173410894507174185467192011379121173565810488811477248612648008055142886143266718602482299494109536930098082710734767656046534314079031300087777072075696401861362150150204434540368892897544833505220336915744537667570814178965969534816536904183578972330684262372619392195279452600855098121224070713798934770854462326992788458820238540812868432048573711067672742176694119019673387828649334763468287220896070829402351243457026613826021689441909257834023226643762794986323889659230930986171312499228297239144565690169762705040824579057052762985560454827596944491895519568575633672837369207209766962358307752965576161122047127724351344443884245470572780130520839231391794345745463743988801881202731844303125162648460165935756875465148091743453241013315361187221663252864883447873386734631091804716350610926937623221327757822282508508413145733274329904957458999314517238978081745918262335278709531584790382934809092806644592976551300178959756745027513776571542694370769426489297548210777036217539088073063634909445387109539079254058408790012726859558624859450266609774606570185999781661596553539294219424750184437223543643359069075840663410802666847221639923457401525244898120081728927204202211137731721198444060735288571355493513138196121756839219741190252973525304863181604150674791013609106719577818153815548433778847284800009038333453580620241989684131166865076452363236890497063048732062655378862747983509716495762957703269244436806891662089276741802053395207530025558804797792578220470599178922284440183146302933395882372605920684771724502284407415621458546149008743603452564900014941654411986317631779884891590256079565936096191308670489953004794003043034998686994742465327144831855465695430311584831480324351885464598603589459713990154876378718970609829045478884778685792668906799293629130633321278771537537746764376267402796069513612140395386273299715628968128562490259474555313767217336441578520280951708624696673825860084781147970493420585133632499883562902572960729612935150630345516409342022210546517838435493657113348171643339773558261558738382045285417447371793443713785223043958883805898214304363467859900540471292859535360751132884325926430900740863819352590233863945456719218671283570104013991917574537625328246249421106831679782825237382491942098250747724936353090402999853189868412088242212700926436237895492690060771743132036568162160494804831226172883759237257656667878374667439107685923737045317487681808072871408631941198225137026399911414221132647918009458995776679096013316798358382502365438068532034289202500147952287177882962166577510272323453592958373342301846733338449256932465586489451909230386334718767706153768539087235092951873615012624783551146028928423487970236410077605282254286546430545517837141955876915943091578520953464498472755135326130345408574721219297933421908111889639623753229817932054531647516872515593262276501070458122521866912457255112645605922883406490665428619588413420612864118714815976944958454844754506294198057513362697632752036148596002967762983218784211033789630751556845978312282671138196648181719679351109430900523552032437018997865002571028488883679369149227086646485823288633216367669984135316189293170701610224617662430764508467030676536136067145562298680067764582769594248370300909546621838214371996607864691768074537591998301873570379404650036055183792063080593541446215331712212461049092355145332939367326903730406002733993799440256775449209457134059059246815737644579437235982132181086154409101886499648109506902896944966436750411534855858079067415658131291318717932678648599577284911556918616655803049280230977653125368186422337754579597956552242668426616459012724441294435218479089677351808637241738971967974906898650974254344157752715991000190301946741011260837441762678916422297889995231208337216602272804351196301456711979963878992588373731823920725492308127068577157620537127277584814364550423005463460521654467267408296941591366927106358363707806852991328523957444117816459787525396463527570688346437617500896862096640621871535786331728038763300984486984331899777787985388765445276271541012504938699177896338586942153892653618453908576934376419955136877945403102211972806773314128791708585749115189593202329608108054260548700453498723258068717151371767812163436801940909724979954845151007588632358671319805906803676544617109657655913407948498061033100245760268202045122029597124140200023367762056321027499263471797245233601718618963518039597053340150281121367706276990189396806219208339064766764671707140074402401924995581562227495264792463566855032496104236808980648570314371329874248148843861078179471263670774710250010713594321293590691924704773405379783757712441003374088196898130887614042965629862255667875139371814153553212250898082751375374901139146798761623798030491980309416431551683136427560263705609270236079104623452426643271055727013839994095886036417164189198989863609532108872229602378535717090268705427130175859667147889351208450178705407459521843821256981953951942780906501296193183284891056632152147191646345464438826404173440702916346745380079506274542548705313321516926682799666406920381189689373703111139447226021537088180562392927550325429399904674447372778576079230415952609310996914888960052313700573320381524446875036268905029155352430870567288771646220545302246740709337607874410475333593208133583057718204793551680230261784497476326359795108691222042908542111130078033553165606967553601458305571389567878592640272699451473143433606884168715863788962434881584047569654284896251676048872633665271163796572821140753086424440061593863872715104430169242669264417516078852104959871282667057866968067261163544558910600260817633921719751627534286892858407303511716809977686799370792150198388443868172795958645715819811054593625760374127438178002201893721990765684435982069886421123031209211771371108964646253196117960006194719356171799626120207797251626419303338564352498962197178051871521392303316356768126209383720607766809953746930587721451445274048302261883779648516303727767962925087542454394247137408766775172512702842064294901159689378264087833016211910303848143766106657571758864741742214829100199799948395502789567187497054282453054619288367214172486043415045715986673359402074956628437720782225954075709412160242456412368472486154480875840674533689459135155542110027709820593290719291785983515100244035423979399405814888875513232374153897539428384989265985872028034222536695426706472120747016815349263725293192802266414891276025883430100227722930106019903241568023580306989283223148105651930636213029187525670316147312382907376169764575810880281496135555311926637428300550309636001210986253545877576582703158611067303771184717317462906486804738753392765632521786574632225564025964861827058971368642748216076289292625871139590089519051903278860036949115758059591518333265488071930657630563730231100195234924135911047636238170113321164186367595269833169411167627907329492683418914371486475744679850634205347559726196943922314784486663788089891773466288317118714069601696034660309437796477564064428623591657630336166737100116704819388344227582949152640593870708153239697212926407496740611718750646132206765240411999323244782134368742349749089830007681172150582000538502103837561007827919075532759038956052825870799655037573022959233399165515254660063054883511326893101553886286384326926751718452507278240980213286538008335226239497069602754913471347553569335643099618402989391765506879277783700105349282635777433056338090221419109054434069819685250993485866578118283170764572163913451766080841498003879701776415229325599569438685939508125504434766991327212229622025014973783019033255620521938780889437096884801369437859182958708521919450551128331475779768969965262814023253156352580737366187596128064381958430042131209875184793115944405871803493217316649385000825581554084326372650925804567194083979416152943855103049886979983432357895356039824825508328466270889085191730101841628703529659487474887228010923779224567435722938764801415087697039426839448778076744562912318480354027480598476086213299363122761843602048248283038772424450661836548830290710170677927734807242542465614793327047039468362546398443354297749703244906830635950180417276775626172295162111840996480461868814173675746063631482976937817711776059878366232943088877968769749339204186179733384534223659259442155181522332243191408854883992197198473396870504703508821120259172034877548844259591196661506327664858429260171441469484939049452453386876701401870857606844657919594588796876687976275922779188350599431907745515520099468409164839066111415731256505572353950915096611595408122229891908290008947031243202021400405221519724908560970064680636675352556831997978438128849048880479990416549760594715280233047926152615232105664527531079434500898865106644341282779691712366378038721388891179650610124735762443931511557717568237136005282983831018238019463092470159029000539357427735131949823440815606877065659386751631987486763778471336809250410957491105412068343656416039118206808672582939589940189333568714273978785343910992055328964067708927037345441889528684640144091280784245659608539429669892059932535594456746056021353389860233521406155293303559428178574347754426984816116091420696880387536513241026409313629432292119046935802939005358512872079767496145202269761783442161969924779983825932203298318881310642232754652086134032556737862607767564834037084248342844534254725689825685936062053952211289039437947403356051532906464702509362048494187727968230984991460967163125688807691078507826346047939118780338655940848474177364489921742139321380539108215396816590309066211105346212949430615239376327348619867857780375349540178969219309277223190355481458088630914148260673624618002112967420157347969135252495814767237910483143292513273374870748542769830595758259863499832617876486804350149709345639942512150397379519823914547179797352820603734989762709741193329252330845593552662669227873493930397792305959927001634825551847811762396949340326526876538860205055571206936454660942052975090255395755948766350767138100139599468287096070936124612959639278833840624131243257016877905844504016810417488211308873249845966975408617754464760876037921527251293929931996605886928562320896105592534266762986325784502924211932508006572331486676860681401537419496882916261386379228904081475948349473787818557445256284686145981782846672335478213995011239297286609766886666624090215603689195856131484527436826768830954699506471100821026570659799045136576499332350811937829865452485354576695975313951611222688334821462812775712399624799376486856676006305028181427535784289587432120632709724564746094249075936154019029045976024480562307375330337261688679561180476154910729937765225782959627338682299885618276858632592427858517945427804701939460239946960624861371650458977837833820476904868104815939490602667619812148886415664652930334203787648928242785018592934488906255655079610685046612641902735511583394502141858660933976719466000008323235516193690012724426767940887075034883799823819539434790606760431076679251435534862200235474753848359803728111741455415224321841688181898436352633521803942013515982925009178438149181451105936135814249123416984627579357095959116595802330710341463367800701425368160955362530139529240624424928117598266152294288492089374732158330871943799520803037743440895151087583795809051666965127617631579207775142020305066178392867596554204120917601908691612198674900736337374286194412416148053465562497712264625598284858104077424302597193976853271493633440853986444212232591826895083737031805887005253517870412152810854170821441435504946263879701139922438590353632387404484595411706947456772031699400431797450039951104164637189832856953690876867291295238744930984584260998885519364937668213183644419640568784674680214832804322640423250709736130077788738263717908446554693056130300697031895690418645142007316895657670967924213088226293904037913082602315051972723449884168831446939890072731953292451361147696546906439687159839809905563346184945132776590221856741626504589635161465199214006451767367465618050145915773312026338905186409826757095935341540225395282139559359564674613386944925699199540303243296053285479080882346346821717914317379219326972189583039212463961579355034514893042637578033351396841530150465163442581098737983558007419353039991362111365252386982446497125381184322781697888603770357095189038814325386551712684202384609135167440281682648266408891493864870442339586335109070803504686939747965151370560037168333364377803751497099099719180150224433799309962544830151387805191820126816150489249590803436520914931706425561296693225146800995852714982888372948748776644917829014124726472704459399552343513105956855657517802314729982209778453506882978935741212924724061380979461571210467129295767534182798409963293393755911584558378298994946086037561716673482960217372398251934843288183653960039059613449744055343262293816229134448135272402956357704984843102384007628957640330056469798353153588957564814012734793377836798364961688671189071738034105189061370555632084092986851690718500904387253387787364496445874055152881422210677695993251157430097715051029392445111331370695399208930939684295642645007363237847939874235537791865345059678442559530195993095404088753846051368128102934643692707382222240332479158740713348626136222830989948138050943268821340254928020906601218064092331671036608982953348537788292913245667928140416593663869048687810875631928750774922328229491564014919931352669127767811088120728221861825629509787120741434183118289803066530637919206223899024628112822620260872691357297935797383776339803784626944944773479718129473746424790278381857031343707242924263877080836990468637926778311096189482079338714130677343693933778212313396381310481594882847685064964559120679567814905147726051227153108180152521593711506330032840459021430609476026612301276237378290098465364952592783104151072595302912830068781608617069289645339201316210773872420964075404148459151762004114452753565072247239520692854995028234451740474266362436828240408529329209336774019846084726567130034037641209641361846521116224178039223529505594188566289063779626262614735704519153817763996912122728271940104979748432590308754425321920732404227693152120644304015179902974465278046351136784065112764262704851650249466678938621669656491737084291579541379619998419355967384990296544624699310116061825274427591127848518199656295326282574148596350761603014809901077721464228031083537428879247443179660083465903083675962557322055417067854886991523968700246485088654613145541560966200664939480794485599564869431901679682861113072285291937036057007951660676653934477167756653792935391295895963010449003972952131028594118893675772667990799478681511466529118203086723425743253755347517349727217383603572213122973506786334958687560934563715026061689343643900885705699835530862149955004267079917999444921934569025177774981361791318063188044544917509194198345249632637430399438539795347038092514984922010160618404280850437402835815980881079943612251333454984525359619745503077877047110564501089944306126961568637601562347434449458784543288559579154598371463034997807238233063165105813600016945767462388449213747343271412666673072281262810236628900199807917444528446958533968227589903206065237956401934898771416152081950913248086143273118490957322415872788835198347503404276367827184749490493638804804518488877797775705405272637143928555681576881296399396704622475495083058942444240842048972024874453460227191998458528075810248582634263074864492612076175452107297171672888289039979473051460290082698545027286100337413551653298983171727945245239932689382860946134302555138118759690242935811360298138122698528967704774092199260888311367012864260900373885966179246439645970229932702615027302165295022537728499906411079579717381196430999835590151803470691547899252508677839986419360860762475830021041052026664852936655745628922479334836222712812132517378187928491079842581621688204820396541460659023616397690989464534498635054454822103146986478193028450049211505779254958042727298347052007074636271412767084463227731118363679200497663885912677972920303052277258717993009374501105556994295549915287833019544936926913254328328080437507931505454733785863331496074622080641719963983274750988944978206918643373657553526155090211216606901539093260240453237202591331776575789017264326273262656714293498677991137479363912800872650572448685698294986224376406094503209802122379467061754230361773667179248664402412660912313477331014079717789403531236537703804726001726287387124387607528831857852157760815479623571233971135618326162552088365161433601256681887225875172343640551588736475861764880984808403271437898413852086502509867129900914948288578948548809975235577734596405631703296520704249413508324620587868527433673874790040935411667373979496928569149347263264167968256408352365957616853293255730016820776301397494603473579912665484960489085733713758272313712881712832225840112008743375095968265510949196553325454891385298296782528579736985789428223624759381554282435633740880892261793263813104248819417426883637979437464329218556427493778908387267963669186138914305400833852749088802285920616022716888238649757863665687264427100817453784538652886073158432472408432275513190250543778645810717130326252746854935414707403554835021887666288018605887160190744968604619725180122686714272650088253683222672739372550034330579363854561320051693345899690939522264486970272300016313534558398402080844880281480556010443094557249064929948249967836007144047953949484373610260295188809692365527264112021488316446194124105937273007454000484480420532553110146824979574320845589958059399909127664304423596428933212595644092810185727888139388662046896728266757144807890115800589949389609334865715819571974853132078130077425187931138132510210221577032132268358167762588087760892201450335786427216016149841897519688828511940600221218798097792479196150135742114448444252716127445368613614009006446511215804294790490441675659127482684254379570707466279947896108946395030340169675772751708040772763756141978904769779728942589657866795468971469007265007849981199923488470314161894007654449638698530411067951570571212725119503609471506747403740107886178758023750233875391591806159619327901258412578205264796933433399326964801513098683762193596027728053170142575772886441915823479805148399495678156254332693275838319429479658650059552278526835543950525694950634802320164826337989688873346670411788150578855152281876566002516921235045982219950178045224430739544391358770493486255757207530084303494700321339176796312323191666405716283890302103393858415694243992169327528301178513360308360524597980839882184952754290002238325576397391009141485240866463121698693559554535222324922941019297146693966957204410192259856690257432685319005418216823497053333398955496710797433170886950981578732022131184768035429395503176995698630525242557791892505628971844113373710149673155780199470486337904963493044097868704875177773893274834869686321752486444429164482123424585010401775132774313312916476607547391366260439987682511119715831430452040768868125018739894908300926287396710958184175425891932256547834268140549494812961101366947812572536159693416878272049562832851019125288174476372790601455097545664102142697737285859990562829849812724066008316739048402237642848573317556770824899244504358414837438072014204900690189142357948662525845586296938115386710599977298398408798665919268972887597240573029622417081087163402152979431944220903304317219910713290067736147335286661279589365681242854561080334095143769637701377096277340720144197858538473845444171720343836090964169926777843833553559797692521676529233862243973238722303739128810386963158099198970694999644209683405926492090117703730973621277905565606380123165295544314434682241378584702555266641066973304549988799337318567292390617440804094957624376850657358216672280697938591738104067202449356894558511467089231304024938992778360706301420486635180897360722879810587685247599587631024380396472567695127572641958934627861816665993332266978467726742739526481971789484913323328768120795731697152678513755708356196539041648652869023836524886787596961547621732641007127849699401374293839510703101590957004049318994467255658471729343060644783930446721687447451658445496467267395298884913077026046408310477050916398363644222313628922887419876207642687082392286434931898937323051821756864986207161625776787936794806610482159775980324514658686401010810040663343775937433028836116652069892342880299349784927755053675192317054960574258212498784350499240705178235917294440519603549580671785659211763405477500301015922657217255300933911278964804194440338473077053471825263789041691378575510065454198048477239939332771966635038208872450070283862229527066906946056464344696647893477973992987511021791601392297443794169438898764443860983315732171195833577084084363890514467214823733830209769469022534938193107511500754453139336859093561657815506872766360204319730599455714408219501155246910713251843026580314951669523136288584121117911939803832969599431267924341261893813123064003380908099446334268125879763386036280906184754559940978826027870032096123405316357871714029453288724059900387466529342250375002508326061777679811783251901669319698441010343369435250621636520684682408653429077696353747260126854137369797859007854263345586709038451256277268729220261448494059937411942184881111736428968244742889352692942149324693275488468099070068294653567091157620494592617800495793540052326587096974251644382050948532493983386598931930472395878651815763832485640736079162160615189565158146647769146434631189080032102819870070625559336917157476814242511030659000579465823034256451504695574638474205467209615988633565651107850476359412674055282581216983809979731711070524093183518449570003811771423623840480846753446518360129809595494858593982972909197793278607461562348988062197825504398294834720180771793813923456387488212015611274100701226503227631777665914344657109175632128833222157111693631158444074421601285463490574101551088385222045310010642746671311789631214339126613990091079368961387136195903560394320456654910409945753313506496144784131555673869330932116407940500326506176575307855215315660218450320045424424000865310988925309653894327955974332575606840130720063961785748793923620226692941822413969347924634842647850478969440775601517655247729079212401102079330198874031606410976858079169658526967235015401737929623208478150183148104483456541571009170125799672505381527292202505461937599048478092656879032803034622702698088531713742838976638707561649032908574528705022571990546572020928039175193529065322574308251945404058599918363323348963242313687988947118270483947316031842757297272999345213807759858887019850655829339691123031362000286282578136881574592025662603830069777509472257908081110142779178030257316396613978637775596613567429235127397410016394966188038339931198458447201764414625630312447443523286510152532764289387644185755589130775152364483594007932122676982694353078253096987306638587153644547285491163503576240643034458235790742451994628584205421805125868029677495380971457419568590845536835055173952290360457215625234097250012522237777383840867815414674415892424250056102537034325408346624631142872113181579039456289786036483573380012413543423153606080883088441894250789228422584579072238939757336403172662301089675613886361933124345739423564083043963847579441997379288945516039087292912458711798438379094342689520779395870156463937972309563387575752535059141944148778157475184856045156842479994540964269558567493700155423974761887820584334433128065039670730275129461368990545394758033115748626073684555732898663947387028559097500482741944138174656290204374640542794693136290577299702384315958813093952401821945602658912582411961788095259536149479637996966046423235071215447017262520074821599155132878704622594380687400690872158707241947136271810222919672738090582295292746279002879705178834270766351631401005915474887669970209525093419414824162954272921172691058525169590402393952356742685202107983691315675394375585189085355098965821630337715156865520656531681122985179590814491903485441761708942688737666908680031934843434312385786093154354911206268439971924871898305508328507920083493609851200233984618652334077160188754066129541389084282610643795780674997449528983485559002105644951981099693919644401325512956966068897129626816692186965566147924409254490209137694614737129410387653586373120699116102501732095719737156561737232150811039883549856905137851199978679960861503480746217361730140888726807633104350450606866593724630087116706025514040775274446976610416708721529772068093774100175324569063624017268856418189844286255408602215230552664268421215307871506442376215110801791328017662176775443317339671903324712203037064122033345938023108658274760413327681506300170141808284783202650526984141382463577552038491182463008867818875092606592799260464894826863159189178346081354392360118541100341502658620302824533764980101747086294615079411354471606945936306555824997399292252733371253295437158059386375156497303720025175388015523216223357424458656984859497432723264691139578575869235731794619047220258633511183228265653765011570603858975901528489062924760834517907066865114550965314165451776816098963126843952053235176651776598730639208719275999581811109459926268648283690179992347420488867122215024138180515326585186719598065298108418568823816443269915248180079198221959797287645200895814819371898747959153879694379562073537899924959437535542108684890894089621242050314415829824565338247998865220535752463723953450707592991626274620455488099881005475858299460616987475734787839280437831488603171641728951172079338904839319815316421022180171235232568360331421492265862100060096257691795185371477517014183716605605118615119579457621388921495502174853246919885779887302740972792850729072666022970720115985168403294084278860194035837855881794580760216149034520943973750093474560913054424556978050361816954231223149606029041248499130094496252445796716809798917821053089334499895792674199346755247406318625653329912775762806913242166232235476618149029019024719154727330712977852666544254417684185692272535005517922862529171186776429780019564586211746852357259591750297131767499771397004665501244709969446689920072279874398879156345277344187152206481731000093126169819025935387065388370298547757566329170575759926299544276792491280446314692047851607901362344329309554155252460769185145926336186053147516711831782713099072898476070438238773661877577839519121088077781491958299613105409197127931437319130770071028825967850172761982785726649288129935884852694156839649456299763715869083011214386392553404397472831432853374675136773257361298882366825991034879831397060612776219005312414827025351750708863217995978363091152145076945830819734391293435852913869829075359470954980796332073558713053489357409726283157502647363027477456903572874274265214698175244540674126798775331164843293045469117964364333964199619667139894525787443658961903528613110816684056669335958143250995091069010217222064891494778888493565444149727809708208331505920986891189309138558515978899068589243208112135372464521115127682507982736654470900037517705692891639357314531997306249957597662944662367676658321948351421304744362673444449349964062900745999169627471165904678912949274646914066074794758711997372345485913392458254181739609171227877015755041220034285557905666821396124554170696601043307006227545212291806460950292532092061143957811112074447190985500711762924615630043265399765005495471457512142803000053888295374534211060198941022238115317008266754766998201431175848420829239996986359605730913812354466823045720761444189233258253245511911941386076197466445993093171437235451316106832033085999637918107809795781893376198425216053184798539706523745033180866413195035657338383400501814332549164580645977432458223191665121158775109324972553928480762451239575284456975923582436173772205983708837733772250664859318873855587362479615836974104621530481849694744543827873179910492541306489066851003403224496183793071608710819213306771626923609638262412800969694363541435020398067774856676740946890430629038897322119267533244042080142361911085558560243122517073364068398511787921242946779694833208918046263682970446006872525459107483345509312673423075874184824389704194630794447116487988403391120985101296771493097701492223148274476028880961299847891078011182208172841371099272926115571022654954645088348484845733669750840683341828773293433901414110028890324636514999109745939936936185416608117717235444948315575476203565601844843870517473135139674898995267053306469125416429172917998752303876798120039346088204701158002783277517616021533686238267350186985432596052831082655241950349154032386830828956919594885259762344595860737721740762283099209229133050873847104178995237807221438924936677447204216438621332338251437432046100963692674467852175724420496282769175234947556673726940333533837845176200398701828474152106627563279327756970510929382143887875193128998425176470467250310964371012019826386744664386154132258425862581871114427916900660746144155121826898140576956706916373441832827301563437953921135454482321964580263448863536914104427155509630000635343933662929087865424172276002783740066240620076319210289491342862053765798514650223519221274230975447038087527644499005809263590557898779046548061822143192739565483400142402663054659378543547071729672089217808099351062652878210270838556349040407714979880869235356946073661546122855475731960409509763621649879861594701074902124094851197030692197988667601781178628081558327160861314721785033606438560804093981632524748532650459044178537131002496720836419926450052974726759136706981273538145503806186627667464751093234059132418203879912280967477305067397777933143319100885730401350464092476138835946068873541845446461464673206681480848848186150797299073212186519492384478245326812801899251408944078165824169356665837526962609606952641053589829612399078180948088805801501226695612440703304185297112613495507345154284552326452566506049740876687180042460137768636032245591860479169701799858224147363758278429271898824414000163940295515181108173207133366237602742551479050025562556736909779080907978215973712397794186854327089971660893488718830203703479284826135364178255740423241508077276028792433323589213812835355018609871790829679237079669963109493568352210167008938120690477967086964636295276321397385072609034869509673861543226617013230638314045268394274137147955685880366629987262425032094155109832892342410304664970314459468124419280441169755947639758492785213239421890594468024468055990511060278097742639864119201148836577354425664716670646819129144699546867965054397606258057260847652988520824636604526894808970616687321786563935642763136507944090915665384344507307355149779600050063650433919608003302610770561827011561951695875969687995879119389663363905823899976572551165028177177582772445206065424361099601608491341839581713942292166065000808757911515386437000575017534083556223672366766386033676118647272129153797362892741563684530843661950856448061960187505598513812765757595112070398638194149111097201818684012833896273029619208631836505958088897802120266012113791185664048709922471209475099729726361482145744477628804296430448465262883454287144129181325611108651781343924945272952107924948228295781876798703942265979245422639383315506122324022973575663498062103294736838996910595501504454063374411097647657864391193463581802759524352417366884110494599776519184150249040581574164764262516406523058971786427486972611866956247626602660504272925554309163047898974110550253604570369871395821509870524636155229221896717890013565687857606439476442586760546042935039899619358158125691734056714765425791307055975885857644077929679744162175746486591091745109984990465036206339853645805798372933760157410519244743590445564396886401120762964010937715159665088495422839564772153204735268232579321739089237817809011921685283264034954801665092419615923088892704695563437545770083957913510857191409824999543969541585543938946187873639910928073478243310739444014235879688125200476076977607000453541637368943388775689267108243069109437648654916429083626387138266323424863448258775535911627615465222044996375285775777454167916992401911259684785059600458711562190365316111425591360996971587297590320750320341229687407137312357114769139906319365646738828278782156226767007182535806287287542209602732378764092397141149742709087584302653593669392695323877187004588002302177170403047479723621447177564183636695449381507569914446636841778212647325234991312477276499948033255485615158027149356012815570606979367968760437279695362923079542763135719467392052153058188287248250178266324864161505585515517065156304540364859557013978809766513700406078087506246234140730176172550634065789485275254355699716701365931738544792990688928346889610279340828321573070586757388835712922900149138738375959676468739245796045242115480570053715601412694851233503871457990499385920846907130879930841279860865425602637069694704131220044664929966050958924422723891129484678639808826102988535213062515549403243167334704352870843542204732882346249763315192035390519553527702421849823855281218440693170772197510761473518986173317616201827375252492036684375350769349294352419227222869825459462690710654947503957039914258103009456203707429009901139281485276751253289118581277623279477616267230890442163275262994676917951934607717904127746566691999516265276367920290185440806502496494717198058470927238305735435246383931509033863496259759246707752801877450416754202812332842573302606648545483217470470217668220213089091444313988559410247522166474354190645740752639139785952279307715391449248312967827324524696159185818749273553995103103170097282002986801628132831842172979657966573143368082170347247446525669131611294985306824558672541776398572847925186248839901215111532853409677812683181592026546827344269428124726470708081565768314134919142252905533931707304120971269456789848367750661609996476442770968815859356961516916340596253791547916958699006390362035001554721851509260321831740569185496085241987714269859510252685873613881468194675955457753354081853610416907976732817016479201937500647961913877236633129332742485054613918515340240221944072139410677989031561346220058970108936923718998684487255239423010109091741217374931523462619234761569279894215527754464568451066166924140372107811721471674997926928732735359815883338057757769971624399855425492593071082524488045713480210832969065780850840874379253626781254554164701616197984353940486766785073709186191605525718155596936664336946246315592377358842034448294435066512517798553569519602592081350449865092362871774486621839742251484577403929016536948859343559343273708360534334615272113544917762615362434896808928407602955060743063789339114763705769084146756923501820250882420943797744992923675782095620768516094143936638582009907810569167418618830493883028299022593169707482647084604887744437359987591106576039170958661638146463072031815523651281630724367048717598299436444850632787499098229445662437916918054542074927162937699891405370098864493279362254360244791466627120060468062569034404106135358623287540394586909814562253065702629422852689347458870439475637452737933943454380803691877371349455216235281879615223967570732973351998729136223775962889437974800712764696243857202955021911801505413049902199433441424554721515808713368485985864047781327185904911725118298699718588326819345851518858270544864083922006959997504663476966162955827823397051066287455702779617992588740561403451924197230130369953895197472038552928429449749634136446927013100450018461850773800242704629515135884303558465283517344881504384391981773381413665732989829735239066090852326141464174117277086714334066640956090563942727745364568900950571688740115680314792468086369107175522392532814287430368864776889050265348630691081145929864407690975270701639527229460120379520470299645758393445899943493339907110005139807401908224813348413310704904927016789698076759347539778107369837520202491765257050955491698182103678266975150483011324117400108565125423035332057913443204734327626994290203319713742322745663666795474626105695734674988788579469173170621514335575454267174724370321751416336473283627374151648700461708130346907826195951552162289496119486972026402630382824225709286186334591026147579842388604170833134034687327079113180294790531457997365817042549907103864378874195804890446150144155419051097449315069111984038118066127079510039579972929366829943300376366614852901488536362594773713643106531731898338389298772161993478361286507877076691023010399388359334180032432031985212781479386425593588230016918749128778231082845367159820940331878869777026554292135237428329545610538160933446121505687191490331197908484687228695118233575735186421948431056569304055129298529001445313185616632050864874832264202660041395895257237731766331625964810926790412220600174481078915555149357390401035577510906378434383249395658670943083235142579060320564796817087581882078748831341740217056859896175637684012404603522967363015195159757296455987755552574191765141606138591169780200131583836078392804794145975185359194316423195097206905379654466036881777307420852801550042434245076029020100446608956685134044343420914831613823963446056082411200597408610242563469743491149644916548960987229347195600590981354503082305126684302913027164999332702543629585320314575214370132506220589297657173638933289963713651752447383432325446528190243962127082390199783769784942659782632695424220004535753966068020199419499704083373934146527006797126490460107081703156070754317650496889634555344787037104157292698464776335846888694156656527987990574823322257719437141483090873855659380024854468429398951072093532988779789282925035505379747400230715677862499515729110971437015666788134657542963263985463222528600088599843526254208828944248816282130398435407967211500360073376885494192490044594770213283201961052208160744308049621351590408823737538577360038316569500304679791783926126492526433875902446615133621077158629042812625969481764527818632486860266687612340700012961101092651306179632218820633736896191160528474646003904208978836771359565927818456094702020570178631683733628991448780453805350606792730795434028857870310978256703392682879672675228779122686296703230406587925988647576288157283458488132616929617467531463386983859920212503440737696847765711646763244582770097609077123285245430702081554562107332960890180114394561425117425483665058693023674652904710325443958125308441689808593422261761307047352942134416894054668899907976446526400691807157406205049567302685276923141793432825790396032963883191376862702141644237928855056783252547339682845995939239726213198992874728694462981176574695020622393286165131136898923903248775352149603205934624587869979604971214551507724410271863095146685994594193839573719005913695899890485744667445316880802090927167736377035497586872808420185255554123611339710113469474901257477209508113382855223872658023366513193024384019692963283884661341530100724238949600818498435937036575474062894837848237157868018240618621545166454770158604306101367179409684198582157041493621638959933927757741694814648142187021053224252580460037638842651612464593451063800063037924109843649942549962256112488827847330585364142269526226984150159921023901091355762839225485829423441453183116355292412621731785651411163832203684971236051806906137220467351825812484372448339220329275786752143758398707133431709535070695843455943736352064815486558342401170049860636968808001376867768061353649433513592926176827935021054940832724092814207606344797477926314511608496383781347375446348233377775981594772863264794144566858551721740140638018325673354623521463598108002700170677181742289657041829167998379095921889454315495271740912660424082787166062460260820612994055469448434325612339140116354839060085723579048942938248378705808580406189452037530297659930199751214890382658464087613737774844872439462981803656987217143999828242693974800837100253900951807729093922913282864462268715281084604853134001821508852851849048410183252715938543239368876476658956183710776968916440021955042824915538155345197307027707119729703552856005219511590319097634926884724105103069433796815676102076718527249570363022441979578696124357398637737043645927145082404240965885555800049703618139032489033913525509582479762649908202788583764813937092600396684241561171479745625302499438654809995506142215227529873606177184819572880927688969336097279055925542345482874760089716088572869610099989075000386688014734182511133124272559738562941667847172746459202085434557297726237599463249225277532953233724858972521339408326335688302900267826529067256069745593839854301604448245138630431993310541271810398248986793995969445072341322434548635838537871107230017275991359117901162415273444508442115944796553486239303596876429586283297656379902266949058530176755423560848470085619276000636715683715923328568886819409158844144954489737384303479792854335423023729433493755719197541330078541038545018306473306974705110020293098259315176459641685937797979532510642916908959412572298139447263306219142036066309818387481054122750556000431964120515903387102023168494351238715707313573968924938939575881650846285560679871327714535519275125096847616996547677339434021864265050402466455577972556284732797868023791448695486565026407674422097943070328605883794996172135638786129420544821758064288649614280652785087350602376698853248623329397619757237702256202363503603897911197778638292835838743958842262356679354338990543058426502441899797497368592762276756919189545358060067817221769705622247209665338190048502465815224939036756506813936665299243832759137201122169783162905323977688368916478034098016292111425718413195921205307335621735574915990918385035148122600245589242007204773571138148705048283424973331411880165188539020829473637487754703268637755491327716945197203004233400762312244181020456666721637499291143214653270772857786343500121851208128084043007985247236259854744626025026832367486996031856987167122521669243742418973564001838247840189745636774262097455198304647973056121856697122881081901718428569507492314131078917169750008821955916342868907142246958323422370485992253302513177527533219411329253236885949422075764938805340014227685585383922643523729372851133573769709358994677178356385286578159365698056501855053837355922473263642851198949079363401838750769164749905184747197792543940890489014506838538985121080920403152041633218552431833180198911509208839325094889221657345011352660633848643891339824971750440171862226595916024817567901972721514871682402658039008236018309947751229115765342951688682297358336663022664746687012098562791974072111987423717387427228798289313585409828511065487453131474241654582635087486367972256189301834103479192467294978236437939994520451322365718498969433670916346361357301684328869821510471871508475516206145062157181073201089373752386913876727145343931342953710841066616726377470950733363891933085142575406371256892622746124423711271213828045548199035262335451962046370218057412942397574135229139068346418163315061089720430920971458555881195044212522575191837426134573433012423067745064148653669963385773135322017984779397296626437211946311585267173007354824711962790227387789384888573325192532988592248949701521109730735001114038134756431920821741016857660478853381112343314622377811328408027124321651953217383811032160925539954309606004632308588624710112500874110806672352146744272785538563127674818473163377669116529230900354446644424900967749859048933020921089263865010016949064713140825353558815873641202524253335874131844751087148308117218122531297815790088755204285179075993241310570344250257633990284964036572175811249810200333561368355769571081542512239210785439019571652139848340645671848538881815044340716166101056224915042650386176335145512059224750173626928961264618188817427138503017500030465209570827226590605315748051012902015911563365459526271033803986952374544349460793077077451490121372338349278250590023533426635805895822800349333220741607355315005478359909516269835344163318967740200307073101940008807829759889048363632678014814732183543561983735786948329742267061274979357165740067841480620689998083650588112374143384174262457638599286616511377651205325539803580254425949320295753339683566177252488316878129053640622675040501347748264877767180062652948143127464686590253814176470291950132564860668494070997030906861860250391980074836997253657148026181123496713093621892844811334850313762084242675523844878126435593811017125485471962410573963274211071105482097068370256090658484630646056022782634056853676765743944868338408125034805706093007471675334106279272519920676730579865797651635434760765063316515112176625033062606208489241069247073300616956493228811507255430200019489519717311047649399620203441350805534113464233336698429282938443836460178769453135985800928139129009865948174614254989970729499962070675507380566509667993430279907549492097604927080181714768521757708392336742499354149411370146413429425951032718670684571780021943183365492371470600967290877889662280155220322600242784198499760778276977921278617109263620769303250653623852617315928738565315159622168988344747734135054164266249324560067609779652066951066500090607965788613015869082747275396035410264182088841726955657330591314522533696003984085311665899244052523698784151702659118465950788536259104364830921581827719765310676051084977936502806808186944210583439350175086287677857468794745208792945662576699996944513901362153308234466772858694270128072424357740898568945431662486712499076209279530791699464667011124844940946854737439473915829797339707135276317159881388344008069685087172022739766297477286489469006301946103088288619294227162757562133494004796652896149526494373841045988734917298112807261577549881324436839549064923567103060466501258759448300441406185117647886205823177895399871044523373981918991666306827355341423387985154791933001514183664610477036778645558497089949532932418663119127298192757873759861591619635439643819059314391955530522988373922783376167803195975832743095401558053603025031091802219920941054586169289777564490571449356443759402486368930533423191377715579335212603650781959608333809098303262334371768309626014109086221876173003129615740692941307963089089875589946461286022799211667928327875976468715518305160608566104052497287684152797106803582702950636710105480162041216817380177229136302679857957285598699083540885472908148760952052608158196569518864798791154191674020816511180094907257479161489771452273961379753228326326447670356000882982833579729348900015698465838769354230510154823196467100384461615371935636752992669606780272385446853570284890229028280362248965397907855276837347390431042285994077303767634171067484018819990019735874639953707311573572480393677990343315863017904675586622503786385080981864148424854521519282692042237864093615109696370487789008799093280975078340809560986065714697546323136419780778734014372179695275342904106241891326777296922330431987918637917579881167922714460960446302118513621104093844068696877858764485054257643520483870242142820727494713072593630939767129634483407708101946870196440377298433395270197651883241066860346551557365009818318373289320144175093718096176627707591151857920159753053320356086575453037869081918655170001430895705352245719259934645870705713600945755837505100385234535689745825654101836754608658951392582790328166842171123747993616509028140564754058233952816033070484007152137868944559974997497241203724164684473554563672337077842513760688882480568536897710227075356365116719964446863050282750255712743371011141153117811768321194816190083078897843161856862934482940884532687849441419229251780080765416722276596897902932288202053131383805008837762406801423527383838119713531630496925421782392543692816356184100034099835938565924712719068407280677149729341912369276957015959440170077622659109206916827715286012498973875432895493133831525317881373106439639578204843485434945344966110033864498126072520962209696409010248233888515200082655325179618532475284283446756996719938425866469338887512824863942860769316075439406318982409762640213368668364918629627192022289020186877075876735657577186622288911802921318485637783253440912501617370802322290121375077345699095823628141689145310936155939551490749087949669729818730302010125013564085792349671314684130168020571726635708439489029313202637508945311979199355498728644827188979769683605604404576800859821081615937514979410658866590992711378027807696340796266823461563173302372673377252854963875725896486971777109645991251050951421422392267343878648014494365305107300508303005222690811815202424355830732093627501145349690886568008286860587525752226602720194284703303792208231583184253466784762601449170123663512241350698770003411950813909025701710071566156060308355284524368353407902771497075055223205736102196215186195853128612055761693703847851065396427099703220615555221675519594047263695531019192039886554030012463286458548886452873022760949182507076057927265600529951934294881956348197227583945715693145740667019030965334294687336897943206392986026317336436675176648889368561620537832956316363503066575149707706540624811388580306372002783148862992247610020439489479604848430722126577244810457657382639205429369269643360879918802286219441182328550193697872038016765765793865907730160891814168912815115573702466597087096412317676492760313865244669293139403693621814715406977370076564467651065188954862181288205810321352126632368195373277337210245876305739301079376219479821571058245258091814021793728239086500571940402114129611443477352665132253725985956145863857878781214497002691259687114845712865872076096286595885266332612854309244865739644996399252779682707617221050782377682069514733673214953894160274882823972796991051649276191842043646447373317085545100227778622192521754835139578515362790960257995645525012734149479527730067706255959954921067383213317968917498193350594600699822076059387630207886469891212692897910889211933807641180055211579148329794191415421394684278583127683567081292981435415979357527240713980632910387302449086577556955798759923265502201691046670887935268410758318266582228509417088307178743485700984052736157028202223883579578434496795289059671695402997669475552607812598042426046280805522305633468986856999021758066310068274957234900267636000602019505937174176475307751244998196764197270052369247271854509581489978524207478735020123222894101041626212587977830690721598049877541616301896408073950125892052338252414575293280356753486817658888156837181815216507409604925901280009929722235903146991507926597287588257705663763150046225300551898247948135424240403130513418880231875642743469135897073702401751477945245191825914590416904771956385884970253239769630141586090985747358180400513122398764319345798267397546265788004232022135471189579460492897321493702831482753060454911410764951100316421800384178715885140284393308713249426081482577553845291859448994389207043366513935396564616800930701787628313933369862888542095094737219657645983029901717124446929339195128968826457778144233537198548506776913357019753227174127339158652652659737929678010468829789536034068804984673121647936600613420514799452595534361754873816234515109495523008692864189094147167543056864920588081116244862486010351272428174760789526040754933978602578566712333945040560861531094042449214257734472865169520512301882238864371036034107011010907752077037210741078693574611659667759660163605187668188844425490481940672714576217573232430643318525068758426724136055974505209344739443344217367831183444431838068814671414231054733624154327997779084110319161088201726092967899091484383766734540858826024274371052356916003189300187292119404575214220369157405248657151843079958478335648778195351443505901701303106911190720296144640600497702760497015091685660471079898126153782692285943504954136807815463230518982551519126897273434550406209593420548544885866010468592150327062635731121217033519486745957960277234830461980753207475122174471217720732188283675670958683245770917910216152434297737397282918001268331750804621171768543485896819977978948832219539401805389313330862679197053498022797590307180295282224440136225395859364350900772254732976071867902733028882426933356780674092217051552392014339280581159597739087231358632286289922950196168397798944595629719881146195750435544132621497353959532077535849656864600431950399903156969955424697562211007586845627491998242063658586729190449720705972940240481530660056335750481890538201400526607220656110632378069436562937699025731483377873946597846804784478944382348946956880824141336062040569146784473735945824582506463760109243076851005133453081223638248460945960467056658378597057986407783910750742370108639313768271774509075546045370359361740907575450575164482580602159940115968587668829823953146669336977118739182815216150386437083978005209727411087746271078410095141808829993159023260134029868902227012617112383694031768606496013934271793471885302569009560590391090520642835684907538208482652290130115056404656650085714985817906996188832652645875072696072299119827099348588180536596092464790622975423762677770205942725580943229523054162965799325010026607811572836386946173761105202826961958914303133324626044195978844563235974819877721356177028865513456224950536603751995580240714612809911430052507887275986089848238298761916554419893274222259720334178030348522184177333478923055323221883638333921738364975910605759407260664990426712386984873554517454078666324611588998702182917618253217679827981303720127845176826862177284664718094808573751354418641132239171673914990683135320852193107372048074832261355253936971706019952519437615443253633104036572518123872658096114961223880443460826018159290330345320467489414377963755758399812175146217712481455383760648604520472114373175297807959868853530476146441959849953396822017587283280904627385272234530664999335478306686817161262658772251520803392651014930680310546693268829311862237159177171721460099680235698584610911412934815920632769771746020749890794006927636589898326068917004013213366277892910938265566399617222162234584258380499062587545518310600540077909273158755887065617230477759581484410028251081475871816500458460213425572379545990127409430584849210430909335698789090542242736402728341554556178332311153583688999676831301755917302143167055220508684121160536004181904563506059519548136438858633300960224380301482641405218936933444945997714471778936009990499237015776998519089634644438349673647989301599663747980870316334368963962160918271810823889891656602108414372545557270660911391801705926470823498273535785126883846140858861308235724350994847504863233829858084098355009115132665056751211158805550641115544671270116504647311428839238607379543819738292761021755559319599804555484599202419625574905161398074556163801605224543327809586277806135513025632743377340924130773326393252194678771429651636499500729329265453813168422927313177004739914433648172660717945255501404056266522940737699605582658044435472532034647710594089079841159145450919032146005321642556175200211790145914902682086722372094858218157539039447006985803249007475007743196237777417153733385817533396260805195280280234385621783554920563853341640510470153228519647689725857750775323533234469180470357312105048505430012544117138048206063444860360582310310738744804030785434278330487963694674536213198424615791627692365080217950108309234733754654839651105269178624982695220601679873769378625354816448374097507557743931662317521449549449624178346821612053433104985016737512254885485287293608185593346737447904291755690200585227416766843099404546426844619624388742013539970967307798993332505513459248556040843720492231562669066952658794880386079049186758620779860223930553067072526958250949472101249547984476814889997236125430895448308527801514744770226671705244279907067470392767993622757891860544583812635036736125998100671372454726061605893608961104532532103288404685269711723200912786423703391324908539717716009442388134169431325877699336075869012528392120993956894496237465453161243270890414992724115460664361022872608344518784932860105454537531288437953885529560145593156284567955598968857351238386897644063543257022282881862833785313273228489196668527345221434375187113331592273010017992544033510597263658747170645479554655708761150931374775363737050062498117192372148372825716542777914514065747425099316395898281491519263924190776785284300612375316304211836560219252741553760600060884207315713797150732512290001311895718811606112983075192391594000898413102582569727549827972566346933438189797132322363761430962138750881958818033899359245880081070807359308163601050976896137565266982664061700452571408181481106195168518397221620465956571178687585489086114687242752029479116784532490173138905110158622135279626937307441461119011305883912339022834922941701350585336164776242868270084966415399716965957291909743738550113170710294439872717396668223467285370823661567671479862737876322805567727578581727700526040276971187541004065743149499070460808476419379444273626825216322160045984810982824713002700445345998881829781674499426709088140389675955637044414647595410642058603554889845626554910764590148535502614196264904154130295625284593359431983447617507824477601244499488544386001048882499737105467615687203991869487713020396623537839082189628266059257660701136221661558972925779230250190765434186177843194574511926926185144149588645920059019787327534468413197458002075611821596148015339083667768314533495294847206764479617786771606033443393848148525038069714390566981465965138790761881351060548047446137401891804332847637745914135864002515986709459849072281118729462711367572712806495236005965399764987069337863973511314423132635102532797663103486116783514488634167959099396011665765745598158001888868860717139954917510590816784681590970525899741696908306434903941296212057389659622762362136874796389687295107118149102580453138572727143490887193552261882842612932980236719045257724088222458103696475789417571364035954579211339961847244026169395476835499944956183541152266634756536142392926299231708895715131893392562378369300662071223354318941438613743648932892536239446136991535799014647974033986828612209996641473782884600795607345458160016078447380956354747002551349052541849757874968170319529503779341840594926722157433251018216503406652059936160760644495607788073964493019691139563155883979345196734871479007440863516375635068232369720199017288728891678085163673859285943257476792513493714313695226478558784828341439327951161587069924196054842909035718075437473711766190636738542436972763488165968508653671777973517988253529395437676307167972371700770459881312407563204922665295017015914283374673505163724955779422696692562446513066389635499622938731141421908111014835568013772966651371128999641242099980031935921800645424004723207120040712031603543579087039584256373440848433216174985898569712502666082336114110659127716034890818140521503626304326573112178598595769477893833987606425885444815167997384172989103201516355047783401971551656083642654614859201078341402217696630496303343807656198298957565860807466350220609818715770542599234457222502105236294952525685439478938423565026750526721072112142521050043463437457376731611685646648455325023391591148081920964719147178921398789263145824348154966355086319387696176511414512347885390169083302133792463340426801700388199634507313279873408783060121576808395143005067607164056460923457234150071823574771259431726627174774657541450898846970391184533463860003694332655409071229999319084396495283934257158730330675810242500346594556262666617813659323549503190915633421059432441926712576185777681338849769039426229126382916248590465454494815394570626330435838767217116616661656087304537413362340135743704991094925593175095756399050747591541378275567434171501786476122261985968523755807549870226309113867938176280042525541066821327009249427284387871888963754198460539415714125075626725386386184917105934043118220006248974283318615417032372534179664078556151313150929139830893417498960731862653634763939738224660869374541450858924464180742803289575166389664228604793618761468429660712381253031757616304399362313266963795099068274103087634920600325028980547795872881383377164105171656690352390977197224567988644077852438343600518938787819165121700403384572249064962165367844873727044559125703171370125658517956085528066017143137360385136911386689848118101335953476246484416821027573842259333669715624976427803471994960153809387428655781504732693567992992784717400114678090708252075597096512639053211463303608592475924709820561615694375009202006130946261093307351510455105048229634823440332679598309046103537167774117933241255499822651201955362833157311009214405374069824879230861089309285551331246484097091620029180745668081562832669829722154506747409215250216894187449066591905890640262590878970577229026988996005738929197781132994238506152429373083290901007468299005578766655706673380744639746869370183609201808898649025824156828575497970223906234398188793274746737103467661869309399738392739574504941630822398892173081006693505707501552017201365594898615879302997943334039315568326444103158686509601248541109419321689528226661150909361757500821901973702195048193407795566609543771477207852821302144391278287428168401366001301084799933937834705532305323075179689721200297827922198710751670600354917004586475692341925182930301132763915681358219671362422211886084621569929727636910782430372661188993258694371843090702960396049577969509394855782653054854757363551415137966118097863179820749033816932476466361554706225884564137714665324975765761539815798840185368944638073394765596573241623202897300682093215805899269933993647776061692473317289922173930463712396469259389627190984783965213300962487339911847713176214173338481271278738667994807610190048668440769488133945940346081566711130777791286950588214971947051171109650675488447997690147364337384118588035185963145440887602301768975268640482352129567911518456064895779446586101330746779576274320909215843740290589900869836614584073587412748660620775704304937009433210079512177564035486387939903640963368511478725236825832866900049696409935788319375772982702694362769345539715596229363193625991348146548331121308886659630742756802063067929707053819858188975413980831626226711781147541712382825919208191481200446188716699058933832857317620209122550316755650953915390478126543282574158656076680103348524949597348144269111641909009093027420438088999023328188643510365864088330043651691727282529525912614864625417835089136186478237855444770379084844265173685095269671601941176048730969623865168398068598174566865984155041009513926680719144382780108109553322332880883410935784376541985210890740927134169927208099027232651381784914205906270427678239540714416984226956672173202484107932818673106422855616227464716818461044080691930241589744998259417960206116003677456485282608056110856183458544398387803696660014889309761377637404053146619291028496847593821524599811521995277239108240640917856480582290353761310704665352594099763749874497423356087699440345825326866065713769042840660977462523152077233869758727617792161662994067608417818704638461033939167666432633711393849182381388224310294950220628833238749371667736962697766353795884124257621468268134655144827744010715009610176574162200338171797940617705363081580561081721186374853332387077452663863814791870527569074409011957845950932714851122026408100834483620834757345005149550034154097504828267291794647115309155805147797863070776490562636431822261784561431732114045322691433100037665440260096948463371233900171426663145855161048377842313795764453168399271997415235737292116457626080685183388475088693473321366153178310582707487341669290726086518336258967125087337620798395335571480240093762657780369852051031597524273544862398785083324739491410846180232912097647959394661295821530074930188323103060244277161941679081260283771120362975498712904370349731579655881967389645061803482588532526044812463066212633444974383055619006818409428366699189651211761687661511311881296401903609639433100918543801774752151730569424543093268628745842387326951806909644679131497406528277601121087238926555177843717155127149631196221320122299733457374154643670691839324809132003655608922573956307480960435845693380388572330183938102870678504266592234330231986961985481580501556573849273127949011327741326971947416193917813258454107490861796468205560279703123190228956971053974755221898751921040243092513556974717821926599860844937122696557272612449917923953035134020781170719031760622486296277030070624570889101988330428022268830037197070906311417927588552129664686007859842024168786325674294823864919469936725152711354606003111522888475819058856912499873920017301144900131131250219237353888109793678430516217551286059203254383553241964111508350772778240385258975302574821444925786514631717934483519682303303066027256152445332113935589213766646256643118627185703950688876656578204624838069097507656091881491523972287468701967094129298951261687427777706854658684216775917971950871104314042063287908842588148875554238529764363116365556678034240028857176316696104487659134670807743304246081351828025897348864130492585957476075866580545496080396052445493999621547640357342270171223237720558060602942486623080571459378434107140949617191285052235796292859488768336902768007414138038091158268281869290688293280344792173617349906276649397283637691289758862921150129670059831907846221982710498976256970938857119800471080163531203786611525198829130857289033862151169850750259832258176314749615354816495446299295879735009940914324899512577545545848724476995542064325154291831994403167465627176935587324074193386901866639166897186261299599880839197389096801579762705629320717333420116462390019192385349789500952630109759211751357838020422044551265457091855854039008588370779777357507211468272912495559359902950699427118583119854613672730842278056802404862795144867010490345639116075392033587423618556527132773318910970717372996745942162021803781130206967764585809366366808847947631247599975619748103320904711530261552614628211858977453896231111349770326836605363474905496322862605912314576426812505394649514286295266675559077479564977571418015612467517167565373660218047977365020914535980514961907014891278551885034737528756407024060590983243476193620585594497258500069780555732230458064076075500784194776075584597222913777146589316383574374530966661867590082618724994807614567288053528630090310046980332732669576520076984125162157339539033181766159389388473368456331391900160076556497305999370047251451992538867513354588645447609974743540102018852413964072206866263894833078021592764973285006133218521125230756365902380343144551712827391208789456914218427175020287516468099624828701722803291476927287853568730202624658590401365734223194359332532760898636214988283632771421263173892122123361862004616079655786798463131892961931596037175246099980059942181425516369505946087306746099109177207735127229083139741067493142734323945383294410711622268424662641973382986104927095852350264779810414313987529749137345756532823839922824087826226872283375084573836767696989499675717931830123399496631391930661943336636819892133744542396471820714938923186741551803177295239404438822579176513313142424836247569048724416048717261953028577823047476904335739605152668112670695152161250344901485520096849819585768762710563574436504668419319421302046371244764170545610460731573725889289139650892782407793800419487734733734616412344565732224024291622965160470491319920494984784262676182212221472259747285780721611358369421638142296523416788838757744870098590115106588504879711852098026916716467090255719243991683128256349619759290998181123144343146489838669552834585148373044875254499187508499485797283737394375845069330619111987664088180947045454378576662416140825250364013494251538739924263340719560976923007748293266541280055499119595123421001887314238152428802586441251843566040341821776672737980299242931959941595405045045407246144245070354851160592177535881766306533712574907177970929477686776707737912603148826906665425967599421236196442904588340132104246154657879057388606378023725753777942505252624176130502004059497877930204043644982684149843525578562546098907776747884715499594946554934418089315859866510966626813345623872002658633054437673732350038228930901669407247895429508194355912330675172509280169744716731739417620503776986149432162479207727651514011520872919593643168963119286672992401450882628759011616295968184534473429757179744135915228768483963570392347327943877277591646285379691327355355347066736069476401210485778784905396108858883068374358779867191687700782368677565719700863599797420348715002811981606598451762526861557184669303646869392887135595555603789344458261227157412586048496799012444331540666810113538653466013971235120335603589377384730464380035990797804454753181769988918140091259573901301059242665174230330157853422294911184607047951034882382908951950240414419487623164998924762530985503589218498813387974027713394856174351395782784006718581955510261151510494786792596344611654551952692721227243534271902385783079999061271933834037212076015517592144393215557023868501849401320519021910663799479919459471010628619120340151101424008653059380058875959158195313672533818107725531034113652554549104538598279162386286582416285671194236896956413702378838312234623489376044672769969625842185731025596849400395336689740285315104833746912946686613413572052280452891860918750711684313023504942884230122091576946661820373174342422486544902176989721341136704327170545002331804909099905083684717147292521474700446290398411470164969611789089067724678132389032016233725750284433977113099246357655933321942717135559925194275316232569108837907250283208479810902999146823924506814535901514713518654843605641489299482877193350483757804972502540379929662382793168913026046257076782633675029842246843051289748749091220535334143192352014757144885834479807360740228146636245950677444889879062683359781025549347617138177805256819825485918212410012799673987878159130615648751014739853199949517754331597418810851156339344156975902175533072075777412827736108622709550348876948123326564582154006420690959081707172326435875333470090316136267513285559073885375833099004198779384064096668167438824801184072425768145660366651784344265911590927843882723560054530050209892884560365930715341399977387133442913864411075683615488789337595131743164724086734021991031501162895407285867894244225540215356729798357198277253152233114815449067267166447079136738036029755773086981813128401024478178527742186954651940511193235924440055872606823456199487121762185196317764457518891142892168114287755820422070751931741449609088131857448444219235955617881110692405706896567841070649817206106426109132030119206881856335857824281815476242346573650827547495840839947075576866988078468102210096212903004300296980670486573912392619459502057479802585237682599355174594397494150294288118714465169636507277109860783254624578182248957753831930798973678422143333882066888021237927686194144846912254318234562555833399479135995574518559583639605968517399875097822195745921939199243074690749247068766371984379715678326279413587214125859145900337977018867333351810784743182902433876931382693035971199298923090912841722098083077729926504330541652107901793711492081498882531983727288768539187054141391677975640089297031371784176101582423646023640555954478969085777153417826742912472718000997492361801284888528656852221112920341178520682273642307715510697971750005493048896192033354470506934751844546138692724615607288717038583264622723494905963307331361460284606075769417041939151865803060326637833548906080600689367673939422528603985630875050953380198806514611097491466756746973805915921026572129100849641336327507551607718551411747898099634467455397812346748690744798141741476221998081193436705819921966474558324371533379977839631166958134981647012298477582215626588268314476948817869031302828989657369233592958946870677376036182331188890592807505280850755123477205654714915325022461376636481294716122703183764845126857255104484087796057417611935499907569527264875044870011192108422121599340449917643671230453437777730338565826441383691932204139585543267175449716365682751059521807883545200401453030556663851463401638097409111332015245060835469410294661529915645975561826413583245121761651137372475438708108135621221516130950456063817641866736771931240633708056458180374873229867451422981159307966692000106110375018769118267245708393013289533336177719545884559782275724527499162687399198860081409619917966613477051904295397177746497239946606641139940286252829591700242428545855410315553344508257814816271290890655542794798211959963095951360736809137803553276968007495171024357383307382004325728155151451430879140993823163601158937148321259827696238025080600070147585126565176081535525212362693021866425133074240589700824682969532636996752198442026030947307783413770191759213032363869614080572990966448908184026595089450235265441684073673229396093537152840770380692242092608757863395735728501346219759644804629313908188004984026863829362055731152793958576075231540120548163563178050912991893891463981799627612157088711339763884229104519040238859116010692414735844250414568290778562705524822579180193750103568406431198301015441325861468329304314215228159997043445417561297820512400541281914861833270128314229222561118779319665051141157190922433079457186803908684823005270314597238774321206014667172462975952647695437797065079872202310569923279609302303582042033851446290385664940974634918397302941469694914019333633170094126601008163735925326997041521709748167187723175342944208812998452155207724595036879154674017838030382548500695735334020217898960853257228771853138319016778532039393251631019972369850389450739146632247121300239822686458270695809306225055918924938678269123659386893580783773754567606089256212314640605748427500427572977284476411327840371908222772650353659711208691598684443672381932985221578138428580617024772860559288746140531173594517788006312709494189316063317016893371418779280079454792224644691562613629864746008003165954273952239400679877159026762024483753919290532173978175607498079169911942265789223532744134129751639087317949956327511064006284008411019443396364312344065351113402927315491798910549217363842465529025665096908190035166447731730268786950338030330289867946317536760939244537196799306452651830850527542369256737660893039644672703359035185552198420096658257057158079896891907158645287366347858706223811859321395403321241141232447244665154062202554314049141221380575768638464559008245483314864761016860145947162219770079552701757963561977490861811906131021124345532089641421247065192591250624962278445102739819835200633711416127888535729087814417313252140062777470968785414616611916194044804873529970741146481214658313743147420715832526593039016672219314900588990796443623027144966074375969356209751342233549962662184049559235112977732321654800354675617972099468237148779785776973913245287559726592293685809712424289897811956105367831486314427887730977706593714170228879271262498466259919903197180158180819465884006682432318652047684597846183104072737087774600624511241758752302710842639067436900639872495882165559655955672267659698698619055812359180025335859407738029585330420292178876668614165645114396877331296967070596643557291503932169927805694103120829478741086336657730628407084213048819969065456381814849078210389118100416595268495895025583862740432532344430322535246471069341847303266581584463835203128569166475357113624301705062593661488094647174894900674541153075536684411593973213289999767852658397513979867005299104430415374395567991652346086741078554724424638577452092261900450804981879605204524780269551570588589620566160523100438623290966745060529631391978289253829229181740990010932760613372565932243487982713732686293974822059509145211918022903494211828533921609685177992920210300938424403713360844954604453151964309382322719190581787989885938477003877640213787429011513111313171493454853232817044576806154813938792328726973376636006998692115466770004755894476163739463573102061291548785323877302622672534514584206173999997087368430051398986439606412735731428879884004949500619425246142871247995168910882151586225746580581498028506953500944775470672925180348427577642967385998346677609786228492974839027405612875786342660796826805548867095014701476843857211612574745148931488835929517440235293897413987935588361156116924623329864696947666950996220961006007205949351097927610867547522768095918606154074254130233076085624271126655217624467215189003672906956505135577631698759517299163605421011059332312583540766490523279442888428815012009770097827763021526893520814593706606823923295275550266242565136775969992788690070698204293102119154646305585771177534401385902129038472370320533622926020864712721980832816399895289884549869082188779093366329059233845478813739030756659452479939513202001344297920455209849213928466572715380970147649445926146854191806620280240957139737246089660325228464364684803060174081730662825996141353998033329720026194028815529237222184847752414350888908830369966338977693852413873559685794384903875217474847062519080287948428850212458732744309063446026026995653782425440398116871960816522019104775747834914765191293707948892099506881120168653886459770315376235918442073510002215163280197753201747167242263759847965544911027809529341986442136640237100931324362199875378910779046792939921605123540673851235926271514077522858522812138562373905343462057269124589455583547067561851140658339011350506085694201269159695102723153699988952005318359538936251773808027923357008450430343614633918084099783531155103371303101306523184629784312762854552493478150086028634622945458763754855205610998687519810269008986288454840860414577692741329612092823732634542676739886968557435586674517163637254889362116862600725973068148484852232292231675370574760721014789797450184827352665665320746051146631909129108812583639206428936440263543130339675667496843444919762210823693082988509827081488856352485911833256814929430075035226241368628796577279611827634166639583968416281692706454708815584354465875359770225517606621695641294342256016892771552335565994756122413362405279785302080893875767444583948980158687704209293493225829497443654897475310553593384753467473482170259012351141677871268149823804556886112069866153128522772779889743920200943585050249588169364368341543024145157498995678023063625586272904102855520041948767998438082906114970110784398362723841002740320337679250725962445502898562858149453067580918414017664543559368589167591955498218471840012592724466795813704841408785714464284667364197912344213345989645451883121929368439060505581179194172235221453241013367149680016949587059346425944146415420575969907000400859824164627741632946330225186238186948819910762012590594620631821765080768293119288436119177249575403674292270651696996162143600843311790697171229777378369178324568942473683690657336461692308520354982943830497820188816074319355480405994065474317758681184627387701058883615660250716919327269839451441632198659853404035307378709396749966113165473208808585040391523931540393845267839108144166320684830076643647098780257481560219882534521372554005361236366233866953851771246492757020012519946503044640613634576190903793521964526565744126960337130325968742926554340255079741665016810895345968533177246016813033343553496711564306937036123037071135820524167270767610978855219363138878959843642080052717627480473917689016624711425646673331860567608407379027670630143121511666922343017842170257407516893380441293418734067297579916839464196486308120376645228830263119961698178906350694301683543502980725693355939198637427276595449825352389570219126311902244478967268312339850417176353989952962892548050947243298690256342132186735494930239232924341104555424111154601637805578372419834780682284711029469874780138164665656995251428247257560982970323327870482215542250025569712165153619203560285996993395661586264846764513850687343512041765761256277906231327354345103310020251150591373197476013923935418716695774998027499182879522223140882415787235986966305085807921624590873509454802262819988935131163315458221364684741955648874906793353800593471724247358593030775562785369699623554367000892858092026417958974874640585130606181232501489804544758413104156840064194783341349826723725252621264588246566559848848070398430551199239156310636661745784451523803860420643075156802703782060922105214941594690009758215307885631302237709617956059146075505148247361001951508472379167598628517535818085626195497163068826421588462696219234942460584751756191396229288725071170078856037726188567841523628817218090731815611751522522834569017908645637463338524944186654082273313977274870431384250768948040773560965138344255099926474359275018585049675012252881669839202793831830934707494063739959218272302537956597039378662459295853657270417520086496404640550405388586945925826983622390263299830131505799469343886844828251251063425538478422669498408467373308589760591924761773470434032758193324602058374583219794524214686785221366412749515590212578347781843338032543994682487233050076763946629848669541301790087021129140635528693312842094532519703122938375393722282744857877423682730532376204959758328362821598032754717531218805554444352240186474395779317319848783428385140246481014645059863250771384074769419797546970258549150471117782859396099754946500169635502229045880688835392596464099857823494248241315569994617555812477582847348573041494599315419987531634221297410721635460341843985735309449847111703305485248690092762846753588369359403587039718101585291947067192777807777220735085388705450485969965401937229513177998368775540281402576081306988038977715989940939056387831452107667841520054434872758966775872491017091495874745411990230130818795211182506460657290637958704566974059187464759140683883206888566059748963467378100370861547794226199219142509714064146177919699401625813449951659966477566397611721071366566983076284910786417947408913345322407177690199113296135461808667440098160606028316046613224536127235577000523158085301845697274345274042256141188193143696336082266865016130988061695698614128165003212136566818254626394863734289620837120289672953723464327609636103714686194575045330889788980861437683870780065789898922813239713192093995611287180192862454350147164882394690771438674950859881010540033752420087058411866012400870236647912577418822145578084426441971467054498042074831644498511546253110226286558414680233775267157957431037853582603560116465764536257250410020547232642743107978966693378152629018734034483658447371708062897284212988859712677593723341563832667952454256036851409807515629720116409431651840898434896442416682728548800333739969091689234951804907394016794377218470165530698604867665911256672457206456359676463059503981661816457006073753682909202811844929085861051933562859092996265649170285749256569296378351984538292206144739637586407362441249198378149795146043628838822816056797219407688040714917883377466255038493879707783583858714551971069669304111731111645766378060194982178215321443819668127428821244727730448537537472038004166132890797724177215559253697173031523759713155068183313968916071389184517994811957293317754516795414624203422914090935825398083089100758270390339523906469823941759580169725033932039425184640299660224523286406262284423919399369985373234606882151243252894500002106354002484776760052181385443391825440253765738295786015012410838105920201878630239936089379303395432883482807784216965552424119779393883501762373038286724354478505229601705847442099405846974724764676561470339739891675267714796292311743579859879696642996917576679251094258725802414091789257227388718181905910220950790091426354826386265531288548748119498147575963263605087924766700208029002971512276346342862855407490762592507250597905814540589840074474436381870702343747320611019298523020850449994356192880267085911162085203370319108680118695882024919630610686013992958514129539101926988047411811978804524236457316124932388838912140239240907123996258370168994713159582250963123397257066413716277248207843442709555743404754068279908504127718733490199879594000615597418234498127699974886416885556141127519082434325894826817064507534529633508664669205510257587454967837127482030504376357925460017174744613639566690244858396075972712342349595863361123986106051014650619104192482050058242681686447990120096108886850409057503640438476143242904623006795679617053660641643120494671604378464530773099572501953063991631062055678534887402615464616114150903710053916044567916689879462214871178266650724305789569021983604783574567419358490204489466664405225780529334288435165773375093516367616096462802793968584082951817741999368186617268464033182511834593120299618553126342981095087994542492360298177611696189986155756959847331234745835967899473310680425535491727941443396636432291735530164399272947282546894133660636223905557018992884560512896796534377136758659100420637166954566376867061016587432714863348106933374083670290732959993588337401996466333070887954424175990964895105070097367381431730658772764821119170542835544104487707285959963391779908446259542404288936694230090899793570912891659893197286206732642488643383989309487992749390776435398570813646536461940634533050804207061763112945017036456206534234643951033314586211393008528632479481074574861146906514632129534699945113373944591406627954860829890485447215785496617451000893714020591074797050921058960818373845567252835050755210922102650183446568104363957901609736114954407401503774325969011315106733163626458420548531886642572544388690802174299668391848466508505164317363097147816499429302355223935985685152148679494895677704396786445257042345965155992327662886280114982788053995574108653783209647583114182284740971058105464771236913597032028310437779345922278090517012765600525668522390050759059202380825175113353393285188280115736111939928561685860638523576857908464348560448399097358809733419127842593431103939385730703739276094677052158302403174716806389258951962268322938228803174712298637113418378353939097157237189393776485288827250645156587077207363069656857984953627415565998353625992391538164169925217293045621403728736357693168172525078587137625011176008793433607351855655478443847213974094292160349513720963107349900899352284751217708362939061914857813983797451878156035222661257032664016355851143842823889645662101535812190738177617893291091235728627569674478506107308028133022190693795670196592686001544274618469403046151594677563665342714314783157649322360279880528751930094092014584991492980684869716899446793531148685414471768100811004753103536025782672289224106192369237706091910200368987859734922702359646607250728357467442275884421462267380363206127551016278367645417248050717110208906085953705116731130169290297935456218100130325615687420533919985214088071970435932774544223867923428810950375900735979387908377582206806520860555148725495721677860846645061259687603024541988818291756463725390741116252906324111861037218529953445132371671674678100541464593529857459452695252835312827371188678269720761123283854978246061819516280474408793583886479759538528252028284591493202775821909181640789050390938015874662769832547515616071578407399457043841468795151183583988307801635333143932738852912408956420270188035617983536543432417324550863967288809350563377214541851349956287117679624237897595071050238935694359001358333322337376562317592613995070627351992477730069673719512178855330913550422527694825426389095080941076748299264979399503987267389105700927206748624521202836005977915817959915698398995248337406325008906100552695670146311747967746760762073914438449787661381167451184623992249647241208627990441659517158687170824988845757222833406124006912324537238809847858056699277407154411914764864099149109971174034518783330257313209974864931273225609629321560832752338696938877327189177970013237010032261087516440289782696230393816478972655596163611781053984173540923302787441584383078982452776315408750244840055587701848202077024710684537270601642768647298335644678733796861788705273346869057585073401231683014411711647887615806510396312070363019291615712219569536463749476168861620746390028723701850135049026081794912454151075628011377752200925370388019032842073071856707506099471296696483672495042246732521902869458490543124804738108661148153608398477559602796848019051265580215054617750566530343697845041849298708534116149254332495564406579799777901768606290234666361110503800222786201275268167097436387665425987680323426722000732346914198490208822325135080547702173552421195894415712729068793724310676613253835470498330344272465753220608613147692991850050636298385197252839523325490827794681123820243370058318320408327267200314565554964145191520628571045335290700601543010913253986777384591053423339975150070418373480710836112637889301738633748604377926438792974955983015666230043307270052306652811257671971082014106440731472733907207255439270485074936638307806107705040058937634537696375876383583885168107866955799161599269574248840509415033529801191038770911485274636155108970611035659228308071967158166736020159119244851740536714626089540623013475905065013013119874782639265507853847213152508681405038079643352248823266730286165533510287356432234995795219057848474887203275925320114086874724023668971133249135489500452253603175406943293351169466425518155820353870782874849503409082303757783542635845574174738586113628015070985009334946743212474624884262124545916657623581428621926877449627668277736462817333327711918645400204225780687398513387183769952564144210155643141678267989569080543302571256690586831476239449526160435251198245750070816445003320260190953417180851155397477757557882273295789231153726338250233392908237746844693904537566920602675590968188003422237345255065563641218866518372040076484835467170674317075650200895518995783839771791093865852908418849325254165407566371899238060648068908852958749909266250625498415944784725853396208699789688355352946004200005401911435257741017539685429408036654353644860447689132871755113139499462388777858190506690756609332947451094356374609408793566156515220712875445438052637371132672041054521729856262020046205857018064112008190718405786123640758280617237859322840303928788586747175199206608567737674718411465459661255307539913891242054389891856124133146577009656767496129394598729399415419346744189803712173408258475215400447225309218056664058963926658340452223027404614224850477162257393277373723182207654074631009224159403398721235745197375526029341384867428517301776610947311893841237979543623585978873102042267160146758638785904052349652959383876006417594892275274071859011843192239975307618157807039518700320788493686125176077790380310204266741964404145501308370131083242383675765196283913069690099709872572147387545961734927734128839077659991086947310906342324334527117025476113921168844794962602448347643516960804069495505471587678029751286435595769560668030475777932663617043783302970117542296557405458088701771368063290326774228752853771768656404156273336728769706301788625000397486538926097585384292946275563757567061578622739532926946876840560497975251524137143401789838912363104290743572953740240578864168215131580202654597273036610177573016379376348447669841798824131827078733652924256419459225092536645201210764164069419558458406550958774635488736227066648263108630362962615729058240089935351230322996658051446432189061519000353267613970839741228484093592964694710588672251787356901270603116676896210548655651265333169693417480102155302619897335594685680054739997619701626251949469443725405742013092975317080272393120599283142664116158613761730501854845677545625890443871347014249270129411439406139579147778904764026029027352469367099447404235988520524147950982140522025090114815071602336008260020743070343360818712744659039914363196315453662067258215287116719036719147007976135265635569580705517671002013238840766678397574372793393303286994998752794345228904032517655314304056728457481592995479576242662745834187950138567079804823619351668748485204462793180423564572144440671966611362895225883724752084962210069223865956381695326145292129595321413121816224297907472898287214730414253963810217006123055696554538732852845365019448842967081757988975679167214200258852123203368557081080100163290558413329046509943402541896387105689617040792668970968640836776063912397059950722014114627826534714592859854590788620810922097202327585669937314353140290501792278137950621493284580188597321278531814425075188257878988369508819916989263221013042155235859715370472897190637193545090981217783971325120098545504180559848152927884906517332443275821434249662904901756558062781614122720826627236129590624952440781579414730325750451329296814206917679905324188996284257572644035925036229370506174325017627554398441958524848509687291154590824033503771180057804244560446322472049319336059664752374895683589926119614381211346959295679116755548012758396510447559920140348940781129328727911584043349079655308002396184658446932932847192733424373641586187827400554271510173121474083823948197305394457253173159654346429550890543494937640388165444320244267846430481237764980651125487713371272044552319736260664838811057250182218701106071432326772208062286758878228647234477797974745609595744049108681293160945781791745354658190330899204724994210800149888293149876968493411962222600315709185265957181447420085202346828021313698291520117227796772213697807454318366258516077501800361696476019469216763884959890642275921206758354659021024319498202394249924122889097655638027478602269194730566681167204302312268397072864095357700966401547872887881177440603057830229067720221945643102610106591937676407855681266523604398725224316946522654557228280365927760338925026815580701087554445806145816081401347342042214436539244584131967523350836834958015155767970788246187068520936656548664201696749559388164642259380130274542007809049001842506358873017906791506360631334662607167574410097866161293585287698407902378951127692836313154819117401085439596511678461309347847191499147393988246105746399759247741400780641547731615052792012759314928050244251296918822656228037288253335588304979748854615860369356213598495479336265928711350423950660802651469027821979405958773940736677321393894104614161570389971813836067987792819665535029793905972542737835382573091303713172822726008762575677284942812076785112576832862645483031886788817794230680371773676983460281138418042226159717637433448685990010358730367866554768569952842740561056633957085480550447458208822825880014590007916295737507486907381997805362731179922766673767484026536840589901646836168902170540211449457378184970868853744170908000237859656662500583763212958644666863599049778570255448044699741573183972230482358651525410786989835488411286156040684194296259143167885718306509793247352729933624624270128555746005847066810707519762924618836069706806466138044384032061360145472908294002451964894019708627093525686393106339169575482775416059887710626166924484136879773651810052255957207546264308870343785373153447332573353746079546594633807722388011654735585042882164556843971143388222473288137516443202080555720516684457164287954593330579544735298225144595907180348569896687413463330473611060628297566753628288312279038411468302636994948492890563938827350812736636052174334765912152452105051058296323306975390728732395211309289041426153940168294827786243245885312209217699470929889115908795269736027803916661804674251474769643218638656359902769487417740602055926709026364533476512493569545288624865871100155015013557320884158201235651502557007172725937859137705731926701836604868752350763601916605442298061018053326392725332467700918429779282021291245474888809850013478291998397492801874732612532093700901119532023863241190205190280627903967785651225305435478581863511902963555821012047689040967908623692408263237149398427960478599817516795795110644002034345175690987582193382758480669585461863533126902953275375092210274370295002514528269891392816930954130679595574961809087016387510447501875931910197979510198832615015570288940293544380218026566060262587204267426065452445480048180507977411535844124554956339077771319879942731034604737195001459674072419918466191684178463207313196504828050519559060002588678389676644529303716205277197423874740281326749264079062840511883538065319740534951594792352347013226048008879931575124747302896498239576623210439389199598895581937725777779723417881244540745357507685826533199482243769672414884403731108635542592085675645643319010882023170075986910164743588793770166163973898801466633505741615554849773832119254221717048081688045358099468689244971896121139257693576030347807873669577155694993760843374204280946038236508968055937634294499804603392041528375312795185993428915467431486265643068520610320272895794339923417258760124172180504577138547817283902891513820946777474746055020459645938283315695456870175803148565046772600856864271689055213016679048363439220338731766045515941165356622323433601957436052601486668908457104154392959094555440605327191339075362560187442711214602988305079693357385774830480245307042435185134712946441554375985173235507500822711306563609758619072880156636133809609404632075380384341775258081019023204014428860631794862120507581668302573397648678226359647691738430951919575755587316736516738101259283967495909684069678246157931573966197073032653125280606423032713052119268492307649317366087604378386495832663965521013242743936127791113971325300524598619876657442393589357672756868062442008368577242885933880058560608725640675764996067096737865036464633918851010922647883976638401013174673168855060510084723108932424799937714407621129598792565186120419678499211052331788492690926345675673542873047555680803010923264631147449779787373164351870796297238818378564953889877952544329222756886143973449621367013867431314808250969704617266823665308245761728758720856320130605312595136077624916303654202069161822474938490903090649766887062227540681605591946721452455879558067610985442999777513606704064568664444801961395579060450902737599361262182591563762798643562813946976954393165601167261068239623535558561005056128604750390248765788712164961183080991280823938134276585962466536686686239339083742660659343979926044560672520204403737649595062085923401633931459767252795682186890255493741547989242854846890007316534650552177583552994155607668654607189050333484168689345551809775469690581524278791831229051190061493616734651626112316955034024162427597849250702558627306552248349607464397072928580936441604802211803767469232854594400408962526814516222126786819355914834164462264342385378134074824601818059661673783815690328585995629416643650931191377989500185107329711708277693348041634598530405415937920032855062963124742064306876179266784498099386672790697366013710965280862370206594903078042858878419921931829386595287214791985390765428745660989048916053480331112311724492305613419618169711336605861585134665927189378402350782390253173219100659062631627612322910747874027419163633499214578516969715373457143374446288129505845668031639935317993587754224271700791920895337724108576636289438297983786950404098166031339630926514338227386420677341375475725914678425043176589946365611699955311910515114823272043422136047368371750850699171941535147213840243304319648508891241426995423625551954476428402036636060346992172137295207712446667985921506989654846175390345865316438156710769066358757369550033548531220640822908241692154693243373220282411184015631728221837303206331339637612320317681017996819026246546596259747326134127316688139276532779563356108824740559387057189958137569559659836094353731531137340646013240844670968667554923304775359893523150380377970938653782515727420589573897661470465413342116720948099569266615543213234449771009194005117046927616111623866022921706890201359767171271633017644873075061435031187551561082462616546797413786754495503212598750090880951885245962223406009858020507459176861296416620437165097013530479120346515227780300072294702819513075286383812131430896759181453587934940976299299951499214570721187918589201510672040928539256812075053772550579565548186717810094350455883519223553964915811794248651894265950163269937640664270064777038052255147610276029426407184546378609598174758647497970436643083297505510297808120582872029137762347348573175908210827147781039098443316022631098009038506589060060721844803642874037418055153880305319714891025286973417882039726637191716347279199123572419318699417592303394922332449414345648836741364756570206975104996524340316673685807151591464250407955933438589714185874237486202541886455696491069576301881601390773312439131197581941620456639946168956149639560169836936433110270467371907916982149742245371158288621973213373431950681520732440251586115115419121938666416588003135944069992432811513641002411845046761987854280478273496240875221389272299155386336008557622920553851226237578215655564735406197652770183383603924159298604454451977249984041416251259618094690847069196412595519316182586022481063786563868280114696120309844420080468353432114328005389926923265388356509702592661756784894101430229820268033491585668433744597593760531542728349301234917298883522941304441455217018797519861947671989546408280737921606810720978678794206928115423422489493392752555127313561167732072217319198046672271783098125749463807961494253413433543670724443104494633106277678896094355371339172616105768300197539762114536834842580296751525598031476658711357622173995636400275685411799904402157880061368288125012066307049727060210709541582947830487483390195262190584551021695164923512193767581528270227560440172316080678642231284525161844310897224796217804037116481417635744246648282531598506658805594406830037739573644729896291117100875387562026147017366146664077477299979865511422120895037721298777621359418814903850938635056124899371137393727713305482376540867957776913785674596846826735056851411224655821654680623739252364200294940925464965363380927543781510955058074116967508592952124733572379945054874039403910092741214445812160628023651431670429102959534631823300790881015648562913184309589509776430698472599300167770638053083562388770248621389635943103759233516777511800810349249465073724539014877604655497964835243671302738713907207530604757813483369919878923102466949607804208286498366857097126076976788712527369571706425763617798454704704236062926466601781941966092071959914716562052699551304211182270124228057666282362445356071303037319385186493360123996540906793464966127860689873231366247182406321823352020344964427621484233606720014383583357669262503792219782167317036203986545154969418948826482069123457509459559149993081001096448575085588022783687712724204690915854101444915105816176396884228976737672305419361118293386974068915826845197751030451261353627499782379301006969572087937469856395001479549003602269219075788276803445462538199817281815740755873720606214686028941012402068512407905210824642919044896015158185246283960667962796525344294824517783335681710130215504511891917494892087266413868375788751074775457966786195834559101806539424911705598114884146497398828859716001733769972219242013017470515174738826742894102796805018087988143243433532904575009883261332546829408570688228078913205605927792721559079791325101865631576028365310532125463678746107723855751071978599747238491541145395829163558988938863467947569380673824757963516312542833919534747245126646785246122146548819915449976714201742986319313193696794611370593265847267540837130980477033899935099136034480009458196222386394017174077712338999652758402214848137908016523671063640633391475180682991053649319781467451375198327151925353560893989397690524162515587704819433986997572953302404700123723136995395237920450990211810962208902948452882643314631871809088074444323618018815919229345394346552027606064047702494590999972566211289750170902276420852054595356804973395099405223973492348545573296544270304462048062101093613050985652450752138549754260120828975807630467603535419265401169661681098831525227628681226091778385304313489506399073080518215033969700452090360478319309253138365142426664617513179281696251860680719581333570138222963052108231423291885966987840029464324623174252034474610208788641858937978955881483721536406859182943987716398392596858180617546998904376854294217408321702734743803473243418033708399427633406738589195022155208050561480034448923803992603110720768013892733026127405859149611534139412337629191074498816920800669486259878113355422774766167406024654407608644561988212590868163492670374071938526772580389499030468999799542174690497848500424630137218793244982082983577246916752298483422495589130984114086725304439717151250775192341379771428855833618903502549441473520479773065814065886815717177404265556310771263816638721663897654367818582317732681022239219390491260940305878375328527053090196591552765950296171515278921751973605132323451126244470760454661391071599967473987006330951225763044848750726245386923095702398394979911297679182381059527078766585871081290212740058745854309259167649262253937939434081522631462429611091503014670994274702058275539004699750749642959048350343950055185359718691862086751742497699178614232612629771511420902114317261686386920962699678087733973962564522041372230048081565015063859514363606726868698868609607154663524476458570588201156718323872679115195799048248847708745421960469985569023657558709808767296659007421635329237288166466651187928663409422147462701655820076201566201501313458751723621538943512179004523820125429095586457949051921785454681452727140055133884091130771154131583395896435299660060806073808311396549341379316056209989636178544886507065461072487275072486058875918196724417411038003489914929134715347395160698852201041911559557991592752474900035266817241674104378952231340248162370102674993486989345764172979993261662985666415182328679135872841660216796060160283187202290605495595348392117392033282741179580616657605506718662248291520352415820875353085661540907544394650319504741714586586511781398108162358276164164535373213521030588934091542324732131574340365548304307259443758332522421015083221582314976024763451044909768125418986872324629189156770197360866986702991646507024584044530850558667816861284598224592665505171870521344837944985802687437571755455846009287674356429768339827861654342461091032448140666784052664657295148652749247977172881764160283427957563632516736112019961561177078492393582918250953171462053523267591994774019957531980275312229403035240236392707094020280312917252068731707783020320850587189004847803860658163018276986323451782004022055684245296939777082229957798585643835001290316846776892443249352732619673534964550996726806139411723792850255122409753787654852467467061979955817117416446987896215850470128208702830587746217411544392821735995818469582624383779814849356288768703470820120672631085232760524588870701230962078258051527614268905779006860528313422063582523852161138788730986620380006821605582890454567799016986761342041128343819580721649636235838840616756724679611424750583176860416348451578238695914574327305417781656100066632859260584478455327168842611527730487663244800837244631789526173267506216158038261444283077535489882607663891725233783040550182610283813065161524374039639987320983024573601501325319057211130959060072746939842495795047558707672600533900310539517385181641200523008338938452025816605912298347792186949649018228634890776330081874199200542573673416073108971701524339837716145621578383986014223555662346424914507411312906218878870801542228968301385029039069264341534221400673195198161163025737066218879529757567299617173641657844825937482518177480354825274457410944480646084961649934407905576737991060769253921977246686109054643299062730134803506668186386751706574116206352551692801226839548370604174611521397359415835594606286666276721852046690834391099799491824978653008227812174308507859936552253917723485763712539649007348319320403474436553493361132367362875215942295833248747795126890424861215811658927525550780427710913255627597691172990393685588709826658682082222397393234809137475022688305437098741200478141583920125721961871687967030883384495019214187462637724228994442386729867103233331645304682766007327174532894273816890317052806965063181288855403623301563805750771502397644469556829273038363152893274191088903801385671532344137581754913225599449853105503482914354030688363576367466467769364172989078248100136283036209518533991385514616431238742825266760705351244755333412340563571771947620261435540107980373275868271915589448146904430448521655738909379471363424628961239832624063839787465889787677831463000736674195844828926445853437878250291821873739212031844820570534511903266273205131118317639087398860959260150688382744629000530928550856834024839390079367834749247306610633977816287572519244831910487520695717805292593249822693208229481456018966882364669033932657143001693105122836699475548578546704970687083674046808014096903677164612200316363366735264574306633104806088901781728430450686937661556960699974835128369272217497329859339081038857099548976178927384389783100828594963031650710043805257569851761548550161672954052634937658204309072871915182502631264803883869982186978175778265416787265820904642312231651273579224882698951586333535342918170083345436025402497326171111756652003629740043737052862005837841430545312866694294540265219130197789409714649110940272266122466236204663414975956933288171216593268127819136463065958380024547185096288817323365275468690617945997367972554743457844124266729428630850670722084839966580998395022529257282275238560438496155671781991994926799706109359055635358242564424980007812843565434331059569514226915590593788299601886661751764907163354350588279779726262235522186006633455725469384243627943361548703049727924386063707186727199870691576909894704801599295299738038821410324393810599198726076560852667432507391566943853743797541615956864629540873871047428472672093911560669348219383699448943437375218468880220096405338792411662773752876807368986185603716645042332198377091712468745138940496503761407320134302755055339590333592888023024024563142052387508242863230140861380769618828317961533350877215744872800602064042710233103646739931872418977815192568342520346816405455783792347584376500736869701328655886856393668712369760604434137015428840991878421355809739887845708956348215183019776750233164429814136650248946850769545404665515584415832574552865596153867152807932568068338044015021375092753214378415374532483083496547399716733622935916297292820848119183590303894833314249090081205914954187753700536512319669312225264915750003124407686827553865007793023764421783745134492084861980167170381153637801761273570919446604898035418694396434052041000542800808676802207544028949028749333759903636674415910342673245656350596523472945783336996230203726174951410668594780283200690217784780751903651960935978549886458466833502841386935560785261474076972811826386810604951069623976855598839580386758532836524551042615841217116619254697054891097396567394270530273725979966865901647736910360133851301902164134849439286016837365663036892674149735596803701125749661117292682698885801530237808360916738104878327840506108789302876990607336173540349095525890905000191199267176549229363133082929330442106236826076705895443733555025736643330391518615838961586906841912295096889454538280256921797334030606132902277943106246341059134451410965240293631310035466881767560422485698220536555976800651768626209896466462695097275338421710040969773550338914193076619561678168327047856841580485524431716865979226897721972096205886403371378564477706051680158543034744401095230645032682410019893593479877142494608622482933016755666395253940905958913390935424187843809073807714408139663841037943819027222321080166916810373820216475201241775411654105080487326685651507643110388114503229066429397454572857210605248997431260452893446846371083059428363048520659100743453105594679704495975200478500368114004352451410180053225634803452293509039983006557921352505090930498605793860619624855070860706445425718889537951173508380586403150947598580657153047627857300314888773132068844443355982050571727949875586668350629934319882669575836544440493893948170505318163981523756868961606032988882489373147434627611902742408512115028851938868284985650156039297030417321313162190923489417227243444943318611969232803969535937658639901774342236288797296940818490480380237665476004163467433145323582371865379830215338250473549439213258559204760733300759459061260424781455017690928560369788688024248812821935506815653147173783436133339035492499217005997539229988117514684049623636574090322365950783807636148183687594886491125538835767496382949100398771557856108068897197418867121764717861361238412088438980251504367348536220985056491850525945135422221386055379617235215051980925797775961171552350165065813894976757112284981524163390908765439867173329444446458708462429155789795801117540952472645365984312190082985300123490139605511417286023557729722893890650275493489959131166548762937780119001259009439438970265793278543604630079630935483296537285300297004571179309147226474342753902642325008188974924122222630645443701863719631827770737361502172522992183760128136227454882690549939951837272370769298214091440743307426640232184569561777967278693807149799975575331807434829329812886105767836281027866279393875204032815445412421610270593065757574102521400021430346693309504787156426555815301785437644815532765208771711388187246562266650986672909972124677879855425745824330135843485366924705535063770666917776908871611084434667150159949418474277394816739974271103820880034805361479126111065836785659777774977670614098046003322002425792868417029455419634421271443280658431100489924632554704761291699119070125798757967666884560474077138718314706052055926024886391747487902535505490062667874561461941902076560344385555114282520659715872073336044162369523221368042604957909787963302499096113992038107688982623523271958833773406828703746565163105981105842893246599773657959946207624530500662640358419767504712359793597113732888280416414650549343614803106050654457273497849381136422624884647062696300998533139508844168585576045577067416601407452226214448053802471587712598626614774894702991717467859444025189706017024594489822675036451407075370898854575489347475424448300771195220760417130498203961567534718469100229153242695375514237590106642843888505532885397908598698160778554726215023941179300015370212376288574449541582945997130751916780926755148434153597945917015681978457461287083032374267153419152402769592814681760710167953132457524582622156874083274800478706780990632027931483761012861061340392847291409749891418867151717112901470696274537880503196905936077859262324248558387801765464922458871805096379183400951920012680507158887979827829483310187320043591781883989114732499082913925085557741828980572771723536215447650791413674001596472154987469636603131007795240056431528208373819576107262089503750543188907471654504974245821940346873445838802374450564430946261951031165426648089111686042928053079831337173457479004070232567181804225909634134393190054097570349658821172412768642093942834615314714902705658094008186540316072710142536059230739781453509924212997803954266698803967843447538885680860389897561066141957044997302741108017068752856153706530423113840694845509871509378093397902443979664960739625657051795880576483863913010591697635074042734037617921295858811166938552269170124784274346277533083550139731928817195930290157174686694545995928593729939977846010563050605144473250379780286232048843902568823329337650511814615023505942187507506932290581072062585364600853329734031067009796128258354135190497930359717144639639323223208252240817070455264714630115455898918745460821356956982556750120896424506011454105648736202153246942743951689667908463450084698405914555331921937759497435578667178116171542526204383043203733547306058957138770094575763254799208689851517989074558726190287091886225954360526189447589208305113558252555606648417406336490746908306579133748339254085249524685209324003499755985285264158498362815153920404679636826018344398352714029970637670004518233826940350075519025023829580089290548884445443767820370611367961281656854473287924429470010887205179989221108851520295356736568040610095932214064808656837417798618788646914855560565837373796885136897430572697556054005570072899175254080620301343848886801134902235909748573118551226360432031154140197603077750588867954713686656420170843606102667273149888595439744948075478455810018273193163248841280448872229695679855015464855780486736535227902836997918084867230649622210045270857683350352120696848018171376163299756173842516034047253710005635164034216249202717966824926458930960182645026923102266570541641475347203415549137704215057644528078090352483936210930310228809623848687792314524084163727118095305889004068843766781431498914299893621278545260143140439048499388015563360595131167318911327657778813646907084703686341119632306388650748085212568284225785252403086993703255692093960818587414181230484153204049202349890027324475930203237947907764447523984455146730440321096898524496196714343396489589319055233849818852746844924836314634250006421630628686858848274533186699267347306427350363640028560222189663501142918263431997416325337236879855345111125305526239104082639970934508146672521381105913047210052428189886265331694693319516752962093067522915907159998984617928805926200084863813881128094405648802106048865855191846702365421761783505181721320764619715568376168842855890972407130518776819764840992929984019232464661763834269707811453551722715023715849203517936817522394857812034194748102789940412779756055493691252522657539636592433154730695581276835750417083868843732028329494985903532183737997466455256844968683294286372408608207355305031791101810273768933330342549798665067002937348748484047362492255092527523699887851946626804071648160078404463851055486265385660471907256786655890927245004810846316449807006807676532339802906599038762152646486686082015263757316044110776944644163511024559016349005468681619392058639633944598120530415192347525242798484386521087634935336562303266389523284632119894357509659372127587403389421815230290198803323251958766768984988264202016964784711175159439736224553268760244496460758876901301487963876815261721435488602797999583380507028449575949665315061117194591153787418599505246576673359391877078152500255684675899405400394670754618973775705298062658835360561171010843415551815724320094185334506270691763808628707378238695869805760005749521191451741664725765084671801326508423422828102252196711361558185833888741556992123979692271988514737852522597908593373354920727572264628947096088116503360470205219481508022180785782578773713123995978734898961753560539764434066622683927816579438213994200186168519516088983223576023909484829874863503873821292397331630074241830181548823289888512075203180101798192675056510068225595357219355883221434333956809320392616533570608321482945751048806173389968000877029603913129050523926785407964143238399967278809492499767400843478888827014867542763719034680643349233272849402809687301877900161099472818168759291903158026400098269967967922393022684606063580088749497060895154311314146899315358878795343966646722969672146861867605879121553529236853108986106821238099897152235975802056998027968976214910787935891461304363270864024698489195507072290380260285643963419839501407141042714097520317330805676894061900279101693974458153904150128104921442571533445139239707744571554843567430961238203111003084683861815488627569339818601404722935039857403838124588604596425225521786219665023434582631122271149115948872522907981865286854611295051488094453061347174195283827613380242904727215389323999573349056182338073808264093987091253655841603107470302872308607863538111665286343582023633514903951635797666432328676900054694224607967390622163482435340974452507576511937641267841632118785790023277272761338613110363940750259808061043625030630047683530308771179416121497566499827384071285049513269413219255048913703308910781048203213552128823613415528895318641566427561924625487790961006741966706130582315884686152229343605282556027290571059994746754373548054375018327007662569474586892433408673211101696215814544398738801550537368287923797464936950220264787840905815348072132210628987836509257009265986457656408206457110577376312221874436403497761342149672415975921598660426332165802778507832407490542587679361036876110611921485510998634967227392326965499718177740670433768434630959924572538265907568522172676235705773609885588820720406930954409836387449219249967839008663329648294218394147315790426888422085376575540369442227089588907469057803834703518129667271348482826197265640314788034390799129598421435779253871068685270945004510855482444390466860785814782928871396414282991797226891647772262682506907130891641484027964060227445563613584343739453431449191607261737220735724555367033751355405969743137661657122194865297609871859082594883944739339839638456837691663505892591336816639067262635431404801058646273325753810659140661071500237328053902135228505193853268114671712743717352328138635740198711963093935888288530930449107711103109127588755236519821532403873018721014417015526992163282588919191088325447268331687788109713906421680493272705744758869489817129123287735005922995152939418847419151327085678487122198862806348766120903072022520250234687740792748236431999961983199176464766323962431350443058167281560542734514114885670937555092434066631408942963548572178618452503741139586918472813782041342698933086343135465310556135475392418111901546392583187432707889280668965784834751964549351625978123268891991378395968003185445329799189278686378213094902483364185670584537596117358074530761382293565688377075118063994766927739436976846903746404881420828742286715893160584250122638640705945225129272048583652969376458767069025422959051678130467275976042765587086900527660953633123013537771854032270787977099525612942191691390587552393091323571921951795584691571156140670880575413217211204962098539033616966578221299813287573493979984606888840106435206475818437122336399774557882813570147786318315059026825651307794115012328675444809588635521730918839153565233348449350398741690709426387739999276852627320876567119960141921626069499305415231416521964192106759874181753885005621348725216793403062377861801635729166939014414477896953361861432796878253803738257835407217512587241423335212338917758690470356279954646712439768096473418723942358879396390424532955310159147297133576072082800432659299912899603302810293808730670851962243818833717509709304645311322526533388378117658249652000278489378304265071019214250318291828564634114822250127012147495886312277686890715368865620334085510086774668815443083699017880556426057657698414942629508101433142925985762587781005760254473217191873963168688898975464413133911069441234697393286367299038017232423427889386795598601036596090609934499010386597041437891372911977600948292277009029811567320034872682392897595098932131935784213116863689120816235089651858165141202454697636063069153449073841213245214511065957295593323215935318726572777493708445108136044952673205087181676798386999717865792080689767225483993702473454295476110979987551872114694652973560051929554326038952651251104270929328172536628765724535386215733866575656868133974141008933231500816208266022649036791950517293799809808501349278669846646436932785143634748181490218682323984515842287961135684644390655645066390127367119976584070245327877443107165878751492545685473151506075010236378395880483160169574597702872730626673502782941872985718269335025745044191329135164630236332414772258450207737272672567211044438628474392697061259341023139920833044418145112425500582080103776388169553653557890927233509315277330500036518402880280470951200241549302378167928714641655255050567885192087145778452700900813643037479310879545700071227022453999159752234774579448544943442001464603266265070749709748914329537015494491181641856204060873232467143984994561714968123632554353600971537705431925290769097869693158326730561150791730590622303502579792183624397940312843457343389462882992578076456353063924117845249845466581211734736134959017206787550850519685752103553210333195894499440111867111134488530782885811099577434881712487899931074276082252274745118603228576176296031898916407325918219708216028065724087651427506439701541088398178421686810372813678430118790794457298812701050849849527257527437561878469897915315008865599991211651559920299740539871654814950895659649595415439706111903438206009961335104089874374411659583674649997506714729483145588558532768357424303828938673230673352748917773245821142264243225091403002915292315520688672784811703601837058568453514779207436587893517130491940166919608506920012160680518082726366694891373077083169626271640993851619019713065870536494148493222224401254871751269234609903719680729544565564018883683563663970162360464233237022750268686001813595762071942668283136650269318301823638544705210998889828737469543687153135457570776607421388064282113064190183283195822307704520070212718737872006458864566699345230692918688934505310361500001563114717124823895828197073634440864691958428141390837330967847967895696258395256678480991053794454408794721165342280843943009109888212782033730066352106645915645899236239214470672546146899262057585264929230223864896603970776047229250203968931096496609016270141692730139948431096912836968321085207414909053386095083597288400986029753407626162014681439024672346297637516669916269994033706849219648564548894163832693789443610033397766989721880467818688815527367846375351476228166708033917278045017956433312737529034060522563732094544508914099419189915278722465932514758064158446006469566406191736107590164518597866269376531058504521582230411944295263331222856228498410554651380964419085316618555190783577667531037543630250067491549779754060302489825846749442480236713460497763081407159200943976521126586353002582269309998358755565573681776926382407388658511732204119821038965471592604066833765314978718539850534535534065250820793260630461138828699734890705915048827942309456267075407426417597215450010165314802135874426992021655940936764338204250919528637496024654955117256173904698671712865606560743275580880469692855493140995454009744197447802432818968411407465106775283308298708332307830948353882556670900706148664883125189017944456376232900646483670091535077615169918102191047080791524776205315927033809520015923745694029421973127660296663630755278998552531036586346286668221271203218225945170678082718643531377388788897471110711045438296377322240736555348860297124067950301088537304079565495289983641001225153182690258950172922411089214258956693930122981347972575692821686643389741512166774691454057891103921135690313948132337437187480106620985092890318486517867692006318238864517164463741841977923519159524403738100505730021349066929741397204784299589815777497172004443083213090327182555728877766846591493899911538988969069989737708264206529768281392000568120299870626856871879908068488838977732552655144118303372144847257995378379363734212172198792092165189122359985850823982175182244664402962124731194009128859428778102090286683279768722946141899337462643801812244255858850707701974965065229589923847126309967421750188525297459024411010724689171261982131328720214304900661985872600690373623063138554539009797129894340108168972962016559600209583117430642025248325011220688177251028507492254803480814496336677286470647532645170010207068059609773920758186309356111477122315889323104040460517570329497538866335661857040518354149109410985235923300939363237080560166947220820960092658811681226859219214246783932769930791641530878718462415375737609793292042836863419506662437746060303954415948707835384878460045698390394725767923574167012469115648549860262632376193555402333198222339678421790756064873201430469525874601345285107963739707422244471542050888100051208313177594591790253938529485442624951934171814559554800556582298340987839103044723931392902257626747435093672655030569730102740389860461545358597195469011566601618735856319218519171193174324485238702644157753752834740573564518103756611840159688380971578783358785354473104774509820167145308524629161667801886216035930243353842165044018138952526386676002592200483769115464571931335339162106402836218636072855094925953664320536864688307485409392557616939616422403507467359529638763130227249395991921173768276629184908197705422722027802291720578534820525164405370416823247951847077518835043885284029101226358561575656944037279407556520882628845982305193054857373412587165577193299759270235524389368340532428803853175385418145267609773070218257450754450381797362269477834673947806706048929273083455690294242114542708826969970701122061222436786556029129807226091070301689730733392465150728034603669475076896997809180093145612115684541806995434602758197331548742223442062251738845053167948324279023824682902687488381650266612108553178034034804692081627219288733353904631384819252382119720391704006190399371162536986376292682757727165136303880861542892015709094572152498422861199796217198171592655928041529201594934119404686161353127090846652008613335893580033234564950164797186777091466905921798770373252730964288002580814108977165235261598880258022256727277328466274621752742904823434109168890923888524716915472232680514666184080284366236141089956876242311713748360642846986706065260628511637289380463769918234593415799243007339728664973667738834540932122154509473116749675769017828622526112096921744869305892472642481899079025796577491961096532103212570050260471609124282882397246272452043658707978621908452203630089867865640144159726891985852834095034724894411814893025773523687912213901244191052616804348373530670002764666453805293444361957302952692416374301038987179722476789263480385886489385879963578673289224988854470268981797390216178358457613219531386146816101969875008219615905751668507162982205348732653259472289728527739619649329123718360192801494380792667736258031580542586352764120412667260306123058784305026544632994120245280063611912359075469405204390209229378272763249254674971928739719860911520461894661712293746929504524987811734491522075155856916679525112337763896547562789809253002392608824915497176779480007614328143415772692689495364882441590139011763815329252602149902406304899591919522553218895822493239376506089373619611139029104841895372896891637007742153484600827992560797311911627787279668638863357870698916987360770428612069500946146712162953902479053477758884141507470203798016626741644880473922760976472087933077889807036212806923766706305874734372934511714457021155443930408561066787810017320735442586407572612987945287819561340134498468177360793742008441201478500469652814462544716027135694605695730991997928363163187099740516816254429473946124994324593174593490948718675119248217486693144286994923176100319772947340319137631905172211134416303253604266898704339305321062396299291408211255880729646262736902068060993529922880452627907817185516131709616134784642390077357372026650206020860593441771571049347757738214786543590008659596417202671293233022122527112248134407154134929152226510400389394730198901315141423140372971655648932885756909018608947262588472188380096130820380855646325765830903637874438702099821011002178522663690274297447400927088778790272240943531420853271861717716315184210214508145656357680992108755368528089191797910869725909062340991604348947637135341048916002232856397872613925024890527976871982224725918655640990522570983571659211283140008574668356523953327612393679978223228893763188478260115280416888685119719009614974923477211696509672921678626660344498965360081693355069320115100490202479309745588820439443115533894930972380209436077714627838915055540073495731618276290982031382496154056232510631805420622304827416782182500902412787157123186257071333763235810739383153144973205936565922999254765959838540659247749470436347993909537389026439370066567455628205201046469488549814355881494625191829529129639210113666890158172043228269464137224350330104284751274100365511183410142035585217819976844656525634515619177283078114641231937018923528809758089566424741132306516090790527730569339912742778118142564709874744118505294435661737006208398224506414532185719557916257522320944673381822510967650872623070825726313889454790691299002388148239165528803543303290629584237572249298937961641085042057347513291370557101070415439767736375448930814932371129542133234187248972003423864241476788143716804903519349230345625927567605728310262642773758238398277615414898920959986912687875017659352676910739831713062801356496504529812749360692899454169116982490668718687406310725712426205602166439895028963967100356861818876420713642997603893036379616166359047337452530005549877176692431143808106247749457439605203599655660551839293621276257921920152678131558776948455199238458291385843251401646584840242782929899381335396913060326104609206394710261320427151320273208385895409912230449755782579942594955735957054715435762746589058114270660375717503068715902766889463357141319753860663383787046423741457884371372243524859248979360340759580768053182983888270636735081728835396832177250722677270945209773413897512724178740565893306940413463440599817531768804920196715699946279712076964254040997719166708412093047139828288448153387545761359725065771629307122391492221648549387902669484591258849248130508133056096799795989918143432454244289954326706956902562688496916765619257226592136257708138048263962741185921876403832545828656580574034647614048199937972268409664876716661249062068186468114602882671582186073168061962402799610436145480731957045770874101275053667767141094563393621696293346061951611119604351683510273601067002991347846187017152416823293459852905259656647128305843738861215510715526430733700692563041291349916226642177784716929483167796332719216333607298969634264466397344352863545270585115178219131703679712177259915937021935673224415406537642450109320904657481957313888426675863806534745082929879836553322505286701575636570263245268490838308595361900123617882788725328266972846669121775553899547205862000053885347058438313424150205685803003739271860682720666110237065109966022718317538770837610840785287049333316810510750618718456077859229993180094590969690190738342454418727238014965812182854402792025653369146949044538891481015127102051305818635085920242993319110485284108052196604059510843854484277104902702496591982857438709182303669633680041756182227813683886607181321905710225173159152582006762491282018038381824631602974898696728391307003644326229580488795784122399652014556399620445453076351214868330354645459750142574516678085862392845275543200912953780712958433316277784183268073750302145974375598457621777056856469463897755303730384512947654545719623334437609512966045896854861698892624160529262293836112839716932060027534251633564217485738270255348495815726368048637430727624694065827856618896060137389069329854501147029998586764189441504752350596047552270913032803740890041433265003565167173959252956563272289779465046618010814211375740563440528023125400806498340258750302436658333065445177834463799859499809697425273533945835896674642454869419349613949900907291578734073663309260801225632745736039251437849589964558151598534877697683858775694479995241408732574687906048896309233902848725513339168214322824642876993007531521545792610246224903632870953016670085803381697508059494819527694252712446424459557920737695694413511533610381659519824862287879044241915601159873506996906037661900451335912098696462498638934046640058609376176073339536110230832725535213556649417717009097754088429281487009651285479148397321809324504267421651067120307008091313792800291455304989957307265128179011606846307964360378886935511746283935610686014803279393922328219997964114882190144046471030261131033923290405715923445737700883472695659134077643871739432677342715568881742578318519466032624992868691359889826511509867762008720095349914837492298572345749353325497848422375438976502684988032782655131235501999874515508216002405517406605234382264961728992854658318873181737521332188861027229226308168283291456854045160313850742498242744732039796348141294289317757393668139455794369221383826196164005360039903324961812001020280549908871423809029929878176149459148205308772109709677021672623754441845565913256801032234120117005825172501584586710611975344922593823956005846902682795431899120923318523259270067003305985763658427109830987593291582201512590496638204145577770565608059971103150793129173198156633425857894656825513667616094602291926920595781858190158277628466050003350715494125162553180123327934130608681744331681465739193114250782828147980672469099370494782837200270474593155304416608695390469342116934449795156514190410219153979737085961809033254274228390300852222901663018977383590870165964877691252249264810097680857661516278092945744797973607979488806941082185149154562210496446985411386980420940802721376605740181766933967628519745851554305689554854296495719232034583274536761009715112690689397344722093209877189462670748213079546098833666853834366243647220489876840292254725633852312932645563400861644225840496754098752172265044096537933199235800014944967861176142936954647725330303879780706148634743483362986808066184589766494605605660422983797194212433993952741563911925500803574400245596261969532350421011496112759358330126635025163327711564686772092638310577560977012005957640234612204721766854873053777172404384806060490192412836688828642309141470733802247235026569944693878808379332042797503701761282412090467934691327876302577891037951617885207092401431342290012671672302933490295236786871228858878094423595504709384036487663516507903165723805292055796712429366412746376743071120567414301540508423961892540609825058987641417736493284920960636184419415652156663711986548555266663907612837611603599454119296637256260209474025771706231412845459145243365899196776837755538747786333438322006289608455759550152500247989368229609328065674755066552140523402962560922346068459994129545717663268629902079340584699353741565910335857509128268636298062021468288144850743572195542505141640480245071328881623643125938289599247165088445578218409335160186047748446627524468184550729781581171458584062448872681420064768165804894675480512294380782251412840581557647485044490265204764997059187478345007735602214920706728679777226597095244952326866696650760797954379570461494421028287469373069755877093913781299582389244624340816681403481081862096294231275446081350299423652645647572541535961940698667887826140462866408805307031345774204806460744089296737350790560428145771648532152589388810797392329081451359749476136029285580232179858860177811569416709841145431521534614819674938529072221324447305312187281286545755803270637936142005090592420018208127330874991087399147530604702849103533299921162224681318712600588094201481028539224014779737478432239473489611137502923749794310298385148091253609299806795342053395321522095617173118961840312695070003748867960917107107702570675322801717390559262769869747993895900391848857495717818322896510072074966628273661838279357948454836451861260508951896962344463557311946522862027265633497437752213000205625789446389324309224385631225022944422253711409717494710339212222634600086552090139432846939451445942304586485856428912765314602456239522528037501721514792423135703905082201575998805612024303556244181560450881861190942131575247694406492805495434087239931921393825401587622380008282889852400085266397270614687084050286237727492116715997559122579584794603229582165976834235162259850740056308905488561350052271335242762629321115831446877190475595541114509747657181745974044909320562712024981037832022581317868018722550210231828162357809335641479279850193329072011486303421326605757413800907126658176206520951646460841409387803129363649271794680940778496657983854893916900195092227269866815969995164548665733224467313412283148862811337614427825941681246248733090790293887178414328660535988327395546261138832792486001479379681771094934740168410680237094720929639990393678108930569847886850497854088954696257649060587722327780873502681474547799138638696960375563645707306621395898915402933602258219747795254362822306651999286989628002730425779004971517933183681454807548598988215869657134743263854148456076981233498041834334357880634067577805271944762522268309683693228231972323971518082474454545670671595849024934066241363279029466283742100432980136743135795071966084987688101166556516349535140113615471731453124913168100606075511592669748387448500817530172717700799880869315840913344742809682054319629652953031614489579167444542155359147771790706543097924190362638560057809062246830812589134418869662288151865571390072488687712322191199472630775589941276507930393868086390733012274693941510617361400970659341614972578303729037525509888939072458593533484176335982398811345209649406226162094367716685311008473101508177235429580346898587339058632485220546264169612323930313101992188465020012040924506795109120898182722320707837234541654821921960176283860278321266645472331694286435269355758537616764599738350194064048274712562574317111657637192436434018019228933895347967708385040247636651103025333614016341971082386999958234476265434489425059889082468139195099004163654108653148378210973837329454104103170777282658888371775018757965734457875774161683409784588743646849490885822348669362182369232266818299043590551701470609390042753441581775882492470240915334309064181314134044076678021201393601050109389098871434106596494190990585311854979867767905901122952891313481598306662966332790385606152554621697202735285041624054952444684192617217316343691964716464307179412600906682307035030281600839872622833299576610815037326338447283794948579823929851926601457496997612169488353812164704207663361218639440086942143669403429832794058217849544091543886714581951984784453628410559165351832694398720787983842619582633354433669515311234065270053855468272392789774769921433768497560452522262281596705272349544254646127299452334457000113958409429656911242130868819336230522341243753794581268787871434932471018108779328892295507473224211888630513508064414795005836393720713967369688478165944146339527879631894367747863969135438612610587525609538403467975984215427604610135942167294744714333752480255582381483166343409780194648094569031391282975589282230032651725039918798784193314213361011956636861662988436881293909695335726340121021720337241975637425534145510476313459948613746285226919678467901790284230164015679791872574748514652208158774958131244014541479796618266684958720147299728710932357641740798263713050556159288200177674790526509743489325933531076737774242522496051041803195290779216759894192707348570520996218469790241027572483039144735275565748875110001877494980730983609348709074592617043157569697361604538873600668829077396997624401491989287103239700384248060384056252743734866114033323451004308689004510748551477502101753544843725117298449890940464097687168128155360729841835432711132895777452562408256751206061761070498356058454566127973505787544548644440350475129546224637226121992623099640181491264205083334718696094350125856467523692498204854062957027337542607283386321489942488548676873376113235362201543166864682720817224476999527706347251746792875364192265790027642854301560489137538436983359007441342790791253383803985213117497392277087685174990595259819868018968508494209623857725984152422712102775852710160914952715588496509223213153878080534198969106088742419811150462485084695217593064200453819465405628022655433225304169011770085150251424713905166674736413423373707653158720276454895972291356915379476296795645497883645106403645625099601046843818456810575964801171372835670021542774691939952246272946731530261855822354952004591916351221490380805748809218830132525933042733369682256619145720082901456010808435419003026536023466853710711119345557532633166380953348442638327116916193057423885724980227300411359121776758488630747244633451905877005428240729733434017991995049244633371114727021737738174151641828306064683065083430502418754870758331625582179958713975355506730388388397875924572393365619731065289181447803007517500384895253331720654257611430916330367033465531601663315425918651148507878358803302281688342547987252862448790670318752402148227471271302829560045534011259845724295206404098777477162749119830568112685731773254674190590456194273818358983821468892518901270104553232692114463860067048050526118475596334153703473910080240617051176904038030186119857955856899305666024062293484092718789972883774479152546988274667835384844402888723710774562965394163225744503681034066997328135570149125074713597782321205420299014861016257326772069438388398612426937976661115565747364780790477601560759004037632450204197554068394666571899229854656652859126974157420944772241738490727704206965261568768096280022450684140776372752695196458679751924407887591486742427577308168432899509374490380783237400743622785834171796748619360941303078358412636202171234282228331226021890615281734671933875007226292837395974795016099571014899061766859892995235195211903694867248360713515445613779291809123105018447608176676634352207352322664245759859588517736926488548992810143163042877363282204148018831913932135329874833811523547102253126780465386262190275741857925260269866986398482616402769579462625300721394333299363235455302926261421192767240066040717146802094600279740607250170761377511045033703967979819179517804169325423926625222327445699182961294851370710875697191454105246511567421781946173496765339618597121244271452134537480583478123127543076469321193015437933484829600834522165008111343281471626608600530687822376198292883037884610818154121001294285120836064275901464661845712786352676209782412017670877931926178494420228978298954640488882468723775671461128401021289492862302407024397905496003337696661442863821415710284458697258339206379878001422086521606403788906889139023176332090675970640993273866082685925408061838279532921000938377929359135563887990392793984644507011641422594979963572846656442100265116234747306141865616387185446341010470260667055336008226266241636658132505393345806880049324751004672173301162318784337975302169333499636215164214508173707113432073996789387118928244513975735303334263531373245891216866958280874395576527358109787749714895099853814159666752270448320417216030652797706072583306139124684621826372470009487368090517246336582119803342279553427815369331874001431697327762392185368786107755079673737024532598009343007200850936493236850314336106446260220794451837891170711901014900521986333577603541394789506339567586785659050546212023937840514517520331486810212966447278302225161857596480092672870320149781397784772579573981229054022321674935107001639793542190116681401134206263883429396233629916111042051051384288471335820262369769879073759781749202426255721202666890546848962461306284232071356183302970585479102621602818764982639601313380737788386029183820363502833181475280757712452946760198320286202850138345563003958166358286832609948523583075906774005317049105455585909561393055830858089160284000571084552280109085203816541410750355388546415635943827301477772304103108236072252832397920669342945573828954181437615708671230336587489203844251858320044628572650939504677793565636583035822355807736994557990416429125782754822788588810206087907979889760261921684892245356128087364001601009558653439397620554324444827171389093808286953055189887133020481431357131426743333766655837793196115421457247825055937461132892893940073890959017080623276393354753849590283545497919218775776378431492253245658355461824355838431589915484956700336949805276051970008330871464615448262042820866660678373432906100127012788115005306971854026906109788970311319098653583733315272462703738382353480923097508651720049121530996215918740264739961543148918073735262007546292260845882358520896570350712476193421434809660081412757032621124216675358446616039032202478950063292924187635683803155993388734097777547123284759966304869083196117281312213762780078373052394496212216409664812667941906254932187677909803527351266772239449688659319640586681124826215795463418498131128986775144157653068216648809970202563331906749851563520391122000964562575540124054214576690820690019044969740815293846625281120646926500178488006214684222330723261391178757202927084927249191362952254944916597606971292345267227021611697085915625122027750763435470625761491276988970779832776851445351364103194346027127597230081657023931142596717625987266383980565789055258294402650380961685723653988541442316642800897049955185583812033201720223785943644568974413769810823618824396465184364599618191739500958059272534317506920231516137014370742616419317861416203064964637797747496661739117442885216355757221029959384149101431561924209424090999719087258506562516989713101845365628357943249329915297256570945960027459730203091871276259408380100741130742754755297096874677471840430294529127665707186817077785773775467609440985939738027690824149624570849641875467761483270808087213632199090065624093738920637923599779655584876202544725314902701184778940510513002117178817813009818030185631250057098704483486679634832746157377858933665025640782764444257524855374938326712207186366682278797376885397440199775125166739587697032548090250143424208672194220453266766883542476567103535088288919088527664308757367844652554269279412608202211898021447752880236536333020471154634057784908173053684148173546063598194155858948863695766436190339508674793759156475673179262162960018191074291208854778697684643470530083519330378465477247018343425681963413414252567809678071367521644762839061326114430778089012443901428916696546743663652035917005434185364941223772620832709585339046294987923387258127630355434131124603907771084912213417902193848516353875234303718482810081776485451681403905200725972666411324076771055673999349013474154330147036980473823040200237883027693174815301061239561088855709158064787368141208083294796039441129118790994466308099218851580109196793781931292842738448282759944360161304996012884232821770356507902880361692850138650604433032455558671808777958774323880246372386212593733415581301164422791479745752163154095609542055066876468322070711078040040211611260661934981417775873540289851715588468499164012876614849698208980456760039380014545910265681948788946597049556880578700566721952223618761307804512261840504886187396437338486444234654348746522855687115926708773022682027731295639115925920834985826387463577039240026148576761078357903967090704321450559778402993739439463634088389782528284197518971632058261891606793919683139890384585188182444316971817089539723503591492092481363256082677097079682788814219702868732052928861042653630808605107090589116172439243447571826124348540371497651744885031965430685629120605741173459882581365896729454619085181389575150790936036048267252314524409138389735133118854410250449626345921686258521122711660712272835903447556095099685780187911728455278116936213936794014951932952371462421747752757567490336300400675392984695654325230235903297189281483480139260270428895052686396107512494013297581719248146542231449121204269261975354817829449763359241670586641512550298239184140795393406720715119406191140767502860170701084892812010622061724299956057104393334830252775794970673333168728856057070643558103109254370021933380085395084561690425874966024447051605186001236006505356641065039243362791654477407786226997223192120624780428785539730503680088735908725968171911561218456875280384345875606723418837951694825730252535197840081159259689255723312051465990294282380222573730971577926236079686308428864361662401604221792231114356594292369829758071646577678341016877282093747281604007315111073169736457100550272951248567851775729974955045139231316633931688597296259851592254993733310230926688066929720600081841158786509884172358208284803650728031449687247093046965027876946621805409486160254551621833305095311034352794863672928071299618648706164640829451095902565865624887982823282149490501998036451681044041268427347525783216296178896784939313880965547699176666631983569002358980176632008895032983296620660145403368372371335090958053682122998521515022263522137213289467585396379232989448929232589459569919077842876506520668120655280495115156606920071803696436272104800585659504938335839038673804772784335739696022415440907005279365499795265653084139121889203974879095897863999290315619662092418578373683755204814660949132809759794437684694885390346609699626108655805789178447846805721750523380084103550651592416764036783360038933711048026784538557291695233332119703701289912385121789978643585952245398651013785083248043157555929703180352191072893996643367067607497451891973717470607820283066090353457112114277561245493780516684979871596626659702824732881867306680061777087967961013931352666396148252517982472230758263746675109995701524692972736457332067200652566274990516149680110170374442183332833554908792072349509940987631077002279175650464905585604654939276691558989157303075453456847352737979699225523060116248561471794988080155058234578696222809099883961947483192099251337448157954482382286275199155706011865126386732295338097599843524635828762541583377282982369874395279911598288345674337860016349195674052023276313779824116466012720992582032493540981080801991639034012276698173960351395120486327027354746042817770347333595918268995316666521667356146827617853586758749294109568621531667474999042040897864002490238584994512028593510705361743346884626123561329057190287192440530489989416145792006020766051176225435288158563089922748285853634687983830143167754028375888787783020700340278675203530850341839634894916562717605015911704010308506688445251751940982171688140351310246319382770359988844728366653795248191764182521346006675183118813516803738820779466708919887900499998603821841299781303173064760864251373829853697436932722464209955926427873613528580425177223463998827382733404332293583328670319933103475062146275538161404953353751258074698689135358281340747473554959501827860015839877497274225750128951603987792983637208571621655141559924663503282397204975313586500663453903733336234563209980042827902647086852791004987919882112875318877708740625230055925802765050002057916314571844854541239380556653674812412942603730356023748646691721522906313573611379247557180419786414205066277007107262583703361175657305582542647437642802346462291980497053255103873757644956277325300160970930375225941522426037170300464156833346666927824106635836929394272599795087843610936848595654700573847773618636215183222803822630250378176090780541334870526997529721004164039702012935428044760924391421304266494559079390003582203844398407419545711140333836992229110280628676290132643073508169735361797599274119540670013067962393461312451241394476469746019103083888331490293966102877360132870799250929937646183596242614441545204148877089767157403954161714241599894507190812747445767175703180254380198597241308373710020127470653066144259830269511964567402743603897893499367276116757542878058214677723986487551908492540892153032850197768464684120426509156984832526472103559596271673356950602414340031038524806699113189654897801166609596846243096976371356961730405589573427164159800117124100355315661692358801883200294662159136933016982717511231499865521179246308776512123291387997516351538146431202826801000160239348912090240311994162838656527516001642132875732448791636152405200194073297460424485629160702927369344626886439678088981750997738558687548834273670723534643337853223720630478794726085863893373755775784268490793110271878812656768999094805380269908252850428202462651363990812231217204451913650468350642191449584435333006670688327609368670486417262208204383650683964087004435853959201640907424171053091462889151482485797880014436990017176648911119456247153826463885409771414067643346205053748791020606559425560561691407016613490316905822612681959209722477885117117151928409924941885433797371716473635072090572378016725238872509566964473216038329304187261932948198008002455752984829890664864210269848748804911658204208453437238505470286564811110200414174163970170132794882183949623093645481945012670779067685813625390996018006870585967409779597021248231126627410910617075510347785078478089029490272443653429522560502996694270448447602572815823393254913495828617415836386015292065361359201556185020125352512395520508501378726603865649415897914661537292525424970159864044270437146013518072357969962229082517885242896956581401481017255500484946340224667217940642627782945475776224842258983109612362806582054008883879458240157290236913045279988870701265097280956961785164536955712221402379626441691228608126103080637086149758498687865424491905887077596958909359095888790792793547231754782106376307073247698290366073501575299213068924639715880985922813840095349139039509569663167751055834244234649858711944238686307039891899963826278197731332749704396646395606282209059779445442305120602536885713923817477586080493376159044398035337350342077058947277477256293100670299725795254344065292455830000622725733760757217625500284219221873404324030063980448509625344479433887436539993903793083912216715053839597891068243663519076862536115199646148485698190859200967101493324243983080306036214449681479287688633004341270867942964780389181740226820496711050503749652176263416969266170930277643104835111063697318046594187212326233780071111423174252628214136805162908775535970404485559815787200276814516476700575807499847464954181636275624147825390619092182361181097127714145194715556340376998232464821621582755299817335005872701793340569875676262513239081765016022595645144974643456893904624227205230764032583915979704560335763673229220860224478529171085131057417256797542904463043641960946281862363482326000728131063746819670330512720861554158821587056834225732367768121604063625112315917886781498612547201116895699782876568420845216584608358814569173011577768300169241092455663374346904903376895543182172952020364451500253634792735262838013098418542057531807807163686447167791836751830135307506851185709151753250479714520123254256047759459221471842968610398690409005676913512103263892816170260124552534229159350951320337716514090090473522192617047686818204510097303554210746688343108106617997290526757654298432983380385786794911826023751903623984726339514283226536453935013401364382303217527124078496159273975589275213416709134101681465955446460246812737277851113431794139359744002527667869192793954341807365034003428521836939423844603227161752500397398429320963855305134498496173740776955143912066202395503235850345084482475389183747894854702976024205504887796359221903660130324329420524190949608737181453557634671049572890560595123333713704375286594576177308622320922434616327123229920617288981524556727983313558242796545188834260476072275692524395730264792506429638402321160060159092392815280099224796628449715135965028906175382102029524479871381883277721719127448517486306233463639650744096878467881975011865362322132077019942761330310908378335812879620331040606845298689753552299238138895534100951741489960324734654033150373727718697131011974343349776509542202453045439656882941467041486650387980419926568982459558254751696812707633770635621551399273627055432992634825069996677278845767234533544582077232042151469431438989962196413556286039227790508272412046949869436941360418389095055143969224933041599781085194321650965231684603826162771318515122909046632255514030497359411336338163547289015503720342287986603100460531210761948346161529505874236462228088299798154924590187513264108436938640499247009357131499068513536495816561038140973523475288131162243939614065988317405526211063768305957690765948575147196408823144941091565544978876918526888928842463608583625686553775360237069298631615433425937489250003945369580349584078372121337751239656651941671974999971287162664581700207506049554710728225936840499205852797812531647358729460433637894363616636741035311315690765144121574254630044858813786280609136384247905756829961990595620323041530599039060775020211852423409993486755870890088853054343088600448112575998973739445631838114148148755788855497468109003629374583219177463305604387961480295935873631918120910400501234618546390443059194763674567323121084067304363423198898696678428543560110431146246217312433664913879996176015322651904237695399330175678121452879466940016394167506392679283942235004696760790067895054445451872911922786778253680421860697557711084556916350138058725315301253022205006033018973620198160560848822327643108580746675456461845166985701045681774521222377731864547620023938577500193479672176380608966228791073229653963438679042785742248015723531672292718462265926938374098981958971552187949911167442610389249685618791240082017285143306717831799490102136246782769131404698216315261030098846023129841253495778706742348435723074538596050917852222603125450309250451196084491553990760139721037943193529592445682559638591561590912298305554854902094908163089937896609148662297383140973017518366220629844841211471513535272051312461750719825822899809753823948503752686658320707690475775596845938214282050190922256984956001865832748965490945616444728089931085792922944698775636500966523067836727792076982496359481753321085397254267671709235756078894798249335022953175330120931550324735762856261572248354098479553766166771391641897759388976277018421930709305358070906290716188293773934872800767535903023891223612025681636723522387389440893082922762062415212380681034226769189792492834135341346401468484012877200261878111158067795893488723504350495244059454197345114410756105541555541733569052664891423503251957905356438470918226017496878966584066892591328017846694614434526221079655144393722098712444312606810776995774398095989380622830588086287750929075522938615162305421303931015736413163164751795518658247548990256961761583140638781172629406917380685841324288755974629809848493737291436903512911172940850894114896571346376610469044637621967193675268340609306776182043655684972958344386028581165644739372979417682449520135414453887201249736933705273380493167760555213062566318702617574276582634866228966214827340177139293839027013935141891315353014434226619769931097581321014986278228699311699314311719635226941936230553911867082568896002129982781687030261527327409373596824901062331295547429110174793636127298850197581504045460751039915780009989750241643922688762267819750070013998188138916359662256263325948430843029856643445537888100346574075138254749698832451589383416293638936398549527241828877409632340600206677851283207550024257566189123687682703760993946792573677807063899445124894482537949778653830367724583015307874142840658985359863050587868955469554156375332408737600080228183457428944401965461351771306072142956804882960617267478684839774336314889095562093492331854048411612944262428993989772682547131656368894154030910519848854629655301892678319029831548327160891633221115022517722593150136719356815113218643069398246513450455623513789005145400689710245921848351052676580694772637576811783017209309996265222860440851780975669256893617821449917672906156694192653445963814882913176527417993758898543092867997405830425182392148913472454684089770868334977911101643999734206133229617860092947468502566085420558054130375575172247052031789004733519319896593353533249998789161415385496675876289910253193739245618406801910948642409822314857422454703085716955475636393758767562265995079150461969810775559986433107596454752556609473472437591185088838901828939205558059687714771439173489955456645768942893604498207120956977985535005158186023222916874997192077372073972880369356531108184704470385724709476209130282590572670536075767683196705767006694705327833074931699486176428369942093726448744551263682732710752088466350825043617829317405983896361401992732628690728795102352807078773296068546433474832465368197896375379153088847277563750110086975980009132616241968298625666830316009760275277568584571298052485226401656107835888268788100064698077670403516724268839521024856104109795606649854336208791552852151556832141461895300353855098448694555926652806249962076546143960171223744150741133148174383081477261352074990797201058632531375694771238827874590843670570659661865895032209129004089269451853547240361024025652818126438290508223008229169461930955071765593505138663789172374546726488377679012726049929203981639722864230900457768449188053247069529986283430246941295548604614942682147305781479187398860921582336335879920020238145956360777458208845047987640359607487466197853368020245054501238891112973292486648172424539053259880264076254849317039655684840313135172856743807526883194249865265900150281995889576109310574157015724435240796121965510086165230334031879156168032046175177369765022156397984274098740796470633320806703763447136106012326807124161989129668722123052187314867160871885155351120605518867026911549417897761107614561066992340779275382961994721790348614243315034572510467721546484254808994390759781146915402908040199412017025894750136048570942292971980473144504803012402497054895496672669409462412043694120463659314931133554204082730624686001492967635689825647125379838684295031101622240365907675201411405917093983612752421605980806640613657366942071624428079480664524913667175327345571111294772515853631216088001120666037139375297837173386273640848392569751674483461771884464896957605130319020041147046685088621272894109923752657566071359025208696648671858262421359330274626826587837462219958827923080601303149587867656789332639282862688502828383329738573123454561514652028773979455567563697406237737953710858512068796318585355306093917684013919069889557780511908070791294061742176401241049207766068664733422631847146126354946177867414189582222096879767961311353272429476421022310798894037995476087800691990771033085035273198025929333519190150136885703347609923138274579359873331975692924558731639487588792307108478421896300541565497852472734331957914989510813530551890963643716689002768021289570249099186156040779510746081076563983653431348430339843702261788219325079644291152225807824654170066855720392913547647714180352161340575387841095941450141946690803263166346814280215739698474088979427334936297757284767990888167050539868770865495635015519692288432489484732753114806542655359138557494499388964935785529111230379976051003851500484770905954349429627046565979745742699992137768318586304564343996244246601153034069912005929880704934687811127023191147887007897160136765674999485835200412653327560976161379284974375385378911680454283550239997225254680649349779349811862142112106004134109938567027574387398583249903365976309941281161500341548152509010149897756859487641531884632256180635251193418029137684602164430795927946597260483111676000728917945621854635884222140114643329391084674256847796872311872128614822099346293766206751341077718207066986882752877296736569729851753461244338415341262775650423776588333380157725670121490062661648183126533579200771327211060150986765246898735318938043011405143688148395565213424023690134018216735679806284087094991302852723955170195301408987014220620331845807544516364014393988351268617160953952918126865872428065210200102684400197008368248882165988719644147660534788218158137923686864912432672765257843574102396726025835600470399232654014005273720824974864986542148759551586171448412248585619906170749890784525015704027323896288883912314942506268570319202967101469572480608769636535332809747614390123640213391500239114639562234558715521227342381975713177782095409615041267431120582545802376351724865308879397750664770813824484903041120420667188836162576155583865990434822589747932486252495101068514591580249015503474356277884921417078877933766966052485033760825404230751340078884636862639997741552756556666710038617733157605547364623727563718493017441128316915090148668470322945249575765439983553286190204742689912432197348887059814249860563283777805407403503725317296732685231251800585337027942135281932538993411629426169127316212971639464811253908928143091447750523584636093312830578497548694761206670114292908515395244025875640774516405792420856891828703602535975456437858722970040716734370973251804141555531798488568387330314652820357557851817216946418576044893648236573048826811771633146077850539711590973136779040705410585246664598021164136965825766759521403671869986687246895383108464784515958530217048277970366754124515200666001101921137154029656259182712049069900148179790208684900260548991100056682238846626756750038986888220174316570646906811326200106363957108347824619543280146246976913885047865211784472698706029854678653378353062931933009239048580913173896654530073378260409795695620761024095125234877322278230869559727458683286021874298135546473579988892724142320168124861353397285412225884595744313636985382404262022068906276084386945036493175660582151572816215583747502226451802589716893308352088894654469301306474428024866698920263227944116939650034333476567215346250585441801658036982297562923968657164666486721376292310612438859990600395500310563456515020304333429255907418788797291793871681233051899663929836157452971752959175670983742058038836689967142182688015601232875502975142753043038778208333383154891083772659190841458949538348779185445638569259852933149814125305954491675794663798862662418986821413101943608548338008141701693864052522888182252802687235240779247849873318552793265681675669175039409828975408310213163674092386407269275335265934079391265388653053700959276831272713096231137751285551815229437650130498197250545854976994930579353279645914170763360621621240149425543497898422112660196937954276070753359317368183461697755026488642634355031517329145680934379253778479260785020848103088808849633373222072992088194994411153325933110133361359168630311063276434206522370580667182548437180606113236189187137991961740529699502337218061641209505377197235525639335628524556081948433141813026430112552335840118418535231460701448327627133530220387356906165353114091899590063590939945565710035263532176051066240968620357631742948379796286479939016869011888245147648362296759042117000573811924915764679401719247399611938797455884188800486142418145080254318031697705534520281753571301062394769930958614707396767773383203160855349373793094307838855939388270593809207857214924759591016723152413418885067820599492000910129715500157743418402487296931106542660788087826010297020975446416060451429337938306225276911258690179400483366755702263460972431247300186455135710013116406146571745801045268916812305057189502277592731148154968289969552272046496410087681167212907098151720128619607668549897312383203891964887904797082838339120789251376566774234204045720020869991095686080903343692918527927967339927520415738104408725749045536274522114574732116915984792419330642277329907675117604790602033978837302389999048189795110472543254685182140027107007097426008502206227723812196106358559450835031414277889036391343238583303598933991308026478534151820770364264787550613079755606247110570169333230068662771963609971658810662057721835221826262620097649754128959074733437883244264850449455775057653782041581963217586660294007522491267688963732138482515768635660260903803321634439509505876517152215785338695344476150493800680644598713383037587132851237195696974358620204450457420543382201840224401622744055966082469325288420455450562555710798929706590106176053374486547330530951779020765020909373634661844825833340349058760156592294602604902529178839488587157426595652787659071007907178430946434268083137370936540800296517706691807819344497550695122648220585438633723955041319068221467628633596393479295319021299387846040873859262038081489756490436674732878102501873219233153693100275197420876581554057297146846739571891323443856001439506843566307743000237467651094161115772412811678957793426809980144604629650954562386876137691794640792000921042551239201567614730995296257745443956540016932548274587900860338880295790806062065454189536074370124452816319638597365793473552418343627404916130207310482763954756119737090851324861137819052315147957547178012702895858351207190127809666289567059364374444509988760469550679422631227424433911084986644280883804980360044919389533109136877595909178762331857539548516288971868064940021564061523561499499593938650021993973119251478211585770934994047325737020344760385978313917582633159628026779109711906588912518700288398858006014472528146218300952448532218340871083169468410043478421634123110991055828261397219933410166343368395870418129293088275821513288772006170162587400470360519991760887617603956580036751937795605584934634441851672453608611024335305686635675373026902488833789484379925489287083117259199581140833579066937708208596687836312549268071992548295597854432576232065444919475121274097872828854273924072822706891134581680742829129899015642144460877224448105120209893806579829465911942625801826969032300229464363077733829878765153595342468826999603516011717632336734735750977382968706438440478778859224959824956071743124407589750675569555149389943812182118355113549165914104861471006277964563442041986344553334193820219023051833213738995546524646239701756816565605885501779290619994104915181417881326427160973888223500144048819251672272810542819486054590020532625757297976468214402068849075716535109837959488751181914620983497787122057662340802800011639771256748304711436827256195825688030574517142876931256041060319922952509046284274184575588972944394873420542753932719361639580794111044311048181200663875192239503197355011870917899359504177540738613544874663491549332304941161441091595242277875727523032906334037132517255574681977696734775185432733686990448080552869856928210731690002012107973321823125927948873173549513808362855469304806708615186992791873741583047134473375482163714110093289002634925420429944980312612553415349263927318364597004603106874518944515478805445400035113968479631336860676565008305879940984703325104419547775008176387338590353075974651012556254266603753934193680677044652356788088603600140780679809053328399105248905539253156262790995289140281000157038853386301801400852765004678972159740904317935267029306221191786910698503556937891070473093925780507251257220000673760757640247884457601039955429984959871513856508044948373550381512585108167840069628754312625088295397394824421037408392351343874241636802342467504125607702572425272839207302105290583632889112063704739782936167565779040948444225335450105828913013390546973120789766942123179537150696808105855688351095604070094856913776437398957034579158879053289693586789601963509446739635029489551989000328137522476145361507538062478083960466869648849870746816187332928604417520264779850488551359604533846293190159629186544571460041515461105886252452165555134190610745357929315880210740406219234617497562207714277580038881441486451106964792184530314338737246971658537092554174669516747730192305730768612265759712411822142721119714579351142083857993217461505525748011313690512240609787106473281813599826537562986755415581338044647113595436331525330351698110821725629795311137883017245028232484556452595625562727164511056544739242295155167242282772266875813562418481406839714137386296420343736683264563328535799073458743068075069999173080929108541278272411486057849456120116372706619350935578704549653516782143086314649031344871583861922644938756672790313531887866592023741463156607525551079228564845091059314754948482760707421095556675426567680224474838570295536689290870535570878923634980839078188212775322646875134717597673007386074150731085909423906685277841796745451612135900316558553957435467136186812824730049867942973053399367836626036348837636228303268270527280804329103380974627375523692673604291462515523003702717409270464922097586136355160549434227738349322628858630001049312371335100129193811871573002959796818705266300852460892684511282673279152982161521782066452806458265628188324416066211963011708047487769347483568464702699619509210139408869246493776027145657237468273561273988772638906896198655770070447593481027615839101426869870779187705101129262948937105132881412553784610410624810280089939437368457905964140745485990812712886969288720793752919082815783358824051768243356894030688963425799859138170163794282444580452845222120753628528315135818378718522572993129191267178420508230566284255916683765384893483315356121292098641995981006728715703193578628439550199838279730374188220801892725277694495379854933307939551571479468894232078098778498798066151031393605518823731884821801695810272772831305470074985406836007097604380316359774342196806890361121729615783296049502151331030132323807152184089850323000328784492378878000498923925548896645303042215439256874827485159756902704098407756976865907485444639282442734367288586826995707039648452810456595349041342990336462998342370484370600587261298505284552834400952912828279941676878651176855190471963697863645201352618652158103244738343476437343362638116686208984176048172631331346998215772724517948671122335184606133784818300873582910235174139317791207854747453928246364455715205061732988523047839096108855701342977143577368618081751534849822287897544742069938568578253107745613664369049495661176699226681629964611092740124159942718137469008026031303944733309790192419768052214989835862711806201111604971392904906311494186097865467642898311003574406463409816813442919360789390762478381857225548299585016582484163852552049053688504392755277656983295597813093059810839866738523947885447993378165940289066255315791549959940684748840195480302228702295141826867470486208941117198039253563657696405651555703165615800748400723927019554687791959516001632554869462413651569755189062186120377630111454949163372424058880532747462779796706395930673413637188584251466173187716655919544561227922539743484672329590385690449121222644705237254262484490096633476190751498001287670282352731304399910407215783540775853709616100163845499371664066275223000937066397730773074668300762581880646084102481765188604388288116994106787037810169399150617682840608929480459548019674728179717950366010567416871905914349473727088784728629528835576385410685152929312505163686482953302080670330024818410258012944252893561018830454460242555877314462986493649158811254013104761874121342521096427735066916362762202647290352562629562194207212573822131795924245696085796177722129800183643148861145567607906795001580955541005781141766667369301268423143118881795569232245936189669486264258134831469257755231430552957777446089132873862716296654788391392754706048945611690032951054837595361579034244135154083349820041982436373052289880783005810137500681824608251641968333700461566438318086241236996794129052795953651296446156602544128959056473559545465790663483221739818137954481988775507725385640797531658355055506035137915621526414790787053733657262445796385474669728400867304956497198613676323913669679792504576103522598605884287332027606515849615435934234022831374321051077943910236856362163575814820481149072597420136538868259344936719101837672607453451638584911714712209185919360724929698505972387272596825309069698758017670011412491745597464370723043218418093019462779128258483605128736164181294252047741113404891210448857528283532416594052920892581760229871021569387195769033770607073364234030379884075587805485035450444186297128242359602887460931822752968382606555689788854386049469135665471829106628380331318781278099260791825126236414095307000932265784469620007800685580477236097770803512097630213308868932884201921992028135185784433879934855756660345976270152920677835229304363964330186757873801671275719459831366505402697270068681245884512193479521004691834159528072766801235761343154062161018047499887932821694319020208422614014671197508595122470442288629912090462382854115595520376171802846053738959473026973647907543099363758396176245477687271813900899452009262486016051703538070754491537034897081471436169757141610832606121814106555686374530645230988617768742293636345301250932095449866023477368733376611733055104973761552341172755521942782923380922083623747161661568215290838171319367048265552569613255092239561252510330672251291495962893542110296818013065409119815364452860660395121619332373553979464410660114159740179553109853797824082884559103340944567154570944808528553297171358086780358217439313531752549804189943643238100355883081938018660570214425218879035188117045387072602971531696830496877946836454078428176474576766095535159095230417349691889779975483995178781113229947854098188080377666616224064775897647919277572062034955660539222679612081073006761069640269573270853592714910679673217575750769385934644651554795499735738719251869045263417500657452511023955399149312565953145960565177801654485649483908396509462130902316282087846140339724513663818742557450504681408177493482625196068656786304741308003446626929239679328877828158932259439897685203977805493107071516659997284328727958745075401714237679305827195355746531046262932959974612990051977465163772181516923429886545916242347759606570715913318854848824379938149548554801140231570063971847942001201149900655953464947203242822253651947430362918136583870021323197857227765727541431677976600073355151362777232227371308636011736608939829127220715131041703866468025261317457560784006523499364292021066297642073121430817597823686866646493880267467973930295357822133563142069632241388220432045836091916316612140415249176806985047019012091424283826875610380204054459305459944145121655648292572574101291100075374890585768215148412919082187912447415295414893676995099561066094853378400781409586202476452916153404579438750581471115854476424733358014475703281770149375770389472990521077766275674143678670340741244231811393829248418714870085147549971889753531583134643694484389104315793496414902668784042635939947671773715205408578394706228393810908235277110196773241788723359290232308512571592458147991741491053785530837145028037823887627471247823881085763321632904115928935188926692341889023350123584166182183095607915765918697759807340594419773732099936688215632778633134282398535621427010756966694069369987862053127121970362346057209839830140915221681537798584909443566310463766021096504056334302137143394887452860006058846681939647874871844559912018771313928357486278833953973712576796049227634052818036750285400022265987984328643788737883131586125761879658330530708305084561974284599250026760528335470145053134093433624212059500059956994295818123587036290141991940788771103491013822581953433504895869252230516049862873957362415860276270300757450111512152393285790633148796721181068053433607161254020675062963166475791719019969707299797289515860650513125907861008304403625341935535559360183699670309255535584819811846500866086851905689630480092936388133471798712523853435652875856660172497166338527864697442758830596093944768723541580972509864191219668726784511627820947156693535111636041307006944062793669681240202535688094257558360278219602480221211715928319372853775700725748623739632586892718868048263213722026047167187640822360067021361987394658817927934903153919693619269410893544615047382600516082180077519010108825533756525739157124443915555457888859380501261657296882993955739350294466130056913810749233793615644227997376901206780764675936245069424604766296566866716405318878695253382458156743433612194631783303483043529183583565849546968103605330525443385304308894186952301179254743300934639267629706495194244165390755994800038281144872054534144807245999055250730192332213937777790870685140650853612535178841264398299520812665059782398485790765326933091184289425540241253110027142501262208036242802152515035579733708880352449449872409826354680135988629251206156113450744877104113267803504042421061180720123536273182873716200408974343352851107510177735793068310978005082711880573117904591945503871154810187072952700457936684196481830312454676823432367502939776989689668458602123483124193801643829279388996066445503532680121901891782937725815252364142480439973757226627645289733005372150340643155469247432469014338460428590226709525378940508277711325565227529849512751396344637399349468343222363528438314166177915400905440212662340366386038543972332215447721428818632414807750132547094819015460840544480433487486708317301564361098238202749848935771419283349557720480978704392510694739972342312619572223526181903951763724742664210118673121552095556065326078795453959359781333599758199275291462193548328897598122253882929448779521390443329034397018869551562486973546135303717741989008785115123749252913555599697476353909847961934983979980074658724617304813547458415577884873600471672791735267316359652484132570401738026242179489535632347806803056803134113642737460229695567410077311893341787784445700327336909864818247090320398399144188882398203475972518339179255659590194336343734479433710392023086535846623242798397702366073548112260899958789601115543387372386885495501967005565948860316148284658649740248071641352834564401800777256474918458049695736211903044807965966625944552640714147099295116174646217201272961276589274106102896064725830342300463448506834828416621347182125276645374559020625254274810959906474630817911224093626117074731325342831520591544044145978589311025819613869793574242323853623795114547311064271544616581584719525600182735658051563656459762234884455617896811760300749669756671508136511862193558298032577727657055823933443003576368556153701626856113830458007880725855302205414474250669568711249796047614791215431907967791265828327306352119777164919538975420859621346056463085282378757919421343239644677140224071332091133775065441652820961053538111666383359944731666156273590697873227025976005972506072218268379957991630551410194533165874348768954200227367185482967924773678994940299203692156164598171290519351742664515610341685313392417354210730514745963941382044962596724569147228110077249198990083665125155901396540440707551511413118384407580889176127986450089225527631297521057539860863120024078477508670339897790498943116795969917655696551313881894405679061949020053337480500843024695722604777706027725865037447468815321019821841758913746358071393057182864497308917274279590456127893565183138267469569545906107241001390513946835064261145696091912558786117957170236355079029463001774212897424395652124369214536955320853830481566433971438905361403290184838276667976206378795339981068095443719843563146188415775674482656924252134704267848921161366452728341152915234948748276893796227713889047009743125779699266666223325780486144236598880434833175413876806672213091318104062110375069979786789472420073540070307589055415846048360789366986464347383676647850302287408671913028829223158097696117498611312250232682992420864657934318024587741514213971489081289689066160759529050259800440649380764154382496570111947052749401959414908337445284740733454525072549185807600900310775768524751515727788692124308518278899940494219433626024669277135604837789623377526300930061755837364671542081040991735505276293661638499869569824107777551102360413934596556662163552205286958516186199715194916458848891750122587527060281628560128848222498416822883263868277129006148425883262933356943230249072539324996898998721196362476782167407518654586616214449909114217597689031389333899514929140202758472795143392406951454914686956160614713484673190380496966675709044122177488770662930079650874945600797436422423903769341296805188762206762792021977599972795242958596721561745193052285086003000684865240977121694399514428751726492757708947173411730100489640225627009285137507033542015027041333063931709815355704067486598598098624669675867384841141075016731283969248643980751554702351044131425032292506476571163464463681333799366167488757836527239175786118779282507252101405687335325872532616168595942757228186675321779118230527055886790242733672633991347694511539467538599428295041586872954843477638847413133897993896500388103236486447129347112562506859218253230102205791893587324288306358282363289359730289136766841987680460442958493159934986358053019629905972138658891053192824918717497045124474903895495282528441056433480949779880739657655169750487637235853884226657178947557845313044479041529145451359082881875999734712256335094659689295992262380281352325244924901876892721100559149692651591303867109622647828922167516548549589835680049294041408895193175149395428667445622111481694370633388857289160061611065231311958964459781378193314969374652219704869021482564915849616093144501955715098211981457872103245279863407007244803346975461523889323166277943821789581867286325304553724837994842787793227494181140743553011872106086851644885169162179321037325955317376658796378667454124180630305530825203957276237407616579313526272113520959083393278412885335305821841788355591318310402399858156096207882798498209405115320340233576119352079589751621951097775817991752446805799829244263191350163805240690743526803122234592304146741408492769208112890021920683976733067615390130939052732757374568874189765352736148529581958222874707002915398606470556104282247799312310614839274500035277934031374537540833094757657606075765153069487684824810080794377690652822854277525219065005462100322738623817639651176358160735489821819499247497708037747526098739087731206928160730799063003973845023451682315409135499422614850923611760122007676311262783210207156213056332083465923778684978958719183970222183098077485100259411775195323943940541676902853144622069110775781852788586807049337668195496213047837582431890993875864125974734404019861414581175953849105257751520027050478376756804024799438545241987560083828975086907338177208829510891580918882460384160445830062624177014988592578244322169784737434142643207180432628066209499042705405458877354264214292921642506680206705463896802486611602255029510951242807435216609231314434467515198384564481439787609390110498474642551421161245105266589939281447784344529337607914197091074985577712408674631294424781089478107475740891738860606711329885778631417543569621627296890796092049206734043947163548307537870322266361754857889273963111508486457719234235669425592087173661208982991978619277659947865065762432241022478938534827497835678717233965598052052991584005484027251372485567282404363719080078693384410832935594818928160692986489578693881622915916331252203756558490816931894974135074661319297218781797241457801298725364879143706424413649101158222354723574557693716311455332673320010889010450628226039053822830516917961804334912227310286995357616469029496788424389364781965219532297951778352576021887508678555769804965163777598129533237895305222958504077816543188598467612633083691863101767142290052536993977596964895066794973957612756654236409100684299450035892207828483624615411689240463894101135901077848885584246371366211609267069721513487805989863508031699734294724981442398402737958626918780982350043940804567218794487691565471437677238106101538575911815554989558325452145039837824748138287297162865665664750974496509157339865431701961036912878084111093786945781440695940416274879735738175506130618683647918033300060817764641062957688108943184343662869096029502304703896264250885841311418908339876875632830477905385904694604766073399645902112352711410940700749173364998093088161859020000054064153394215076538400802002711578346146971251388141970614217725956685202817175451909669486186244748104679215710839109234018284488483316790381825087270485805679674870613194561995545358717507034287795265621527424431790333541374490484626721937557090979177811414124991633283952707941986773864409899433670400907296988015168122215073362033687544025764858177220249173600578837894622659966247678462429157774053513543205707619707708733847275556280182691670469967759175456625771618465433274748324949980049648127861268155675372566494405165326468043276241442899458971379615212835821895176358436942299866715835190757369809488960679795150003888259358788391609522535695845388886821574538720871570902058185751330734180517127806062378658904790166005021129838006644884057880033942731334324929023784753353942354275922582441943510600138599710899525087562883610005257913996155957782157447999298690776856172277714845365641386757326108728996217463170902556118120703257311736024766168057630313739170639674621111604485979248058072692901417997651916000299270406077753205102180813600337913224053334472920539488015524812892732371514982408960015720755756832039167747845448631491298365219564367881464718887412013188241207966635637558861295052421262370090732198822220200207294253404298301755582308470266789849382422922976098444481797385577609853651117427051705990280950865784186173923929535759123016009243206812745680984491503711467019058949441381016998467300401604380439070568968598064240900876013616010051380179253092003125399445439887055848455597691003471703126997208569148177807864074443261805693543937855670145502579364448335965150322202877013225332606226461469746092930982400601307569800075902017460888664497811383851046985452413498830882409208414637486610069328886023423511293886395134472071278484797460098276709899701692264196159220830242058492677311571714569213540259613919849076907791906323632048217880607995553881516096569226238087697752201691350574612430375104714244127362479575756028555627496341335129900794274913108272708219581832512808965813071251448150544481929301229564121967082548927085831636973508021433968039378573753879067847277298048244524218466037916685862489439814190484384514687016170748140111052434941671747875703685648328360347123543839606249279146070170655837840696842402719527960068757372019795085023522115597222347551717848237111748479793945250510510644413516782430391391291807023006684018344211101747550328231448272057577534580857990114566754402882689082441420243182836576106399103180015966040638221399055737669710836165580305917075591940219928572270794378579389163464182093845863143607297081015670072334238211151541189948295813972740583202158391920480116808177359128219419944086273020209314495667429389984000009128795787383514575390328241687417318017360353516872685509581979860449574048546271647317943374725129726841380927391389990476703608278766441327869870656672533484383427333548150056516852971823348108292538852044929674939820075683138868651401244673237624352600078414747639948015289027868146198511710919911578309695206708625766454892487257478946142738611545092796092566413924774684235985108487856409124822397668668347199420575840581132627624669828376973034301876077538295008458723048810175822716091854954920374411796993087295394726947658644210561371766850877610899687635444497455427899849956501154788164407342281366489772439350692208344600439226256568839093279600061484541180767118954108090025268629972099090247726438191531700049884196804298334320694661353408556324300457711730367438903263664923592982764771709122641113688359565081873931339370398847051850264116939870981599942344632314034733399722999123233780663910752810417905743015064690016237434698962716693642631622554222349162533803996470523640071863303083416045573054239124537886664622276491936581960328957934086321019104589074576690913732377373166113473852758887713501601478785845998538823195397381366079937385548147089028132339388737408527041576129912215435118539783674495658394196910884378200133178853869288442110821808109002309166140916402834182364542534754399561161147534957530211579689615972773798345101479246092032564236033504158201931607025719553271850441457688831006263037626712828955567611976923821714889224335298178491019856676413893935540033160942010665028701158987188109291710753678128776961068339847034024238155085814256186371706136712510200625420821208280525562446003037965144263768771660695778354925483192283346980064625672596680420503240284442114600908663463587184445068223840108451655730562239355198180264126855119706958459361256280529695459240721325458692721904015976826099001034399275879352378674608338663126373012277276680704751242320919409062483945111477980616774546958315830167993878445949380501536691728971890867706809180526909822935167800266742584205234219228133228205921449595539896370644675853861002157982275950019983377619990604705295437726582334576774588516125707704390277622489788506454389443141165956918385190408477187527358701079454929852709013708210996120197106918257965009537392240980738343608214653745040935963382153752779279667364456035084250226074738126232612140011645519503543606255570847583649387062058851943066657463222396490276216888184594812870322341395311115026596957949313811448608437138495531916638512553591879513602505489523639686890681325038030639612563837752676867325343201543520262964314305556639956408682512208972663994943456479311613225021920613029756251542198981602231789779852821710663196563149264900236075112880951170391274120087839996528064156720466270238181207484060396865387006499341289563727272726188573532930964444418627375481746183620714146127827873206440720173204462608731733618655193097764747644666580197222696214901041507398213016616648105154032961899187524429955513618160132940895695661705777871492935704991289808204249106304369678839964576566445420391315317826234252059931892005294351655030559378116930984927772041387635072443457247910203323634176779239757639217376052242402424939172272638792167768278344636656981046582259187118310420016346789940322145132591531626992819847576273836421842704699209919095735298446192517702293871004935870854882450022737146309418666091754383546138114363383832853923432218830810766674445135614000180897216283500961929381685982427069630837669618720359083671601865753987331983029000685280282909668359113977196511738951443464567859952631316931244975313664060451187586397209956115434019444695141155428714827885954425063258632590933855745104284580345458228366396931346736912362540373362049109638926282862708295620580092248499963618171964947569308840470316530920486453883944329098333026287169147474223504368734644427379206466557748705585937933913679492236354052244653302016559107688311813176140978283554162783720332913403752652419031042756671130049209260014695570231520146653851696203833743771194116595199498257735961156235862904303917157624990952836064667450154139968398046497545285102180654618631578758027586886737735379189100751664987436852549096146802250237112923135704632086367777687716429301375207128795349405452974709153817705189163964360934089542822941827947914174680541829105050541790197759527749395316061145757962115418637620414034108775358423946085971241544604428151751982481999772413014787171892390132245314854124359798318489714882001202335721896739356664227589065240162645669522161052849078663445570087875437249058018003447862215828118465329561780805833307946486577915142152878590959441205244824865718947109756285183069370672029069865713994862192932993232866525176922890509481384929931326714637985094224783842516890021048440604247319055912832546961499143733023921352879600037661682138947672264301602144316631958785785505344439484924263543722161061314898590866447109581643164843584444740592374366619928112371812103879109454171339740888689573237674506033233407032060150881405773495662279319098964875793519343199747448006209808204750779802352812652754998699383490083298325378714378984317611588854494874340903608489166899674736888289863579011673573531461794638249045916836406275455712170337738164364637163875297239958356438679233004264082540978372502719665561233718797886154880258393613789907361498756437392458953631419555581824626107353818726454441836524256506560835189350774791767761252537611411881518857207773317176692675436575426695904081309499819347098631644925820037025528355774902045385463438473632241075515375791619283427046275910273430838015544516166737786858471881571003099158410233256833643727266718415917424438079427748527867430382547524821922972106140085608008391167007165617408614388701486779884922485115312355116145055619808630255878499754126892173382272799004295082593932703271403819684890351005090947035540433143302081268562093205706427835346812305866729422169966140554887574770813315605148888630751764465734115931171877519774709969669787881233438087289639479577850875779418896071940266750175368155440196214041920416147012717971651475070537654944566927395073008602696672527269391681646887193601646741739982318593542756359919630264167574345162787740499580202159733755397596981195414921819225126788777901790248859008739847696678713804743344919605940687482021751556409576018439072047850069637020725299847607346935799240444127278617936718420146748897483673831973400479913352728708236650347964194843775247589203849708825699481378602879242667335483739824716746711437763160767539697638598823927086662622823602423225489385011603987726310316605429811839362114635851867464980282517169083484995340179280269929866920004984417544943545267561656904516369164961456781406003407870680718037884666194300123862866761012035974438062999601989893704877920951081306166339944790679002497157330078407318489907496880537992404453768621738777413425875759450359190268464710332772427401631064187349255487862870385879339132876880691978963163240465840267747613724799656252827795530999210593012640967036966157050389483619113796738301125799582049534469780591944177705074822411054595482070582570570514085814800232533144098396399937834247559837354944395339818860884583851342181925118122716519033022107528742176817183372867638919679523243696076931551509039763391543051607302174573821075202899951917047110216112867767326906425473478368264579833418483080116609610836253467106555909103425843094978038199391493431220017973915042515572916333295786465171299980517358319111925623947865647476081381778946178591081269794092494385522005771035400712891407605358372648786708406871929598072406989539197326967949902508491527100851227468130100151819598300620988756021408484293209434653920871988981030837632249999864176594106521229094926689891326213100506009539747033719451636878617282864917050598553217937248860366550060213706211241086005907134247031645412368592102507230079192899332925996856535484862720168415650266743017032104811562060035593024617849445326307753330312043860432071142791210501090420662812724705105893150134847669557987570656272696435829662642541109729088049262102790536978263867210593979829859064883303213353932365351633493226052260781155729480051523494656180300072445602936565117054104692723743850100331172255111971040541164487289588867235963972774712861725063486248516844986852786084278756476936227150199540637327414029221581998542632281467768336851868138118657867566628342421067260651021489984505966916672134013638782197141514845338370278919086993384462875513255786943761571141870742304292183788482087637700603133759348801850269889587073118661667756125066908484170104511148747442144847515845680121001524289260942257370531818970102495966674465911851306411433586730758600946230609933801233301401288792947308786721665106054325494929074321920381660999284889496097219852294676258220228106035063488689116168015204581842831748581478348541196118055835830365738674808543444777011579233544645582619595734881443352283687606263436506242557916032541187809865195346628977752078626937856924585584931604926562597987903684704691265376852041145008820245421104716097501365972368434179423477673508626497577471973506872840330296210396640642790015710631601815997227530530018188777309353291012841784964115465763490134358122527785306962149657572513985918646507477364867591409574401221847285144103241114107440698541640909531940298524369721576827174891977000679170947470714321282900377631228613185425427014979783255738846253108035461404005720755327295771095422754333771450295588175101724916732862785716081964711805327454522676446572130185883318203798668558881628388904545917527608097433709231064137462574955202738148022709639807907978960144986846951900392566244050633473693734645084436746510430456984318216636869763680737994074542796797122498232146917800990698638094232662976410771833319373493459896621056158465345049015300954671360120419841440947948865177874121888975648010597821683896557659417911587351430678238023588358859275860944691858187994387273285108431947190944326514115286313583553093505491017422668873261578005316708254979468915119985354273343192006344932863263009745765632285215270615953249434825352527793285869731715280283656392871316114424246582554587506942634958969130474448976778936134134224519317304995462665817109948494228066313227981105047449984932571838844089822883085873617027106287773475318391972730972996917419865248733302216802228960633910170539050038733691859539038304737340449737674639961962364614358816892885610213947313667372600465955551428172900948308926373991932000002545565190594492264936827453573242836375397090339618171486645312480656902820650710478762582824575667279871757443074642099569390916325233973630569248344791895094014511552693650003533753116703350236368405236468787441606164467574376650158661867059654915405079765442069358109437084135124973098689867166503458038481801566116291913679397191396396446455235042969870084989191473968311736517329990672365866415646724662108506049168977771341971687134764256114640727555584724673519203682291764177718181075574703847413164340722977761694213891395225966549287216122386691932695701367820170704860858067313140405631072823275651781772539235741911890133406506088736630059843401703000773905164738596113905197169401174100465615514889075794228669350005288010267105529913910258873774902630900370259641196326025944123468749854114012936233958032676826985566078300175183683623120415467858285645654809739918471007607444029826354350732780790008875672973142051335662396562156624721432592941245262871734027222881801688175718039131282389712999679849126534815473170189235528703022025672436347461494636382696424230404711231299307768883401510368184971341950927213822134764895793276431197031478414394383406674862799373284473507642339243307556746031118241587000359518422787074437964320763990026341075304319224730724625364289832082065648596580297680711066506638423920830128783337462511145424681607632253679135635450044683502694171685588994303480281939114488449474521841470651131463762951788339400094403165313343945662434717086311671237359031302636232441653687468768959835265815647194815003041018420804569688739683937088940644783931778523445352427978129370733777311701466553575001025511278685771526796119470499846712830481561948631934772560186463582399724970601237952516193704853017848303326600353296196631608663554018592064482280810599053160118864436533883551899908420689732081278842722818117288566432244954792068949600312168019645119237565191658305175973283057085201188667434857965499273496218169538162981498326919580516764809754060123120466930910413504054909596179585018313286631251290396406936556025697213901842524290122992670251203587495763281415483434685960752465095066760064536415573646322531835456367921542337001179206347349682084726439610902748134274704771248842676324484932108727013563334666343789384349683038790067205004711144164520632818501663137327229261403112432316407621176745005500144060570507527046191005269917308740525297596725830196506362265260605230150350472798914267060859177573317759772969494187927836445899142106342903284729156452518395722564614539873037997354064742905687004206967555513523934522768328065934515081306982449290044672829215478308980996611469415024679406285203076882543690524926322319201354620076216290467952857691004232501027428379531723095747102845565564395414321880807680410388851638752519304642315427986530757747335995221352577700202958660109668200440934876954292589180629336148846527404819773058605917243131895923114805813097773491869226584445273491442924377838664024645855699094917755959645407799051045270701663407438120764742854880656866256237611811180703214616610601742520733077782902704737619958975693461486160854079120774081936251272439748695881815208706085365964825459965086390232753732205089284375585222393107146754640341445743921346162597113878819245338505647289696362856708939107382652556488179063940398024269142872265587991052936840080581792908326676982452546599113390119018504310628539548676835054901939366335947198651552742217429439208227744299483971267736960198367143932517182266992597601540621557175310822162270025755648126068181766581600540345438920880531227889204173353313532261773952092690629438511993601983379875623598609710355749896859748466532327075324820536348824246291679183048697756166573426685562934131414699969898882349884221576909888396980193301308851364569680586589428399381560351777533271480026515009406089271909015752226407602851640362842402820873810090301437321127346816708131447192926654755154983639568333206255332614318178276865104843667139645749057648816877231579896167998303881919874186326840672726195843613423258367460549056497277110796348136623902091421778553350842017910211459062054107303158255002965677419739015893191500328801704387648276552430547644141476669140292223552857732806284220609911134878574645524954076895804926141503793630077423254846093341800872321893168213190491013259671907721883688878252763019189007734672985318004884519775587090768095759657365897422718420507746248109837717133754808077583087656239717020740126321233434392850080376260397707837716550877060577219647962965185169516061645513982317826203927621338283167345528647624593372267736753892777176618289084165033085253595287195798981945930949805755004542279067573260961072723145053604585396198957460504747498522929376700929709415980283779309648195146651068452209909825726852462565008093712153062634713394283653380655685662586677774014350172814574347170668561306656924151788343440377060866421550910535327474829188592383132103287990999812114650097067200695136050706051198254573983052890138117388338697142445122214261946434588821656354920298825241934211623792392749187965490916393082798280164657786731471945654368498798858828800658962172067968389632445361977332302620762456630162295489387861577949802425264316750108561104287149179677366755664552345021739370791529459339011882768627439438773253128514231587312330295556154727018221401707277301261841240195037879373064606272221977702008665288216469556772652574309844073562202424646533641781952451159940902129819697290342761556434944540578181448426882157436834839447153794520925362019154450901972122942295888041225701462611351305684369469358142101962330428990882844446893531627059566761549199755436762903067994487866490833851208484010984362180697762107683935518472967274468406804853086397919779298272781795414963890530369697628627489610470511734246590382819186041288163573995663208627063295785560531004553299757074801174078848551281821356059541140475106227020666455390144822109761794529160174457017802873952273271129198233044047279509311712195788664959342744139944145695889108519295942143010499479819641416871521928417787809600741455514504921255829500173971460664234511131340713661484904420533659329549543328940744393489348032551376659029053495145376643067755522746535976274472631608466372378264978336353509301330192376006205268696566262036943315355006053131366910683148952082254544026329508341154483518127704051595187418061839982453215565003301591277338123093991178256453631569579469604031859738052410031620436971340525031211181059853871498859137541034015898709311007317029428904473515569089590313837619150972778969085362148141982667423819971668394154753510470946272489720423690691799335301563189699038143032511777219549330341663628932885869542691653529824306086910703129145902638503461461629109053919807455640155545149376931290838730483871867707626139883133334494720665404223903842686365716664728680962774067396784787672334088904144419662987014815982093796297520164468742868951264391383253404219044906324171458946103671361683041209493871054857816487350077295156503128296264864251544236069559259779147306571199213147681640188511864151683210647205201483327615350150017905581454663163039647880166444689353768686364173797926149873237197196560284729969660367838398388653438838407488270352067734528369626198453794590511647582087438447015326004528505683386608954371467380156521064251098353089460124597175947096720828315421499919835554121429142823220585306355485680005973201310056491467428708321208793894809693663665554576760262411921166567943995954955037994066215249107942781193687124265956928789316569872424990838236300913405888149358419604208145222092877601583029992406055853635241739449122050455981956920160527533216285056207199769491788388263762585327960957521170482948896056123549960375901190638621245843391976796092160639606420524489548706358201370202374827626430091349607986435000051496814830841708529367012822067296179244465499357155054633170137080459546520644311594806417571598484281400295725913511506437668144233878165146107118686967513221112852160424359572453069085206764865815357217335334408570713836847802088788666848200197911097778383184593132475664680197305263346874420336629060094380316069927740649522345768252362207747691465685367830449353900482603692403330184579392854688664976951988835375420316967435299371375102345304391040506542597740995262683511101242345059775573224483426409258739819868545786821483581341277169832248127766041547627376582248129282716733124639780829469692185820984615315824401028380279259480720830898112811050114579996232354622982420886601440630091248387015456667221102318407262096718840306523668379107597478569100048502761311780261137506023129474705551003948437864488031799445442054865856278030042860281429835838389782088566932648340999358519574933011486892246913435987657598337692555988777776633894260933336388138378582345310612767550115103009012203926202659909023666150492944134782342179359783941020459936263153295006345200152693361155682700420984620482614244220720005296739516297483543715873614174762750099998249122048415550134481585709505640348375795180151053568190808989937773821679577610842152702638515084274535976810083320330170839687427904527371054110538334973034947518025517819468250982046071896153718500222698157331635183592471380471848410632280092458970922150227524594296279761571990242782537038786146644443308510543424588777999440211267884122322692884032953052386552665430612663232516766062602922791297048106078872148894504020671107900148472392256104490379395147038960221021369016311792411881634890842246244606488304638958925438270632858155711429003601161664475154625532257051814197881623893274880831436477461556835254431973446327377155914744406517069053652246130739323941140008849680141932477836997695927532927117724497921697144956675657907386980836214252184349773150111528123357067288185130363848511903741313747213780869810683496264477154957828879487085586216414542560638360687579964524271247449188702628450634081407701448021230470493613645871467677068041568732598208582888129768081664560673974102335357724045844645098184216730697016899122718071984330920113812216527204005306737094630277362984232625619774417088540689434438057607549130603772993573142132413325546859663868657143520138907787192686386699162206938640122256494978456519358558669725850829597981541571249089615084851475448936788776712167486101054426137312374670299975113080515030867978956109549959068981165934581147849707853104329535725910592830938472614170959933349685309071460588211270382003988334026900325102128733178059037167541965424283667391365318402221472684559420512863514933098904985825771581936495565706222885536725889371109832053774375217094042434472208063382644916529070113489412927657345848958783285624611514061714039997158533517541428803403507378829120629272142180845706183936984321551476961567005301902158737225427632831808899265078819180992029640641753716481542631873917738217284913123641760312039918500622826619817090307545116525113765811808129646857672535018795987366015151023904536367764620222093808529621803596292991077898395582926207941512605269007659323290495064596951755097102723068710659760953244710553500539245016508419821921798262412789365271438826340689484115678831943636510048898867366910111258498464747862794176970553474253912714442224987127173776637319214068532419824574021840989686975657000064822770487057947103025076965481037123850088657634986765610209755637459366884837066718337133054205644881850198053360140988583617042883635982778606119149414310560894797514369967878391336554721540127334300632218774756551788275069660313215127394435506908001543952810067779058069892854375479850399376641979854526185875032737401346302029918570797103845767641158747101445444454061599619985122603716769066665238711618832126422392032989052479714611543434516428580031203443081589106860987408814083993457216254951516835341643477795644387819639182097509564131050760904546681381982126455280211681489099811431498986839937032060323895560426119797782142219230489858850826573583831172337695221742100007616179254141928856774246402697434365219880257449050394104142618889928663860932031626277871125722024760108116352671075575123501162057404763119930139069707857860393386780007632969898671707378365964178748218218253469008579235185961389177053668158380403189116088194145544571922933319895714860357601257706011010877919668947692742532337537984867666717353821665733235044081715829356037597460061053030692934154481947442535847960275613396922235309586090901346006602955276695037449187735380867306966689312280684097899144288819262750043151695925988331064213797566160837422659938675770527557869705767278028329379253531899037398289471188232419693111358633294550539851872366411189857583732471380450360406402222463788500168381903949610006140059853064918644378013045211507683334009957101764104188020318703035799186189690551380090426245921167588766975098055512501050493834177915690526479123904604476887563592667459294840457859103655284827795610857341094552868212525853914910796345986465153643795042197066071845591574188510662436749672019658994910433760515241213523930678842553268963619860040311575734098650791983591190102570523041807812040135481741982694275730010585860902279871225999623729799273729078745671082229051370194347592456915866899645533011552821744498999976776110736672889165494542265651936445459084315847998724942414322564997115381528608576009470350245736324554046381761249713920278586743497741924518552293731723935449351456694822115394646525758127822679241236746072176947002229229619998803136093621993533186832615306053918570247243171533330027452218876646701238152496031618031269762689558449681091694192239859316081695119394820950468907546807440952707438975114412598437638795815735898383357566845398093804860711707322136718003920007264771387938650507527560060929002109086463526979270127852085361916335158464951029844528311706681844816301671571631637500904524339477820372188274923245898505689428829647542334234869276453990307360145402016617566099086415649175369327830455241491384736516062072193356190612669335725280002590415953935890254517484637370260926012100214496866269550425484865157594414142393577692321720168403972375135245707393765594756686197939008990304989499155722683764959356149616186518326708828619128294280431475054939916144282916586845493644099811779795836410509098977097608418034330949240026790712064389981826463879636041954004741782450701571746843035817227657479888125472782473931412631641366939599440526929970761556608516357072904653971458418361295580997370397392659018863933789636466990067786567404871963682128641147402282523823338302299023938273272449643530257784904732961615100868368690959517775469173143859730308612492022042833652291433854953473680433544524188630153185278700191931968880905783839924589412800598500255329655835630554721744523599084850375548192237644221093910679370927658820372124389042211028367752224592293722567807879004483660398082230482595115373297618236500887945238542672439311859572474707729664797776452284334055468176838726495276530666856515752406196690285462284318784866863741930149521880074321556194415435351960076191827303386083675351042900605871972911014136918999308272133285379441737120511052231042277433426858651351686309950925762477066186089103807600838539889042699294994517110430585207947485871087548594912604305338252137231748784244994590817201738320351332519510401151055346389407252982361394844572629831873358406288493558126095335348588240882986857822535435230502527745894116535078791600983205836916189332702294525927009901513707914445312926229282914153042380215046244950103409549807550517307029270784968019241377677050661404392955109554939340675814828786305677695126818684184024411539493003579087989566375606010914439045255642808585699618529700760529788152159141418264844806365430262984816616408274099913593124390012468835634022931887311198266991080855053112487545011291213675699488354733627245431572749495749861611521499327337111423812955258089652788116389736132725389615984614180786343924560660530331696800143178409631752974270159501579397409569455577486002416536763366114564315124329140128529695507493129491723616199935754811042659248038519862131354964681913352656707891096585330081050369708086884749460486871299590228468002185855908119841667098750997316026154707404589373824847635556175870001039332582811782860721835374802027623258242359509188594725796454429628163305676739851152638937864938048173607896681058384149986780090476811221039811794039697408646808065778188028823871763766853378768635267335789504567082320968140348829346038897349791613641163916184801963163375867662161584629434861968264551070543363551737928934817845875100325301821194583187477883602050302834887863574641198831599405157715191875780484059922979768346584781366641505761121410054683419810865266602162169958084989421139980540519083327625876794247163926343063064508209890309949425250809395592219518097889552398730305902903418407773672873402320760840297576285167351227075994530495036609871069074746565026765216389254657803768944419879617284650601686273757809975737234655329121518153207503752251220732197558915326486273949948237508015639670210473464147290821284478370735224761251587312540963702547505419905616429717522849363578274574197643776922992925181870758959509119796023175073635833397828934737602710125681994071553382566218288031424768064622281856941612795831226319753059407879731184845576914426720928409978266192581359412304372614030766544227909208670652798126752416856741366197600108577762963211374985758216069422831937193846706698796350743178823656485820071600770567382756777843566863292427739370536792433146901039107931690441794110047086854608476261175801177232914896048891690832452791654002471350057628035558340676155636881446467259569274507576213980926536900511136430698022927393243432129994667051134941595967973366886989319078102546622922931779254419791288937403630716833260939622418116207330230628766637033789087947810840102434556303042838809281639646542767940816243420522899291241962569230856408489599814506914330219603346626099672899197630471566607141670082554994627853669621237217861828002361018690958286505643960149121085787079601312110475390960204787516975847368065850950017070779220872172766944356641854259795492105695171912957644902001789882981616687524977446931568278260979322414282759402904976069496363560216961758944303259240013136603408081488370116004643114812029883598062232723174180453421514095984503844331484011257676651070052659992302674560411308806552760949975506259480452751863062264987305876352113897661702743127623438856964641266406255002726760613594479113772393443829326041720124203195858308364527739765108198254293175890437329732255972554292746970726215365099680862494073297126020863577017230766305033838731912945696509819682641386349888160984528472685841079584498288175857482035469735896169934532368788171662136585992586934503721582942945239087778486152848757789361644455965170724244041228361721184312765877195690058762271460862782067544652361550864640881979549429808243414168703540571598100543385617853480383695387267143198656202812746597738678039623753742198156342435624514396272241284890492811966221784923927302379785690121624654281149772046330770628964760082562968572980397166375754376840113492501465219230679296911442618129259023009154371078398397101093939753029302880542823852702373773248312689202742989574949415620413238050146647860787032260178722493676312907479245174657176937649504568571271590742406973968945272767177808291897461452134297757808265065858295026669919262668951453579671394851511694029602035195130907589685117130134377568280242681503901705420230158889828919730210402049589519977383621261950426459231706006004344558598215602242675328115163481231269140333506174445554429817638358754914332014147684516646318415800412279076812140038565072184200990966632857787402597604976751622427846677633483117266919262524033074533105001385829604187416951018201066721078052542328208698224668079343125579861244757488363636916845456880230816078472544210988126682065355228422877686683432411346303613863317212389866554929267151386404757173854042108254764246023364385158136604644459792230568930697797974144138261963588869580787423870282789833090729574514351883421071803303107396546762077110902393176847393966664076951904318786133319869138710489494587221393354930995543247621450459124378301384806359865179123307003979450296595176653639587508656307191036491623832360234098735921615225761467785462341519879569833704371272142225625202933175820242147781016188214756336642576641929175191772540223647606361038498994952229449685370541692869640239296831857814184363936722886968602685983105778315971908509382552454717212122696268332023045566610077226773192653819909102821009205600542665956149810247068774155721876554750372825733562405149054064087646998694333064928108038035451578963755782771239988962952736932171977779465065071456286179764932106168360881573867779454950610474359163905579880331848606634493600318709750151566945865408211949072987668513428525460383897206660610168028413248641821491780861315100385938441844813748938780202257945250527397786863855297968454922676966049067572674034568350106186213551328703477566672159022752398380761702936297661485384374920689448666666534927357209001714273636352123582094310774783451688873541562377452694598081885157777949758472034341134370292262923520376207795320437941223126800038176528152738748870156015895269310052363516368630379010606263102728401800812755097615583755128438828751205603711771378915730017981214187283238144967657943504579312757404078667285655926951265113071358932355737641675412148587396143980821051344604825163952193918070910455685849383121595506360448285443463551149017749274646355935874791522800264190187008079513109452435895540791409628958289334801762877023091960528639501474244357014831208325452479827406362565577426116023409286888845249300134264536978041585266744284398054797692792748277668518391552706217541345621181385951824101367503980407677647830510440558866775994145823425210673365631867612578969859200180721306308487039362480137549941235274951543883058005118199566506170660282941581177598698502923883378168836023745216846493096414707724391103209117165243024428571112341096910764322996602162943274081638204301528944686370860674845118041957196305386464706217243187880245228466438120201950297613217478529270483318069923777586202433683102548245953665849263443893320722344401040669062736541062128456662478943995472199515517381221477808227477444885364234524175413265105780857019224193117822734014085633730598055090929745553435596233269131898980215444045193477588068069789388765083083990890674257697354969765702098615909056774798174447648065625899929271027521004163123557115812211289973786721622503010048010458514637084513471006450070133294480507105773800505761081098121770719268964402817034055336446005691093182554080877886398543881804117690976812206174982136373101968336739423652610461566650569748536335284943607046514745049475914285244116508084950514920408117828472595560674801542589209690184468582365971807031421762530313417419796655939708787466492584046398366268587402221066846313707444025427056611919852407870052626032473316556084799937184453103077564514432283722985531340422411251370190583178262190632857352935880596515481750345254249542773883134872059475810477715640850731798708212865092017935900165499068956742777816687376744460394233974805324615082760818411822767501834243737995805097259867711827034056134831341242729957901719635634450606690716998217092644191453924011893144734859141510957224846024298487958056840556820150438130090938899705794189682306968473830390453919170136371002942392671230619063779074779700227118798482563753733522177251712672124228439561985085847273654277157084665614079630893727268487254190710299720452982032196980087463558780054015086628863568403518707893386372156930542383841110975886793177193702034297512229618609839169729561901717929734004363891819715416419318627545558076140018962654325288935613965041221834641558206799065012903529951530670811618937955948089713486229735096951689956000602309152148560283595416639344119423427212708915431241511507262322708283100168951047957994346039592777144026160450525622726671611576441185738840901815101850610141925128479734228022895981464007852108797902747954895964702764935558172476922116179027528015547917961263702853197644342708321173751793998799538194177299094857175411993705551734017806659519486740380185693572093799180875008719101209775326177441597763641145864803601160974634901337972503439769748419642903985706563524876185800563718852378049395101484238257097286028834678506468004780991807313092330415795412695637426614181122935697704056710244386073664557625769599395047446539578370325805025111185371120756451720407041521062357083099508490580268591503077075830971596766645410717203340297681495536043407031613187538944402188069037193210211710299786882550075312687468202873464717418161619647657413253655360560938134612825900654699593244852152657860133295334639858577674041173510748406170147085557630517133314709057358769588540401223184096944175609816765903728359088841956428525800977978325054239840436293610754047849169365413806875501414705947457926725023880178763437030389121309875106784446408327352687416924434454712872749621726753905714946802137997311354206295952477335769331403578880495132732001671919891458556402715595601257888642302216823843540990543598446229622352498331648031124059612881490447375556122131095104221664972725316328044102028040193225725714261026172189758301283326159595156686976192965720446680702691953188138574747709134264277181872084095256437674951881806222606332447173002395499582129150659167938688658923819663689548471401007072313703105018363380247000706339104331498905935398562646602143438923074677405213015173698519391138984550564183332820682701250339889988139485995211401844726018845851651214868010135885841574001992913756999798773321521937598536332498064758428728010761561072627438200428333904484947632455869980831303596074846034031362915146548633371997385495428616018566408513436671721243550827169353680600414413721649912427823190642069231452359174772473807992143094446650674860015283250262790133819166465689860766490726367357833882599199997222196326411135128048443298897752372535567282423300919231175520099290696614928138804008581853093227297772836843336364771183872795858314132401558524065184223009959037332515169475399534568169216990473214634746130498008888587355532066743432917309983823796659041001756592152329241003559451683192421885371725621207366347262729007995516996339456108032387094865326993281849582688406861416114526659218543367891695498521114931799357376111155559107310451604436416441889608159232476596702704829340352959371228378347550182299860550670284619933268826673679773547183350549642357857171217464387673074071226471063396537654408835764742677548108226678925144795111534748878358418621988968169019030016856745357116992443805508133083854718865962432258945404211579616714080804516715592258925297088357383343273434480481608426752930279160961142546598797667878113674022155545396123534595679125611851802696842065231306398409292732323891051613014720397301954773017067880496613040137327161821820402463099072782249164263971608977073465506646101490459996639192780577326588763612698050472107730144317445823539272917365843597836754192488985889783054012143640928134559834407668359275237435650654152756247827756999517146727101771123765778415614462587142431697171064303818612002463322256469194507878203100381545706654830150333968012486820526932644344386576418570030233177082461863779652186615388117066039429550392979467618386271056871477781970005764308222129457392820052385979776610707432129342619015109948350845553210341039657950406872387243200611413532991484425370220398681872552324003382197051196808715368033503699707891137494574863392218770223030449676560595716755040357068186055473413545473431362194049079442744733364030062552188552877414074102980063768028100270888295423520150677738801540705656610359597652157264635429075775154902323196875668146723293160333562485225440909328283650644608800688169007627781405402797203548678193898045152348539205156934826462772835979575351429343953431987285094680005048265086025133952212949411373198070354180400075882342742114931916923638140150995501740753049923743045613811430724343117787408010923641461157895911498771591182468232727518338651523159216100567085937064250342002211247010880152439599523436783190554380506596395948255335061361308604836122555653872782177258187025042529880812437789883349681967512986485706295773289128707779175849189522376206562231489335057566570760723512354767164991030275408383981691245899599260742357455935217544351352562289854834061846168407898025715014650742912763876310880433910036631973682734246676123537780102573427150890461747282338913455981787361012770077483821562842674363890087963667417207305496608392808409289748199459556910424744001435852391875654116921783724404715657788264215225269307337261374116983814639022043970164076586742441040740496154393150507009787229096061943835744313462562588568449165374851845710017798286208520888968653327170045530618274910739729244232662585779422276490454513332949183101037403828508392649847677798703294485203641515118154371425120556670998044619210761177409567376977524687291463705933667828324598953863734978085032718946399317611618612304457914040968581746740920631101836062104128436339530731130499034431186371594788576514701621691254673201281377066696461964724612547657105839994033495603770227757044177709327579186136241500489660044869958536513935538947426462232559538834618387331534230171282645759555227800407074354708965607880001871648146844508993273421064059905699223765354818536683093136418641090407482784820820915625827029609020231799219940478827349379228363823819357737219846431697233161398608553594642837020843684149777015021117269515826112051798681610523723871742778005190339715894894972177276071314850530434378707435917725834947112303936233146729070846236529907633161660808752988475745314130199356062664301858918719918816261829708336867126056184506992621415796755587404475635942534523158526814697776189813790005674592159502014025729199663321764665178525083080769203849351579098716967034908493566861026002235694621968884354362879287226102193622912053093677517763478421383053491709015395425185046571177911524600190161395846640275539622567319548423230711674291707886239418983598756165288453836546094724162151280181699370093150098195990520747130281341687184784265986021360035231026710441997841387737645316576606030863102147695052836210689956208863375682319006332706702375426652368924533316158856774668032611359800946378502327396759923213111237321450407130936059737517234959229738738204868949424638553901905866762360313844844240365300803375936442090414242874251276131475502622308535273017586813376902800682892581930763200975449791272984484108448288441828139808502544207372373152071966895513551653567178583609888382555750076945730283519968510052635729270227548201642074902796943585766854470544110049527643890167033842179497750647175417923638403453915843249543536686868618108031319558737439142611673585493763301057704735584405983572972058561554385768770821561881385769555648104648568926897435011270985315210043430490545520018548080047101914359874607572607652005218343523463950491563699642319838287122267976599750387947201005575416631099981869080635681563873719590679969992330420878250839747780605228034844252135949212361035384561455344396927192502429819718187107042311007349322626076055211568883657243159975795931642361940728538952379651701568003026367420484931904097860246788546699984976138182102447072861747388395072366988573257250559266042430732945224825024419627276554444232202642689476174533917036968215994914751502384359521388174998686466551563318401040697937898258190416992001755264799165386350774709816049319057124217134362519998138281350579023845197876400160042384284096033158498623331595866603562618271833279607527267052988848806082866331287159535117242414180938591692842588663989141521942064788779004853168492522158274138851051934101361504801434150346562265161153264586138031024014433722347533019062724311182949255992602635620967395320384110039104780941771867147056554155440393498501820994551277370752681362680134527364657961465774770061263372520643117805326446042381156032434108809666626418973496336090899949283807624208111522041860531303935565545938717231691680733642258718099246432125753920396256796500835720290977822354296500246039594438007585226566842091065729572168885996869152045416301923681534562615150675600947242982404731330150171194380560066010754618151614796077480532072719658149728984306902357437323770036681884723776329464139898187673078183874590802595575289981311106090789490220911946025060927798629384204957219422137385553003663424698056153188596833232330652267165848774156167402304695401942676501983475456673757736650953921913464431131741431667481313291784476564348838729985319213672214838294884162963340376286008416163228604766800277387344249432928115908386481802492697303236337581237389402893267482340378968440565575105186052244622416849046686403614929133133798133725586584365306308911646049739152863931230961943393282562641851528563791359070099976266403763293622303379600534011794447158496041086933335882715438544627714255189994842799092591578167107059193957856364441848674399903096453967363098879858775089777464806044740282172356274225116653414485200643454900892860558144044408751414467588953397729194324996754273153928217156069703016173983499636698707339898745679193622998038218272003153775324286702968671089544226578116673531756024926416480506214261100809554466584541345335347149166065806490331820284860739607977965693827917777379487296573059578111772688430780484023372832318150122704351554919112616826659094853815773866814995870800595895205663932572170914930584667351081353666324416308835054549408077000830763084783474013016939340270617496626101002061498263013940264467628148654163482383059606194218969750894900153133776343880149894897140688434062520746344290708460404540451451887007634158162090071618132224043447755274000907174197756259241641370989797268045815588893611501841722529769334419544771753287658921317883088120719297359545798717617004494496875953532711963380774297184259474997995478005159980234730231854285035594648807860061648503497982728769551687351416339674688117320459292897310193885787735952751074426782421589696575942627425231877916820699313565535750306449157027322770434395312334654827309864454804066949410733969173053724611405085716127726455704531314620907059092420786764684463748246628503160325216451565399907955586441998193569100965482652795671648359432888630534654040968098530629386244838785562725111615017830223974912529423496928908221412149492780243193477857102815512930024734829191581233550908885631265711175296622957368558507510749756436185447866491446302841572116657492877073184583549527342796963195094043975619369889966106397074951875825194723965121298379984869317515510866759942748425864565422654180417565812819157800119629819445612421686185565834096070599185830237971424354340108783326692724365896240512311951079943530395449024149462255595687983614275208482865239669614956320261032988515575605976292507095366978133919599233430682975586160612231094321529935423186767026433766729731578035841992848674833164846926434151095263894683601633325229792518631796177528157606481442982305400231161426582822719287312107253705135650014249937123708508253196185996327629388689887837550618564321874631779061969892572790568392330217136295710515115354246498347188319766631562919626672104095432209964065877883363493787003786341164148282032035014330733445991982227504475508744172109767599080900214671477232523503108855903500889465242547600305898137318818146704625536027283724568722422501280575593820687462773725527186980368581150639062053448612551357138330534564078402468287921212727063893367426118085424992009169214809334243599935257228389526323728763579553939371884891997032989365961141891040876719722150315114621375411525106077588918235955447850673141872336284749049190510857924265312982168241135187115464342256447714992112918455442036498693480598186880117348791536618085712984650249485297833807281979301722605537790564148208718790584859712754129257620724401488318091758662410563316975624780124020369850573208160744178659010998234546618294925226100393357203255565416342466427089763947203748074518403656341947911565029217146564166340912443998184646625158297473980590593834287261079332182055834558318708053851195364097989325058018449026536326364538598632059692255890352443207241515434710414388843189774340893611552387511691020739271338867987764044510191820137999952551001117421317873626733381202440333996808345330873259145752924031614461692439176065812054205565165911909342437114583108531775047148155399982174641448832120488034077180091647467251079608177070421344605675400771344620618970028715607622697191746843605605170124866227189637620002800704140703804246934510646240932732754207390407886346658333337413680560950503811491847629767711304976686512443690609882788419938014068528433114865796465064188198152048128634179200807455680921751317451915894183428809577902823345518668893053426616231012355895561695922039671723332319693851580323656308907828836085958326364113699653709332212142719570986250641671924994616981956071286994082337848923065065553470713537309490801269437717652278855340864435436190425852928077796346193296627564633773661184030744385903041523584777128538688706045825341362169260333259772615988243405560639909543651623693297844217036241259911124903446580265707829370490635360720708386454168759005051371464666274946041483186901703169038704570445967998243591052026109212022276095714644264957959574770529203015402731072052646917148920123216006099879782571370121492466859868776201154174566841554246496419301576143294181821905168881695976357753619713428416991936679402861064260104903653412504275633332332964960952015639692573671259201828185703210934361713310537225378072306032756697902023690422747171709204661067657246942343856288717242112629049539934285126180336517382062176834818425134020631197124467945830298802303862388549453467039092395359187972586141410748173602893154480049889954101027650468494276408862624734613215714893779879589118650545054628180233517781388255249544819550168578188860047099071564248141576024358747086846852617690462134066291204527756732470331742890309179248994545929209179132024118455715405522470047657399888339728023741052344820670885451305048162560553946812247693578911230213243841607017252302331399888079299359105908051525014149705749030072447787748815998260147955729285032807008017260207826949922530868681378301523431056888003025510009389767612860456043471270575372395987318737172158112637222421548295105002681844772860510587049895664631134132611474195068912252385986849336290564769415756220585514206662066673052689096747421816491370856380275447803731517225930336086087913425955195309620179130951801224078511067981500147328460177946992578152580697500399199688976164950375610144887651049517246049449451405289732500202460150376813543066162604407029584287553982086573112754486496134615332340677294968331218299065367069990138058450153082608914366495474172823159110635092490330438794270550422208582644645148691938679990530706542318886535531435648922747671440128060138590934042090992348184313101043366571764143701657365926294828185051170654735267490783306156515104684348803501739803122761717765324515888457402388822393015428231742588172448808227100169399352585623367261618110565181021936517173733442664998504590556090849526575222482011824928945157557459203889431943202338974885289863551023813552180857256930719178338819182325515488134459059524640510621424086933417477359574977934512204727859500298037271472284091752517913856739939876969282519286702607122483864295770141320646572145673527711144482425467698304292361503719115543337351443347412407175063061674247632015944019401197037887687756617907344425560005346334179780109952425584383662548963252699333390514352438589916073686893665741745041395343008232855828496701250546494118282104233050368486635800618146531436352299239376337703633517704898168019872078701569385400262480477926662711877038045402884212605516642028047848324719166451970647403338083583924819270888761914877411398448430391338238408833843916610851914645810659254203276822059229795469705546721375305843650395156079959606939712091000592751197698078434863786542411415108378428213171252633305758060705854823263877386906607815965271537311976264640332291781365141331857779916650276810204381679428021172038584146134951889091440386451266577882738320361417254380687462114609566595801935796332483138936788402424610730106034399020834651656413719756739769935081055150749449443254683574890945612052262858201411579510516224742584802311092663982003172071358772869198914845102574020734564043350070974119727069308702849670728007532635198213740231189400225845766568308505346520776538638844901466601488228764321231244308200259157754881072701752524241567665294805772703528308477462220803379830546601605131000516059228473379687124655454915513145832926281354348258286145986824343530485927089689809524568148989434716047186117755091306424161809882772094050549479664061512981625920081987320537786085023864349284416280535600171236285539980647487475665450406156640545363515953143491179983536430110226955313074215720966990797022484375390988711885790307993655923427252151002669473109402638798584784765094459341178185560440621453534868664187409603415803249678125052757854381889931783645219337940605943469495506442014831487628814557584915328290979909463286777058052909562016163790089613177586126849791632157366504247156110101817983530792592795079125865493601325397733217855884659270466704683168683951624654263863113803860849674347769565095368474971813789402930323847094840027140256584698919195866981433831189666430059979426124698883026197983534029074871474409924763343848273960447098604076993429984445328549011067197078516342503525974729431878142932080292738464171349193139955544960705708111713464304312624096720512205380531045052646409670528385505057468302561321196430805428796927654886105309759161867815628045187166610129105436813153065020515480590635802467494156258370002044734420209011611399945025561070721959853765979069478680344491120656699994176081897810614255257461722300265750022789175656560531433396819379718606774513193543963927703510077770948175936672219416859411553893366713795292021301391366762452473729909396083837662196740137187166671821189559182235615799631917000308455716451582059583207281256234147993294235853586137163005904667365609586839251355243972251195498611163668572709392757192297588270067386043113055029478539078312810440114117926225559081215093904064781381619292322462304930633266084325544817807088236510563439646380119158062786130571497260911418267021260332447870738234678100017700402645781177570103754009358149676545627406055076450227534473495300009987860308720979127440489874553313247988103478006653759235064614606025767244915150215073965537864961261080021072299679017604902147715964116367046491064994081089380337411682378501318930301482373463310675714845478180052093354101526349844426382885893139663241285219227085550651329585023166595848301942789678736493214535423409559380706683661756734242472678179200507522682137365050684708337631309008736950338517896411236373144236195357984626654617621122095863498918857641573535782294529671597483049935027448047488950081775340309525264698587665954597390944230498416817824505801605226837178561608211467853585249592349263619120498541512730451097434945716226528979181464612169408770798787499652553052746433175285542061424039946298999486860827233859619495600165225960549329159837198297805604849222697182421234783164659813754879104409744322802258294850977324624758823949408148344966789436497283448728093657537414097450237915831904027092547515826620355897470501677506914428544452906015011638158044925274127750447201353233322330707187887439567496693815578946131881265366256559726962249812442710874832534855084664403014656380402367940942616462219232217227685975401741089881482143703370802716080718479158878956364006284758730361253340082483340938705473822195132276345779427443136685927892676817332561060083952958931215221671178465982764590470293485981848329676310722559337098494150474910349598964736068428737206951376691549139417347585138104661283875656968914122936696340379575061732386937272255666814254261138400667115521778473056673789270666968430493833473207243336878723899181070156071872324183848483730783517376560326828565080880899516011154468085336774889046061300159727849272249279895777597162418843858072410496800273967396136212134149404766728795349401240847322475568058274979079733991180715987320291933191682947380465000422974423731195318572765150898829844788992052055349918430899534346532669915644236222126968307067691967364804793390854433246688675621354576595187451015502549124665195868910788796781269338711111151643553993563021581053713807932915029082768514956315019550286388834520344369152912706951374006568395044753674728037419437679163936830625811003106025148683163897158138465213588692442467043849125024805074985187683895923471694481042533469341397844615641711409520913476116060344384955093423044277165030863139475580438633505624688641080670804301906373386607049727157712619793501497650860388572122150111441508354669148216318587881745530813978288327191360538521161546373834219278661180715612937417230181534058743792412941500842187100355914952428183092455699952562595135900339314400924516890992661804538926564466980539770896191407614697089188305042301155040666635309119446982716232377623876041751154347035333555878816682305444433878581654144330718762755409131679896434891559912461785595988872247386317192806487160300309912971071111412735356404582074992976937632803201725500129845945064101637431158190653949160121739354519751549149081673854479092260018986630759075210281524924794551527434993521041339358819685647078836190658273658161027093483457984239818453325401601741346153460192480374943196183129966752238744970077887331492865120873033517566811878947892332084075236883391157329052243537020643869777123287110422682360312570863232723415369376799145998906987706560182171755516115922304970597256157599824649978553011266201599774928973716986021606531973613569639468870708889944349332958481446411092911503544999552310937933290998401434485478926612620118136235355093183421751420966308327699065449794836202262576663550322793855113772673707655975168767209432878963748108147417673445685269479576270475856202012381489639067432522853395114480413453768103560195554921003918106888541909592437380936703287742823843446896445390241531932086229354795909531466308511147191639552368453390481931445877513910448030527719541135075559155583519813757896595169017855180786794431950886001365404879709591513094753590968119746099863887090738429241191705693920074667345380976186545723331256068290665808167062862189722284417376982615756358626856956105105704300257827373872993178691398328804271312240068696483145096909019402336797188988615491521904465346890996064390226168450137812066497420921154187666449267474289690094687134479710727178480391354936512661969358758149476458484159338593317082401137096949627286440135358258599966308448131365833514876007989648778668325703423502702430783306653053844206811984708967753018752438498319731163024547533491437270846437728826074692099387532119077898279557718034097989666119401831620885358973185632479012116953897453801687705824256140448715651442370078724423277556851217265617690314085960767387229844736032376213545265820526066267291087276062273765275456549521337152447168033139254019662653576677712713031749211258332375181695807893106076160920492844674617265428891302900733402935219942750593059680449833125022529331840282621831439944971589681369478610616088377641947865881454175628827797798182589014428436240814522194451577025828143587205104526174058303711578363575134635506655168682429324765280286115149767268435927546158083178538854632205068299595176543603660570467842040210075828913947089529708900569833386609758944531016626734158826806853525227085972162435334246556755865540842769091583019950454732601319136116304208650802517335883221008043468956853206899103167257416256501694972638628243912006547843988582649186129868759288358809142703030898238245420306526055503164819167850771411351634072020902869163640150254741868218643235379110105883506190757197819841552421447873626132614089499525829595663756980008817827149533671039693093375010791385962722518394794988224487552314076180466262899618489369968001164288464663869501017611774631781529188279011091328036725567835070920513922706903368234559140508346658381619433738232071592834747265488079582494227576468351929774936777930183764501566397653538335918646863652159706484393231434818884513511874716910172345508680776874363472054813554319456745702204996375539862722622008216149194785807302310318387372321162961178460197148034172469537694351025984595913911058385889119872756890952560680680141503668756107261068350900381866984572680878135373221602420948744128381109449553976597824669471429784035451696576811897732034193901428803695106819450382033263968409160221375867812086335253265850187265885572097022936812539192491864213369441049249332398312947904323515760402834555397576743299529115243790260736733137574111119482311931290605010303374819072912553475515260520022899637182215738065993333063362051084287508851874104998392447886283530246350381352594233222844478776067007318957504828965355702618132006532902861156449238086503977807826617660189972647236338645411623960282213935681664182922861134404383541543462612811800336460807410871393213939847893448795369282706217917215950829209660589542469949577678385351813730676638178277549017172059543949239099871432628125241826684496116685627177728176546163138830213646600019467812750360202993333769129783662352479143177669612628241591719552702064736462817551453967383334018813502793824518301259325431236702192456637535596770928357463553509888339972889968009483045268434234487805648262297190832242612799658966106603880807880638461197415330949331782835247624890876213081396082670356183029491163694870498022238115792789241287080734304256933324900452754407122625786035764313773656426326175194368497072207646851090508469125187505376128044321139427175493716824335558857466814192006821369864081149781623210029614148183881217516093538567016740981348864456798688009775593961865773995078256588504200297995414094100608093995249375321990410545800408735676511484986862134618437688280994186633379123656650016737162217711792214403406027859537018184657960036835419990828775897435969070634381970275123423100661315745544562853854449537000079723676456646927814487451837022055436360872694126717914944296216635001084242909252660472695411499321221712124505443938262431270467655649389532893918750403792927856867441385894510765859517618245527527675510287850807822598191783604197064793319645642656445108663864546709456352025449495674658918120948213211913774366968058426209892577012647041413095657587255602120163510944381301516734621869231081423445822407014638747146432367341178695308147905194505973129963013038445824684017125331091413468265891060106418459113833380799343559155252207070710569846867722108246526980889249731445935577208738433848944150815465331036113961963500551837479038366643965567440580651480476703801892771207297651407999198659672413966674313727095012581692902201107358635407079626933060674199394499370312391852243030488965361581699241238825904300420306554163452550796396592880775970168191377796833651454206360248869890630415512129685922275676986685647424846569841224029207640907369019170763944151898349477584646599017777489418762731225766214982837347950531635336805624651254483676006866027272185446114378341903853453852671183632942085147363162415465097622906908886391358234443010897197419107845008896066063113658456744662979326079749380408970693357490463586103210909775878111036923727193130988624969432007010360157957887003230062193248466568771238645178590057602806187702336344062427855773174299069812293457047774769596552115603604883722349507353111604021739077980522611990633337843833241690759574886110887034809357663390390781345225967916683445617081286931667929428736823825630277178829862521655584974065126471351250530242441525705145378983802630758753130564970581002623309879809881298518543459023872809350825751016726990311737670842638089142433231997184507498524028078303502111573632525955155538955661434747499841484557885711160494077173399990567565886545702676505023592117345618462546147292032501016301875860321267236632508937499946748356621399071408297875551612911418462371430029949298154403729901758780325666678715618307283578698229860747474940538361061483410501794711715360189494649044785888678928205499332162405545110054292969440295858033561120708042944872002858624254711016717077518713297173429970424041439899344707391267531608763499746539958719644175991420427000573353430151838278353839095056750792528235512217503398865498971200684406331829103494972265396230461942310954535574312371471517966472389107066143825677412461163600677758712016529191105227628749067248007551712923654373504913137073425513393615618452953737952097091311582025884904517655576025831412679127744051334069479065119944147287267451812494119483085546090062363178022960190720089367650202584581756804247059025035604304364288246361572720838068882876017546546187923284685359592642424077338509377280658312438681425795585403617123412809173574324520715948545915291516516961241135924928067972365486204818799403091591027669618789977241229637523786871341501407853933612426710868748083026453746792819637133599938665394611370209492181809669582192687572348495807861217011632195114100894832201261044490574831179770070633324673835169696211807949629839860862093704340574793579598316782422982045617605646126101848525496165114992931871245047188729702697891901123177190215744262432060296670990253719490908044335258026459526433872836694893246353040937903196570512575645522288663629287496415213028058803668785729637940306825077552889039882994169378187046828915786306527232630144992285200048531643020080139624376837217336028442177937713683151598194700055046020473461762143308245192341035857648599123494378248523432048351973035499942934019479814475636581241712432825657853486807585192372482972015313053975474721185811332572017021979777921496794358490734020942109761320614833204491674284070013065659370511195431087058938124791112372072969247494586848682343134849606377507006544216228940213412396242906013884346471010754684141464026393127132292192758733388332336510435407170127279490381143597299370480621754094371602184385576357594193076254941487149244299575601271811681149806917251347609965446810080047402355573931086833511295635684985981813187833287023446434187178797196642033021596721816131318691318532662615773575384196635192941787980375615930094538880488801323896182215312869230690774398749187762405117615770831093810146210091554566241372593157513459195200581467043532978445815592660628280925328533252295258369230206011481208487356253820551282602622361045859716455489409819076809629181427439149395963511808103359600013164054566380170708087229577170486137165095550201242563387418553271462155133576742337143474874161379923379464028183618051504606217364266029142081267060279588781365056199810261643434365193110457307251725510739558839836535425119046421349225517468949821350708548290097817574760466047533885596659212960966000299744818791574158426229340737795509699529866697844451225268360349598469573770532967792908720206762387730834909565778452542061693582555899562277145855675096077580045097561609096190793810424074035105444159187201359984473684060543626056970423793113163325177318429815272158233590881092256056684519251768472645875190291506476797711995084867375371697260883148478588777757629983438416921453469469240639788365084631176136400215983318735153256262669883485353040831619283274775332063584284599645092755393313241832382655936143548562882356427622074847259932439505531717907037291160853848224319896108348019284992603498120711210532852352463774639244306996600645960437177452351134990424553630345455520208491615073210101381478422194237481429357088242413953116850688223135349414128016704058478613970716578803000491215723540138688755634748441092112122655281994203129786620118479214949404939532786639259687869196147901465075773727433889383822677391881600913861434771478801526202683132446074567485098059258175893902612399957061957027668072211608336394503982008247455021285273238699494224820558949356086753552948500260379874022338205447652352954629281715093121765171269345670033798203852028319737682985266614084133476016011867134659574714047019954482082826649691541253604917146595820672088062350806330972956080243966854574695220715705961579018183940367137922228635701991991414723393426554689675169699423755208092912241167329451265188245747236321974292911913536186511822705178550559271584904527298000787599325955636998519888781725712837526041429165352332382814765535834312138276476545499211955668497569703914448939817033640889233276293190800335809746083319878237298144513633910151158821177745555746834549260428712800197153439026658602308717219840058986547010267128135749637587859813785949832271724475637280477420809052300980098358096757638691552509827205298776938104585747666566506959822894996414653492898987980904060156695495377683874061826904285729599429229132000732627144297980530334517264062126118603648341908638928512623043367761196735940067668787368619079998601182849485021464108203617001406490939372075786804556510684029712490396251155381652673076556125501153701593101639917343201910795585338170873477645348341964378246526977762528904980441812688872068130051399690149659721846886393237397435151817747922789065845352633618094528185934756904182693336552446545490090621271011083395947685701774571935283726052494356890732250549812507196604141707206654334519454387485754048920608342033010683455974285134657961590588371101802884395028926572366196485441211544249555728736144255435641754070348986131196976746142105203890826810791940674506542178343100131086156545433034823119977604681689588090008763012272986433887190779251792115800923064899704197581967238907997738483558674502024374270154789543356852433844277547708977741931607018413742105125244519756505754168392140626192908345848074262235740017717591820859457842430256681858083118402875366283512967656991950688742145393239793276251083799788671292773619996933057796327051360122646717915699588034597469560736745493245428245949504954679096695480495345284314851672483730888420730957040157010143963586073396447321770857535681913261253366494514342421328691254207598005718220060365889693824636419323859918916751385750267126791434836305083901285941942853652069976339709985843752820657933493226187051396471627801144564657896939708420795632111665690341468669956072371022704777372017435105672782810422282646465419594966847553321683165131430297647839080669896154484336037688675839023862800807496686737824255004183141075659667830502477268417362079812125881641185730406204172910275379487172159361079419699785005939725878860358639395148791736074070465112944750214620374083865459776328146611560529303574832856565634437815697602516597486796800365915902865489300598832042373933698339814969646754791317506273798132246978929187836689902059260511855909483592340870844478186565385296078004475367776148744913973571017326081904475183413872211623814910229287066204313024863885670560950676562769226997115769749328972750627410923838754193132660884356582624498877343131287477049693177554796552037400181803514809662798789680764270032082477169177446525435305154761237093553138729499373954408880920935734553701601928724548355539251105753084963262071930628605833392418695286388077244959063750252239159632703561397550966397057421505020804808417154104698564664665139980915427363963399092126512962715428497740074715791465454101975210958040280016984279304696856975071392232671695696016623000789767313340010023712090434714484038071142161364474795758492709403408057080684948484036233916326287788324425035683676324890263702001409674641858705434751853439846404561298738453028733036834048098794432330852032668022801939552356076241015425554196389771011889651807118865150797905491623454390412079298410444038042524746033957152013994339179794080511782734890082070919319777284917094509231316408923584982986815074010355420015480879861607654117932062133470920359903192055417324132393405688349878276395691982378551875827860693169275413447229347660304207577200926126085724227968186484395951349994956063702866759365914697903435542412331089114977399487943589408094859225151672821669132312747471073949339218960040607343850983511859208582074540595032614785123866364621210920380562842720441089093803564818827257822222031749175719170034228718761716420362246276339210726914397765763000358796050130709084293185318068429640771215911384516193716287467210219106952195881554830081971450707323682474908925122398379560264463862123518416111573159353965437409127989310404098758105767638172971037228412896149107473515252782121557906127149849129838950098058552888128658655184377049051352624979798799960813245220918945151823441146524005334848091859658309690104639613554315170942617933440601946045640159050499639306605193834347757011847788376453395234150912872985373150772932435202644542967029687137422499945729422714024840112333445764891709111647486097010094394585164331558141923843324646763360269535750421317228309924379868869352038302387481469996349955752163856888634999856181325245204794706045700092392155852653860480563969089845997788570606393369885133148905830562606640618082212160910747650489642435382557728511416286342541476510059393422841825819463834847028814019905973397710779000429982792835484435193112220444524335035813170215556794701063091923034237389651635989677081098513295843570423692864513107218530739715278019918622265178088693218113265161070492642103357194783582554517389404578187297519089663875627944467667193794482154407695132473025387477941753682308034680573451060328412525658665263205449116548978822010522184554897845216397370843876835784889532512547779297582457760983101898124380090408996755543833804718266653705164119437827684145489286888511153172410298946017402869115479742138422107458495502611521153690283904955431680800252591605533326311549156932128900561339129701951636933138094547088906389158796533471176918638554864680862223832998426274569483455632760338111114997721700906868936599179206358453724605744800145463136382815592059289819687797245753292745157703778153703905083813915700953506889742517006845533799786666889007934125680643774247953493674174873916386505256232791503281776232421000297484650930589975997286591322578269775720206928487204587657523934601803186231369002686600213657644493725271876000953860421585447560801443972935756129933894206155825209492544634542967440836171928991340214660542103389383425366746041055514047296624723248446915534208811177826357720841680515773063530248655596407086835457154576467286022579467166806995373849662884875487277411347200275402562731815911938359115208782989800443074178895669868495120965675728702277779290428172925977604168299127727212111811141089823044359906580908346198725639911214205411127434287286218160967501661456808205459248510202606192283249549524583602173592096422865555284171375649462840169124801911891213817222204516239284661334951773800613920220610089860996404538616050779695608826387566979765870562117693200677118606245181043756136680016070673110526647699047576015643995631833742339932590599941828612909249432201551918356260497672443387942092924809863670871123481014377324535326342036017615816229917899978804274257388039198272601098299894931898057409342489750004850551034791814789510296091601706439898778866095799220290268033008123026659993797014569073033355444141482432393792645265231359675430707727686752951349945028657626703690357245213908731835960688620143332164558803744283712173696002103988323097204683753698578200064055004027757942069579995871948779041040010509480782419348852348697340737974497943357617614787034438566016690516307740132354567535242268230899997121212879986497952151572332638135788878254012828620442999356231930705200062689662569177371682499458922908930424546414764082113089360000282073545458075489884552314565335816810325293604575324183757012963937705645964599049892462444991241705316294966298560070763535276433726620739244159768570006564113579279014590561112418007866314420348553214907802393047725983218181425245193800533518709823197792346290958832758788973077748953242233281905482147605268342842227433070696412393092383020200170799735016006884984567860037255991906699745998818065642693762994466554658620124810356204088204600031356819280676352217205870012084868439645357471738537918139090386513238125992215521681504925061126917855404089413094147022565970899673202663294546849159386043442262453843820737963424905531234241112541235136310591177972549221846906886687140452933903217150180605873378839042804906565135836184842527910306740380766115871686260706991591444002870575202420321836361127942878829422617175109091438478873154882481686435767179664924861497873402366680436293385228849637742615695390157310642045615669607193077562305241109170158483495900156951458747714789283685308042864753682506377702722603133519233813809646441229223946840785304182553355005115664723918268139483302473480061062989703535118953718492226847530151298914037659732725161174684262059280425339970965096577921897316157760725417800495005922706241666383169501918309987078663608163112316196752537519548532695585976981799602109406178583060593091563240433498287528747174701811088647796130119013913245767734979399019988185212024399808581995597232527343590622136170958133436244076761523169602658068775121672159866320611524582719037101562071466737769995370301869267786047139504931472638602390926320076519870025270856680537147697389044622730095279791925798800290003003856486058798042459425860031221401498012095881476317481263743229926401532664811137170412311369690745880521479996964151152306655704714181253364556307311248756678400689618990871575858264491298630294684276953576897149816374401120737396826822423076637583204678950515036478092240998174041058795941143300612303761196006824227991277769570814253205475811404867045971824135442097601465671559376619086221816630818564809590412104887209265184570286229569000802270088898226073927318346283263078025289722849434378435409108609682846751983519170442456454698156331595207367032583007699310791442205784638263387175204485733759490363227309655020561557364573437754305834374667078673051934054115627444914723723430962542528884673832914590978727165259133982496472979718202044214846498390040369625208304949584163270513550887981823605821569084007357129179847802861013788828873689432484130814110161861420019634986359371976955882924024873161216007708606487891901746456594661448595999650756794881550233722175454365358437384441709586242648281469975780845809716714868215305949164356990757248150199494644287752889205891373063044145509880967272685003979386340126976700777570898131881802297044086170117208928399284195835387956982839476432522870183178926335971127190479251257139956844386567750170244988451562805988714334613351734483856747581994447774152970355568813649542135522933468079166283608904334041920026778836665899983303839786853737276424738429870150507096523908562149944586195992129308535860123676457220686846397507132751858104545158783863627478537595841147813729546014238470867300427835593172657900420067279492077179752879862683884174349843388407932347889891685118106650976002523959259214487510441110218979465726152541214287673866428682201836313798011389683861017306316993749384387190286219286556056882478449645521842598528034162888028877566448885775412926684694497298928946417371025365174025669138913548197941577756883894574602247966101894822040023241177933857448808637021565781061404085524701240089010583906684785684713773690994856021053160142596510919989796077397393110677398308038675713012619894677558326067128092115415540130686510623694882032020209639512552876100899032808340066550942106540058814676484478701761120110964710785596681026580233946758970376700781247284563002767682222889001386558493237364142459337689762294206890478576510000565898317934485746058679053233917204172225402906533050813536713775289315113756408275259324496112414566182187839510666582163079725246250072054568797243231122724270598249265597066462842420315100483939792807175059721551872238818081171110701113035640723081336477110161619709631363273202847873469808503527517438209373176791175197088779585718347271948212758606788443479947539920434911937336481673032380591229184025748531488454744108154976189699067557554957510984549697268257597865636307300390763246930427872880537955495023299991064203233684917686814203153627701286614704561863947888391618829046262984831172304083163221086008257200091190820485630322242356111672076274386438715354836257295400635067802820085211236115994180519196888574837830593660726832717662791559860914068587713528407539302457992500202873706974614392305031650853766455620766484221018674450334992416463730782002648269339458112087342820189852026087368407233065999899035477606365925636211109120128201198267684039329195240000712501983588336458286858612286675135454520625011999646257462917695031125578850207091755606795068777283188578875447689320694734845321031884682917596112973831289474424125515946345908807125810052342657468282256734667150304233109083366024373235465445099507355318042816848499022166531629495253641621504003426424067128447372752311784688272209668345615071120686304554203534440386550431471401106748938900629612563027025092966752118398322614627208984479373092587877187194575016364725909867445559953768826347453801454652291231704565372213710127434856400345680885290299647790753361685487172320258295531019838993847357405007166013526475530217857311839248907731346104587216090724017184931323322914470742360560429802548055958614025615826063789342309246383510540259791221360985160086643486095104876794924960817220616796347069543835935970849178308310003707738127095112556276247458501544210836300142330562586154830717914191597402932972695745565916608662113503470458436868403319506718876399704443203785004831649382037719053433876325364843068229708403336302202139390265210942733492444783429987374141174042274472033780487201138551543774106743242864865207246648529056084842551813188360037428813234980371109487482477609426665751407324985272085968789078595979606308504783767551430429593967044993863124378715195907492673934046192842947761986546694597270446836690493751105909671197622363638897441690275305260097847017769332445515593176284477829665801043258247950885872834617324908022672715832955724083189179809628589925071600917989656016427362355145658687160873418307485471204031747149278498651885404175341852436702247223482517934096747012424923436128954137742633980417290535630793552114322247321107623097911778635921451443776911549189701599085754748975058352393135645032058495166763873329583967627519655531303561494910927729288972844948663126349130104373939343340161464317557569088870400720939143705583243079086529931555627206017314952051650950521411690825461330663145013449307604539181906529267147566430053350345951564466724399755634487451434393968474914224032789374231890748453711193660408528797997127133759106074834444527725904222192602182016147073894776381697445795076124448348919943288182075705052857729015249360872040253667603487875822562152566754460526373765756169512367034571280475575750663840508957113442694875603137669579809932023261619521017538672573193766722939394207487456172025475229249656833887263106846712537775551667100347237340770329889317402696923867917314759358422441160159043363697280754121738202559319060280195759429437751367773949781022309693424882788606416729162922293348235027565014198297562759449105831100808022558780022976455629048965581647301870151667130075296332441212334590052891826296749556483672138416922783307838271049026924337934081552137189688704776354374402237361713969719377198479333652622597126637668840590919712355368256155751338559063220786138386966842511025049777172891203536307142867481168372104295206636723794724624473682117456791702612122961765557976646038175961155780178987603933954401557212359193927937590869374136593099686266590013990726611435316675684975035677397955647369837145634680487955422554201874606743307085986680328371937190117419873674848783908320362054509349866459008285283318686702085259287489395757293542392178954512118945606360791789456868330134651242078563016265587397550282568042409975637032182076647023279332104016808609579018131057945491191367252346269598540149693711180773017572031214607032001036965705721154973459528172725322628679402777585950649909194255855059710865144277636785820492928186793813562794394181244485917301949548850840613182658368513111887033207167570323920433346152470932504628685465527675375521873074888877912591785792423088657845206681233473066338634071871383082944679253544164764249305848576168653976266284950261564392538521103538146378314359219349508977204921776865507560793169017163667029990669324641846432494107927246625377494850774253384723680370580389025608730554583935273472831019865146102917370026093889287811756099640928743261946954691351343318009781242020628318885722475938468611144043238367929360567329946023816392516347003634280139341063524720199713862687926895724030650626978239174084974227784466107145136676498781321906276342864196945404519105471107528342669460124946242061706527741357657582830474770828576757179601213672319499366173036233840666268775754101733527277343053151791344529068297445043183611706970805838413438243633707446764678227270540444350840153261060031429686187907152254808409151946677761985508987266486981019700650109022635305564548011171992730655308401706422911882967537746729871477421699386443420166719919678888476774031439503645599771918580803871171303105027941998079494702958936612926203269069449670906467278971293576732398114849319895343340935270982846925793304974249552371465729080407571981828290174471835718584466556055457467478537878519880556919706479312992140696807829053175689671030088873632108191611843332296013416786252335031414801697949459722486230520662825783883572739792840443452921042009619913253146065371326515314586172229312850069206406346334989175403180353861185621285185089153678996235103272619843028255979013369078697316804581238595486375158916446645761545411428767228009826934273387210122449170878343850805510412192447549846314494690061274712462077210314355066048034695826376153663554832291750160907844328903462464499251905646200364142031416557359788818069624443283210123627185757847252929039025264580786546337022734923437769025630544859430230274606337487253550463056401315899758741124346552118106671240658960554200728527271104499014644797010056935287896575776861952891812028156012398700011620895345344926772237937757421838119032177170708293015036540655479816446917919621666209574352189919964230348521183238320458385022114510026500782943924763600888000209489667851394177826878157586246321180680711923347355421726486193496257367425682405025091153888392205884077994267748210749786401369024355609734041883377671337494597141547698813396321559960157560311525494088150653438122499031155385771623998838833185107333747436932906112974932730133969979415076863875717121979880786803696908906113806929288623756953643194047535831066892100588158619607310061373516338447401823069543842591306611871040055644945907166663332508289270429253081459397544120901312854827165521392011000350830545232010269375845862441424759871671847703999806771682216753143282564869688305294415032024180262453722499045471608788601480838070597891272233365822242457243988077737615598306673871757672093558078217355792827746545652952744092781962187096553212675607621162303093068501670347168642989196342124666986359983667384960433128660296922541473001711015327232653676399749032630838960578598985224526212961713918101785294831277229813980903582645671848531243790016475435705010503908704896118404574750307727287164465289338173957853323619516307420425368438700415365119691764009538863648972196481268339100450571941439459629267236146044148629308587992376033796768047600687730306662615600635232163504335676098231895913344785415411459209862761390037260101269696312730958559977044220059473013625186024490925303743481127218743879811994513138138438390111257073365067143267867426032838168069745392523425287900428210094338951148282060036555721125596175407639781572369992743919145615437006995507852241595524114159955738318589730302525070594349334992641972987975359466470198779691390753767073815990007687261589047356888541386059373436839369805596482858954174976041272679179272217430963052908409509823575057218002750367776982263111976472620575723187866344657063601785733246936548463162795034156218224701338449376615738407454030703007325840591363398605366167370053854927461547578211020739115298251193418463409531086473510985097755294167303624118265498540033766386146062123152015223140538141513025850258771173101010773572197659254302768180019409978267227002304583259370042491834998988386754504076444978001371805079820334222040789718674874281336882290070788422082531056947602883556483103056671455033158168282740035665683082341751333926907937633137889847670935317475489597529847481450392369042173729397347847179203990835310842730368689016346179712023558330797398413221872241293413087924234953324442917147405900688210899537836754207252815322924271533774443498836100333359642017380371092306031337932315750452890915051784195640772712014473350683691565705096566771997697161423248392176447529216423698911079519113102577078881159853587303190879822508891937885761362987638961703118707911675991513834402290829532900930440895144908615423126074864687950105131630407739764903438635373671606640965360036782647349441057404260905974978280933752470465101301432403296147091969110543085258338434411894032727526000413987572816910086852496491064065894916356322928394808776493994407958586142368729946413764673679436360064018735149571969884401921249829838611189777552259461126720357219906284150759708906672688069655139865037230865938542921182718943536861427148090676840922410914562368554430325408250162414835272319235070532482558725513075417238820152850752447252910512453225312169722688474514711623921117199119683832797702699077641770044211300948470711607871930297153462958221742019750405282634847828922296636303860804537761424892694745926595576629161856060585884917934381439940004060566770786721350904544801926770482495393692916182994075964037261934931674521963028289149463852519142278634789822380346608726251297881430684693266639102762197499226942148400114343283465091477832532452602734404672033913288455129114253166804638291640032956104828166626471854454582877867863877104694478862935218609233163920166744003618193682351159193359334021182782952815023923508238113068522347305389244872156266176920357949816642699524003335689797412318596671713140791299986867866971210294003382317882029474136016411249686132114467312022071467446177290283539644082236728513821546412912175136770466156418889009760001857467275646031453793776802315872955124908885648200946986445260102542101193849344451077530135284511316708292543801981606226143484789883222723986135631592645151414074040096645615258321455536607105536778239623125976252226461547994404576203310093816177535012607813843116380151060096750591211740737259419130451080399508479778391079882055580681605430441359289704556673109474998977758849878343765406476343112625699421986110073975151741680714398865832013860173747644934477125396255445938424028625378321629416724581064468960533341625057737964986969886952471152504939934946027393372324422375372600434092700140189327908293951690290775445607557367685480483936498658216380842657870409736854504990154167078842276977468913204857196807106334384633325678260960757586018549050486234177362969656085757676146912070604148897316263800300059329490278739309033050104987832135043434750946978803402067740609297251098163256583815945961904042919630829878809494559526722801066867712073401929135570639751528233239368944764305064968214490084207443102815493596693756293637368325636907661756884039160221304318630376408146841704675507614489370682688108878648965923792417042883746758999320729522511743104952454300573084466282666963620230263876242575438236106935287601152603395022782682545885869679292986031818335989372330482571566618550122771109840791328198763270393810080397070655772560491554564259823838820848393918885493532069773455101193206832832608871363377312575494843191270896775844927856351241605380855689776738458458937270055040084073118992135894108572136426447835946479834859477116356932144721239520818568040954398642591569805619277372600920219405029843558171273477405260726218281398877927302190486618754955926993613162114843778504136391994802689867889080454360207187752681873130895207653785370327056160884882204213154559674631277615322917153777460492357161821603446070223303624198227126319663608537640589528179533556713027577670508613263961826891827457064436049634759346679928831157831853318046833449574372539894726583513126065482175676197233899461014960545889283890759599969638595184288755169471070824339035758706522833553357017769118228706240171200083508217845924032373664580996641386634532273390138247729947045467391060085438850616592577163991454438724429262311644606233469375188337039426920048070560964522617762758269950092695165249436545572575337035398961316976967080409549977885209236653371951303934870126727245036783056798314238680930075432650169285954885561790145675465557904419302851139366829025745193100421095226375886811548736193438081535125651965378145197591193914032822430690971086399153296742548442587556958868063992678656266988108760771400299289573155002591846378548697602359687027573054587960592828883069774765915848162756729607501782566051557553164493333118692218173381190719601715776241435892557976870212978975236553834247034065436109324379084180360877006961738276734532177166598014554705568262423083575509026604689604273688625695289852283359000402231001473258445117727542755520693709835060594708180759593530288049329183188263897359905678950141941707405059988291432076711643822124689880619980317043987513207832792535850494128521123475829100161866676159087184923567029377175597232339378783788141868763058187426043981902439190931829340020857381784978939815449461290227011043225801370656061319937930132355555519891862270305660201831218198166275029231134337073835990391758895386060943419913295191880294763978752727846845108437483485933052310771139211702919941894196559694954640289840776748371683173769546938650155826601348943314856394100868266912639763072349511356248688539175318022229976497419064921419224306807624462246070968042850679360566474003914931967716451432037616104254740111943855980007194577960796178555856364368503746269898480267073367038449644663936113642986556952531145288270005628117809735715407715679728179745328679827897825781031870612794450120304345888469600105871327484364672604132719600246005151991018894111734317404169043302810072904476431678202570729654668644717595039197620912884947917957417151307953960989579821743769021480090252024829165384785677867749303104470327218437114863915512120275623443237695853194626154451521454012134186983845038620419895098097006383155896408901381351717445894118939889104721203560359389224174589571991502588572153717183052278668956669225891627580407096697837041074254423857455629232675517703273347909455258427868246479717284076723701698223667363471386031151712795633299755264628176071552839373393471763261543022070490045971084776904784535776776706132605156967015621686364982278115207831847561596086170125367658128537773906959379012657681559279857785956102494243840377690594815097521124435607170828973655665772785658857695401839798409085820580630185552540452360566962297982302903795512538859252365236220397296676445850342922186218064821257026614359130038230448066497897436904112287104373519548778253722660761468442983908871497829094454283655780487563117984113357695873398694052891057857497071982229975538721190937971973398820519386032236068858511110548717928936978698421896827175181433849018450893698358346901586250891948204278229530812089326222387333688559639981187272055298292833982520370970048519933734154218658275936064842244055891551444801574463037450219801462528655629710121323466266660527397346446969222340717054929836662479786775874707002875326219892991924540263165181376885722465601400968511355634704540825128077797566824164204736203073602870035273651047841104813655329442873757948425563196497624619334825002486119359772145624299741667112862179924595620954467016830984127196896751039507114418912689168391717173215911376789966974113714894777249316096600875065162075672176752595112096920212701308756071712361839407001511638569337776955646199212915330485660627186942228373306309888774745313343051509388406164250703504778817714945790650364516244248307737089989230197964908204688347433893029045684665670346077209714800836119755088169536180426537431712524332612052743786271527552112987200117870017126684563815115370009972776974351667841146582109580490450700258369162787154890898602741574175533966694168973604148854510311017170366191504773166274741986109458641878161628178290352568460418301080057993562525184845291419458628817368746475492981920624615839281571280525543651578370485333742771462365633882409673068413217688873563449733684659508624136970330539762650968200640439015987908487196779103512739609285027656304681409757233016875057051080205930547806273071280533685912288648047387314049448362494626704320377233120916954137202192797129301516493586374101931019969291475628721632962080363472781542659068484886388841807511851463429787008575576077289976353131675170414535155330633615675977264031015043215207819648915783901177827827607464413323755420893014295372502665503602656164204228094476549985618964469654341544217856959829216731354777402040168777760997500315345454941607999695749257963782017009694376130915386625920734072292767620791643859785981774272425504445751755412652810997196247145897000074087074994154988295498811417835293818039028988596323609355134376778885708436306827259979041328524033585775151949584051862331457141552437366815900013723573733487456146118816353666449892835722849685692790095556652872305885142713117265540639394174181612842975500943444453026493218292226639646600678923276259327360410680079623358332761074539911045032620750574734238271534245814631031606889030473257639609188031945332653820776921369356296536951534442256001168409137996359338538903712329870896667031617185678506364529314430202277314980872606505844993828216856051504050740248655669435580305118795308974842556539489263420075329229323063079534651756102769786338918065775742384275019868277567468273290436720672001616135111179281795430987592767760498338124530723367647419750273271585569978741515109543410598481752875887823645785966934671742858581060266414384120224470837735337651949615561487726848409479567394006227389288472129726072251502028210795832167106599167302154492323357062391700621283775360807285856957575119822931127380218298792084897216855340556653825292615334637654772063386868163394769811890750558789684304598808736866229772090175410861863612941723273807198428338115657799285968947334016018178935867279728349856455539044615368963765664437120790905844182791755051382101496259363971563924578075864661536847240929150650140307467833662318847327667840582737568755678570115113288185691932374572332556563170638133564789440565017438027493597324689172888938854605851930404637807716033951873126968330583499283520805759306455116699839758056110465253897646966589012029493355476765112702827272915786429810295060725017652011284730150918148163791689433240721811807776236260204105231319128793223334943873603429720928439894195156609502585944568902998688902250177474304497600370609409397361286786639447284316592670648183172295169259910297542342548678264456726916235640270397423750016411682566872734063235275306375047512908567564815244544803161000972856204635371118103464322458961536080633934276607415277057141492600045760328855640746504825317706712346105076953350952695549546272132089111302508166680278904113183947824308029650778219753919875623694211362215082397593992424671516583654910624679331537824263335786032798084053580959559520861423183852268908572692775632136179865447069254121748455851886390366371788289574552035612763661181008806468646890112032372172238356653265854820259645074069624995792538226412344774922914401259447982505185796312380521488827960517527514992224583939975536967556313507824713047891740084446490041707518237873814205318745239354534133685090642620263905883401262034930480307979989818326818489477803424095346352348545330335531283574521045985177198658086391234081215416221698100257452567227690248296192890154088123660539532705825846211069860158320114937512685067459488750147659230837048386728352754944446816198065100150514671484995504228677809210567966536801212207350440206587445609932714138263273567086422811095474229998018795138335196187104223446209603614263640465769558058670401891284981463338520384808581775715755752605534063574797293370994740465130471683741730995457548132014680133935211763060802503970401892071349549972794296031069038239074890558161373585282426252017024050666237449147634371976592879308692836310077508537637625365262977590859378504586311735738276933489582620536223067302657893725223880422518129838060552064180136103296405098590556631504314579586108559863233838920237041988268730865024041635338302303516997728365356733400295785619328076083376971007948384621232532961658183141542113661911919133462523247786832270023169896824502097472667290060387128034818613566911897874938316416483103932900271573309458787833873271349134348817906004714693054958698182291370899453724424953910859322922660357544518155685940225166727396086107965027368633634287751550348031281931474244951169933130170002023285080040525714741107684961766399890109971473255827081733443249574380243422760645450176778035015537582390307200289495432476388343298167088182302113670603998176799922098398756610502257777013674574638622201517480214933753522385426636194381177627988922370936515473305935444648257969535456503296080745856773188669991969231186353179471318359973108881946278969115267940451862937973626874146209600164691319519226111087592814943369910522261678949452290171022725094182992387986963707176875111936808454136441127202318030982166150695580109441778422774845257519327060716111618921499664755457273377169148964452742658337614557625663120110878430628173183383577527602200992715645316410257508481334472824403790242550265450265761708654294464693950064394269524434294263187100190265541694272353660993871340604201147590165576680828690042414526954702970906450625771022748296316256058055867021262561349806247631531933617063345794372312041655437497517324695231915926494306652036589384279130660032501296966126376775132300978075164313010669132334078910746750826604194357351407712108754502714913242135794546533888696161863440819628517018617520778673213054404875210236271155601768174782449543281417858506946188776267614882358590651128034794290885771866347698467451469059473734418571699667818125567944529055623343147469652458132279896647393932558253887363261526215289050107325005098104382720001670508223180809630223234245649015387332302699092217863987317007908557739226853417924973688514973207041803792621772434287197478188705716208963863255592883194673795202638892729921478829273991224951850386392199159909221235448147496564487961535638119090278527433063361737433391127062777491435059635856678678799056950253409265058118622918034149316216590228724152188129061284138851585037219452248465565370278902089533483083496788372789484447581103107688827597894830268011924172344574572621025068648748350502194039465807625899431518782508893210222621975976328504979334103975575212452355192675686936244880871129018349245810161695091269180362789362983183532288030506157118272020412496521135260464655912164758482063394221130184611786625947937278554726596772530013341104147422929432307273321281487866668521229271342900238195172243600872800148555856424499207213315861564850680556993200814890831725231210561955245872121786740245128999056807645793347076399648169606386076355680389578564214630965750861826631010824688845340811271237483651804088417318822040077488962139890351146454976436729884882118524368724730819176608877038836642705821621477896799213051852741281821832996949308426826718193271831108070653392007523340997070043443473427967146849564704132733850191652308175674983272146049770241436611011957686240307738428511504449909395230332775990062248187307493653110086721665062193181737757002938386093347974235351388299709834055557282343944695165902208414208851382458389923521252792536493785634433853514823059815755695970187518885885523971659623092693681099888484368972986985153575781762965283730432462323098101929494553958109425395599060103395775330239160230715961105216757788480794321129645782569417310907003395400781921855578963932153655378302339825074745194031435443123699983559117995559257432428730262407378432565415350182015573730027288537048246875747195895402706714383498712722642636969944305383935842557014888780017641416282829502002502799254040987113184777655077542710507881209745590822170283680205950322008613093704141965879934053664893922638678497281851649158634853932988733017268804555938381719387589945003182116360680836354915843644514564385571746758309231843462639544841009512358159230651841894620237515241193876831354129921265667209586794299502217587582244612507251706639694744662045354893926347383010916681069354695472079996135496633221925437489420503570665250358468650528415047491936395564310856626025956892602035011450839920244460134763195876008033289783721882922678515993161411192119298949222249092713793378104402178882232268862649373349359124065832995068664373829310340046822205891767389944679520946368994951818201329238345628523912765870312519513145165288721013620298928389972243936642854098264349998198138552547657517330159555054781923346161991142966071970703522748589979990439980485212983053367834050134852978313491206909575432844976581922650245432126709785708201460038112822099195611143616957354694832686889787381829852229497239957526862853961864148611827651219934204847011971383860424707664105897421655778097510067746750168509823030257370355928316471121855122167958554512284362511836543512437750163331855777466298152957380530595491740334917709822324933858073103868612082898252206982600607177783480705985536987828079154175029029564863389923400810919832760091314816127402118649265951632937069497689581194495989260104451611920608287496887407039498887024332777547328104509852350264283184191070509352868375572309875366408746040846281121247048357862730389953826006402056400560600735314396224917240171945752794869851431156302192751604993449924017943561918203338898626821058053473130257391230015662343287377929966102174040883790580161734235122847227746444503475811393061159757112247777158638735204125976500444176368492172496560914642846355559221625419239930461266517051347177260647305333181680450371784307889161244886600242605812264274690015731257375132494329205874331034314148626764943240176865403529999173027087663688398625529773332747969037088613736526288782117512536144643881252550268204701601784318310427904780082878156099183386727912186014528207306550570274123905972774958075021891672520118702987349127734868420203464875752172624406932204024003173691320970489949169826529324376466802156711398304979698411770039588875368313462713293016271154089622679857063278384177507222173434717418155128284562191982284060361407235359252614040961482281114878614435030114016866784533907936699442884087295922184653177108773192077015878993651876835851099625482101590951229394158962735536180775975883550614741994225177598783211354783315490072508588390491039410852746089339291839646138552380475032152595923348520312225407173141817018395316724366139491897784728333233665466109388734593674083278005580547642023872086729323059957727826224229849752287271892678573248923745712162259174115222976272105688955027282796962669926719815449079591133638788975952527339106336934806225495095620694583346935599571878487240715131755387384787787271294911921447889018499648122141375097443699519494564456493318989818526828773108417056703159740224905694103069687071634026043085287937767752716609237106479818610891085621334198889666258971581237101519138795425385857938007493290933968833938089108707712712540233031345623455530013351255853303476800793746150848538923261352517632285070636678633008258505823452894880117167937916706176225169895106644232626088732704028893410121908276858060438518132268570868498005648228337875078882384250377626231129978344722370459086741347608552927447779161716319066972528526124098545608837148686888944813083351459310073717103171027513267199527351842781261592802966506602539535200597263970040263523164933814716814906270076963646484611445599783138919671707796732951247582017834290235118563107496597056565491780695352555631024892770382076989110410880288980446738303737544920105184780123475950638080816763328620510566152382666571785298347748178402374976927284951129343288018633840783462080583637014367961230000791401937941466277110482364488042759974096560266641081355778193885570195324192280240631427134300680557768646092270273061035630120167009301747528209067969859887664747856561007530853206335435041052078502435927751477032001052643802883357225029761594060149378616831281541650346043273032379715802795047225459941122917194249207068677659869740329210140713497995494682000621249159876118289890365624508611787297377188369607025977571380715309386256737835100301501927140899449981632509888129619917297441523786132742599124701650477417347692078049381826815260058573251510678069070484000762715680051097463843349156812411610265882288298498972524818094489842014222167034382898856104176387107262131427110520210381596664107800744181518303339014485498860922987478572448784930050191786383269185962874182823031309384472426390775243315642960886765758292208874612653731496307575024670591130834040505153037059961990907772204929047501910457782372677111580735708081283943118057063990070655093935742550251363267342498683080742721961690525968334546604071422575104104583625498655221344578325017447919809455493324360525231331927227181301987243522483418529381395019530655642947769657807599057942814153679816622121885740904310435963831773304926534117528630146056401900748199891253641871460299157566228716621963929821849105516441332535587764177661591507587813235490165078228959010802451914497791233349709107644654511752011818429364359858165576689707356861081659453805996692831528502932587679754965253975860619727120013044036476543179803177413105654442961461060564327620344786301776284427021847344666815476436512285605701084648375368449692235261111757309961225534856332388305853918969238872272062095726095937905735349527070657865855344864708632186119665982744819557367861070863021411868573089374175346408807914365289290844212721811638626066399665985517192153391052310133424212663973762200253476337284616229629519165676959414245545077407247229535280261096304624336335438210295451608162611975481311307197570302367615965358954852509501902566280998168761982854370614228266588553270962785556714001247753442148357868256572950183437573939548823959287267144932277109644344838833995107087426600766758065911663482966850030413107151960253095638784579639818485292282824868463890937871772868825626433933504758335605840783721254309049585153693862254642005637845355717540887277895181700595678550980256248010448240365845381568012385785102709416610117156544341840823128812897755338047808887307880593634962681789690371686854527925151768199340482994066795708811485008320559855798852890002581070053072351901053879301686632518975892219224633806895941111756673474856280752945059143965254608869515223777316755510111238768165361046578000670311016868660042833621811652584462864493817690210384374110670536230030003314245879544511529143688208070704351173711564836360813206110819999585193887724285104457965620968991158742929569693309080853743415617162738223848786076648393681341008247355080331215044024610187208268341354131035978165653619573039040583110663091258910543524473504931118594954592824835989146670530794801839135868415947838811583194549150051559081751314172545482161702234779733690806375912413865772373873086386891810144605366574259478401403613249325163373575703441212195940719145249684507123087197244724911316253201103302736612713540719309997803573523643020988822062839608101818793204054266960233199156255035985049723141373910138575513995688063699203328409782884401190387362125031240978669764434972583187115966048714203906100281238027721236673057831541588144798279334297283907827184057062160952142189719361319130641393238787272615609900657141368318384012837212479900307032946834583629612642373857402713048858352507190228593679151442735702551157261567532505929596726271248514788577818982887222875662433973879998631532930603826038334744691067202272251383647008335381194516367934954189959120027955448310286988430843370940874131414704452937664698886561267204714053413297702904184168683308185704558438481783267417781864390385362242624649579782572931089733857784947535501913811380303832245491347403516283485468787176571728076459158844255050187785620727731605263087945214791552734966746456384221275760232156753887998029945879046525682562812536265972766195451028095407438251752777095481960837763363826117176473418137796587126043335031263713197272744128000702789401845844308315172946086356047710050507840059846697220385915697791911129620067748606532883981325910695452796107225921698437722287214427798702904630615440884734083244591232053488708001376633500110285269643214735262110539833548164075878858759016767733141119894108028062047917401860635216075744376016287699714826466081621115125970197510784305927806645194939271643293139312288506539356669607210029595968930760854515155356306492405312552205709913015759798692033541412015327216120671429814181708097954370528026425800147170730619211697284317050205680430853547837180610187227573398606063061750764663931996273608594676479521507169654667686347501210089520327825804911145504064147901862850043888897563307147974146072409472683875256182534816910227348978446678658546442329900746052248778971955092602032003286058665083284441098185985082722333497927865852321668129023600962245503047029053081915897556001281134219394372263980627823924252514430261602809754792150943510565116445284093359156602798637599947821480870400995847391153694152831082383763117391201682483905154021599882303528611342217503711666346993651762069149303745081513345456499129605158180910356638246012062057059020454473841827982960321416473700430685789102219676666385103832420946707668493076300222430302487776319174691973483345391345732415670063639105615587176055042602751279565728070811496100059955983112830202301319472824007612787031538367022673264558467763331156729344608063086945734856685338470288137462413185568018915410967983130378703400258495939264389240798710288675158235145617511880370624201736596875732077429867357157150792980824138514670870641588292511807718792514106112839348850275299188640954733762863555244264139752406114420195043734322552959755718525592955994501500570837752509269214069234697032346194893058336072076659394812285468229142992998081416989981661589951038397831699747908370806661380253946717324717354461860334312676227524414130295779752898758375612980183450113667487403750030256760377864660045969341555128467734123871863161572388261208334052347924573162514040651187430625074682048216262697653690056289792675914745532499568361517961194524437062220876460489783785582664409458565692156490322567507606278054698854442417836945392856807087864212721450071539244024428822480688269782534294679284385037312243734855697942693993708077223214707644079230350299789391956159769912364651605567545759022204633583190719390728635798979379601674838164321680495080253296276402944679563483957149314324007249660811981707475027597362368840040199361790278335001543301901327375616510101352446354504071541981483668134285072690021792993354058918432807776403989756184158542489984750632951095871946680522281685864845245785936804401025221320687553001240562908434701553581314200707747832411582211699823687878924820367529574334533487839519513325650967601134357290609232124189802378749023320088373593398867153242381576223217688809176185117414232345111851198195895118852023742304643998367085272493532500783378327955930855686795499722722551509194607799168251639964379798158428343655074536072022461329903149318098755491356535640478266040216546479516799113322862449176470615898527459097819141938534859362788309804822880893768962576073054420584115036636500182744079991872841883142554879765548298285601518925239408742567648178767592595991354498014581906621161424486732215223362980285815469855162492396934992731754226213346875694194312282847549663994877893473899080313900258792303965551984281583770882417361509829360426617191012448765802238180461707432043828671050773323328918313555873615288602763322556093963077379658221377500887525346873938644222409292353657805492642422067709543077546967603035094415946983952687150128141343017578915401088204905737591516212252166529621774673290165307333388428580998140642128676655810811293573175715022503732942675880041873509192781181449801035575175608503765521884329972082704673416196417451288090536446775750790050903544102959196234439679950278762516948271864541814740007655442136038497187039630596976090824704782383475134388431394802883253613622196498433300684404176782166689562792402448803067902551248516966155809862800563261732217237107741517075101708296432573824552687082537621517094090800654067025543485975285126248203807425118463056587409839490205740266014493200792496590352852824647228249725080550638052107507280851046940520015409456672396520425904522439873395774496751130190071318102125810392614475115543118846627077608493237088225854845508596599308282521268313174267528374923242962491712876868957095576910816103116729768639591415776298200807186417416679976360371449003936178730036190983169498174519987512120087126168204828793502284019843345848701123942751502834101199080769863495749704266620082261026947622362788424709284063198576879280727542888155585634167121117447047631584542576631033757655230355747174948459187192496145054538114764003807307435262104485300974887793195440953886547222055837235051251570110867557799803385776822772859235873076142951740257389527857333966571021396415485925985642136775233148167712901216708677868748144924641236290416477738336638432616317153506824228426844653383118401090759632703375753999038777650321134710324225975417919171748851173220894916128661536516014997269561882114281121325986502311852202826232979401209393705241444649925986205324680344136667165433844054376195356861915070271196473890217258259689866803833440330257558471290699144056794871055013769561389478830310479682522847995719052767609078175188045332007097906865559001877565970893063414192930463948214281544845205629489017513444940797335213246076536952852654884692019451283059942805530821069184217846624320164470615171193769498553259128708065312037324498994668535906559371900535197903128682464183486882874025758146217234175885581063126297716699695952226834799005390268708173791377466649392897832476680092062331804216281982497919588084290764074319332112387539242099147591390194777474190469442114053512337099206657764571506839127141424617119903886258048525627541348580843362994207393936068499245566700986094389127433962580757499647968104604151035825384008131146883806903183638948547382676303047315162885184188012319784586091076052708065267493635953650494566093306465760178886037842888291324224857414869266612183394841181627732259188556570263312513821692926203990099587118235265866383257715559368781073287445518378764533986007342291699750877247093300921565911977866954153827701542511504623950270956184659334512536927155488310981835291299646842236709875288155374875242840694231728554944373399464750130878959827154850681821860979668381267056707662387507179231629488781752230568117426024764702991967322691346128684494161806105549209564477326900191242120901346058479906694420044777253568987629661600085181903016201700468986081237240376252905977405467879241668677985250991977216162131633652380872578735646143376334536295051488064488107291006107676610221921137560374627327592735169640794403999451767352999607188223239362749491035338827996722569260347093933488879757280797236033169497827536179457016797582669987055173451039802965713667599426770864241328258151425190036153579476225453569894358079296079095489460201756408727323401848466544783505308256461963543140550572902139022926919652242637711332560184017461840587431773808674976907060069022900228557708856512668324929981337446927884357436453836399198880845674252796188599019110994981520838243515492196803211610206454358821824776669265584474732805458646295939495371951515101163630200517331052673986538522341043574011880986524081051840895850825779058162383611480599965414022133669788868372017383269652372316459254773958696733986033281164582147312977923132939410147920969804102944703839906642280285139678116227567569131247011695326398867631807142260271166032408700661749432230878049754431224266761200458319473096995544413136823419037088217229659719148124148814784854681826333207868442478466944913423617968265930674543359571581060262414700961980388887044267693844899069373306985069638759742296875439655137856358946695257611184605839354964287951809751061753565394140961126574093179405472717767171804520206503261641234246321354207482231167502315820143323155492351494207233526654255544225605330020866815109675065761161941587921200783938916530449347591334766799540868597446887467336622790841484508563969264800220061098193157812761579984416019021745953569158595005880476115766266938145135462737647670280584758758560789150186021825111196634603354870211816457327735748618747856141435028707265354491358559673708067139049897030821600532272852946730627905105876896071340492051473872566359732124689618702883865784148956142210870397789908773235666213129955662512552172603673202977148733442928880667799096139122077752397979281348215028358027096890440831001926639600756465675616895206395766830177787290824419853480425390827112377490901359034576199797960455046745735039343206300482636537514448720132853907049622728608100282811932260652961652460089136533600922590399809111084779954312280960002955542075466727694498682483370064292586578263626746318954287905250266618921739786151248433954119742802553387123987725363708349696489663854699470797425351596316119743170008825944154540126061185569747284845123328665141449479655067283649295225455645521063108674132747234932683421778889281646194441607490054381167101655122765706008934470254034682989526136843753131354115396662135872362145506274100794612679939091371413184317031282240832000188687974534256740563486432704261181293479162659774945955163581623867267718798270005901928204486135558884147226997822944371730654109595028559211582452726947061849796124711174409936785035517109273783792579134279588321444415979821840710909913851028353964674248583367955093578891195987182287369149420458547211999469918052092398545171827217758306523624369059744900958795079647604809127548447031400821154731909471446858140831894300030998215261668840360500846052331019566248256524441908534475523536882903928366788467656433631834916425532105534234969056587143129860885139530051141013066555415760366001221880380455484785609117798499617407087002684309632285922786244107789066157725490607443565032504418328884009517466753262350926164536487353806477433899825024454985563959127206688787785402605483351540462102092280470525337781723954931925182790500367286208574342743618321083426634411508766819749206717426756857180293299652958988337308440167786620376743861845920515972361557276748554454588558012537349311163210156575027407647959148578914359836692512129580858899323547141145509153864765966158800341507933138610979913198301479521381150222528990036030796084824505411136105787038186875101774727491649423064076559911140745302847509647389528986641186279328963843677477020136543134641265229734376304917088319525063905409613276046163607591130667817619491385706987912995386197487724422293553319800327570773448016349052397733045066584992576454061735664544107828464909780055470820814004135089793295600639973309442907254802651616344134672446703335968369298380427816376209512520132332804935021230908106872524336877244755795304173637548054268537027677340780825709626607029601326772409241121620449457640034331897840666120015589538689380850920094271682465664597106131699827680377163077163069818330851735754705625846828569664144532435411586135746406796815519881942400083339787667578062692292668652856434041562083304059797971761146994108413129683392062891931928146965659245250477849125645055187782498236643998472571892907278731727542153730579563344613183704331052279176480031177517886799292618335441542589136999699366991831041344146819921898936736064571871202698823180131965701936008180917652197462975758829315480830777367696891557121940623289057887393522235925914633549486025845519281089956875280095069877529130255909303936953593796247130803857588835623214875232143967044700085816638769914960714267382037888153121147733576403778043797287181061149786524267089033801937726079476522176254759628904578312482665756730760971688140484073247417318612003008870172232981558623889499266436086253414314473554339042044611188068732383042474017048349643253036016367735095110303881871145419451338643146408063809028531749271047062701869730780234907148584265805322833269761715390981049609777170245903319794366986523915330436865703846993201228851209716072702018335299466669119395275347205157218611341367397299287680420108130982528962937350621378005181088549550709855755354690795469540378071174588511941040143718845075398651502534232798936291043323533839579272658027794679968442259443825487490281855698993766863650397070237085476190298410792127226606105281968966974066984340697639757370105137754893186617148570274788338203304058787271025533160742816900667861275900829148357100658238538153331636346048650356267745754590963234078541912999106236149675821861928134622103458447051768804760790489659374797041001123402337200927261247126206930600395176691860093088883453849069868437139966463356762309771139338338537383539478532005817832331749163788834820427225723744536604049516101495349167401338319970540228857377463517815464308161654124325546341302379610610566940549273608251348456806984460970235966424736163076056251553734035887131881399892879613644712873014620062533198445609168216981600699080650722764583540101466052407940917863633848369630027200137516026276764689209936031549593655756660544931780682236709357790378148897613934552330565169658607184917515038453499188882452010346087536577427943595235816434504209116960166221830256261155571176798112795297895828961252849297733909128834228781391189760624661361276972391448410184508455227399048081576854090097974626658239645156296123461480686381169408012954915683973673075516449491757541787480975245152916732212971436064175950417605505166042508287506819074184208603278219175225895968562576277772874426199856907125557976544918927318118553413615680580685246189338141201734036706246102517352037393283396847087840631396228129531972953711753746774108997151798318600534269597860780770319203493447021134494255827520725450120250420371968286452567610011839204867127610752259616977276839849319855876639868144401446100763461613922003972925552258433101265596281290724309813515033049911957852471009730613051646834892242077405374786689415546115958338582167502357042648636072903883051996529694602535432740907891538884158497532210340951883118234663855481647323636780816999064337312354985291808641835039343714989678243561380993787896507425466904131369711758371948893265164393383093602436452919761553560030769254743804853685232417915613930909451340656856274554708305847936910982586525547257954191551071166665241785762236907315872430726045911235990252681840806761996550879167513291567756725246835391778768355013068660951137701389403829658478034609988065069058235588711721591229814933697164712807729339899147534014638291359882991415260556525915096764949742014087554848835609710511163337868966624172750395657230158739547188473179423301812376028076184504725999681804090997087831008004867940323541921884432062415701639745962339037878699839978359774427347333516124111458294536935970777601754232280620583189282915528860845488110546967047683128342838928479289020430882241057078087345010156939619346864524092658493679645633180856764231525178995549328889819071058763169631799068221915160661494450403763080604001626234484644565001010328595745892862455449984977347578805717890028647168910112525658194979961965763756002346153622597002744744249256241082455148666006731417626913037323629621594619471524655138799230725152122826714262433048238157470345124054435892304869317303581903662006182832122840993733629618749136261675166295831303084342783644279163263998618845978353909860963169991934205731194105768254630065602815668742760605139875750417474114998677287945310176058611757882048693516112469381319756693022670725818740629129016937206859396186278585588783587713057218065204213226675523008671602700401133810818716366727232657557190577991939893571043111031859640074600638470778056684749592222530106034698346801457566547617808879666910351879494685778672971206831498477076517762896206213399824031139150869487972664367964366074067668424704986170137548109846268704392708660265093485164667059225665806452959056036215653050316220798339520865791410719462888476978002125969772521633303361944524441557336929287329421597707816763028709440757263160257111163340958383856838679193898554102858913761197687355647148836322279133039789770583617419881346299853419595750833322811485385929233325498186870705914252077973975345471115836329644087847129785110325779318087493231546366657818949849859970331176396678320980421157911573421204799529280773555893460934157346068991405453123020232027190881115768660242960056249740423162969433821756036015001705375035904505636928778072055993763582089578337742659150239086378364418987412747201718740548043435552638529101802689034925305678511316157517372756580501551097075735946952147177644261307722945248481312324561416674735243419965417173699828816450672221481669246377923876825389852772695631664053771723236247950358969238721785364654199639320555179852050757846381145771114402356981627786109475784239556351989467404450547287125650812045007137116133161224853813805521215721623244466723829142706326915071498444530676311562651421163224046619227844469483753501730486477967978632321655815416592528227996885649668032142650975251681782013522305719156672297554753940081595506226735580687646625841486446786894136820066756843873654938951920863709001346686406969964129139049844260099950425649350258208850086414133305535183252824455455251098536939986781471859807105427791876814807278835112166724788137693904529683782614921032241581744817838287431101665023878418768050672285004380123774452301283833942040844166418619334863419724832913461633212873830136570196343262021019530934947351009900193461348535237963615411249595925119428403854619500032817005649067987717069100841744029005383164129652122257179510051490227926386727597937987462970117002852679639868287351942540420423594698533388550785280623574194257021000804350822118379389130357190462063583212817874103545353513907085344989814792493997994998434122268334022384687708637568175311115600851127896839483706439960959597007843501856887257935326652358971193281087759211600334496648635316609629380577788149660831288618533798124545001660177185978057761352940073600620631398724332523281313401315763702305552629655031963770922358903631936041134711427490905510033014831519886160696771354643359249677560756496426927972307478729181450102617071300473269641259407890719827979852693621418278592174675413475143856210198278574130291368896114395541822837320357571356243432732543182466560740783139777687851938833790227777623517083890849963121746447205832956179919260064138178395514088103999911370301395147206544620828578669053652906138141767514801616300981819807626913997619718386088600777876670104870685552848485965685645534997480546710370491516806017079579345270348049812998207903298425453908405419148439866662846647096124595712860818054178692569855112509852365196465138869747113006060830153761500207477844371235250337814351791528696444442923745286876476365550140127643476549136839643718652446810203341778211299273304442474820430220085297494039832836135435476858968837366727952841606684909323536259104142419845289441403455925816758852068390461193365175879296618528160564097888536420681942070113446187780317918326870160006992174624985201895022545124914404321396926193241941070071504672043883878724919043883835032182682129416834265365665393349361309835057551824781824432215081980491433234804227657645262670950222406540573603483608859500954749747884990549851213413581980031980479512406372345284257044353386027924007578870579390045621045430282021553567813490429252821486211895762934190917893685324453304725266080751912931259685460845978067158951904398761854626460734431149084402680438852648352515230470680958255086602446841782729231190766558178100142927080700452285799701717050404266561173836795768976742927916407638932996401893382815131906203316177165938705243082061202129088409201789729732625297544241179375529912747704222255494079089593068753265538058953874474519556053453037565718139018552123764774579052361028709895422482780163118700802150221295889364964723215329622225527672056778755970559939928414867116447735834140553563769752866458859806262243522544877240211384227079220838425595384774799806792642209235375714054247196481402371862430381092746487286494428497585688612865250053775989797152818626558941745497788765521966192113561431450546823463966676143140304960444506630495544765691596937587156755427940486091277509004990415400386820088635881984830024730053069492249537186742597717159058622017343580889641536434419660596591140572159345941560126091277297764528944650459602976422948702776232937717812936640213956473743618127662561337621318945782315720461365585697637013947225326150410119868725870024413118559371018896583968039757776815071011667439822533018548773950171138977760016443523920195261026555292850096039327844546712095834483746467505220892741498237113118291521359015322225861166637174556313506562790192684385029191640031060059791396500095330321740178638680215797791414749891961680503559451072670518771430922217369793140459153212859244057520838487281864697437650448051834885361739583335586092142075239089311868522357268902284605541989183561481561546780283152214504146501093008429146864715766961760894030383641440744422810692200595718467773749542399789310006366037681092628806469404373008540454183317422837003781092656725409519319521329872456124262082775819439168757937571499596002420923340190795310086322736634043698827769053024427061859954796895830229017522282778064971591144746418942692674220421796996969471276051257926058332838741766098394629185934624788261521621661893631842559369497464577886942645444194365936419479570979923776055862467310226417174635507487556584085327961761020677504724947747492508952895011387707704364878530818525649468347005338651087473120114343658582720169039483189626619034585165465668597077901136069990459074759681002359585219103857696102242540209267182654428078016312059169431147313409683193742923668518329763358646414082660440856394366385075458287566026117436346284850661087775856016211936235514405771174715228640537386069061253519355225986352096865487964793496433088956037232987064028836016811866477834192611228063855113741356537640054333120172355922558938449289970138720241405367775185279369185235753194162268797229701604495893419267984352112669004443604126781570079113485851563437025697800400253314714977106289419060245576263120221362006876726740269144209498371449810229789336297378202931154183568658075075172131520437566170288470690770682871902141829892685025311736336765232558900911776187001801034222455221544977589942709505717828041073697914178775387302773594392452575568855364395689802741572172181703942798753329022261992443295995028202618461890542706930119648805907811886411281513021845123873816806975859542328421747332351234768770587162401347199229441004564776290906730819373652483192303240034080410329188261187867372422804413870731453056347468866257913793782551406578552618495907827340148557057424855238696245042950783672562440782100558941205830066924921346480559172480326074566880262597149383987231962761225458845365097573611200569687006366779426483696162393091738870303406990252301244618755888183536677532154066356082134402072867934882623964472871902123861909628112830410916823075936549873341819366428130004751627377196196081388387496418489096613725215633949863593233330703421212515656992796245792196324826407501765898144101215508985851627621566129390148214987599684836193673106605325152088479008032892796952265275494063800434166156797650757948337736760890085925381220706527192082722456454439941045785249820155698792848109501408249995660868941886937787099675362260387933461704875631200733767505240120937766470940881294246343216580620374263173962023389419560289938469086237411279796939362950204374228845638376015422159241847493592066222606874966211849586581531304656134430960236269343920713589236898260293328304668748397224485376199459945862872992283129230006357480406638316303708627614657799290895168422906236669611263252924195346634537621848201840627730627535559536851894918196834066326381565366532803733141388964625922212716876980044921707049695810274128290619911930086556572833789356506838987226416519103740024645262680306470435113964456731305298960843702283926590572315124519006325633894217532132361879510902380034013104591516613669740562299787323331233896182676618732820605811198429886064804111793359074723374240166843150242738000710031071127397573146689039681443096631967283798951492741461410131103688404888521305040160043803776919147154881766112781521264109887984357679614632455464827286647689833169501739190162706445350056397310726371547328183055590886125534433101261409565685624165248257548176535160544346313897576057908855030163390666359495715537304780475697440609195562101392504333987700201205673750398731177856283700568987914434676898860869803162111699407648056018048329603616738467061457919593431326289270242246336958451027940376567973046824607244045279127733034624202611836596458060777721260381343102036965062183995252434345599362630084889917120671401400168222955464628094404225366209423709510274212177077105091552190609923929126286851322443792726909449757664128333293460369498463220473203972925499182076480488995065538410509690908960211291360901584584161640780149343561111418093812042729981436544944208036876689276531085207399991635036692331655034777867677681723362781413045173787954361303073604150920096515323962013708940867970252789258641411992341080653375943998244494551614255793407487248018460288011539574472167445399439214420155977862202130763085846312300642394123252829052620557674867246874205477600719678565567079549826167257823979308728629491049703104034733374738495208787944846897908423154690746189200354594740935116477742501180701750408038073650018144330405039816113313166471813114908334361523773239467983671631483263378037049418033868684202177070074220631724294793551313048534986861538944838675734461236399705390248668556592939742202782230617066985694516517156808390014073793156079555582492997811571361891354016298272454061727446823244292721063640725602062795288178530946003552828803696991899495327421062228108699770900403039547011776471911155207299537158041687161779349498012257582537455944468725936133443665716465049148470898300877525403020431046270619913669221631943925203378473044811364892957881155944330006017912654645577825799325637573149843419185003420071002680961129608955198528980522866951880480573764112272287095008779500481123322151021768803329746668981292591551059544525943448524417893445676205149659466853825933108878065073645717373197644143746941541081483477886631432059073847921452743682990842258501973423679330271553411070290351858150400898815265045388875035243610458545559494545415112840328452232508973484552130278120817820952828982966780057839752789021248988807326267702895896159983056262203404440682630113745431971930841082731612679389166214150625148326375951663065376385662592305048196328722669217208746458719689776222444707523064938649499344603774849153140144401788019944079690507945449984376343317740958003511751610463569292974283731145697435179636441437429994786669621620827644806418140637834485795049088846331771480094177560863170752615444374779589691236799551458367910057309615267081994452254623133151049974404159868699230879871864360288189411367343776731021739358485877510824211579903823663848116260373950593574856581639254563066139448287916646598683586534294749215339070488421039240082562433195946109208885715682244995538014697803286214061675809371107950594335583223557062933258143177274385161563605253357050506781184070374649461123228924264115507079079711918198711643126319299674259241968709672707136380742605763331563893312991503818883822852282804164289171592483893156981745791240671971335899187619116856013168524169324695587341179077522788531986994968753300961972845908462483821768727261339921129580640237029976124146856045004054407495222315797409170615775566990600887298447140730569639307311497558636919998689864976057920620670752617085678707777362029110606320054438005541944455852883995488002798341562408619704551064795354869528336196178559964487588373055683029703840961954529108068037205803834318745035416759490255615926670147979898164981160209826204241374668079150840646642674806074731279958824063325549365058489498888111448709936605938162148310525472137954082129887137932118351733065814790946200649902256816245755904393967606900305775618518361205492311516812180787252371697897162400832923708001999968613008047248235534425185533703160482903286090826582635947383866194681929344636611711850415547326649091641619596492907045346148848357340932663085719761190890338475707686281596379303846507729438869797941344596704530039082764646931838454792529185452342955176976449915741620945627001966358510154700634616066642418918315549810885515783516290434851668667238635062422014154607017280368856500453667053712494638545408658906535410584039650064413692213415992548674263584790675325593198150581579326190520480918464428974044034231910377295693443491041896851056106113797897937759694989940194786577496833793294044131963893482430255163589069893884681192442997807959339113937246057253483349300347983707530449935474470617981990148171489005391517978526434645153644954210137207255597072026037889665357330667362198365154055559032605149336705742507253825799327190295834680989279641013958330699870298088362294274738513645457457557744923123252354599574638033212870117188196663903189607367328887841914816623323264956581527784353570519739812705604498405778886065579061832585478820911479923692569460794435273731708076038768762367874507200024297726862734687534696191901528286649612299169643996768221114874442402259475197472280706877181600582995254353602076926826980088240632651058164475879196198259154687064652468815378338165649303873232189104221392108053907530206619468495156001120582518717968124906373338171436188956856272269012491076802616136454565104670127683975555868305556682329827344677379716054115954043453926147255474331074249864878262246303303775864215411358704893482225455834592305913343677311539826740885824155087921889446750622946026152068070077939047381236871057858360843367277382603030809205066290256235709501972084545416554828115064589601008005424853325181922646399351493039875064236434968913753132076478064658482918038949934536048771688204040911159129468725696866782054300039741422780277485117556092277113566783108295100332880415171807739595926720446289124272367432554418297331989843831340558058684306583396812826207106296826120634924367113988936243262415341889597160503981108573136040918984050437949544256244435331195120296475498580300136850480385617253421055706156356897327506981066512580221739025695491769869144291709682777378211354014785232483609748606657959488386256235754447346143672181151671038573823011227452257333356555272712892931069092909389388492696499853852455618024074018948724267874146429178147365549111378389435808571944427227891867423220729542711418839278349552098206439041004406965491839334463715897161728867428215413314798387217053458698266863978747085778458777191777107372945087903664622999503189973143923674707832326210412509215635914813044514435336612576525188911054926494457662940127029198174147123949979869726992957491427703991031556408849213453107553802372399659833175104782106206677328008130298288565590821404893075782250369017551667652566113287071402278091626152205181943047074766394349989611020686276522048836881730523341897861767154232603519615755261353214012904240794223945615706760722531566574037057855307742195755002360873425296537995193871788965308318398800667993275645258011425032098427616589240329617204001888399419310001840119670669043232362446323347693475748624329621271775591844593923042787595904594883039312145475175313674731861724981707594718738021616029156335211296698709308516987570455667544715533320677826676319135255009154307088743251519438877699496126013354719883187648226719331126292969360015696947133619346374647813009393755406558366048468843997778013969386614808650772693905649779205359558925797542796930459799834712336271059565111704947801792757117985282676952557557400292369510858081655131276306663341884420993215215824080897903571684274144668555505158839973525233344685066800400075676848469340750417712234926856294233638913272109249414517539822286878001167406163081114207645009032470435461697102993249935625036473478195455465937011559112337305277965082610093979552286918965881395704808777242082083419413097807695042829702077132405585760838224936283499126407004811284285908614483616807229340283255087034418900381684715049527945421599960731862172766155702297615263695467277604219098127629143435514568193425138035205416225276927929332883828769397666618457340695981252336336589353112910375178378182583240751086901758476611059818551277446863248621803456208417197579875855162866056436760920980920071869275986641597883151212722577439961470797300819544431017087937727407962618791727953784071724640610477765576330086183895326264806736762665484738677405185007670794110708176632704078825396709660939275031748355713311524828109634931047803848437292433284263430752397124380215933106832105663930126710810012773805135250262590776802007417639360360980592397077726592586321180908736037823663030218166297268217825169715030264581929212722085144229538545092392828449725743536433187906282691675294566996064373809116544849678995935674648925072158539524773816168915210787347722965304465081490574294432367950794611017723120043723541614287918401831218736194273401225697510287234932849334538964370080466450053347943489786928521114709444987036549648386744997008472540486792689150991397465812036312020176654927094108322356287671075088564369093122984993566415059304243416606919268661132427790335904919441092657750974042221844210245468576285574147557096272052804898579204133742899797106172873042560650403032468080902531808212169386702227044676038099071816740829810647029170135859150110403460723123124455927203808015980954980257147965420667207884562851190067840970806320846602097575728313954116174043622806225998476580217185237287196042251939960466996249525331355766135579525534719382218399831361980360570888191933018591002985926420599246272570637806588690958270547656609610598721786629083845185704092701683693804011114535924713984995244390879123678312581828295533918906337698222830536189764658201324228790767772948235985003755388524941659686640795907127204696034803215206040575618003203916481085573298382887220148514801163687680632975642430528927619708094810708947435222701052597469250312240203128177620357399824319308942553929070459924427165397168670024410198855406351324699369822879607294557853300357996084053189654682539309677651785090056558358517114424948335228709009753948073974071689914098431730726761171260768186336208288822141454921951159163646637181877664236659645799846353987160584632864751796937571042296047163656275010455827455197286055821835585510847087620359165093345597370553381487292069425087841122392805485058670338476092560382194487219270972240760208212657543013742188450986195273372370843456750599317670071407992746671104084917296310908081195585800982909025894053570047186985235490021025264152234847303550205893087814230849963589615467513644880788651209828637036214229615029474337206826034000139315302617953485607878992245090236842935363640416185428137868596073583696868437232394283538593926129251325545009810475564999309403639492390672445959018875321909070529492817922621484067643237819628214475887230500497349101486854436742429495490543180824323422413319137032362837376010510301662650786505337578592173477007776975557291770603857919533889313732654332487061168373194661851959589651653387930613883685547657102627270365157575109309563125907535019203242151446144873371133418168040332412985193876560079491926754379360069890350857402804018286580068476980970392288767245780906642913566581494043007443681016311985915612312438779593010207133699049418223266888596584630577196805681551880464686311179099497090013784491643013847210993502097832696035197599423107542577316021107417617404127176880910941152494530421704757449323240080657236713560145621386320517458785108543597228572915756306102108871151319967696101918611609151393494766199708902690844086053265881678831402456337539019320364316695915851622490464440007443319684404480524195881914188907687169203592481879862936185324907629325738159724474889046611915916458138381298352384157478324566869451319614211520358831938846339292305455655103837956516979283483615444471362891167569853786361397248832134368675192979935274808206961576701686784968568979870743960247679901716027126322575571714264574297422048546796149851796539908087312868002801874475678905947558792463908079832221431907656258911163850681421562610497217219881223528809329985166374660975046386232282670127055953831013595738884035087608940906720138981686912915999043115525882095115688623461182171992332887487242134813124450641883291461332160183610019057560554148537107759302271498480046822278272031433958324650005344278149810162322058144554534501806366725676336167906757433835920984665116973012506156821698801846065951413853268293049952542637273429164381550298200127667686815874148000060521449037529643013614015848956178817609392763430549632250957236891397700583866311427006148839272604485636045806023034109576831819279065569347989045384499609548734779369114764861672803396605204600296486655270386295804894738883084652121799760967224206652193082869566751450096364763218346004714197933451111985140220275235603354814398456955500123850957132909726852810304950581657762619920847495178534083800502586287809521069028092687211673678229457044430927254585132192626613827049322862041810848788057977495047382824940101499551169187247253511761370852029542605005515623630342299793834193730970613420072546427692936672877924131780733201571692479983968519855762281430298004557882507266761863510278220429232083905961724188633501024049260130718900922891008616441298075799739005727195189748348726820923709533111231793630619691247323757201820386666714054867098539990278729101600299612954517338668903589338825079931787333684818327984527609502514299597217556778612895804993139024976173744173507016148714070289714996234018028543882892587813535432357123108691958636158315436641695218164276673339095538174219385499203288063072475996850019340083650340115164922748000464224529831868866840910173687247310889629375415895109684679676374621014896764764164441408487234228148606902932434905615328400660038624537681423674782085286190885824219171332486839225809842941419784752467036142292039083467449146830545464299058450462285536379231180528806048318063351293613216148532243913293175967064711902719845187221298459168120375829937655682067761568916223402363810812695800503556628606910757308828097032819698361287166354476100020086033838361252554758106755767724494808454679370070644795469051603477195638528045868773855534898944086848969942923822343081381236136370104335541951088310285251150194300564320093267813567954073119460503529639253638134749502285617850520965707260354000967202735187607645264961702060534255890114144219969091349194259112010408121295768126721354375395796208425971701977221247930555101181985586288083882423404176057476183118846201428196609660941344295369701312939330692237587250484272583436382891595506585140453838739465405036873580998978188399447528315506756252068055479508732608952488283019964896064770140818162363176623282413367866535165848186678706762402640416613931797539893952061648328612641849240879427027802143021048296936759468267892631878587594195996140808062444818898934342062429480874270249416749880138105872750535220738182537739170200232913316892305168705259487962648874355820027048638068877834434199251255200111251251669901200838845243839665878132947228029578757983230132733181603489738109496278239230198624655730693654045907553866424813806914747715075776601340942711081195522887340464070106555903966919158420716929579561296370475647950622472691374739866392413172649514016147047499545934139440149098141551973035188756884488156618145509826311384561216833028050592982640232885289559228959883003068018557862330461832689970427061432046232093860291930004570636040371671509552419428814006019302182545602261389828301400999741813748832482878625711247409965272550693717978985507534692702831178551436712805976564890774853534031082973633593296694439163758549660775016212560613585726282752810790393486426682129818590293949040933599706806025315465944051178920901154087484002882220199408043480277466307917775600233167958516221341839090289389916691744369297925152928584619267350456174637404514734836761697696750270451093050001200293906605528142089014217695260586635997108997469685794656040462165037159312371096916132508725778750953249367611694685356159414874918578714339785405081508677505876194180704571898678031918402261137902911582559571617164760249154173468510503244066579735729192521983996588169053391370340459553776847127852804796497833515758851193890163310965382942365880051772566341420159337575131134147139126091685720640720358734913898878980057895044708107590752259918032819023209192739704839764847725210389140134761403234647879464099029467765312039656648001900916438035801545651766582164153234641785505176721578958199833003851958334042447732910821443586869801639870580039432434033082645292548105444067397512555657806350958762605992271916669016902503827750586714137559519399917495656416412839623510214074342916810593142559914520289131468974607631275071690611258545950526288959819974434342967476435817817827685793276031133311667341356801224481764472602542327839287193980672402701128418929483541784844424736008971582332646010645561504496122893761270550319240876228439443406915833912790572184637962549398409573240903453596496785308357975298616033466326506763314650505520194293032345267436568177192716094832864955986370277887722803433599036522197109962335291084984730955549478907155573611930994627070896683248481690342939916539224858394666971847157193174625730545745308479840516895875565200599030114174306965649296629706899755644173367218092592907867848475428656862586818928176832296650708023148314061916082220972748278281029626386018257754498421491529638769242265742573529465104713195908841779714127760042395451299796503683849475831429650514203867533229547122757890297499172872566375758558274852789739267780393819155588266248269720852925960194116576611705803888430497130470514147096948481884737550314351626398469964183419969683259468851360444496657376310969318200793863264006156723247949306974262843801094871687015273026701113443116248999516334231388409483284368337339492557534703297921755543695903030923438158654321836661066720435011428804571921366812964906826879423117692460519991871841615933188760059785956872200591578734695876040590019929911080396572571714286696287747675070442717333112723745400656364669141788801791224264802275356746018823397047290956474012048036459395838853777557292908026954775784854231882901835510330328665863056759837542604777570845504828317042793418257083669414483193929505629936933107979455021477328229870303172252614750484996507002380899381202156089119623067128850889382873016360349464658761424042613682019818581851291036043854704791505044567638101813963919200981240628104305035283396595328989817981325547524732050073470538625026783365333123999400213246274060087219159858767732243956676871784677942457975019501183125634872186937029673378910247890484043050410112194398893710362405073139046380305487393130855400332998880527106558199761450633642034368196642683531935989397336932497101249880272647898544636382747412747798419805687116939221938677887345335641868545572840452799126212012068746031856463307467374552920002046842534635119515977099720750411004234022486758769247892217302922754536287524101288877545396793414318857226964368892029097892571040919605497971593901333309968997968811218189499918348790898745914030887466609115833890890078689349726028611452700661411856691350297382573485383477039641413885775007793003554639271054637458782352819787146680495169305607660010179576733963482881138221872579390942217431843840863765266446644673100809014836200236741303776653283596472270940111620261505995549376177485405614930196182814689444106206767574804636262505681993658350924002321624070876553198956806003340305530499378410114362598363019987653181396994489832781606509841463294277992319147423082869155826253912836542893581350789766177390326831142012168930100975761327245272458050681490311738621287226541235479744588089025502852463926793921956071938116883310511222144568991568865304109996671343365412381920487156782712851681583109075592272383546291320623878021154298409610226803056609764412878618341558521693342026434691414849688562611063965110428153001935790472792648240405052727037514382995382813485933768701927920641787160932567888955646780552500162050362134672041241294546123183338636147097787436450827985783276515817580031266443510110090925208802679712922168264000211974950452840291622082947310405898237091550197840877981810453950996850787433778823402439036200676806505565545746298294334472364250865209542713792388118620064161728276600228338168138629471041714110434248120110634633390472989511546023918940295086867841283869345117724712626910786929498904922752385300809952783345773304318454567605447270717535613839120866369107309079427395111550404356908195935507130651069255335818662482121164889863728808837214519020937628806968783348482620475582860264923320247334708829778792296398027967312106817166506631709973648274034036141729088494821042292857719001199332306694227830687155391480133868647392116442381627952762269897035162267827831977724788308623418361757020577933880837557254123785752531597861353578599762079593593367027439685488266233917958675635974899045980940258732159512376956894056711584379737396278020499372200075156397886859692823849757237719338819050591842624127737410968769833150721584626669866868386405919247897504895015438829533191109909436860280336397243868776578969440496630098163016456433592177193926552144733208070194324351643377062310134249539031135072602945019121181256369901900623090109185424623169773828854574766111104866377897829759580417214218840062978058285281759805526734810404513416321800206057187690985447454043248701224630113070534524298777867411806939593521241907467577841335292120754702055570573643611298923448371562940819687799693426624109938681890903982530834829239167303673348351109694103856262342197592448393708985011447161963173254417880664290485861262279579589166756112800082077639580345071588944145047849021959046431528749391166962689379629608587879900084903145570844336663355271405760727460160103910312173101407412642210221014769514693530023463439991360456915751607828975657327237942458286676032864000061896223538293009198094909010327299125985397162501851705013755289620476668808098614416280121704777337036327476531089826819100096238018418456457184732098239884193929920882730198233778726530002474740166111561841339410705554952948195828080677552077718864287993341730144135490944620646981704938716352718609040356640265962238039434226325367901323674178591889421751815209382412221816787975536083694740283622710577771569171642910313129820592182313217358380607571791494062901643730439329278525937869827033155045498172364163640221362163135164803874875444894490004320039960243478069212373392947200426500944579684712942491292332194563480949750546227633787481605622869599614377695421096619013557179136361779981392933353633203195027141349941984659612893198165040247308610223991285828737929366936874911423424887223678398149344488228892416416817965472122338559533855679116713539271253262294983036540197732152104283518714471064240104473290411892323728821264049474445616270630539264190661749927143805223388109347823369434974471264551072270746850712880014431036894654467768912641033385825523537307564486346848458348744195362338872324515990288103379762526179224382338699550731964937922018684964806702132843568848189115451850192799153581455095782350468009807486638904340612957231618140474290943872858320742855909281612125602115778359838081506618494407253729136118533728085203128637629243153023325098441884253683028645638120555160002196147753920028158024506696875911142784805490521116854665103672423295157346137180529888498563133878032912622810154802486260608745785485699647312263445076141060020236724711932323804527866578269193342378731205172353755922057410172010690069979489818549909891078124301320238455758005489363020093772689584321441493919131384905341873801870384105800248517222729739442692019085321096403551968117022639030008912478078018626534152774046415314149339249363940715240669576177936442396560418463861270988135831703495554603154733083750299900018447860785526974160374506128504274678310318219115105212104226177988129602732919388542072988465723763326274155860297058197229800710909675819483400941397919074211926183402325340850148774750359731186502591343558038559249485794681461206304380931164874982277316059839557074963099121406204362896294149823154825076940644932103017918724258419559892253729410278278243192703402545529515111505831229429301816026540193006395004269810457348826721461241726190442727042973591907045322746761225468125067792425675033780992277147772619957950293577109165950407637345570771094811967351633318375942016629801192267856700222261825179704999368393037340909616510040402791337313325384657518173420564105357684891001864181886985362313477001245243181630293783747358954232655762322981286028876599177163094162055619390418285104168466780914658160577623695709654042470282913633424369609349481588518384590361896535538750650175466018469967349998635428722728676618613696968756741524313881580365399164236144154592871295642875732843000985169537953149418284050791005010108712939708620227149580615500140245472643810274232859788569133450363460531234961102810666795088583315713760912919018030253598968608326422754342668924114235316603270715043826905509615792374459679664893758388434615940525415752688594764312978211951240306728523600365581728912677135959622529773814468785867160051959633011186730040697523249814737803803301512463418399294217028787274273456782402330280285560300194911953427576574664033952562258152736052091024895781139003962715698900215090966572160241204439883878897035692089345313868616289767090915489105009957760214705967164135738603223504796843705725443483868066137786748726336619591534059266283642914186667915572890855139923393878804131370375434557186406601804386202757057910325447494266821279184244352634688482068563766966665009418923522268735365132007603357939127018556696410390471727165155959084218493543042709657905526548682513823641788645456382560380932071730785832392106167393399385898525661021221136627865936606935083892260630868531866441735661318981794192917314239963327783832445958599752367851524698588894503788197829047703517620535656799318096377580444851479439497370184382930477185840204039104338971856566102873345022513326502322342381773835006168611953598594560162691285876331954508613882107978420134664829360171408534690333977734653124335101326056900187585639092223954058161600838455716457872302614007865546876447526368306853848249141670278607239945732010453000724020502227728990385106692275699370788386455600923218640537113880021331643447954898278950167595471590163488987850984877823242077961936202637432829534573698916027696799674229074182275132408878180165028768636874689759564956647330216564650803438369539654742079429664908703473865768921083167794171489162398627126116903783143081167700257846782448582515425553119347473310761427697535172355302013931955824289156701825160263478872469326417395352989310805955030785687246726428832114039617319581649310210936979132112332107184200520882317902728111717665832002870884644919118371008557829652443893306591283648071134176335380507323814094027152995230679084776322528103813287768602813726049209204587675256089166022129744202502996685162203440876737179592052533015562818165816276238482206608689517232970276759199815035649348921279444539237392474882627806959863676713107208293144317392242935814346274309656918550932756902549035651080607088823818542738189179061591985644651229149516145435124728320141169782302582325627790540098446362936440114387762546049854997205755295075758027532421066937175498760479666244275247394316618021946550226606844453293143015223825643440802214658835260760260239550738373507046522406414723276935923746758153113237938456137647021514299723851958043278383390988317840413294689877507099656755584382156414020843011882721235547981572354813886445179647699208348117535943848111991087989090018037083682292830457580338709109892167728621076625376523836791142922925608484632102446600679283015199296186277685109694490494282013979286952363871494326740719699648915526951384556260622266130827936657643870830778638862952807664926386273331369496501803422714407077458288774212889367186374201513095001567194157772330725414944885725274071504701853090189148193571360390295486412681990452030085245553914721043288946332374532811688511961347647418673389679382797302306584294123819534956947154890070968676949795713113397511245921506107545923196789987746218547103845682603694603330984218054752480093180601633821503187579964300906923914907214876889475977236552737394605268638160732324634280596639413580696316265165160060125804177382347173463654847170381127707081013886276792643286489003162186374900171102656710677053932905091815326120137437063490767245406379954381543976979166209100190043462515604773477349132825482967259468918981348786235352179923415230495605567109472341636488805661876266923319919162208037728249620774993232085051413845534114762867491575706543950291480454716153936221405767042265667061149744997911649036013138561170616744433443384056048280491223834753252610976898858358136388196186132667500461990179708941563402186716249064217833496341678016637081958358522303628673318276114249989484713799706898795827675380692183647084296875996729079895330333020778229614865595711968442543878084873282036878967128019342952256183001104156896212425087945492979071714226421811193704090287802068561241474571931917313929290270090285889107441762088882852446596243135638159934590853268076790437869817317989358713589187439292227485550746865077281683751936431559040136531298951464233638173328417836968494007087780461359340228061385294246908209227859628704072839382704164221465034233720006412476903585091626230953604671559386524755028494762728617356222255564873410982691495928153783507049462595875957984406341138313384538221735679521112132955829935150049617917723934290920583821594889400871593273974144863867264216988747929646763216476354325725674968175934058838526202479582145753337609233836363372613038662700498464145921506583642026259307984341381798049034687611115641982776666473297865131994286337316049777635474826673210577813530433439351757438749988996138242251081166008826795696647193400015736104311757600230761657036715883227873669654350723746646485703927058744230382210998668679918139808284817104460601290356652626402465639368203596674243425525132546096626056457746932574770589032385025552866888474277963578583034594416903628326003885119549056622526782573503964696757766073147341386790960197413832406049745548368861150087130713025090800953151543512026626260871074757664756648405670245752304998990531519577274590324512658817360632036506606222752757305560916085795052705650800552989627482806499354368171725085237849980474414325327467390031590333708518345670578250958693500391815588751288037977121728026959335469959063992844960639528469698594390707674409456708415162844898438983741866162782504916974646768339146866775174398811603227611033023519273275642358940002180182053728766903544656798023003552062749041660119188825301113885769721515419536212571841860529683277571845543948361651659881864541543947830230999557270643427126998718472325527748636443685537552419895915451323133985103907348759882990056741805725259823923341091150230509190802094548590639146161730773831698211754864271866569320280796731167031072676096465170469690013149311418849016039853079026307033433894346787482647867590882629179653299808072422842008298354051095860512614874169790188128407561787448631904392381565741280018887036595501158142793179046459452133324671572288626725608486609168870585126550185148873729723380764091526310107701646715334897579615666247824276582038191364179046507185589218996570609604533620455541806494170970818093868815259856834058362974126595120666553820841643393203633894376792916696552915791798820403061743571460478307517580376361437249245454594606479306046957314413898825263802132951280630321200761392253028925662206027525331647133765612528351820200896258015879010393084120089904153884292656420297327743266528124854408713680262066475875550157538789845573535048227554100848027488001909040289350866086588228194344804828766758610031363755333879934485324761927111912931011254080949425120646873044904731499021497069723372723896251567016286876179978488770639395075888931067311303790458720047731644433681006825711242441009080478544681998546665292967167486188477366321833260061630194208283071026822925939643204031382566026185910530492347363429658575398459705615184133450233222118752738417129139762229141686582824839518127792432931113029373064763835397661769708495077392474330842002911366575830552430771163901805324937360620414995361059399771643028088221368442336879688268003930588887665627023694102146930480130552076446607163228080787992020686555724794582063049885681106410750278726029946730613424782619649578937484336246671238115020694277303110883184086040625142412165079980450493990555911276390515674293931124267971697453129623795199448512824365404763746387175868751272215796916256626649299363052362359825626849430837514366322975553007964030783548341384630237354977757894062949305779162717928672726282024411755022944470308370076015545686926208161745172919422712465729141782703352362139140966105070641755190817310692167079740445109921360325187505896402885255754433438382440328938968081427671665929428965562897131869237930959414803132363794308431451049412057573353039836479392501415839562613383684662505035933972505646377945356267127223835067900877689671265785319657887706947368792179885633894069736145901146845131505472781811655392174455613905300135184873264488851008293515781398665214577475085176167496753448812997410588645455518946669373051275863696385257296428484331557079691006704004872313145385235983497333012076348286778258175121556984962526975663524200456610253138797830436298629020986684269324466808887007454951747845483467198274762040891500892740058900432781641652253295580253343840989278105186848051374655364861164644441580825244188110469787075559992122669358723165486014180282680571012769367284436953507838697052394114608626789847319810536182595058431438980837811152027205346449726635517854554376630867179088362659745670897522642369917749452399958335221461223234260614728947354779714953226546844669846237842043232901811816548116377765000365780013970002844899903408530179022701719302039961053087165146200779712079335957424250770600225226211431500350633607525458977561231256948950502425989055689276924199630203671175519472286734562812920890613443429772339660008887954464990431192869585554031527280806097385441837065590585623406888523440368161352484033390021558928549711399397009576127411437685486883153530509747280562767411354154865114233950352976860203646795491126949312775119765030555921195410202603543942756463294489301202609420535714386877687278281184827654424388982136984087731102821945350006882109114907918543764623268472152539291392370289646651535371198678433416563604055962881792912558838750654961701780000680999674439767288174207475886309071222524632134353240223887738868113409081941809273611273462879574606075285511056120338907654548035091354153668108042517858283020783176682897228390019259314460869544562005714066602129798896696806062172542448310894901167725358579774648063908118257672263505984097762048123362334285590815582928126452860025570867683161039803594638345535507526587820429921701123478469442757641104334389262009612246875453523193979012169656455224732221176760968243759505826361575412336816933209489919308210039128460176206107488369938749891247026204628252419126419490373133789167116853411759463640575224970721742661539050038489404273663751583302488154712431548695212406446203095546366989683751190779730788580091440628356838354924559767215830964516931582130410669808735680159564887548550178199240768841010674966803006169381131358263941247137103438728159600912725974579595951805462426455903745008766097289988260570533684668897526290850655314018323803602804151181761724296288211272358966977226615147263942614102293744190994548618486633579883469007744996083105315318690278229818556619928004459887706070116365809153410752202894304194141050705864275572228756039025878059071122925255139146219091524041048978231932339019491023603934894429417987318699380529353412612432315596033396533537114423387517570366605180370032428106271102590431359321038456054843122083769655217102458870960894436091869665693451313341249676919010130800272866414565753952354717655974841025727438513741788447809292901980034013635502971257995702825077648497535190201280526720341544551827263761862377873249694589227964552322424257539036313876954417465038898395340964365877644204756459442926052396858754773656731328047108432638380463119661845510232979926411152490382893096657207155262715759729028502340552934468514713593489992922942478632708408392746419727078823992683889313944500300032592074383192435842216252691267693006041921256303486315105910849987863799827976321405886019171703583790226992150812996748448739455121169458312280109760727666748051862123654519915096499488189835466830839812424395731570091582637138097836768707331635470419193641440291564165796812169893878252802619608595361450392590573697752356110947717171339087960354946392818733888364278113904849249213853487540558553209301028897232895747481611230383690569377598540569872472619718993039092544594854766349479731587481850816755640729308636019380471687424894031370943714960231587399739297555002122886996882995060628426698813245283636974101915334610978452243560723705546979507387240578069686702931841013702158929897840487024144209414025238753345000856091148693440883189480252820913599525233370062333213957759125139470882143772934801306158780357272677333893667953266836405869887626677056682785348134127211276007800898785560507260524103472997126878650057047752166864863659247085985116163888105235418393763505570916959623717528001655942819735971637779333132197108967289665884172009407697141130422523126809163616399615506618076850947347105237588586089057940889839871757995221206360107218043704732811616306044348448779854042924634484957190933359992163274705019460968402079506189285922839926853679864060035806903158831244660518119972814091804674212111866583155981746094190452117809109840438472740258989389041862027111814423317127015823847965503762145376759053766452231095486682815230461946876652078727531257733884262042075980463568248519385330351403811371570916436109238269082853325570511829535393928717064913687124264457658100600273041281524147166008269155789362392984044635019405030035841676861250691895371423846710696334042429363297815684990622557164717186552032026665868743912156259120262249908398896087112902636529784801223137812830877341935866796526315364869780478965519991160203000787961809812715154275253633264587647724476737292675988967688842133568575218675494487893469447578182312894117173143083115249880700993594343931776666230071152312645413180335770728493709283028746391801649732712021645279283064626220211214002604168995286068056123040030391729761369866831610676572960610764613975888426992798835877457475593140107150128390758713013822866738648243920331540576278849295942455321705228885998054866208894351064465136390715732378188215671366019137507688652393370842998689092449410164722586602696105140881044958580492761350782042829760865302716074694117918449791057016822975320707305253022764576659988970398172882185223891060685932031152597485213960453106251910648940021451841333385366154824957943378532298377490322650924480930841569977053965254071231582865663512289569186531353115585170391602263356270007896695437818852985917799580047983273339010456123059704218848921148014085222641508156783440711921721262625126616982239992190874436618987837622778945220226638648926244505409541417050130496827273889587971301162508843991631403243780368667732789848372344209422784437907720669535093578223859092941992363707308703378431626040563645796654284517179707789594194206458413579387519436888677432269105998514393358890948581986949590252135760403852389623402590150638284284716830326313414544377188168387875697860525156840012638701661554387124621969275071286271069150896023736305832008044910396924993228720517458979108637810449321628074885519845364896719005105171844404517918421902724763107056686742022080415588187438612821644831898457943461213049921914451958282839460064675090819288196152817212674481321457274096108755348477307457505460007085844251490251226328691217810412294912421378856282489022683958820405634865665279608112867110601203670335795094370993387131268715204343412919635121496093208979327069532987162711602826240702398767569512476157264855125070666695167004308066901125905335354228411407373341075678097902306523500024559451228838305702891580951969076645430446076612023842339831477382045635804700271231059331181608921989684218139643916187945124403838420384126322890662277323345573930254950413272820023561003891076713275900801988214454199903237807063444891639367443096181137543148120203101610458091080852667256271189966180023122501796278832694197371514386786386148036510030073959749284901904307502430041455099663883999879474377174181654705871908507907948383485163095366319231636725387251597883942396193015854286695117071458423545509995180322094247931816616193495187239404669157824085641261786493467151668022913345285619261199084327338927647718966953862470460837196429913710500141440806909781353790471276065522463194199407966003532890461257878145198577281523009027161393060514612356521011064263044713263700270899381127394464984847412058831719496397641216674869831275748204375908350826176464513738863836166727766212185725110438678736725068812246781847194332430829366546143130967756373320414140735777296555862983315345858052262208621219501142142979669383807211390249332036253583019603524022757997749516801696802079718268165167077947766782020406997649127386060798347476709180544870475557598072747489591099584215617726985126108758756334019480781668438891902584570163661408028798248545005651683508247226119338337371299945108950852038480762115110173679591311763640983389989426008591914320971307231016226797919866807214670567007389770734237127682318019867609565339938472002005827637083269071310865964612547607547697761673739320632159668113677307054355554055978998800996213834087731651278955918105167307088680109375308035369212275701521224417574422129899238998604038630908687186608414795049789316953194005319424254004960777709873765464110057881921923437200006201989883590515331342191361544692405484600944139691172138913745348975917667275977078556935041398329576573145285452197222200786540224498585044982140603052699935561121536618537664976571782760982913245935692749104984411745869961513539150388801650290335667747461913422051017346704333145193461035145293012714199631362628376740544489184955904123575766278842093755530505175546099545181470108592455226929425755295154757006770100911955239563038382871490642389211116532911001300274631729352263783357968703857553082586764126550730867068728031715126557700106308612271709852043022631650048891454044362870981636590068480455939813343279602830769784956101641198116954981091130717495823002627273708164566276434140875192428039818629653156021612262070951246953878244426739045502651074703590664907827868126090300025606224571980882835593492952510598113873793743573328282744205420709252692759956354375635211034903441940345714828543474838736845694274599618117585499831314836370354820054252337200429397630675512814688184598297105585219261808697904563162126223636047159925542359737387611335977023802205457690328755992560131600088127558227081202721609429946050716230105481138650544366144618017238075306278667783507568081947395905610500204772144933080068727485497216750712186067231763762356046082473074487896182712825767197174643422636308069999205118855453077612905162504150100555099913535907131839145972956453758490662898755051735401789432968386832176145280852490739157047844677047459219922755673750120159585231046733394636894493679856992524034088250986735055090804820173979191651491485709359648613623882113554610542759861330511150267414493094279471364012269099574394450347027215563349070429116795301532136026678645727355229601151671644942490229430659670821654146555834729646201467480724401899791679137962735804775432285086730408813057786204364250103802927456036701127288730999444979950793363856232924550412763212134766185684264561241019082209628855324176096647932262975582671848862060180784772207647673045943443843511518540210076852604920914762994938051290048174196837440682240723854937174602560524215989829002445092299639214952039831620360318974149732681756758191483339133670960202999843663877280056550899431916278206148722031307087111653789782784238299368977238308421265197479920943918691214945509738821173921775911044992783738267789090088768609678546227807136953710666546509266949952810424805593675257995348013499368994099615001698613018154526758112123734275255357621334556841847897462884995773125959297024395352692260597325946003623954786084077861599403595147075002055344823517769855219882288958760180580466748377666240318115780875617333110374404788140863117138132435258136298981546060280141608469133847753293281209202820979131733801837284418352063950598862444926945118948331195771496314747763861617348944368974627378254637412299725972725176493215707700309916917594735620994279978950146548950610511648648379168245579500881821252610993960397812145170102581563215921536119738019024293828198645383440878971400271427977710692380762062118673155761780076305583778491599199852727881748758631272018569366637523072554720175877845719753994302012997548277139575905945202064501539548847657020879081258091672413638439744219059122947524900333627855357925168090934532371175941134806067186413489331959527927834832628481077112523019020059437125272210822158948427746551753496537207968778944773037298673048797826233950284912654797939601112291881991207257358171781849869208438336790796177695767053391079318082530026987210954982163785216021170105846521157988036784309176604648927577198421258074027875724616675595133006568942871882652338794720907785889361737464167583093159979291439593448225514655650841489407481911523937566696175378583087056571556118170163011477553201013245778487758048740465477224099895840370935852611307662666361459752758699747085988354507150788217193890882653239018620177579021560694651813248483527440483046261067965401883610591186046209077240416212179917580300228823651570389813080815947249800533391920518178840804378078948683092518392312861864465980077090218515089537055019280832445145891955251457922342044070313093158538942129453006555011402334847051435664945098681705665205118098020183394361830395058137429914447286188272347532862550764913370702919615985553905624608310969176196113254244266364112484838288330658661942871696299851476541892354385762764803509748175934381291864097020105811898486215875238769268143295913417929309361368960816240675130935360214245801723371500121842431162889185042782144993019591790288701806014841637409596680576328165277067845791303389272954299487976478176522887978737679755234527987156531434296820607479348627128423926408016786618089149435515963457051493214361260107406932380537288274948994153575965180089045367314818297952510977974173539261471780396423013873659639966423373781681546151817687008135215799486867188610884370280936369611210417905540068562512381833547381877450218207713880802225948132956790744991664460116159443436838134775993505649893674081657281518450041602228468284887407275384315301256966621839427803171648517483935008207525996505982156422825517271720069764212685129352681458464788443832010905737447078605995860269029085755369984184459781105263886734672064253219303501739412663593232404301902663364503662164206605259596071516775121887014206574869320665924815364231895272111589108198493511995546096106514857417863836059240662259510668279519437298170578632094853389100184959858983385863561718582019363641847789841438515732378377622131544380667448215767846969573901864671339801310556839122257967175894954026465258405060724307639823431132140914645183574546023851558861010864545297065678584293533063639603170432724861243478432219747277828842768143100256828351332839267050478498058835230109302694703841670729905605095755639205123027688794952958395119882896289371248208259288320761203642263662277249611528358565333934709030561940277892600149033139038112437592547121738890558353755771433679118077242929251805838108006263219843427863499626455032933259318274430573360308963963156797234224593314871031874993239455994287208971257490174357748627800078199511170912964402891334227657325737794709264358999344721320881203827671883728299287515191165832220410381067316361834687749684428324959569559016879513725110750637680854061852423236505186642956689969207450575474400242550411174261592148543852288583335917797056245823435184906331991075904347057151373904544582864662172769288320505845293725909703572984470335597059733231382387715503844867965690526729466210461352778853368797455355874943699355738741876377421352200968643403073787317779961910383539599738008711030329268260776543023703869698481111136700452448592637850640409770949349950938469027029807730854785400400964352420227859888728018010850944663366493857588194068602551951646295670965467694218969219519065005347814178309823377817022894778605173966054594177510020599084253608999083401206489241893873382159805845044869844116141490399952509579408759079895805566537394486220580175269256248740189627857468650261971773197276938269688035379936453915235941587519561120039986074002166932854145807749569720991169399314754410680213116171414845929326487310153741298339297517254566719864228219924694416393051058255100160056477879943432724741568683378031324516560136321747336646538315703543719705046628532393181677457690382714293464228136671511528448622698280830419366189177411859982655900391122779323676272618078932218718975476479973929148943106905723333049973577050012959809420313941804875634109603890747757691685654864051694623988080724082339495892459087454160990807483321127131610046291592973338832229231571565430169147946489693649223693995640283333004730719033189891221556288476318171410816871023086791613740611780554245227313948644403052508670300999459807002979462555910474149175043762030849464322314364887482357062068503651794714917683030603093805550156258079123583633666862488865204974072548831004622376658080098414676216165797712976875800563670268877403335291260999063016705286162963790725651616938403205942522989048074508235241720311865405169333602254341180008391682213076592335265617988372130862206303571137989455333075981404995439177838154809879832237010278742537334523201750258104670174946688458377285080920952152457376301809200156186148067767887630479476389892884181070198526568811611987594123368943465245955021481025915523776053983681755844041434022226995071936777861782839636970650132259940468899781735718512394531454180137365372166679043684183152938401238633784174424082727228740580764799359597953008230079518310982150855144618496317910703950040804995418523552941471662840131764602505604879647277830245640579701501953729840670364480928576228912997090457350922757364405399524288028651847830849291512072753886572188478451580836359269493159374571979016262624126386610569336259685082380849652612178677211634168737987170607246647874995754566145733044078165467930309297229245335167953342902422486659345195786284813412261824030869671311305527627290715926307117002402585540870805269004522553041892192735703610497301657354206079058286843761375927039910335857201617871803614773072560368253192419379459780363546538505797378516148680844114802217478158674224711734472990939843439607200013484202250535844564127938824408138278916689582296350919816931635999427588669732221901468993836710463821259617272856168436323430137835220720854641695543617912342849681594820283468982774351262944280450104203179607358272214234845307335023225335826419184335143945152857442554782290684526656723849491775394518043836637223490076128922739374151820859165673084276792551796028594109911145453230264415372536645008627373221509994036419322954639283949211360492969337637527415929653552021948192811639947202445409473117777696873449841952482258265894464143483542372769725553893989705265486982374072642033948947160455927819439863751391942585312905461516541041638840905162933102669509225816930601168308995778518626996162252655398017475781257982439144651650116998090683083155986327432362005511580701377665025549997599595721719843127497512890550967328977014498338708275590886393748035930383210958812608883750508303903495718122659374704169901579859902016387769988877773869728007440432748877763325411072894463635986900726312541642157433652231285622430102942232009506633378756304411302185849554630546165056423188951051951397796141330861445963637400049947217176333452050824350374812143737412886448556647814777713564801387074392874266449679372277491287558317078750714868173664311077253626147641220024826020757637439638062012835915490898959685292974130509696928186850413101887171027109844172374298539851849970441337250099027756596238870343639190342951210103126945886053554541488988205749246656558741185182092034658274368373405048458991232474386099476123658490458643049122386544290345427397068555546357183165610563683178969315854046910994330342151311501100129646302626944928460170326388068662385543185479859106062830447654671099360563108497046553811311478113418385006888952699991127484786566491324560299939113498688301925642433425458881132312992819432935154588104909667825979020663778807797191847794851338857876298453026947446931588592608056772150429360468177985139413306716263154150413789024773788282003468202102004929150338506374137035747626268997369076026200862826152668800494730335367957422265273589184402895860884851659990089035088723420626735177915763674619850310443426793957528927826629100256977831804187290919303350555856387947038478534217697175256446292668699786486408486258230317226269158156061218597094849725492266770412913790571594893799528010447639500350346440316787044256542606647917970650647764928892041359473829673174360658324608605018919681341710668173908542850232802986016212841761093805954432360389147686573584084033225172957927144478035638876167371450172331387351436603551742292831455819628230188136944967349285600554345251724210096894808742946664048578120776152542707349729732336309377606755864069686666778968913203752198970779643274875915006910279268237897460241920543358502980077684594781409805978812282932109832257106418580302616683517530662441638010183032537726457546883424261900650460338770278981787159377385098161717504100207236688811855751596070682871838597899297826610834985984571955798666751323020136304547972880353095627946455548427222724594046908724638116997634079585105369898591296886021054983527160751049386407967719366453816396185298131390522366160746762580172085430575165036981732305833405995515048515297390539346455116276772657647920435923655372685098754714105725461861498902949140981185580594664702117379216598816629747220363899615279823196482719065448188509285710839509688440918152781505666576805998446381992963700710012885723873586564901870216072476176380718542154585655656932880672346572818624588235863606603811353144718225159034965820449023979996255327341327795282780267859771492848763807305129319774210048069181259528684727422476452788970282626855533252567400025593182946247911832546569001974795314416395205820221425663412678038661729390535673156770268866901132228018325228818125020089384783732102289858938738319310569274976771955728639358576698878196315648213405026314769894585012779857529879658108106502220518518025612586059563265974702533280893851514377703068196368507460805856434038165943947787786636701752479969121591029974867726531789595274868563202431622560913992800118276296666858524668824193527316547133396795509672257313312095733637291761921665496358993287457413855329214403321314661056715947325807979139801676699563146852004213532710493240947950293927516902328557330112542943494844195526787555825992789499166119221655842809292222415668505762189194848054141541447624798458522231266560819002573408944897152160213901855567703074610429242456147334263942010579035958168690398427082044980620258614003926382917395369950152903628988982268078682789505935771574196838477777792146500259089052359850751006023985969185783392300677218950655542596947724836778950552731443354181422633874287898910511252577872525350388429786484311929347207537053714340291825829245723294660187097639244589738854471349316856506818669274562403467944497626050165712431191183117044942963647152651556051293385622777665985922733182577820169168254209357585773096250532373613710576015555277464690005963091167970854960981467546213082673248096511541595099371301615135105351768143049756386186145224707227590459149138187685927229959139379547422605513874321584432976012351819232817728891823120093651531190908806719524949951210125094940416693035987518645395984546539853451241825252703994811574004811989963910879191169282313247169511982065856414709442442883582401756821807507674096848508527458539725838300360697116277648794622664500216133605284845297223080618557521672992135872812999375145047140743125614749247342112330209763915294882803794757885695446338270312055776080732644576838468703623214652702757129457752371946793510156926746430077689207480202568168855371372744460025328085440433638033770152608369751340558069603310045206674341678499499826018779237998326282992617901407936880268986011322518821931607922408157996502408940042908752865304323990481995481585834441729056433605261284369820005666002930576507668018962350924887324675872580268999631868283948555231351340098908869224688029231949729519812343609853688753038295610229957635252551410537723921434415387997074276328770040932537613416548593239257754090352508651578102950487236256173695554558302130419081273362442546517074271884443954310358255453740669103826597766718135684895300428971735414926318571416726961323209238755278408427324948377925026877511506013126352464605408163924593623354106183184271612469712586480420676359750017749478056935434159183681531194317203956464834713690877056147234580012764044960409007700066644594477661228155847018624464588264733373132920288608997099943635517843415224185193656724685505419096194711515595348743597466993545805048885779697746557818945762526539617255812239290189784135589622338997107018045124646272690522996020181996049753077828444252856546091845736024515469780199663664772164948805207031342354398558557271154538033518637687591653230114317166075258758784516205848184444519681088915807373628016572935603518688497968781959698228478612436296645690540371202957333406802838133995861451665226815969374052514551405456382276158207927891579674819759557707197949152250165734218189701166934339794365526334638307933925889893397793146014315119603291289987109286680283811482530541632724452405227755544705138890781060395780494313901107987926632554338012231032019112128743966217898498536719946410474870912855491502787069121235217803428746781352564384911550225485921988086037074973722809175581159368700654696227879602999032580641025513872894605764939511920032892311897229549107283343627169652420960393108151268037263026876576449491471955000138523461026881312363106067460728599498481279524778648140070698359901116617233316566594120106680360254901267429600924372872991934449668838264699020388364152908490694372996499079681915127786619194396951857697159522416413911026521284393764758850106947853681360429539813701073538108530986057697999296244218807512243340321912263255628583432793554462568116809799112561230564056614923261123625798228243338486824104064625176510812969259800345969458295538783017946138657429496551322022300333052030559855603733245983880706732102158828992584276699848726985042346850411581725309172376842888249116821558483695825422845729119000400373493938197082732438601740915395723144476911776202082003173106574964540627818674286395328907610111855435318776256643930072236255685230199055741158135106705004860063245047747812996126520418037964385582028311380327534725557143984639042836821209927863597211207451033728626523855984988839559348722455598122833361743339131911578576193880827313355139701945167019336213991629810962492179769571752804239411438255800715442582082215632011143106385039511344558140413971569976574307307838045536148925697730453470293553169052392928089600065173937494154767078315070564317053301141674696850281048767464218613741069171074484706152498836106631273986652480134825872092158208669680648735952623945964600782276828165718940508971347895627297478053308747352569398064549607917200478483786803783752121818092287110425992599627668909196237295981985976741364029245622123692928917316391955033187377925108104330271337827509849449770903094031675735578844859918496547181207435038290341930233246960237881673537912988211759875998393521118613018617979470548193097056700627750461239045279581097059833712496582217540520820577075771675575906742484506468571507469381583425039825569380822583811096204328310133358285270740621190104396062181656475002713524455093091169089309034025852047923817420433759187864338250318814104876619962882304542944926564210121609877853384476590242190060665124234829516585838688093473317055340248103894025287633241002453800572779430090734728715121168091459400897760018051143193813172167865263221518385292789902175697259466550234079156650405875729076828409536634698379519944777254938351202618388422611982550554676944168868772978461115488653639461072054135708637422954899351789227642135942816065869971278160870962330508899228139015320901309389410668357659144609016257470758727705506768465179994083110513219356673960657668817092850981723454577543039588381413177944293166934116228100070592967307912084130774451967657625293208954446696295907963657807621767616272694831536307470275311515031668634527436986684918045051247250730202336978233296580693354581309622069806399113099922922777232137623830854371684853070477992945065984480580686430465868182810981581241327698446057759651359166313515402341468868288476780812116351413923413467081549916967037443718429431516131929159978427518658145891096950287906033029182224336371012508233107315814070317631961596238389841862181219812397569876499914512696509205569003344247261024603853841263538955592700733026982089496237522220833584203074917370263544890881990228350663489783119612869562557109129499765356239174005086843774261325642632314644322946315451886684570363061369764670809928681378866716857574513766521929324827018523078198942295174893809225973043269917248758353885274453912351725724092038011388333435537930492445165014931165823860592810891138346072807947698812896257888380651699735040301497498183326150892505914366772242596811698870941073640587111727078778738653402010871694257036620585015190666649231947554581924524901452796779069537992472016499898241250524115741566602555188697585740213930726870655380601521242937187382367283620921224755147201686416623509014873746814431168085683575188568160463451346849129671210097733483170583817155241240759060434497592620767943521075179071588778476180863813627802533135395919929153854354632177757724214988527915902156422689456059355956804250301868800662939595216525761102694911265777224806589878468747316859718640093388793146537143587829810034582274193411550015738281676873240571776140984242437849270780770823679078757611900677474701345979795414392320225278712748074032373701919212887774495359356089977448643647970834317985250481439551976067936935371367429934495498367350997869017018127319537270476882072795386995128174892045564378495219085933508096100960894711616996189798607760749620785888618741502916810059957655195447513060418540113862816187499599322082083091385754365380026192021497243233656271666008261090580909149352360803066576804615529015306436892548145968737270577298878425833667472753553914049354754884852589921070910211657911808136374248643678248039556405622499626312881559690411086471884371241864572532606190057461031957171859513434717917958376408120100281529433973123344758542514480511794080053786572851874946528644597416213747102483270616324992393094678947849548094010792784042425997864250771397695465533318775575321345831302119714509382489350159371267733552954869056234166050472377514180100276094993146747586978628880539362585070305144636459890992973551606752309683195946164794735955160549353464369355735251259718307028727018844789907723400203998703011164345984124501911860209583437024159619120863473669711162973077017654335889065293468243576011222911254725856238579911597522826355629555224891339819389062375022084193054951770956493518729100233385413092454201089748379597478390723485744812969295392936661880524145233425509148263927319257578024642930581427948424848937723909978652381399762715623310960903484078949684593467925860473066907326635585905479995822127135513898652560334983022174396451924726256175783862207215968230537040110636792469007884274243330283734275394029189529052469957268735951384146929006059637010204600302980803491028174040476292027424176496645135885181030122460406973442536776778262940647195501755810366716263284927391805277500763841222720395247230157400759231080508433851205997559706921646695067182375461414380476175339086488958585338987319394185808924001302556085880531640578278479702957384052103497426264790427466702691523579527436052925403624799072208007816201591636082544087911988397571885501860980551757545969989946834211569791149929065720747467548377216797017068850190205800738538911561876555655202164297113762333059129250638184632228128157307776880755485958582088069136849968866118030881573500767810888490575157916688230181486115862418471880639476196202926351955249427339374675425335031011415464342571319428588946839486445450949851856300348565422205257761085873533436497222860016458385548238585923660039976439233471874828894114042228741729865921958290094992022508467448720192035938701257988545428925229921774925781012927942566826595004057020814540888642028977617499211043780815050936913922738554458213794979316057673480628636080365806628111337121500270909621530950107235660814677182205369663536436237088158602456868837385699063272961421109497844633329591767319170145840090354100235415562073948726903199768951742695053305878515610352646089473316471633258437063689924630477809193563582887440192630042055958424270792341304351525695070931274540412420439826691779088251252416756245963991694225702951271209857680010352363581788324053890278134342287172671115103994993798553439398309740177506777396493212682278478781223337404349518199677191708469390541319449231306642091832365892602310722801938050730486410309722414862683747774739142785530517283681909096074377784003172418056178943715415368226975743206347808980499448359771662221577515394852768088425631463354980598431428149906260699337951011384926240931298065678935926951141757669495294225988504681346167053128965748634060307031710002470998302495341636084408761678664706054755326626478615365867738812158998931034967336459417186803484399170228397251193729626867034290645389089644696579184721630320069341120470857427652787215365699023380535018864906052900979294624698762001302503724014571692464733685121828720516563074066700657190931776800040952126868365892817794079023720479551803670812747355556404881117771385096942882549961091814160945364117660063072691475576522846510301644405589666240999070397927784534396877855108689616055486883850466118128168321877181818024305649631814586878538605931033807368429134650001824264225567487145827107464932475523346356135877946839332853819042549712766087627882628241547403345982666184842470104788115065898054807122761699886835090163497076946480436162282572269734640706139536556659360987205576943804290923970575932086585923522260499272854082631203575597743736000504131613705153751973221137752475400745002889367073230318581975974769844003409215798598493944722605997843401615586079188290867336441301945649763931252975524039703630058277239794201519149967141127331736676672282903700591273679591584164131421432825552807007757177393361934950684115965843440128017633814198042333515982877837730543126787445534087190421799641992873831849928342583652828531107640442743188076083241102576593801128385612532957856961659880867060209035447055584676914275867359219798996604543032842933013967338406492646613456703511219104093034723826158838904832149657336513829597329363078154375726430049476034105445818201492516586812575444891279525600015985911457217874784196113082947140701429004590499143037731339114923908802774520293863015019768633733884545721726890361599184268497808570798252532590140840422930861211016203653682492544539344360139542783124722297828406826583205751404903521824372303057692074504961054033201412179508028805420016942550113889200779140321954370488776405790951954068954409297117413000406235944037861842800029234657187892745637283327517456999968110481993634798528510237570586681049015601184951073944793509018148086314228978654579760505905885507900617158940384636804894999549501684147421422328805624006974047619311456715819535389859312047041029104353413553942063478131626833460890222171317445870072011428354585083554964435144467275606999601517794600817873582946958849985730748282097141533186728266695500372009765510205911581915131523869526268122485982506014852594755968105843982085742321615746757286193326248561168946559740755503550523086829351696141422486990026442099395410198117378633159094875870499609088575655080972799271897447260567841647141162984904164395655258977610572437084144540962700464630247339317664985087202000247143523052412580067126809648779827692096812008457807407860033314197321956881785912490184112092872781345995966399434612816559732844844682936634496430299970302890110959975614868872830790477428565823574716707651598965452847387521747963916237387079681203202043483999642885591931636901429642237114686765856021260821405060759086601583680975199455410241139392675849322586311245365253675636083621547727598352688488707913427810179713560064670677936779085743341119346901459347907721905742529900233983320557559980536077936915502223563543057113617418877265580406495081745178785579963047335833289673343374569081599327338356156263096978848485864824528556014039339942535398214298281830948514258454430333643045591347554659008355373721244616820034047600754975842908562167043696734631134529332756327757039580001952607453920639964253574937927475335404118511100089377304739008788658610440784857246095259158735934125307567492284579927778723427310846855873985309293419192153032834121658152398295854074119075625774385993248812664163398604906259594374510155278002142130455097624892498500140760780341041271882067849493359570937199363100407467853143377391619897940804717277689254542752963234726174676032267570597119642215548914731061639039013578631363588228221797716152556727679450740860755664303730540749514587098879280655356069724334920420365144015897526081930204799077282517479035629618067614343929809873220999686228578371961779230094536197913651602664722888087198647310682817017671219094397914351731033923108206125863904072750968423660150407581821328927174838345015632277194573130362498567058664250255853426307698695500134537167187239620082466487519241130224146469798438793123430113267196042917737179189079618331439189662496239428723223679254572203630444172856000871692545360309882646177967881868658550835473040885097187976017318362963684457142460551023419244494503128972575827322114093659749785434942711807957696565495613721788062662822972003454048811461138016147453371486567102301959969216850710470718496609711034211761532498022683874188891998036446515645608553544418873644373689741684107807027545794531997157670712401200060968405858284106918292800298495971568148183215742024647081700864175253771232112821822654256882344908334232385659163310372424358319934050724887197196419118667123103999099232317504190963697172761362685226416048017679960526284990112721305048896866482395024603037821762765086756833588092195117360614951579910365321719059502958856268804767389786692907042199599967560644319113133895966849072086021756766814327505556188427274147789290420935780593718781462058808957121302626932664256353788072053108798877397588091239063378360684903484357536212537103258894378569210902198213930399019324682064709736822915398639049087840103221669420367241024862479210735150389764722080796597519345803837705564781776231595316618321847164572165821512781374816966211493647192199612937379894446531584950215421510795674976111524252732386979058760649320886642273379057964928925941197515037022345368930207188052153895201486063906882242504849427926637234039570755043196722109225352435588339283557096983058195040919670668667687936088069260310923294193701255616214158996499929267659936576686662920834956582513867133287954564190086963060577178391828946488202851455637364460773722240031140375912449569701480388288745758339217630419541030875058172276643741848949032647637782117314735410445775425617815007502314376576178782090783893253635920769642640243731023440767946449322585724691755782050091735961758021943569460591981350076683292919208771106398254030458870235429303716400572263072373225899853016574315563797768708955824808828932449564974594934750854924657517472131102644653557609832012236206833444798509052729453057612387278791089111979904165418220598236596743643531340508431338056165605510855768681711775792789435944374772248875176811828776396997480382246967192755473842529705432703570314689118818149530652598954985893495128604246485092511590563647544116810989531447495911249412278068721912607992977724005495017287964249207636336919120572337738331756591635406782295318981578943349393979651295149005830272390146721263352351182889965184864720471605509330675443430295151802946882816457118003248471380234289848405955799695875693463254152379771247672209387219153175333647724740426834631520676344923105173512894628101079787144142179614499306501258763088414006189025138096568375744344715793998371379362751625287406586315151587506135678913029034092390009599425337813829332952818867238358475063571264279620569055100110457783132540383827175773138141960484444663605104777338555529101081588856722928940443006640992020842374065613686654898654004512453450039737852650015465541531857826241806538624775576199650611790320782711911527866408237118624080494020705775370811416841112605907948102339617090296275507441960091985194936719588168058332035403078469910162386417166192832401702143631606448754511674580813460972534571727017518703707174195266615506261731084683956497432335509289494368163331076001895286966073014803947944307396781536162881164503720756644768609555666534221682413713831743392753576126420959243773926447104864689507356424239921719888148223521714555336210479402741115143216649563666446643432378153941057895813610068162740761521205210523574529668745848562855595929474587356724816317442014395508963920152330817434041849617950343704113656087021318754490556538788011493827626121139095470992512401720564084687235910362476747950237446759368497248772078039916587243196687613100514774967991788633871544888862191702351364644650819381284991561821665148288209263150711561616482166775583660165988650895592649205966679279154913816740737033706396145491177478344135474873527188129274680815323803512680373559332283305378002529211715173211532201661827687785594264569205326249276835089228881649676039806350710255755446571216182111186611797018363822531766294448381113536307563644487760893863397908576095457513107131755289605388088249796267188511249356807012804932476114045631917446137888131893769582107835091103796804457968493437465568071839704053990013725664753805071591996180019708707144401963102735235960544516196313328353086280919117685551559366344404993194678564285649037718119496864803730950470319254906470500514575693997497159821432999916455927034622080683196498273328237753020116859661037280321738680777178229903445775902101417016850206788731683938126436593874095113754948038739988756939964836331143706696079352463465863425392751709758081203665307749217659371547784339355239347559407499728933003119283333215092123585619499741160171844542320097212180026619883558759724300447376049676463958028631025266388763221786221339237365672431300219888408072643192851675747553997037107504829757068118714154815431431786107091287449249175864786722579483261530505594488416776862064849928185662751704223359578999596166069037431985674818604539446082896233674077704786155020413360729037456876835250397387486977770847658362594576270023689470948743167252355237465103800680263976786903133438597030571183143487047160699765509108421006870662122738665350886640405610896770321628655686949648414283591247585613900653528356220211638380492488440766480564835254475083494156201110583284166955837745039178309901326535584721123064285847143718154464618937100460734236575270662180734208565018446089776874176970884188455058686883248193313488240977253213066590253987144961114767413937544018719816961856523108941183930392419379182106004878688295522020073372270982369271305209069902984750726340861605774189937203668710473966420319957335640987166164126237505665847647894344220473776459659820116377429326706972475106642533840035727075955733872924263617786966024352709085645042356570615651406273379412494379942728183816965512205786445181514173549151385542399051946355158440792190234984487803663059466277524392677268205010470203559565287296792552225154232008457254578082012918542278896064939597669590945779946864974779461431600964771604177319244197399095301305604349296410864288125012853506051749175852212116094904605894130516434093950978215111081785225009463197044692305485951059696484064508083967403183759158802273718576304930361326530832932643890360975288924712251124054728435018241880237835727035816358113288887601774417924560724030843505578637857889123110197372224508285760390693256502189059200433234657386175369407878325791374996748679383323801958895212824365985562209622245934511759031009865373006315059191705395194381871473779751601222523024098966467978352097842243111553388191477396826129864594420066730210638071462438892814287155477633997703344842296810778819894071223077165344008660087632680172251619678177674970168135906728008382314217117994844028424426239794689370164956421752312651649872616896341898249939945662494411739366767262387163422466865601873172821924672918508805951394369228038732695749524748214872110322353247028072366226222362847779254980655819665603520074533135010058214341818585932312697867623410597261375335386924275717946809863572330275597408658515757506220839146487056374830796132876289680710606462082213909698759396025914188250580950035615110384889152011831524623902866914275803485512675643242806113450043052352167182522699233674640090149676771949049959979321283664240283474793750512430569759378849521461253524225423403127363985019587040896203156919460279103928306152705431460842107727431626413741219363344406905257955874806979653642215412303999703303414384007687015523730419614800562455310442853125680667266652755281267778455885097669224288452907362178450488236221875405025757415269794798556256238393164291980388187711266844428679420410882078842884597122078424761219800167986295369136516204500265473487610164079220958492115797443775643047528862086810370710971056610429337713344934697729613363427495962668606675860252578004938806131849119599368195740228875519406830054360095003010928997114046838292163601886703165213418624551689690697351185963816250312120887834993946192825915934913088887158272959610363959550231957683518214598733426234108857618428969602837752699054016984596071616360588786605999561229125475250324995723869258799026537442994554575063966116170437661944426907785948455505241419825261586301528446797564664519033324405838332933237446811976499737726628515915079039727410011633892719727968607178810084024566925062184612238466202315722435760039909236482911328832782344093572975340714873061636970230966130654435391860536801927814252186539213064935345922072869532794028986728785276053819720027681412783495696929129477655002408290810031303823523065445584245167914373541305856944627972970887082386398808835293169181127430008545735915275353419142996510251841306898547637787493295650822379332502078702220349999600983982293063094936999873851994978244903127832090021624971055293646648817315088384265123800099514306700167299982742527544856644044588626634654217832974253110306280310139897501545027269222674439770509273744419188576653954858549149970794762117540296008894187169105258869483357759847395401924026181308257274889258573523922763249197913703470951834309263594119315940958707622223411062338281290521817893165964349170501418097684287253448060545544416464384945560418741172841273019568801363164260642698330663049186478590902822197367898761904593095139005158440765282002420245022333347305110979034881443846037285249486702853747746520215737744738695964242094870617164583244214853940385947059135242700440453159093900375297464043531741743541530135034613032526995704369244147966014715568771999394522799715231776418947551630691359500320182458069686466336331199734409311352084144877508633930516001394514986135282865463866048526248771966639341478816290624508392274264016160113404853849917122572728737383154605039097977702057079867427494768585632968409764447128459362978943449603187496722516829651989474429558677197852544057950806518701517105704345853767283322735339795995094372407295058497688266809640275936614753885061023989133714360077745358669152899278889091811918531738542310649725990217161655567783100925656490639897279537539392937151735073247301281620691690194434868741168269128326091177170312727692986681967255036364015990125004173533913075517804559618873997090554555231810487284305592497180873225996471686287147830806255616713517702678978731594306341517073740537340363396044947759330315499879650997635109210251941181623430148056514841311671428341929951065017526285455755346396082684196355788012786921775253941425506336002464841620793441701586893556013052449689457032840759012417047642100796547744685932050260352213716602124238674355366351997489656980452989589157093754379729243055588944179309961952500785184472358070191238860827177024859340048393007334833721150064891706874464357785241152376781951955998408167677404901190601925532073887717826856594258056221610719901272552934486459019533691691718473646533735646442017234914225643638948012922141615873733152947184687112388995633992108575923500801775841875130979576927559551872512936957723732818021464225025963350045700819210273625278011409185372089181951282823072578242077826901550078844956686190134042270620257651096594870441498683026455102332524787531990680736440579550569999530413173862002500492786086694226447964617378422006931255637657796440490613997975354103870761801838714398460752585781640365214363942549419831447754760367918441610296136200650495785056595372345034134742724167186424548673813573863606355476085376583815921059052877810629323564609891711201946433965666367724516507053816345844440453860894349778589455294628111397438659997262717880978731372039867797458817674781037723092268810058337390624957185244294082743841318479304442950156528528569207980980574189471926180282883999033575401540364331177388824627396549802251075617299917678566992560269308747666049658806321820751946383908326843585453273316713793895007037897474386628140404056182990099332064319682651420903307551009021335971129312859352696977519172164912173642443554219093126150373121743679022486212669624840001719505603061701331113273917150732390363765034164026325384857974366813623225665609579505440376615439831240969517355263100591217762231171622983627120652305043933886476021177325597150611269388204850500547596267230911649330980993130569187272126215108534384471273104700521849483449812792092973824744755011294507193827034912176691155909823994660316393884353757388660205032786582852346616230321707002661316415164934262148899193213379694319335325267910682260735790962439452922448320616892602971994847450827227215367572655327913178354692610493340910353246023687735705888165635688118159654743948594619599944087251763136909934288337120825211890667307700390446003067206237450422800117394185371155113607197450409316986179185689526876143124339700347086980658436711498059101056178348832234362139749818633225835899230888575934899940700975662546232213192876509343419324128096770590644230448000249551031413808961028330221841714134998913129240978140618356387430598708341298999357573272593985738379492124079263144290608169264016135505417825386830579165607492676699391280527651762152744782499085531175817292892365502038079057134194612331441275342637733076034190612031271952417478138180878703308396546434822884369525893552386532802478672251160778196480412622382706505090718960766496197763635392501237032079132268131596144293940813694045575582661664483628206243841845435467273533055411447838440151723509284939950891678628905871869330410625339321146211675179962428783326265655151408217693275535184691645499593937033974702865684517959392307199878607907923406806481997584214551108412293705561537024932328930721893577742820876444195159277393780752671415854168390212078022875529263493537073452563591756794743094703185990034557532084255739435495215848873487705294882604689554625871095786965061374819529889762653270050307329547411788736777957448635786862931362154212084659973820542930922145469768292723663658640979131987058186531721304303026395664849960510806135783459731784054389417843033012382932873143747239117864278930375962228565770307996995075639445935507269428262142059358861466244003514619767758977881141819143041426525199688096362438523833873612857735792133953100185843824671010985462205443458496464826058097735037734444876870919266892130515104588500312438481543323025040241840783005431710484489311071305515747831014957007248721472486455637293093384998696580828213300194815756239226851074270748037841667052633089862258964428637937477125433689283752186153311115008237326108069489524888468948838992060641933570163839222198120974806517696333051735204894861007370494511460806316988079381246553088846642747970516417341485842585045936228075776321113972326753998067519186698455983710852541344732017782967915897877798412928313635637749637776397501790024176703487070642450044531617719525956262285842033140172720369000400212274009406607479219547953697459927644597680060386481893209790089059173240116063957134579747682129223941439159422524464285793906842787255330275422491793857028016455669630209071388752120165872925805389398496981734259798077338652043049735020382294941170429036923476065966781564831076392734831932424813400377162856674997858500908109874029416217773333518650264815506806505396221887651528081698043593065032714198724146219758574882622293186071143611333062232420671432782228175007400572312051706512361161639239506559102449160664514271373492438050191854846032093996764694046103736762965631291702438263945295025570692484439135508256383906123201462149956895929893476138668463141649432534999800027312975672939454265483711340181082171372885756887581605877258605449219602395346887471369138034930810710212297862178466384076302040018244640212344745067005600140607233985997194249594802535086903101342335187386762381199392546325442897768878118939433354150778341531062378762730881720794376862837481184814582126408996204910653388894652897253784015716518652366845072389537864106465707514123790103262081143669452120193189970787689742784536854801783122008086749573584343346254835276652325277514625725465626294017765703568228283482975305216679566035596534167393677364491122071603307694297110462212486251008147259810590567872846325338579173585912756913006446785940157316426793104562199705457616050868145562913209173531063840537842017082935719246576180687030500863429456744270021892160644215150801102857613774210372203476370786283680057635977738698419784782924775267679182642375650440287349627788537383959580566943597576240891549146235619306752990586260344220994588432799165680693135891573407177553532261870161581179908375441309770497655203896016885463713134443347484591793457924139992722243821872364479354836872164919096633180884300490973785456094098496910251560447207639425603787957590208337624287169577070703323541604928447225204223329418707686620233778657825817315849744895330358545472929036989470094572469856214037183704698730991187119123122523837417233550099332797634909117038852808970827226095345813975045939783939122870442429362658317517345032026137855625732296635485660421368748477517212720696407437108222328441931135665352713271483903993740206604354701916375453381562335081260427881245635772395120378216469121268036984549659975736723328908089261976879311261317682727786708581030820634276855899057062512035251897672867605740941638339633633299407665655804721578523116386535816602234717826706914242844718349567869775297596804050026086817994773975750673588129846366473473656604473006339856956285018502136804964249604087786893578890440842039082535714734698551864156378366875054752898202333986779116751207364796952505827234154671648042016035858931989522989030744228539208269920039112503667243623014254782652126925616718219549445297381180520070749717490894236397823592755787684317763744245068685756337812650601072185832699557650690677886837195065493992211337265503517574834321936854509200146381494465492289685794170340027399805803888931674513949755314387135675676427006414666102889882578264661406766292360329654092670138586771716029707132307868191100860095986953951236910753402159264881400153465964017108309989486714040640236932574493778816452730124522890949008267960103668196700453058490605965586462897504131676445228250743863319024312068171022704808319096949946516021510315344917553277167431455020590496549508973426443365747661293154335163408641419054512293648485268821496874063767426163077170796965091600248869554893726957814293026517589116256007218503844248257086946419035264677889574046922424523813200842526010950057832927318367592618971968283726445165816305188599622595362616803768393542711581890678971288381467204229622705745948763459132670799285009973723001431858043329403720316539915191873794595129381654027509555345573416574355751335917614935791926222534827552980122823145257006191154670501423654515969319240637763434440369271480297843550168500015423305730120866075185528683422393523708991268832675657245907718334032363413728323211267618395144907129965370617190250901677938377102159457175656916513225557019989497456331854075352169534188515613803644820946797001708509489148629681843504132900761542081443303104826487437386781654781936439095623972308730277967347812130939779003509294175874130773455970003103612780315710165733816787062475412767614391918770731751110218756117057180777221088938082373133611751152739769981088828626709005182171121236731020222153022187855835467400114124054186635846280097221723590395891600025539259681024741620982091895060910443033031198322634949593283218481877362916838048897437171234018269760198508801921659941524812878849871981890390092302870118760836799621509848514187847450068058511104050611228207644086235845170196383337835210211673096710318642090811292072190388469410113621954417321374422140533523146416950365571350319603622509467063152453532295874311869077764252274113809321168477957625153665734908431656130763117604289247876610630342272329274720826427525059615839760732190729400908656854055501970472336360915286667876623288659220084989576388804370842155966434749037905149119891859381459464803419205967684605169603088223283916662987571436078223958794108467030831350331575847965521851910203242646430125897918469946602914249629185800042031719956993377616589136376342574737410979794048663087576417462256448455423047507786577009926881629833660313966906654612624764449894971362940243563724947564751271223076969777963348764707230892605564477376722581633222707153748606674699776599779725212541733187215269296384053453494569473165566093724628181767016644597418766509567269438341407109011422919937832248237757863625272791044609611812087051730971281126720000802944886062558299943815175822412211913002142800475475445789027465330587672307277039177858698726141224396151150323160598559560102540833936779136439669969488218406618140801868307552603873043387019953086293772425881792758954454633731287758456965107946869259437871209830831388197721290890458661212214848471178089252593626712144998362195144027681869807007587941699814907491197676136032324447539496811970942479801509690145732410555346190441680079688046338226138652754000410595411474811876220588256177003754122458930857242516571870136965942516313379826868127943527943312874878019641259825433539327088662774114114879010370974743009434647478741773775167275070602991415819759752113793896694565836015172608809232149997470241883487502350678684846514522341438988293031078954224516232654439530320879223448736523914965879984455880938993282633965535120004621901040387835129910526411872905342333703247142869537243453781261692518534573723137952389861768309705111947151071844623379771006088155731118188479732496708754410073220196558533470528383205410040540104388683514340660920110013295294085543295183702457064591645190608754864871149419206862524281296365180324286591821836022446501186947369195248836255520393325887225545967609535232748025873263238547015944139803136183733519494117605813369343493562384061557795867775985427312514240096726821802215756940939771835859223111478495842216207523602459195887188606044521357319825960353582907603828868689328905554394973851247221353523267965818559931276205671526163858720311687969017456272354513954610473517174371874575774218148153492653618442490075999511554231386100873427860850259689027325514655411692476411072280992952436473284962999918119071315572781930644248626225654924118584078658563666467198756410257111769895506437147850012077777095351741609896476867220055003882381813153700401949763646399199307247095997943074806390716888147006916597686827191950953307649636165715277220964072132420095800078863224937205677055796883474970886527023899177836105928290296661274807710774256554075667897993927108141649222584019087379155585473054598983306582571744737011131082315456046430872096384765956270706991267644315549090990631101601368536880459507598479709767484392652076573778371535175389082247791735160218971887731793910154015804978507256390829913088048702245410432335572670864342208770216822559731320098604575623172913887482514174590620729704507824879381733534740272740588124036661240329732898888975878846130222461820741670198144930036855112503618987473612245294049528925707903542065957395570572372537284109825049820058911741406752091369067703898970492509734782604116462481027321479677308237227604928963608249372007093582438437673821044369989443515011179432658855070883889948945722888494686888780176743869654583521513632434462760168581860738968953186397173062117994586521645586295961780414822445015673545838777353575003700391750191363823017934729178768654634694040336505748321384999499703405808512098110339945558323492810619759725392974250603903681665005504489995193459632199508950029942844378898042130818037222073304237820829571704194410270398293250936030473304336903140620465991491254303765886736383248760499678343637278590091152329762766371949225035743071650485619857906160534045023161282873953856119359821104813436493781990106122641959827620765379206260036435906062591605560006276305376391470052644392365395505089079108722399514572657410347927503840486849459841598902041661401515773993353417033905515648655285756256484000811239091701070947133585335884116163915331299959447576597586842128151707938985277336941153092833367408233522412740174823119538632466392135174741831898182852765848243058450812521568681074652666266006192931941412242149200146184992939792660992165449512764593225073055947353153547227916119232183217717138569920528844056716290931182565312499377177556724166824313898754112599303133782697774526116285769640356980546495847015644349030038298268814876030888424967624635300153334915086443274339864745942754119453642242287876080557223695309715282753264676299471446666232459952728179474299086517984748536426528405900100206304440390915308189153457063082234433167254546744190438158351546538367729043364106602135575948775268311294120696263597632118326514338347356478337481518646734993128060779028552017959790696497366091206701226778896877071418422094921765409617840882513831336656620277705682630619363460339042437528620294774749093746814117666625189233950065316760529939366537684747266361487919383948776022649018921236523465458875980630246546328767551120758908720914198958513515902631136029274479976324253069950409846363281426765455717648309325139914703726202812313969506184233639141082309258891042955400189991138016017704633168453668750204246684756920377250840232879634753206170743371304017479661455232083073167818465133542067079802767166496262059394803823001710564539404218682896256150922578353776208802600827925368378498895072054537309577559145652170611535092916111237876366356446857868633401490563839532668161235643127341670602929432487657254524466084087145889833864829433459824595829205628673565442287355881634411428293091622896005994165263703210206944528321265744823355557017666996700856383345878325179457742901557960352728188255335630356274480256626437890046102980536847092651867304145109197326322229939322612504375517249336520807969752095579567408060779586260736872714254460727122097122081090462301051524253467960697546468743997320927129451179266429598429466447433204527167412387937093378326869807998256112609807923962379077941033947691616595616754155553076806207097056697412331149014689461085783325278078346472005737168550712182951941236043641211274750832844228060734212282095119169748049560428956582917559564723405814361709505370028121912505871835350643286152573205558460957921317412649689757549873312867049044925261057182103110235813409320621469913507031382946373022211167747623353962353168666166859670020729168690705003462024245717053540749865416688427223589696787315178910812601698259859319456547573246344963683392145856819748169623653241702503051399555744816386183755767326993339860699375968705045284165915140119256432682819471992923670215270058046718011093096024812061238727439898213706583174945211092146844222042910803735619224163016224810407498811223317899275728369300169795612197640119364832271697287273408580596286100130121689259686305835382971342688955973797487717875446231277867586108845217684073825920433599456141460836913444902824171369072398307363207880627768908709908406651518079861113472369740696638533522273288794135586794804233097362707834926146336564593868428511036202602858259315932080982455108054357610692282678733424867365819627876391016374978257053395559072018395420450430296640659687164857002718321663937657729963582255048052323308913423381616899454230080640193132818889663566032232323594827461852026462882478400446694682912704227587932154339958241503180254551535150364225578242237169976041383666547079855788383362811155582239857463855165096381519146849017372958978031814408666664207895898447762099491319416236327279760163550201606576755467346204096083455117487560903126837807570005452655980806672014088147879250644852819422397391718361088364779337341315117674556909039013613540718930857937809706334151694295705083830390721898720377612795727183365090060870221950654572393527410505247964512186049100876502632243316523370471961983597557864085072043486960322401999474476743155234712198027290317456978905098110282105024257224590547065712839720825432294476645770902493552230788292124408833428397014886956194382506154129689270826801045178939568143234452592757483818239079240122034476024606450302402437227533638057863551240284333367906912504987009604816033005632277819347234089492174477804665455525257663339301994710967796357937952278341595594415181549826603787762441205234526211545466880577574147197838005421751708367310930021156573914371038730695499743057156030027119746098419415727620451104129599735256129784244325079873377166225140685393177001491785143418289193770751573111753420292104690124955239939037784885924943970952884270907666740235070582040372586866848816770126770001973882252563614695442092854125137320902018074702769785789169746804774096391849317921939393927415226744065333258143534492982308621524018207166020588945803287043555199061300862510611488134917195484016836613588207661233323109381489352052816588598575942882451898679226449646905575855373510844804197734574237082956265138930189359653311784818357717930175149367429785711531811001156742496489392077738711846039088665006241231267441084855312375893666353663812426316614481258953731515848386149849956781212706977202895774176942580019024364930468004811773145325712173413665834719364927341586656928633169654533174891745344154504791372461323194595286814958311158655408129435035151949555310265782925546740047468440121567914726497850761631681747178297178481994551940162594228364294536210156993913536775022931424250377795131328511729749885322866051547502632095808680119722670453812437976039663908604811505660333397294449589765922029840237505754822446737370576313922737708865302612112764922619058088211702488381293134327552328746193953285300752687083982255300188565665884510986628770092643047433213554517032028765422412268262560837269605383040202825842491180995011632773041653095349303403819535638008940261048254054144382327069125501084107088049749495746817560957765354366066172155838867501694444938971447442748548402977374291564802801541249085338909552421718113086774280338191175633505699937652834362135612232524879395515080185728724141976820362299917530203857505047429381154719447947303912938933579644282266933222436809670213916549650741006028765696150609213446954949079260611403633350263473040434690142104774381035823529712374091037858455176627701784606964092733956965355215752938698551295118365916986745392375865776352122776039044194276741329579793702196931915310302062232047337948608117806136232601280250341429595078868018683898233265138075451081410272857062476515582988230331099979615988866104150626149221483995751288420478023787299035669488299887237230669531567009654364603790597354471450311973950783663712044785693885148081392095413260792733363137080873998627245228649325385381851737533243231018149518772856357526645766539810572371763547073201756217440226366108838866194789242740054362678867123049740654493299324683239209744024494858640736891085721042718791472941889081550650338136496980544218531671983549722192725566746273029985493499689672650838341673869353303089776666626496400163296106347200807140879415030090534703259090124023016490077193397898476955237516536245447727645842537952189678469532787977200321471657267090543050196865523896887745652947584716346196552845430873154950755757931164188189159126968953223029017354100064540370953598752141384625718402651563795757566618461544331685853010705229387619482952758937874467341229209277965336103115299293304067145474174442644298458638629418227780606479865794335349701566546836052563974805399785793012380258861522262946513829422875871136398841554586975988805969131486442369617355003481540939714515387062179477089953109052620308039764957172233883981809650821987297037042546552312617293891894392684724028646964058727728282931916299269677708745977504844434487883796406407727001282002662442582289710992467035171007458538089974258000301978793419873375898227714191807697682495477861106997070160923393714137739072371620478781467520245426757057058149866781199833847018224221734992942406869229511265912526533326282747035227675266117508656579597589308795466711709684204363419175732167375036092387741298701882372652477012512839293400536786234301418216156299703153260777093008904709803754425787254772820759420865901615446815839391475333325516919455535824047338273542752403904454646464917375309682309431497507096340282720068976457130524365702214225603155747121527776286257419363889249149511890629405283762265786588490320929505343915907698507796612136002475757242465694985675944206111345514670491462662684891058476907142255958875768493414681031733655884350628066281836528165910477895859961417713061804544187303852904824553722835127749132288432987740124748337294515157366004448073621220918654319477932323246256342437209327742301195485658195977884259345771333354300263070787116905188565016573429694630824659855518096181881721242064522133322234036613495540686875705374206759516217755930773375827242600455996128128699351852584683273465631985101565073782287465909150037418160750225197681842264055092572047929139460336320285123729598721465785127290045151105448072410476636226981858687674874077777684628063744982005444611141301815744508171496458867788259437010105216218177130165223431340684076213574852147301112374683309652639468265208269394105120443886158777153289457144995292388911986200261860259888442849154454013656315126105058467787581887394561874162952171648810714106216510993505722465927261461400770645240399868495582126473725321171750246940938224388522553670017377672036173276996580295110619629465732880187550573618153922510452925380740848746883228025098562345368439123723703964356044624016549615643479768382014215771463037965156441279388085534354498781245523426609261444689807955348612523774952087482519281649582189365941481803800929713427721698352608769211574987157451280816971561528758285292371226127194251033085533177443967930333808740649337661770619233764322071725076583178788071015999456896860873084632272174941239346490836386129379315512795286861047616478735250174220460720442528762230301257727667619961168420847148461856360605094422735564349635984065069827860221776147208328516410136012513021728228856323848007274603974463087533020461985321779852215663961789365236835904829650590611053710630451223259650813983428655424343226947110482018601298948325327777556391546946605627947369389749774413045847601138316443854183576112728104464068266184113442735721701373089721776567532231734190553132442347967092681981119047293709554955120308079079321697174963555778415515021799337913194021021570067963492744845011661886587457216908591846976108727665815087260036970275548607768772053643101121084209751682919923018062272522708098148895402345729727674796950903337735828931245844282832625255074664373150297910059313078354941914399152232352337101678068196803373958136700293116392957462574911742754269423695543387622822086062517150058966233341167409297539864714849264543295568842359359849721217910181839384624168826776294831864153895471199356271946704768901113874090207979418939940033656078077388542302307485623686539310463211151488934616587420543665882015042957377135314301875382028880111926718673774287619772574957901907700971496001024052592668028653126309368493610472814999970078893373829227205934827971023300930912752658010250482140162254015392944431690932745207472117629312991307998204075897642652985185707027517157321222818393388738588634901239049150899618773500336120143949620585627876816748527799241794724240151836290974750218443624459721760767584327333324222094279423887950519770966896747152766000170516805681563770116367081965079367204086322012600673677321340251592986878556010936333060478318389682876384476208582174246334157978546160721763891760589286956781915348168292665380769889658005476891966424575627494865413221273802547556596686559770209291996619860206025369767769613952168229762031019646025428334149341957607726437233050375005875977051049754824187429475852386187918893246335562257267401682556825468213430933413567389960945526690001586569858550085763042018842579160467632824969636598196904649800139199622709302849403199068785511099164398308166292852474728785425027139107957360404839647516288967101728831856718049178289152068192779875795180505549146551032287081766105573546180501616294395909618447321821565366748303329226466381988997351713367496943385605752171347110132747173462318606495082757729266002404790137234223485801003389562414978474657443342142055228978524463333013796571303209286300224955655181693058186791680354927054181408810792464312894486111852087904639400773999968384011691328854603529969335226101780143344245355235581552806458671806585706178375167955740614561023963179081715118837847644495675012126760031870839581046703676190886232427966724446483448324901399628555715948484971635612461527054104197746569542018076422697026235560810031842417353069269979828095406088730354885032849288761414369564666455651774190156471880750406680989532661658822526379690397074792996030755839703152489542448688693059337696395387332046247435559912306078988974985663851658168521735063078705891355672179161334944772743986514869729006329486325183875542252183101250656376877479507242107738935100699288418457563999372733540319189756477944383920864955858370317787332039624651282535664990990442784356206442186531494661882942324429602841701447479789568311850064253606140642234361380273052931830601259073149348487681683820718558082097575419083480590072646588756253500871599855098805032750865836948820741737692935588803021867119759974191274579455311463095383228239334404007369075089734855977234084541717941620043836384833482721684307065151435088014057842131855048827017422929870386449342531784466561136787513423464014825041367405038356358367244277838421150343584543988963407651183159001404935919471890759581042178495763550973833856847981836425169967993442668078570631657418720769969853040262637682338666734022495288849384158293293758686195775039141724427455751762320440692788984786886044924132262723953698231845664395042896832911182726733274436953421190948355314160938103347423579330523942265694065601292684332524926267964965420712235010476162213158518049071827041744256796209763371577607511103042200635633740623310085444049385013457036100667685836621574837156000678493043702793130820600647065006165073039134453675630216217195018001411806169797887910856536416708532340131255564744448676311413927305900655273448654613817897883215297712218129915323708025753106545594662085434591673445907475688918598173384489061404834204888473413335705394483688434219193025438449478758296251853582791222123825029560484540839921237300513530419062520862928652017058278248000327749702131167774721904544718126618017776488308728690639048229988539072815827534201954368409493035947302760190544025399821147982612997680987629799013135072140415917284615267132059503934308298212164338556895358203224078797999586648256871505895027448627471843397705521484020331850241669797121203968287456478928796853614605879291851616777028677385529884766369514652418671904617537430853063863953522103018641695527995005009599447919959122209789523455752087427348820817190766502428337657289984979112391037620563490188550345987777681226408484212648450064215219210516892183268595143764328133187079914941240098415998538451096810296729906204769566100012798522046091171420762416232224834095609002952384859683564381935219761400176096595051749697344455391918642544562359904117217431731191233576443949094530340055752795811384135884765179866508028398985983739898559674400806314491410483219914597752958648148643859889301507240741859999635100149260385120770784259215476710922193079262732866102576330582326825479475126068836218907336737679023031306439965361004686795402290976541334637382919412453585770395455335033097823778662775085324370027308691891750756489906024626337201034682960098205710622344787476068540480651781547209495528868224897923087835093605073035368130908183294451320122198745082046771808109953094713972363913590209954193637721537103218796988451768983989332717932050194137466164308720060854742827654331785096318644583278671093548137511526492384795607497543822677170388331814111837066876099508543050795143051378040419035465007801287928647948997555428331585753725282037257396926998300297095866714495281258248400208098328819433532256448102986182002127616598070535972584939799658263511013836713280745165740558311341030119896998058233980038789662560179516441995120005682065557854609044964532141479555814827817797794754971838772928566737846721398923523542501848455884523742246642402535931496574730532615176156298048887866875815643514099387309312975631574249376669978309797344634294972082984999635107553728624497763027479364119747979453975324970538035833519464490807188849351315506219519921846307879624022452783921058161947137702007060799180857731821862602648750045277029188175519916504204650222238277038596978231867311119749985161212466142526250238096507910380027247196510779485192739100519139390074198239548846106096848300630870233606476415591584391005400926072196998355699900683187993225244532780005874211426720807998156990684133743429501346826694702257971403177091324586739997407568800420639618748783653101049992228811001552186905049615289644831336703445966836485219496722423163086843022965618085763827901236919675165393138946263046720555494930805008346697357562907509094522003619976803569254777234338054016282500532998750398606868543334572845578826961235154493546868763647920178305534500685419656934581731184938482283935525977876001812947538562314815095729326716523321477856389837876043301660488143732919067790335121460935145103587967894677866959279099421000002243023324736244158657303426799887098363985483390050451005176267102849469008782166451605421180480185838772369714375132565792318223936470208279200135472865813377550282144551689504928612214402234858404952249411077774807510329713033911796115549818788221038021551900065048289985552005338061233911334300504107215328173190741324901007814435005225005367548134513020593558574237550627026308396459813604111911799670559419224558817483026290161446263176622274842590207827901257017505730357245218386780706029156928495508438254833022371345865679150890439123914835374800567356560986314327668311981630334594214449066260392797535682275566398519338153993209512957480302280041245142716758237086380626425123020011435141789822756612253616177768988081073752725899894431545029322129892249242321920296691397798621129176415503575292942159090642534615281528284934684842458390822322835980915209388958398620648453157360304317481364534049541612366237854327289007416461361333362608683498787139403244290295858920885306153979602286405816837787061073992829048512213440596603821744320303431244282037939088560531605761025216886387704341149575932021118904962531189368631071723311603906225581875632604687750660865140303022593296479462969734189780951426956361404584962992045919403331665530101084095567875640650682401684908636589850259779919401201645568590796684023726503857838067698928153744172134199397845542167012839974760778417065500472863152866700840512239981855855037940584054638083561268614694316465593793078728039614498159808531343051426334365755630571691028764389344903976927520068218913475909562430255526717103068834507562500219767220091450290727808770806243604133787523786209180002695545800294037422737585865835134438261988076683997447693369184633653110196594482121755644610087395737510361377654388855775473737374498973517110157623923951962055667739289417823231859754838341261194181586379139252950263400378584724500255838072871259914422189436653796260359511036999176944659395465677354300279643392171305429695428248879952733097246273023649629907731955036115446953333145363380082254712967823948307524423323050040746699853830826129239763973120738866053383116917880146747978694438173497237707673605654896260620664802283936344163789086898134191680770340599415838878155511542915444643203066067115709445553522597568238157305997460258244447264622223776607010725597957648897881128863663956984773314773056090819603491245601620783791672028907039607732675871712998390936547294072611977452487988600181229584018780933772047280459450132557028731384589637761717819347379877949058114106248738767331443357629699580156829995510200692721548291353599242634035701856451320961525349210151317364189101352779670955594599570779012255926262293028151410287832614198099839374281894748529162786482801574898939345755255604063806371925763132709173043912235048942630688543465674119889312014212380447555918522837338483167799264687592391880065181474266125080774531427122401706994739321731797354504827488183292897572974078083877472308354140954204591664595548371021061458220957208416318407418547388468417164170156448781084738006275245342815332811001354466516802729211260351329143647351489361298851718339998049600530463635655595625343519635933779605946048364650510084441572648337511246156953587156777012876707446614359759157094911507258698053514539523706894603537504756591881860675068659380437142908075719763335618315017926925859241340324770953043796218657968676017438615375876991258248057248104728145313090318005103013342220395349369932958151814078673087120728799216023361265787252935597773917887184269680404935967807509550874937433336721992691846228765783675212862136329301053914442930524361925291752457423416611431172071369286381158367046149663729823222814367385075812110622113358109277830852267664915913201558071814932542515046882594364879867637269682160733590800703638600924532892955029948919891225268452343517962533485612690773595129914325854582371590229725421579861083057808028825790152113553119297464454301515708180227836145986269006383517709787415666165653102159538325233272038942934998569073507162488123663349080824982660269274187857532771445637468305912430007254647609376638568463873070917156682856936019949303207476812629843803758124284288147220366185090953405773009705632069280929076815691729707850689332080028465311294648745050686298565288904590451036130212604416555365274215646687251672021315588330011359142482508560386312537923881312423992710292820620724848090363429387577488598591269010381420391608480764465625613688713081038208330868945472442549106795596571903049885796389416256126639331533058360434694624571164764488954354080012263979608166627254710197146665355511377667663142070691227034072447823822981150303928866280773694471962262835841647565451279985716428548527857223107771188278770410183038015033892287492862188671091214503119379752869054985284818070882093910740892520838022947440553603827690087901355870576777077947410094765382511008496873412726967471380847628650977791893954857481193294558611291772821790127736497007220202281807154570804962416693074153038196675658317707424236418014223482446439435342479819821422770515918138287482833940144535903202843345755044065767229940099292089133088296461064662445816876300009750833781064138211660232003093956833109466635119967203801038747059546635676115734452239445880997322698801199631709254283976564925279215960064326252700245834250178462721865609377722507254748706118700522726625902347932475073314316573174420133412667848217620793272097519149913688796811701201912251780945039930694763349966912153990176882947579628192026242248720179860896586366578749839981805080596825596587549600607557915012451696342195619642300232418706358104262952072343065779083970105494103392788345826933265007877003600065713962315835893922990908417437352957770054138865469515243678119154130756239045188163854240531787304064315743232552898671791646113909318973443544768377402760394885433290569511998712923243534306364837298154843200511943396378467961886661881231680836221395726147625725295970758293235000174092135116070526402281396192102935603317218057762661315913267801121588774057854440049589642352706306867582741346690179529014744908782668527261192160102373018471549987589504637024419458171052723871346164095197120453657073348939363662283333294935898135049158820344609383830840323986204519328436855521703776111608894402572157372253504064054818744634016775327957435354759453211578602746325929292838593039332526662508715554746981031976702299656985496842241267840595005796218578161133209749516912252419422541203805533353306542654761153981562256183863866260508579349353334885194789064111469520936317796653354089073302263175396561301898023381363889757816340412251551686131140946240572657526714352641916609147160115941278879437814650643152599978224757011245314238601743493813639270794690909980896457198473449054757135660716807426950549392294938030604943221935338127539264124938473079389550458751915440428422994001678858696849236444462822653480866662145039923324296416550746319336140743825941452582259745227121819394654032167521276474836603125353626157484912336714604101875462767712031807147033294161436597506695977939473901080187297800485728214020062646502807522852186941363469068898627565693145125701610921131342820613735414707222894208430827512054401270212872895259086964951897885941347081505012107542159371575875557952389512583432417389231798429752399059023644527224744210079131879230572731362190635928024897844270518611929390023753977160727722523969599990435378890039953978244374368684156280047993592534917982065338422079414602311447444236717231931615649480096862449438499569906710274358682555656970450650917703740859694611188387343414048383885733299971744940132336809695881952374499005125109087582595300686263689471117516653724719027588079034558655671165054770384537832996172035176192988735523307144197980068640083760910054457254622393841237110455114340408998693865978694577750519505782663110565299610740487174919643341586334769115688672311763081914455187056957415613218846033849019956554505347749662461935385588293410419128301550379500043901616492319878364395096060810197955277329276616468878918368821460655779439891575054880092902602877655633760363344006719766888091694095508097816990229415671270598639275657495020237193544317081235905719654285148255434922233208523911534966774884333719618647576040864902575445696683051925147570535364039123978306742403826876369307272398634065104826281324054334468059288486765687982351700591238689024724703048371013361294649899856097082557057886467606259814992228334081192378402679408128865048106678730365329989012129993824813604696571647828511037181377636731699960435180495069740230061025064170372829431717742904266423064473091815887283993480266234576124321898976457416899744657084395440480057611542338561427552997619756595277343331885609308352460749508104648677211039643501310766999211378602016895092814388374857654941630516744436513445309614803861989311246644947822813849939293076263049195049299799410956137708711963529899648643292850680343839753265053521766923402963438777432801996970127381612032775997066145636661673430567300674311912882182768376712123804207834416202094163207315129693310112594738298840353634626772318636471979979112243431593697217504963829831614808669113501194958101984565268885530703541247758427419863991475819137217019366204055392446676365893478080747533799292695579339690236954360124115431423630130475430989524506393888226264301233885140008355375557386534241930888322775350171925743721857497359232853655024497377181803894286165536599633689171987710346402011376661648904195966833417635365417547195514217245445897621328953068655397683315590872749853360136956657100077830490262684854959438310314881233483138783127467594522229852485879334612358272362262509314680692687560959305143507734844280083064376285878094548834457350758632585240813196940335036052430903880973982331889754818749810473852486357632981568654212024184557150347518660867266674341205003149036634732288136242783306902342459399557850845780321786446579791467000180693099337242571986476147826662701205317814988703712825805887337600541546017535849076843639517178783427753537999245154887429378700446961847683576890767468648115998077570014557919131259153734809620667836740290165679089456760677296663126499429054159980156636190605601862408532476460743924090973200386506980440488159836576528118645619725320817464168368043880550413489069450795958424512488221114019634647402952283870127594569281225787047576732474436286600289690595949510117635570252345223515802070756428101610705923306179883908022604330197853214700251479018806016443650201791209488509090793952785127240340818263036309173777333010480989904863871217387178790006549631932691468002856307196577398531544859301274100574521595598983795452552058533625955004628593814324808844839362026450701151677255830015749987399261383683214104913768984375666841317882901276157517904627575402881272450151174469510604213286282682498861458187074144164171156747960200568887740453918054827353460165448335454449776607817583966643922708453867788980589694800161389008037813378233289089066052096524954899895884354228579629985136322036548008048564064798360569784789208016295941149681986858238853147545839432990609042391618134443232468506102590530403196949044796127411552090666629790184214500382008498230876501790931443259670853099998311592751505493673037993463484686183163295596567204573585752183620075342055241370223101299792476742206551306935144450140912094450702959125820388166493622713259714004974175659133535790275479707217269818635649460400735569734772092708194706328803705153985438157151929874402902287835554826401447666168561012236484714648155286251857788490175781263044188026191081716424284706369351832614195751538439598831218662558980803218578556854019196970735592230526105508933100154760771253875582177352924122337655890429977893611989620339289837156091278619704097243406071171687663894089806599168995036614804020515273414255079277359108888572533587060991480704615663549037401279393202493606020827463047950581502234245498670331138064453847277524376644604004325106593005027372193257960339142384355060363195406876031460393090084403357488514855960630421166611167709926766368791827998910310197719239325223058279074015219464943542287558203792252353984219817113867479243708373292894790119637392415922542349332828234157787944617902928762299020071856175387805486570049095101478158095871069039538240595815879363217859227342187004261191360069582313995489397041287721716421602710455352255630965937068347596026858227825012692717186862541458985653639657936786481088733582577033273480966750557761306361089808259057081919862513855972291311116736895794697147569527861967057118617888759629538812026091656939888482621848791845411974539565236658074696313922264434092493597962805968544719698703597723446769445986744754829646977340044560203817638993712385475370950375560812389350876977173876953546882913067997840974570861677220225645621209595661070532513629352157362260196333790726523800728605069768497510809939161128303761302172622043516770323369881038924410883981668414843560128617305600716188466285331838868636009347379498795743270403515414892752128236611821672890997864087152783753554894264818846397471920924861850254659260303131546984217438245206492945335508229103060478357515659425877706736461630310929545096303035234425363605666034976794029516420281219354744663231532966972096831557585451008030726870954417511217673513768253957004509056727415990196681825981962571731800257192449031731686027117231812846162739336400465009994797225261526419975352026531617373642125157400765312043360258094829359788646804807593937825427513626043132438030065774729869105387069528448040598828818070020209081245610230463229113212516367706954766003001975550698099757852664088552766382893426380681214324573365154913729191336073209735979733604118794296482757361286022269488403958435077821965449050107313015769575984149059288705108152233638086780357917802589866025336000382582950923982800567282145581652617293083848582005064529054835914052120848491458436030388175874699861438401480508611546041735360375114115164213532009827048993563651781378684112071970688575234994995011609527388713459678529641308527135551431617819134369762934664989243311943659053889515530802848338793069052851849807053616465544932177608009957897013586693874557417388065291109037621545087133141223010506160821359624155753026075148133622756221044261261302842389021275200167918930932028941456337275636625317780095500288729862578217262202464386641561761029196744604339168770980949930040070316888161639916738102724524111292813273613601936112484620986055948655643310500375975515605495781469210271962531466859542789820389223852460156820705379472433097739870598424095611548943672855158393915746012822377595396684869437236807395172089246570592666987659215249238722020476059480786121976510703835453022425975242543544837180811603962278833702764771284742641508699113349119298851376992198735307509299610951384992048082319218299085103613440673381274507639100122226228009268552631678978924710576710206785347525206580985756252962403582409178460806946684992857965500447873975647697563117575599137742718840117181601487112469484585044988124595974370392579998226324697838786182124259813571545561033945625473932640232200092197588256967643529823051302061705051561332279747322252962688919116299306731007555270536487566627348206529433787288783657843288899618733143733667904735297566947994366648223852160240628405268495342021533058660265021007309753113135425052490961584501370503121614857503364775553979942242254408484889081344808454944691483486210910251323735058994434893158784407653490245799597794396127100035696688508917269879950664388486603691328267362243496331849126785597107490567257393185727330539776508481190026334741041343022015383269782529275577672522928590536986911979173428079417508935932407694016710182599848268729490967217355710462541661320762645727498104066866849555970858492706198790348430427468161263723172497276029215650172250563218025921983362083403557053119441254241713864441658253407984747876006538621829412249932096584127175178295199980666285769392359827985086305196573386488160940575003263833450502571823746870148608318353003864818619451376433267300616928818909212042634054010625682831150745064902446837044121666872720331136994685771761496761323548546278364436595871351646516685360158511605280357860497769896991761967428743097023860442962111824572752021000675160943417552029587397755779668828518251852952612634394414634173524064858213283504696877663521731325080024347274921075609901509535497413721514584815983201441554480074057057949177595858486277657577107574337420777603837711385868551891059247331526072878333541957074192189647416543993228872737904406876595863102820819653507301028690205013021883844245224516323409578427285868839450770858571905074395081219033375525134618042094033993816151561375349626939203990553240875059293477248570806559629412895466455277451629959227202373092860635823856844311163091574950677600227105617273614442000581427455351758885983249687561423306021645517057931922629092630196927392028669146414234623066408096450276950837972482154094311145553285385225469296952809410135598700707162975212401558079846081446340199710970894228848573867084194247887318029906662012984328726715232053892811895468824819441573556134243340122375655672631157428065813677442160789618271329287373125877857875445701239715242295187463629987213137805355760986498343834876140743995709724170540881835529729751899949171286344683326166942126079438826486085020125813939841386795649262749527384328874776121986506409751495032996176323470194509818878841904448810021022593204730336393839423236262393190353531089761794880020862519990240935062373325415540510760379745988790506127695816165771784593722932461298320870953221669068106486390586143961492759718889501457206350890930411792870772809227232896651501575509537851579040670361280906659038362112207758095395766832589779916883434717327310748778904645064646276007369967712014096310319760305257918095232631309165643325768282976925061164629532089702061861464752458862678063789503698182041127905024262608852490290939877944280000802652777627613552232290464692180638269280984204058637941865112681298891021783333259253626636020892493774184967271969186793370396353023841123554711903472145808486529494268008168586818127777740907938985797805482428984433518777625659552897848588487372318364011459361076773531420304777563286983676991834827260277190893176695159983419863964696238150578489402326403527526725486190947488006855758115814954269841654985041809182663410645869633723397595620923710349712636936732502140418258465985796431207135357989554640827469910806333380570874049736216089251397934616874963007746696390284842920047950667549694514535062169602940102215763540032134611015784362298755038797962230856818259565054768387010748142367824179439850869774678932376786789415168278043316119659650222814254928358781681731995445944808146504900544249003844437024051486585722351050521907842602228172118838198240244140157240684903241217324455823854037607994800416322103623730900583512827321637131145113251210174118528219942591937820491330303229841302405095931617437839412894994133638810252188794815241646651147077142550782278647479272688200997226609590688280418045351896905358170409857442273004161272234879423233697639381001264693609140684414223775254128389727565423841367624428010602494547804458637519605363842895883834556512044635642394870199473127609983567150819367741993009240108438235963252958588237073794998335276962102237736478393402449569079236764794291776232443347494254873463508746988226628884567512381672293177348731686145021202232524457305949921606744959770414422134218926245659132014743037278070142100647162226436631018602941337202761666264736445114065855982684331015298962922297110268277242714090993287960278522162039848236810096666877297026968437942588448110243324969992067033080119979956615203738359768452840179991943610063369718988935652250990928468747580860042099990205050935753534596767372726006011410814662845821642718149762484548299008980820699368774710495773721039965577252566059711146592191087446142894570060183567133997428343409717650351523746591222155616440927337144950358670340360860114748852577726781416824725750200216820070982427809829374607274979404444273665676470716623000533738178900158920328204485886423979900660123179951413997044643129308827400165013650525013922331545065055481571347588226854093149207367036680714204808553800777646643291874841273549314229723742342602841207153416321100978495313994563280612919162552929697177701561264499483090221621065111697599452071119207770627879515306519131327797650345698944280599078621279629177055653576895557435600837327876149827927197097592399016466550558760706243970161914712351265985269286987997176085691155881520060944399067868110164968271006444805250332317002061738094513809793321080995503154117737021503713402611210201027809855983410463470276023788389475023392574157445421715031249260167778381411246234915643743867717816050374751647418716130525277004357588709765241432712501552101472102769814163432459775981509278267382855806495401460854174851502411177332197499253077341247978049835239392208094457537012036880625335657981813803198655188515354590343102409943255693471614304172440274689940961678579798555645109720646133951693898778694533032607958540537515958742242928174350494366204920750926762390460820241965815442331101126624806783716427919031183469158724628605413710578996882793490567202237934670851990334846011695481243824354328007284959017026032691762575657939978618197311855565694106041737919989680638601978157832624306420756882014597167644874317764522653521553754562360687909692408147124775057497760665400437532943031512108036291419712677502128590353238894025169874084307227813661465079450819971242741572231373048921464184312814705371205952695890214628998340820751075715760640696827230884739306415950642923197920824369298931369643379284364272929118381332140559931099193625436542178671131349305037638217103969827575936501371530758047059950037410315229809859552813268079975218816160531109128261423655936368460227212102201531891220223095423490516654933564839819873392472734774334993283793375350397871807462847730906538692292100872346750253186477368974703492088772554244703487577683602884160113143743695419676084625935651801238756959871447933941871442974481528907723861406783257463908612462288425761296860704997498820866454108498324098177222153209563897745368207832286562489553925406929379040104093927101218118600446888298639078955561190872295554176837176197702340539736033913473680898752752446183019900987896354034794083497424300647159118726683034604855764041080516395773006534950324140269908357535597300340236129715762384924870751975637608450620530161903996703338950543528071067630008188299140960735035532114519914414653137191196368227175712843844075418999255095320111518393466502761439962244045089284728296427534877412712341196179012846201694273308024077405359067222370055738307527233152688301240955487629698399123215164524184611566674212883485966851735108019422959817209821593123261105299674483752603652631295611605787304678398103514154020228729606560834718568230430948930253268879874317968344625003175356922366039389559817401873969672550299352922538031269791159674973009233224775842604988605712900751178162442070117074220626002110902001441555043598680682031022707173695466607802044121654037935893910552358018726096429631618880577009790768557585284531826104898801512168251793473299773987084823664586839698713222164827711641804101311657128358992312325117034047057768715067503768564678146140430356571045024408945688639157041682951060865062889330918334724153438247276957927187869063627218454691926255413155145249895991803342332465559058187016627364640789993334271386868870753835920708640072301101662916839349375759473366617396036439786307524907202871029407327340475603919415880579334213899301711090803524831001730329097735025691029489212524230676151964605042892476443128279448230284884868802210005601990519344523413410555015069777841249453089175761586177244760829701178481482025204594436094281977611315516362890021244618381462840675834560947422719011876658990851758348936693987904378715790744628227095537289473548647424187363498314034101840220032322962752249110610895397135959996652732810971730045958754131959377866686488389882513638377365982990932356895803764712160692802628636698076270597978843467167272122274894929492346776447111496940279547741027530022773045515359409280199120007430705434209303681601894361968153768521314769025189122894254929358761140477384604128059731308796436226091564329111353091103406249036477464175595983540133199039500084206420184025221271456058055498730213181080112930806862989987128933967640472581885934030400395864609770137029668875190786772605203496637164312977380401906834235704888097508370319797344309474452280321093596318585961470750265759988024204859541649126928884999531045466537388035721063674428755814714171173970252688999291589274182821347996301198161799796397554138804675627009049772401433692799442356853856490634313165387908369086671175622813965002505007322055854795029349305544949021112946489656097888026916033332539379781715176336767654868464605763602458697622689790472015811634240304836888141386065955216497290521118976968527704125443485257634816341366165808679332428557032855352289948126084150597367214327233465092893618943538942012540890001291846049598382798654571396961756205581548032203909927807263597666705457772036841060467460729999954567243394067013077012712685925034337696170328796210793706432680431176382727606760613182861793448166477332937627929862744762718824089307281498192382300550977392047203708246937991906111824341864226444389151608943835346589621027944305257853657365211593022867729975625460434914197001619357764978163335688596136784358886257366495938874981515536983524977102876467704909423603800780352818539527485768924603882764713420750142091242595588299071846042017883691043063254899575832658754527670582918042326720708985325062049799780505223713324897736301929583306158384089172464781290293732699139629009070054324464667022377467330644129293418727454167547199970573657456433759064080827520459897393433329849431678829978570596889255619685657644552459099181631780015340001329145128393390758764113830764339062433436800582405045194558675354681168998131308018216805302483626179761074813187261409273539301621534725659549654775822320953221305845028301088343881518740193911732494147245518449412673243849424849266602686396729360369790957395318298609100976714119577457538722968730673968275316626959548196171623222556063187869701289703852739693527461604529077444031543071383239636397915603718430197434301854346976608343873648839164373594053442012038574488568263279961812306166159858044869703843841059839766382065197489485120389167070199234152972038860728728661337440119184429742486650115652624021298521868561342039292101379164040957504442444173271451945511472456948251013765973096777585340649794289268753816966202404884702394705926088772649801486883548676710188159419851440861461920305579473546869507953933899245512225899342627629891963667896624797903817469036574768263482214609428176626588562538018290495548402136132294846955228931747977404554686787324115508750468687437256364072393663400741585258789896318092053090367704750612880238636576891741014981411219021642169105133642343415133183455434162120270122600368794113586345166806582205438185513882626571352427418227821847539954621318557210128211006902855573133629247939931695638945659367995507831407847339343474012181387762490644585045565611409640394442364158824644674578672530828933201595979818008653666585363282304178353673035080862041986502742217057804314984316379649301337562012586828498019178109098102622874369129686936345242729272817895235835558534275562445422118813332080203206336806813122257133079525921157395589793352122466770280530855965354862234556495268450086483274329478426240502727541868502660878383840593442578689157461193978288017825137401480988323019583953977217296442378865836891626107941371768296212926511373673732176879689593233194150487495357216143817074354364920772404496298197828036192567559662298234186384540526596054908329037816000050810543449087130902681212960408233714310188272791655059106429883996651363301650502520783337043696980776756890381493549600692324250243267189504468247311758923529510300373043776662817908887124462815146810261347330605858569794872689220398113411694525780193862669717719637644574425316088604617865120722210343371474771522647852046235274707580531141113123988097611618866855109337224677277521321184277014819940188071809283702461900640365797004514064108476782496170610127880300855846894023009350936877937864671030583952178533706751508758881882868311391240296373598240804191277040312620645642837214110360612231512890582316776650058474854180947068374256894587426463382018463577206943920732871518392666101998004007217908227702303855255616449092180190173386839346610933196275107771093198274769029269018454014463080653563429680809485305754575226663026414541941828640617097313134943143368623207152258041343085939011550848443203132389726845210542344206336980636477261885694715872665454901143450694841374127799031647143669006566390643258239772064681479206712468693592972523210853835979532376297402623966457849750325878012359877208818296464058192456945215118013295542305395555228614161965668884263175316548334595362645035679814076476792567095498610574269050458666697815265519844533654834662546156854031265467210156732929581989542820489204572806123305252388154148365638555094254574374255041544503433562985872310070535077943146860512393138301065509579503596853630075051343056386070054978237398433109897970229936057065158388372225279394675399255776145859134977139969153071050674006959833005228336224852080726386803459749897647919060040214963452978035678828337129083156248239348647911724235440729742250506224854994602651587576876535849275711645518133907867953200752173824993361380194533113149256600252253204131038565938544275755802395501287019994304195384437666416882200979086149205392352701223747644617103490716800774349397566243031665459355623580472158695181403446069412450484584939317075727308375992489863190688272809475874994927668740134740133283956445207223777998438421796837543255389370551522362396795046806296361140114294398581316293111333675305455216136371139420116127386772849169128551339652636183698812216939432037741576360115706838804147877253486927718228721467748777174633284883157197595450804797655516553276730810369594992998353340939455817595315694319464073242542474553473242330889748178243844952443243747653942854847794739751450400124255635784374232983833606623590739118384899727369553297795492529403345121748378441480181307583148510714709456875918698864823467662819798368231449974947414989549118437582643570783641686062613695736465288472857960377553991479336066247117973120767197849315610006673615860190623880204395217577846776392515515705333782415716451873890721872675992095419151944311292936211986791586257340746641519806470763842324627336038490073813270050092296101733926395844967045730319127260161032771938903633242909787746883029870588177655447714092042198449428958761603385447998942365133305606235328695712783756571791542455080460852511605266882714047411232659177092347600170932703247118792265738545747019966726360741270072332855337209923436728187846884267233527405773841245662394484752404810202415247928620266508277848716869061294919683586121541387111013427525806463263904497441738697082482680110257070327218229898174542883478498255554632135530761575093249339383162838650165440194255525427182176997989914047097224573720436203323059096417782391677550635640854169151966403608373495786381945435398234472534288340013686257730683343127224985455407648961972594466473013978444688371756226482351308148498124047770051437349580107815153063850642100458057249975407873635172458253181373711902027094755671595520295576688754780028028980456523875230428199557744101867517961195390194579376560044829797669708546510811946138669721839155292247357788433787440808527815353289316278274460111037548832631175377026327224216991297572181865074733708209746509019019276771106782266962856365902843964219270461880048548603225180064182965432365240909177095758649287659283441384321330595819717482173047905723177801041342898315954572869315565470297276394260563186527081118420884914887792688788182766611404610465845529567745327162385067436548929638364280900419130655682988733527599137408498246369335566512274091639483659923769520516537821852972319259000585040014861311721623152361526804734433723267673797548965094484075451371880668806052575735235346913785183640504941740217750164032791366158291749130667910030602941006713003949762345268388335900616308780960742563835661216093635284426028137996222859423773704029427737672616750442751822724178869963643877819368768039658437968407391163361268179554433502151335313170904916751817308591303653486067696523049409736364398880180105150270080652994662155345054618723381448393407586282219383508312751673167857222123880216609845340763016468288293552521843660381308551270824127709185452768597720722105389732482013056164331406812398855377036675263928288249686372346423239320057538046947239561154005402537862063212193070630504612133793122391940045501993312310507401161857840498213349105461899576019182116055733391274251667104001116094798432079617164150697730812741749973507100305985834433388191393906236370931899044726033122371701338110503479098944532751675459168389272459451539962314879168316702991336750703198547078713162385449524356062489697947621377163683192486329963663605894453667894432122205690819058132565696991209970226507172283670658286215621658280485479531013507956462533288016563903214222625293492005800887255745419143899553502683822980467297022057622111995372835236554099080666972355867151569732181306216082516011071312339029171959609755457438964961465290458665856713468072213008140079100310331393555494024669970946239100924605836149116816180413710284250007343885545813275660175977946731236034300618852407031745696657245087968543904913776998424107587593948015314483756082312093386251967582964883891430400119281656089259404112894258195530365196853108936857776892962892324034753060228813266569185579365999704970873858011945783997371761944210244358295020002282741076841449233087990374625823161926056060694131023026497131230968900246393510399566407240348107666300321573345410761033835747030178852823411716681480019138415397032530478060255376520402284924147091345025475361064406772029393035341298167566769637649128840830526759123449838656585110453214481855674316969431787640739666472680182799098471924519878358254328103502762656570406370548345501547493888841755231105095590465261500642556552834416196789934087697816544191232458601262423948478463571151842888296347472831907449869028769963739252756183127375883832397165003759283550087012841053322747795548311770166003516594197558753180825572755768172878125662760480354331536425100990648159281839964959231592835854257090093645520081910461302531297833226666940098259861853929590345343842608080227695864024270550083532394026006501830466510428462731141523761375699671323739395599696901075820033531026146879964326342235981898688508532611718270613598467089825369472402257123284429660022692823903979912081070604065705069236060559667952834724387405412712744364806593182500302616930104512505354105757436575719215027248559321177200238796708591040508831929631454753672463012860297753777655037907437701513317381208934103215985017073882522859546172434581627711542783226864291979181590065279469686118895724469485798583101893464116192468280309863488350405461006379301224420402323024234512415393175273053779402604086431065951477691348355196957860545310396765583322798873371009348976006723215518994258464273800642075503362517182370544398727471715859526725007142987529138627479353318336606681826678686812593145811205595175824052035671650444000711184183281166146250306052471688874933984140004945868803808818725467494284396454834576007437888569009469088201376705649239942177193202725094187429343221173432222702689322855719623256993626382205569213034179673559270066920784122054669300443893787099139590532081463479699205816391478787480557727381717719484739534797182328996483723061881179925296160879730393645950025382069837083694154954296225100892350739103816252035859180913069731245905364956599900879084715116571843795836819176048478503756209678845872164855637537959118036330711269268784596762588627733002059247647317427174487308488088878118345009061326910710781209090801403237841508267141619144828170724460295490806308397097038529203958185995029973670231894637101801175096105445744453038613122767162354415922118575379251030643891814119644618453857566920442302531731787373038080213392343320119014894843595053260744027406539338880091819385650279894370436012457962723461421620786715037717645829818323173017082423015851624685785342419341563247400437342524643646150096081339956857796476704885234066579213498172806864151783234086228540885117179845904183770779926475550373934629117208860989339149254639201206851777492060089780702743553953759280608033310691181129882154509115921250781180407541007764068995716048873488206738514323199959676992035241766750363461835343572213338876756152761313545592247518026490609066044696162544236664502401041612543153788094307341515025826521354957595587352651868696277425228024595220843961886141362574754036566079286890513957426653221225398654935345712661652106217882872448603304586179061862012012990776810390237743106123636115883276481198352494123145174174561703576357214622007949417204537138990969105293267297719816083730866252820681134873633035841859593460948750695692198485977407153244868878843615687363601770860092866695700235917549294102038828846576612792042416421152414611007766585440660927548749579871504675781395116771953792777224163269991601634335052780606251851216715896657145110781116366713774182092816512225169347192662203107201064364158266285818249902764053863428487516299275495813758329069143698519234209560432333416032742778771827189266212957979566826629832229801973018113915809679960288998597044540372529648091505378436314445831171966649065679253173706195066947281037364010089406176271734740127809626997343150407210169774894425879003912655112280594427722027293585164450609862122874120774582041933521008447637611667699106079997338906083248339736085748758504743705344102040824498746706663519956216370280255409204508211044075371971940488291451908430414271629994020784689483907339818845723806978670763481082051521423107089630695011830146505818828007632948988695564777242502713261826362468656556556421839482656397996147296305973201701157896037746198955208468745698976870023922205486243167747709378024676899788473455387581350368975477412114074659417017927284526885593584660268834133881008743091781456199899612864578098074170903461784775934752940398224166218293506027517330053586163245186498743488555463218657698206545056994984895986012468517736203479653009055292283737866649503449214512444145824750203323412796437569288099933414253096992787684348356429753143269667695109619078249297639621639208113728788161369155249448825355486440700420883348716337511977818201842768586187152764186397287305154012804726459690195681445667751295746882235839220420026652955804327583093916880361596269911416545276890119814125927092511692068960782044263432688055927030631317637493842208035533648549457916438842192064267707135523472719022742621354537972595158147133462875912777036537279112283409637325998145425438772975157898268189618658405927049401730508911106095978259762378053467395187279818253036581837495057029698566491829493079292475307754472765603788307632135086905389970729247654544222081098144319779864147717746757156617319039286864753040955660033767949518448961045561085381739381940168802066780709841303699432216232557931186426314673959725949424332393366922971314132277488029226061513650090946831053851666853854065949184489859377655270961668630096322297937958860035596766641376974582353789658143852430848642792508878840333356474948829964199598578181370222967043361933913994863847479946724963112616346711141882899919582271567260947421066395036736953360481609429611930717512525836362743880900673165259591818674121934048337830534104841003723207239460701266494853300709107160657202446556258248509518053508103890816013219042698447463789884771247563339705700131009401343725810478405820241918710104584122004271029001512907333508482341738794055220570328543186066500831581393846808569971076003439026411908023880598126620418080963328383838048272112325098252595031414765091283814863159541295742012631357854861451717641699401496085802566128627762134143298733289431070656366002519132283756055084023595073432582263148632430242803683859871755257309887163342603430943684252480993973815565369336250952468601719852079545729265014188997957776996907135049569367030939420110268761492265951188884361667003805715140745384384295127370785039178486046244284854085555128684715071257196528863902524269166302011513230128651523002484100986933206408826531943658813706318156144958861539135989985386057467526261091507484233738091771016162959655336582183221125979516930082392787673539409542831900199960308083781310530796460438766939967071801186742060362150162598801510627980172534500831493671818918119145163288550434065686089484401452625221998539584976694574463971568600845287214287209479874277760915333269678137547747610018855150763864722887887468124233697645765679432223714301625858085146925903125084404552695646145925421779568562192012980665480979578773178892993455767274722329714014951149320720258681417589598625519439589172973759359951165376734765583241003442288470747354487729520713385440868138629620379841278152081188629585249844189514398775495287166802463721721641935471676335058052856969527802062473067407657404398697181622024952706209549483139845533317042462425760468980946342283376975584241880698706211419534017099192131811456934054519326484348170313333053544400876211878345205611503789800807037928304974026728291315667185306843411107457735395440651000393985556813672946383727868427584789266520086216929869831429203225095279404455305898879587201569870108660300759301483329633765676581615018766410963045142939812876539450563980059513342405477412291982591309736642346684770587978154996854023449210610038004503159195434379342013044751859191571180497469500831237221169774197914267706821241074001771405605659172969973113837389594208587535901759239526170270724622101797037178703007486605670077948238867737539882494377376779924025617213995593385108859993351103471221976882511052983364006593296185191369085092323592748884280439976306014114430372876655563483613438313965598508450757003607956570205827411715549693913877838755736616567711179526423062608021478631012241276437652601976180221746290405834606498830595663894303184439928849627441732178081925675423210471154274636052436514488501165810612794072936734362120354274698005199658819464497938118848815972529024945623836130965611259906892469497033402594255745334659133049409567655937979358446790458970797270568882162239086172831742697031148102203991717509083362240112289927788142253585173245991587633345448175339187859063913240084423519036266783490784921915112873091431103995210920708113433922381809366193764598771718341184018727093088595744064143990551879958576429507209339296365521774994519934227392914512216691697549485274020238029274737088707053346450910154284876226298095681610025316457904898208745094002216334236661064372731425163050048912968941750309858946144678435449638740699048972534212623595763540896581000069524002127197072253223463567764747293956812930562526279207188872681678875565628252828076148379724490623880328357739855289685447120898522409166518398162364693665056510675055806393999989383814523191914133642214545249111218588086183717536456003333247778314374348710100527287181078321865456671567721147836011175863967379548741620943735784488198820380954450334029391344346276797841965450330669235343100256099744509853430251006740764181769931622863865715699744495932204925071192530736735719761484038149248878167250389456737114141800090880420613747627661890011350514505502001032181522483664812617466694494551202562096115113601947480965739017380400873127876183349306838748246701830490453942892204036520581998972159349890298861807548949519818223253932612209636146019140807915380106547959584488306077880940253646645265184215687282913933438134199437458389539878971880332789384748003994508528610024654594637180827430231738779734425337884058018006203688544533395014183162892955650881136012413512814774937657697674253528057604201091819892890086926825620887527723465301696111103140277893131209168682499649863549134353052422272837785427399676434543423619040123516296903771873097349645944132462627846453372305476623130908342515477323268230734744059391803381621970200545641304893541324631420123238747195397019280925961891771452046528526181654983139530362073337700649790595715748846168999678196970054872758332706577397683599030679427672541639213986292486818664838016777658992151990815532888991809946182759186835370934507363409202821004888471922312705254430305853673485970886078784960104208770562580276983530406014296115423507146722209915516552728014520314321908907872910586419045094888556475668912245974071999357753311587470370942228408412177367368766013573591954244377264051073947239693438890270005496728965399312415145457990496802124408826458611896105396878375041072463648880066858564809230294956288293361963946130380901892896601425264054954414234950009903652494866238407241186940652330044038292618935257068055823430079701884771360030489890309143601610324622102303125528582356276049789248557043336199452155328231205119640617362359464797941658781518383878768972891587577429100180632631793306413632282005684447956294237543039103956883648679094602961753849334119421610679508523021106902555263563752774674684925356489703985703314202154538388480014255413951843670247713677132877547322345296294817255551120847600920578681642823556012731251068605868692539708504229510411290827713869953771253872086997049046151559802544425527009771564888138498091298480739442596780016829130190615495235757997029819764141614396338522899631888647924909745904302110417488259550570198291936838720539713809810370580048754485602902848805222490641404365973663200571676378646226310417198160828451602134249584555303350763590587769307467347975315516594299031771119269269505067635411745704211480880264824931414310314088684673395087894590412794207257144489390863366051744218013093679583727540246588545407452195101981462129819847361761621710831710521012482779647786518051016837901888974707906237864949938133469160486154922521755106939699222052756236791543092591717338220971690616553936972825096503648167240942950527630767064448423241877975267506221411590662502942888761738397942978836585501717249955470493013386501567830331223330082254885730140181697460864939645280962036649883943923973621467084921008509059110381523677055448616545701970243710368005089792163305208917163236945106517279961271757678217799326386674194254262822390541241619209457791691975592589308844628761241555243746683769830102355600040285690097754795996426802363663168261771949630720196716519558934212988211234928907130409339711369522122323582273985766357905593700792089294941596083125724960196535443078488157660001027668610833266360810909492802623064282069660227270237981093817548454247783317748186575012278519594081395714972176881043379346551053060979061575143265059027543359947346314741141910145998709887467474569957827037024412678344977867135581381406925353943742902950503858272043070650235842873033393854648268539503318295197312213156875398776573872238870729876045005924104878402910516363248622097115370251054867359816678367610197731278779170199374611354015586777267338245484810951820193845350177677472311975637407921195543792586336297594486754325215501637457068019899929132556792883460271590147595867827093076498798236759232062207027767476296703091176796372525194960749586638357566648787012866914288611799809941922345815832981732848917122526047668340410673030208671867285307634870570950784421369563174098356920131469100113759180856270578023285951903201286058758633710898091806450321929826600071727112798676650356535363283654123949701527528307250593855568188914158205915276945459735285366122808877158405164550483316682659665373751911031073926655717057571353461740163186626429985974877545192390156759481447566044806342497147826144154765743556315097080746461519128422445988035894863777102606601092414490109183855585781852229163280963684391332980845305364598633343073707945900203076563936712764137159675463746791457328214713503772264648521319927734963613316524718921386382357508216256423772411794582335470761950625547424247153724744835755828858913823121232283399634001223672629248099368180836951988208649102538610641643954437561276980837116935635985068866716910436801463123801500713369073952307412363092634493817492626280454707087876042640825534073005867338107932201847754849603030504751640742894405959764809752365459723333506604899546860488615812028205872389348772681226936032999699451641752406868577183690151881904767034895775942938628866955728021596064823199852396804155237648337242536699385142457640104095409896971522407213341016505613062413579850568807944850727319410481214456993379299418394882570283612881573317802242246372820335456164292119197701746321177337951097528394610552024355444404181338615593662039926995686782879100634781526315884237481177185037921833391290463844976431472740042189362974498903220365169823014902305729667602313289401169584326401760345891424517089165319718657853352762779632274594103802657098690673912236344450657299293952784534321435116271815482661433933524502537488890700701054078358332527703262983139645256059811005163024343929595059830600741847422223512038626438663376958695972573887870833731482840018510873790317612596578605332507489115358037377720659490512626642510016448545473439180850617447241848615405170863819879546968432738775969145214794573557400053138737140904034505340985036382323263101798235569729414574320528583310995273225941900664061669187970622160002787220583918596824371166491362065295007465856609657567306020028004204715819847404473802666714879536302457218957128063716081555364412845639545817694525376961834749087899887273402601221310147882113843709144978543333251863518200313023009018589329277959792999437589753348143706316108359109127725849904146675530215143510617415275172705843600974643198188893436381840478133980105834323658279574524061584100523705907700243175478405689951483999562640335215264330030191873986887598134912881002359342552292006200361654823986140516901232675238886579224239337923759753237311649279035910136849966923149054692870490041813295087504927718532501689931140360937120660429407915059630109585124975525434486084352229817931708125039166912417972758360155759771509182976175642148623360425517062190335657552588862133559192526145980287000679618952300340483103439429056048076078780061820892428082122777122651919176555354716709056603558904264372148185283372829647142016858017347327355225620568078316973755776995115755831965470820933785588187446208651251420786491823664338308318637590107708271897835716226548484178077433829625638662406883410789401551258763107705531933745124268289135421926985473339697931131416099491576058778919345090828940307759787750846263478737108686314717676214364805828683643244194981104602052879555828737646695261525822500606249671668393264725642367123662009326645392156299288915501134990114635757851798036733841883230216921525895891628787457311583792540256776081493690045399327770407276696204054099788986993573449105862819655316260222904949304640496980071359422603140722595099302469125879942027766951588658415461129879536764424662832830685545639540197731506462720023256874334949235158862612348223411256574875372576702221789418130994979718193236621295963398792864101673588753796480448286294957965720577997705779749767907600537053811949140144084357829612824453754143158770862506034620685977000936082650915849690313573160051286657624609403501782970174237465238876189420817977101216749259375606385461679172694486092974677083641938331551835533023470845297866602286326157485637075748780120586548088574164828441162504055425710406577068083712011166071457849434846249544222079884733372435859069373353084651797830347958791305450773860016768283751443485090822227621291537124303646373964645462696317169913650941941798323825619123000091632460148279900936931536485133159428511966400259725706716793441051335719182032105659709993272439802954894220552771978596793880842432269330519719251332629511034319070673276247061405582521187997422782004686008729146147467820041328350807517290045430528447194651475159210039261213414493925856565166566117512473784821534309447727112364665745382765077017267533993734649400113712399498169608671117120029599145590584259111189840559145863761135198802079239495691664471593399982644457909743048005791774615819273823406543012684173276496999557178237669959861064978798418594602734616490959605309280585113535298503752525816568616132364953868065923462636716831342245717210166221634702773965080870806230642192121331680379075345008569853350122045798441230015933227358028939000817585037526529263395186420806336947903193660331596519371595040906705699333414598868658585358635189234193841622425061029820809158100427880805630371526371678306246729144583732259053012905550060931829377264357514326375434904452731543483735092651368330751943979254026294069322170965310915826076702661892719431312435977478262007619157847982567220895029457942550472254798971589014116905505452949377509828084235046730832881073467755539066533174776076038699850244952392807934755677563697352937066884701554463531304963076806640952450771320802054534875812778858777982400668283701953787924422762179461869465092301245754106963619548885190755463299313832971903752859014935769886485876732636246029892779569559291611939306345726644475307002755489713971301189048636108840816309638945888317164178353489573008425095817138480992441377578180577692438229103339149808710032788425077336968436363882068735611634792729975629847537759129216133323501118134221236367231226336647216787112398203131889272690609037607856929549811424490807667253014902449683540861402939176033109326266638937952662196589646760174451441991401980649965583092482931244983614323916028047519617404129976241853285220009883663305937036150515194088132279778146319707519564491004828936904184144362684620665325388600144591285337335771327013051705136213142114841722344142587923642795045497343322530934529046647966127707082976511091529560269851589316496650452506142169002703242854050008666450344617963923812152764328831502351773999798714968991740604651691027970643076760806040317417639448708980706800619735401498393379899524550553234545274000295589638529271104599792247283588121385412745297636598608246553650685568821861106924704573254903459303801243228047765414603217724023737327765049760563116810157598011880440247984489917511446437143487338004545172164744503565780031706198248206670689646455036072282108844417675953464640266877318469607033737323475687337185112455040311942415247714257338035787297534108247564066747531483479688778557443510952136515212007516760456644797870519843362710601302720081597854239853664080195090895463805481012813186558890173721406706151272062505589344513845743827285118879347464793018373795842926045705720698883095347965298364822946465824165659119970794155617946489686873345900600611882940936802948632357997310359304049187351411179365478847310853554522649247463967145314456028354172779830053087246183663010859942771252835294284739839924287293875043081300224315227376805319554435149105998583918437246729623040485538709127395854165993083122578675054543427367249447584764810303847493162566261361388410962588102108056538270819899419452345276064142446953045553494023138891006881745878500622323906979651747294228442030533839952025193855605791104378236900061289181766793405072664155993109955828656586806142231990381915995671494575577233684563038735077952573588437834565800786421567959567896727974709983823774266377521126399674307482550577337092453378486751870687435339100802683567940463545642904541988364439442918212170433252615457719002941007390956778055314077482676721105290044681020533005844281209963293950188137014048637292134349984766970614250522731991059854482376883273986765748827210290114975601493119946283603797740124694460494030297132187781393922662924822632225930702282063195861979085974370162789997951683729229804703356670239015661202809038616166595616821902290417895873436926858760914067546517864156338880787220291675164936350471472744373511256076335690177780890759196424842775371872398204787667176644454481329053768569971925351405426533064354508930068827847883138379996830119860662054226335716065820128819080378916782658443335015150399080580972443692290971474792131818178481177826820729248537272891214895995414275329782271564603761289075384785124246905907957447000020642586982606390893902837224080306341176724118966344274609896524572685427864514413384325401814272233972994470618964054792643889524209875805978522275097437823893159239060430240072408482163485946747277970067138467591235507918087105439141139412179040782517407022999509708102376478362293623307155539152042235538414493946955732458240814114215622074515897397014362822434977283411555612983050986052630825581643931641076157880715957159779517594881641901558104063398204142008340247769964203381169792244525903004423868509155740421685559810291769359126245716516999667617627033651982052244395532717860310410333602003469555247439008320474677702867909740041752348774340774644977390972610083210166073578594696521080814643486793510267252196629526904514740868616887805194071475975213167676596281527534368898320075772798533858532990533104701693594320333337705604509127373625406738862086515791318866423659401174705728947467367944448197417782147595069096437622342146175845534056382238076096388387491120089678623568890337946089264584204843391138841298956085611343138410902942550380469081128938754671851705759129922063828760057450842822733262526388475523513012454960790338746808572498754144560446770957136993171490842995409187102432733591542990166159334781242642869288642444348739973632118860612166914733276937331405329449420148014522596414859883062979083368886874419935612890731348444991287537656774671933756778447348578153761471564637337501518858908525637223401493165971269652929123875602239037821874316215189740112286168201165141383417308242683619810001595073686772676525063870049467927982786027486826542452984114746945339872719636779208386209586822820896229603110420473047543335048070892338492832510407644177667268556412526482839185938766031227117909964897621598976534158006728858164380530188023618790166062770332304964842621727413902366729867053332653158282973956904568160509416722785539184096433405176920145127933664556958169466841848897518735844637104194093590988159723071506432278118716928836786978385253707435218614032938365264868166509729088718603736504954489111409263820933631318017201394056037643360065300099926277821782188932329151597039639805374425102684400243511440869000928966434872291684625684782397561636157032964844050359263868245562103972937177640379522419948380774826573234847940361659794389476359641635768294978798079090241987298533671198268840475145886708998807883958243559044327676020628640740321232164777533947547662591588943685750778517779345177109752435212416471093801111896962360540912584822436335321782539185898144499665112329645072646320027904466512928626435429429918452524060717168690683247506918614461348101480199194267457262515279429179025210683746397746769728985055508913242445098847429253783464830628362691022028450525717566619366745069655869836551906166872513344791371808722994010461146558624837584103026296191962933480099173716377518603069310681491610521238369661796882551101149835024046209568302093407435605439688204785788873570608247383468670402890783823927860520387917664523526562890665957240772585764748900204232163188613616802478882302069270872036987963608619616126836899037669686208952143633030973892433608587237962517977193942348437782353268136671722661046125265202641182754080362691000410776236361755769738573456872089611662948744604781752941235783745473472591119937843132948171159723619835693442825698175966135064114225823005656949606034790058859080207793610614071205153545984076375772955494653224473561731547544460301799742594569596368017658608184550428422893575504321543857454263894207994231016181659366783182836641413872503400831910460194052892921751189742449817862593508069499040969852197595371684231271365435680750266542457806126712324808028304564925200096839970582020577915040138474252421579482066018674503893834129968858324134793505545580408220459199588811107638781011234739204218406298494830634679666763721975181455170846679077215815072587904272160687837792713356970476193556215111734740888347267567095441462119351529170699682880116644867909633427124494901493121481784967347181921658700616783004946780253254125368911640019010550967873320287868246834841758085874161476638609588103347401976821094501650627014226917549417647815641850494870134524035341962295551544690417120539969018169484199723583976064616390581059045282357697100010663053503467404628141491966309946077433764936814969462321469424986049350669676053177395785802815511691468553155697411181825876049381586109277692817818074946125934140011785301883147975244196572458643892896794919439539124095382036320657124776393468388923945833488250104253202477204156561891800848629452610750298746224192506325737177946098584017921891697852620614171091456062611676899146658428874795654102387009377123626431665893051892248046673751558039697573637617342944986087109646309875812803807776857872912184140541721257825632750277261148230008531470010919489481255659879484100638649849776407512485322579839521268976389096938978750752648672524391700689954358417814595287083419514620995680328946816541539950472966893444241429259888820702650894991278363694301721864146998245594754190910752826911136605997802971465022364273920630917463393346886458469003725269255258721872695936778302002407107114168579985094587660307741506055870745339679902591768026916699976314161121081268436697720555206631410609289871297452965819329250340701242641960065892912513724190521963846519591215076803058766239767658392164435298881389048575398482410996370383980468270454074760363563191508363089886423669254311354822556466542183955116329914798470364666859164461248533442473503178469646165481149371067296015950100275883771303844069899586912320342055987734363286179356034857378852935890358923815810799792232089923118648854911543057330250868950720628033224012562992577824301917768970513583433473721018427339010529057485484221183542780377256766090457949858412480033480528647491544005593977269778455641600514307316533331773397957759058494646524507448413716494872028034113976870931068253238093176703675036056164552646654814351548664338404371952125236180239304371809538950477871116751668061151034346500106343658513974206012800293577132578017353670601529840477557464449683064163035115712240159604753692584357777013132150145982224305792547334461870459329118167617038715439314523514584955261780603022625478691990876385139247240601087595058349001015390962051996187400800094486498597371137185090082643150287003475793399748281380752584274995521192995384617779199433309168150926717303281921134176329045492303843932372011774289480517324281459324375057695425302695945583774082226753287117135582666239502569029011811576133760859209836073151099450095139796299912461694753211010691318609142930828176045867078651062931312881258793122253817222200710341191036980446953038746474735552307382205171292313314597591970562276900776289345443550591566225823851355156115716129983837570761703830477406209667539218675944701483140796861481986862886871454369364026116221963703047323422523357358075006792893312746027730093663683188701450595297026467128634302302005336570833661611380346522384358136584310617764529550355326581361055671660436051176811566764373147317812173310486952873338881012815148739372788193955194021730504945566854265718129392477420563705846216689074141790949385589207926188715312724908707550603900005573808918797061540495104249279515983647702079687290426724588208860910064124998620557053041409315457269188070824055444334332613220879527645351952168487903809471536493950018839769174994374224584867591437520293440941798503051925814585914843703803696108811250164079344244883880312580282293567769164560360550582781428370138289967112085868536959978359917181348859393614215911325819603940672576807743971177555633917636892315102465013561816086906336961345413128010585324930828227173307700869349553968112115923527311091700750716330360813724455976856919615141460910432686071856160440647488855349181006085398380462647929016818738339631296508328958481025786965916853894147901899979782316885735175287147665860315677284978467679786851819482115328314807563625536777834486860560845042535940849547952504674671419097021408084876485651405770236748864193593970877112776307954678661375218536494537070882781621639902828149125360792184510857147068666014141687121996783687693116361624859042140839437037320997595524189767299810041554532329840435552329404596592183070727756678889124127902234425550020186147742841114701482561830867935937952999022005874478697716677747363447635907565451309781872689900989190480939854387193419250704689325194352940246248639749395006813851006300533518455228914049902376745814487800984526558492895943187521090011700052783564780694389257405424875616409127760599827183704699057880065336968178971773024858370206941114436366626251868786560300686790142350205727893186243785844064569006350022996042171074260874910718462500759369927608355192006321597080844656499508415036659814813002755762693012746198489569515769387527007539759165731658675041898281550453277933573727482289520598563562434947672587139716105557295200464611718269948140888599033259755953688560687391842660905975671397981396452475660937073632135923782334513909055549728209617799383139988971640598478282677230925275662412944233642546876404970687392449403415700140580068016413838253299705847473650693637769344103383054865844267452507451760200057807567662448016710032262056437720942735231832707855178800786275181411512668747216643328961216908138946999495967507813410316221715653827031891737316496835784869679091665127702109395873588259233394143546368734066862772973324634532384035482284212437146399158808524071971937128715893616517795454532324002434294699814031871579208574989411696754995185410992491520365620942310000856290740753495920340647100437463913747336505220745210990681699452555974255245612425849461518908341050143619332403043882522061754768661288604566057358370307291465053558356947623993086860889469444436030610573106517200087334095908317749904063987790380595414977134634791558106873245846015454059870633539068695384377741920673383112824167815969116787598912668812940814200509085134214952010599771969936041211503338236307674745855343132619648695802496508756052090569829678823293956371013024734374842609338644140865803528361646435668366756634902256796068828618899971905061173945922187473013182818207505555526911653420179169007291012853513912908984089834394097407122034500934362852448337910881146811491911978212243144983459142664111313021962598389514639637797314620966820396377960274071895398409870787744405869938322684926646959919555878227363722317022469477499125643625829544549097182953713361716311058019770278931099806966020932471414323923576316484030841883418093912344229357996974887412710593248276602503704200392661423791577782699163092944848764486790242900827404517627226573203444987922434499339845941904621126637446367137761068575438210949639877243755301447543839736933998195587121750823624316791398387432373646741263030748594220915866012880350048808659921411742048725391805439109560135051575006308903649960394902105842117356307148995013868391660401593646177856422645358215049581090920540261688224337311564001126873139704254210665066769485969551050380663077795496679977002058475454917587263703617541547656679075512798751197629142611956660678704956314697080715975608129306033082313763430682314866945120910477942851755006352151923806198561892443173886787811966359377240975653703035900633980030409522106508405925747848541606194274673109531640661801399331038967454505239188823746422619673928769754933909336966709054960472556535291078777788541995915242072129240574458182175529131905539842221366572628642599727972649509560238338687503569193884120051460628570628369519509144230144618116379392382959677225087764261350586406675424299626871489518992770074574594622060880196174029114241830767898339357408223723508619604435215197404918129594801715074810673759204698992915527743616983106153541224646691573005965261494590994955538395485138562717027541026920388858196202157143319366292734614982814569878634142102249950708996578563250408894761843858552668266753854334116913887362496326508480523133770806575194594806370178737294743387142052656758606328153175977256053697496933777340523523009947936465591762851515837654144469699856860628232244877248164922993684965461308011513598241258495435560207926004413563880916172065589610049737519833726158792168179797258895208663059939292676518064066017374970882511494465426511422451433724229873454354003618366245005004397826620378662707098939571255612549662665064044242067647082580185461322959777199947714607901856859731179165129312661066763962086167107724732826832752076693170707507278337166836838777649765865175293718541983860819172478942730634415558965210775373516253998440129995451239544407179953794751930105890959543217696935647194906670217276138989969280599046302743417406641554014858533670168502611379600284239357998635086287908404481053179328656265240909105166242487539287929088682324475572510786661267202663311275268783603935442638177539523188807119744937801870558678281132953935167215875063591363182086624820815829804720645499003778310823143958683474836525399491834524091800015035014968860199608943763891714342236704555892150008355237725594962773955805939519368973697943571667077087318900857745079846071089595979270599908245371990912613561887451741716079564366068340301883764392035813868080246353500976545789105920456765990614715850260554780698931064083656608156802438650338872768292083339855356526295243344419926851554249367449854788845869892916803312364541550270197092027985702612407965483734406792927051786581545411999104808102882371432468695943004870268074320362836893060325961316625527448083501362639570876985246680702182794289461130008748869505075705959194504278250943608033043071889065204612634874016441052159968412982212302690355021908802497033498350631759834093465164059191837702256579236069174648222282700612524811243511816002817849797641116543658768513349254097855429213410779056890612550460108534465147756521527523966712484393967173284045785917113021879046663775120675299201238925664362447179158127237956268485832895529418559321020365940483891018680643519104792786946088367165540637886879266348776536160281056599127018366061899457982744418801687518483782002418865011623235201305376290363038732344695310066418636705973132373028828251703176849094851349811861748242253351587230972710766093440622559163165402429186932462785418232278626013355847740541196760290960379960046991183575283171560878075986815837113213457378236708568650368208867405378253696865139052171678295918011021626788562860956859524917919247424937079307942119722568423109650558515868222978168597362850934419985863158389640968474886223307150837984012192160720243437439298938301720626295933897006658155062004046015485956909773496463690747563942739938531569470890928863486794236237424818603792870498973468155784412702085091582518813885141982887513545163905011965341720353920162365926939935160770048934166841101753900733863309995529263259217018031006638895838602793082969653281186982222899518949417151209433470292617530540582960191935845398481277862625204264362146716567536706757052111455150873036461772848372624864572887400558267316823954268379625995565121091714256475510627049533387591052029935167439712604141920291971871251034267896642458432446285596164643010799734803335775348303329570919101983393287327947626285169982394719563928131610823872936852682964487606295946863284993685415059302620548614508265640865928582603042997520291891706631720014385376774442890443901780373143996422976463417335142970396542139773250559611360316238495712081962970957683480283857330842594356918600307337396078809081972096459672301251441736168749777165503872756484814950226276418002394891368144023840949738554364918377277190717986560682334937017840873588003692525066277622822280008071552269648616510427306509258539889472883849258643893355505022915206970800386637323529654774068563170223478265703246834462520703640341767771290765079245868569056209867698701356245171174805163455948013317206895750197885266441153419100689184538819196533228951492615718448393757620429214964183402140758375908435770074875294684321783372200782922899296537013445079353614359076885046106847150224370667301742707724326125867918125530889596050176171146837226112757892215846056059796782666321877967997288747985566707895905408684599308112278614903728070803459910810796340790950499103865399825955014588158257403806965333453738577987637403983074394718921625119596548250588117965922504407173291559072803978148311937621109000760623693216435130605371448742942282930523091898591488038439247997693704497199854252172011595709659623538930203970706897344311559298952221934238900259819116878833756189856186277397949401625375467347888024363327465473931744388475016396186301751480923051907444582439932335806241489693594792071971274762356925140426367243242162213979132434426715895040876364039184898215995369527454032955982418002107732182224448121687206438542283496625017227496088550359604116118909267125214508787280174746888313888009366236542450527652484310459960322959611857551430094241465864213210214748984763365784663679454185490441435479759242674759915804084512380728363404460551141685588897535394259959199322847263188110881615243819047487388071294946822800040854019296691621860066118968177503428633605935252275205025880023302291020182393780572553647631659840179864557983513045087739955790435521715362763914185279430607256148857682913654551417294207073857345948013269661533695821411444140574666661125613951646005837290641371462879400007450218605871634952227841833921426039884601462071260447347383293623181301186942806025855186410833939081943666769366289927077352012953122582195831126111121531615332147723566822561143117906756984071468681080771122259773343858762951657389903249101478306435032209096788274054457148475456669453080579583671906320556651719426023089245799327767312036558852590920782700195595168309051164551855435320160685352008284649734143976635262834368557085400949318148174354337246995476028583409269307690867949047414716739764716991102445190904059762023967664937767556699148234411295330195111801855436207033253098535119696229440911325601995492142189665005507048848371757772914556453428949046676558045155429383560300739153386220614251817348273494338478939191721241044939698546298141757028912754175100093594509191725019395097873781177672006635323279901064236242144827387308495272750585302451629696869231575417857558154807428471657964867185492946540386401820025927466803078797057446796420124012376977883912693971783751676254851947604801663344669721354983062634711000291113777301792207658996863732624329187322205929672072533458181708452945289236721560897224259785792726667341488435231710412884190686135227088491173884414248460996408011163297345999700271443447076188654977024704082093630024662854088012207709075458726286218108405943009842233269373553472043919557932102807566048546389675482940793729836115999470337349417435461755822664284790645759180886363975602430933403412756732908442599028989496459303126539109730697392321305131888003886472224543997769320661204414972253174531085533194536331654565059091138720024886546305054287399245417297763383862985510131926718457848580727390487731730347956500541002959647003370806659807788745798720026013949620355769619322298096688944562915096579916179662112306624122500230695937845216268285356940868764129698674928749301233339447628253868829301924203138588267951484666700746823780417738218783013953111812563909931650433462753620408061221758566887249057824105047159429465318634439804822396322454709704216608849391412952777286909378399165359870467008323858033363261557055020274038867210060707048226821051903934607122303791253523299858550440272542944257998070059177641979299653607825627784176491823169101111677680716980422175188305946000219487669090999308210106922040631213169688571941720931795513762449707055999955774967822903717209923068374307545945364077669194851065093782803396551311555740402018603218056421655059087646680950256110679523999194742176325728569492591456875952421935663516439589513894804652616127392173007025674827968760317769574911633155723983794861633055301692498775597073541697190573134416624616176633232507088255700551715681433114631278173326634189611816577689137069171982813393372536262059749120658071363460472558821500556384167797635060806442206286635649207444789417936257194374435322078397393003134783914442984007966502326865535000941591655714235697082021737043096983717990156811531898215444054509931920687903856299065701645455921279571089916008448564817835970172278357912561595583268761570946789308683527469667090178145168120696021040625651972916563783000514909726574961572718524908359186638338892837477392951993906330610610959708864258882334846071565442215478153450444807144505895001015495060851691135394894467102705361143258130828868935885656508590204388572227540894974082735950058625345380133508417136389527416712897961150080872921059744395765812993891237989097997138993396008734308652572155455643168691249202484190752018128742243079437254749684130914453371536574161475798543497763265629633308109506907153157810148115890754455451701890290526977317472639137447388607276759062457545590285119051239271538250011138616880046336528939959467867327378462575544905913609075286929887355038731325604164432060838323153304418480069936061628668995489381575445308067949737639836570064548496340850746461982611476458524311209422711945119970324522151125763011040173855812977019407848158763457517618917491163323770771529770669185877814717677139198642267934789856369041745709326688186921382787337364980132182548081374791345288522252992143990480849057581696046715377878460536647975913163734850851295605179561441814339337473014664045493436613009689058655669671975453335400990405899913801428317098639777181417993373446242066314326844055557594833261590032872453642388801226710800911124972421730105012089697592475846795942822621206044013256242982961259548190192859022676140837645669183937841128908451240778343692405767459033632131849381999052224452494706135930543928118266781891643586464820537083822729383951337659469985988963885814836832997273640087825980503717338682787422225251933881998973373176795482590410797437109938438937296817589677540618140734885332423057042871194541345118535705372840571202317495472586294783286554365153591333377104352138101330524900833243356454256422422645408473203894910671866818779540430944910452723961695763258442358529946842863721857085821361282729413524000717750671464165608905675876636372723505601671217616215935912991392702797513119726831410349682967974783943424383376646329893194309463680588770953799020350629379916253319591007820974233612614693365021892213735120516067673463201365184461514982923721213743078567452299318725672934478617500920307677559667288087065746710041889734346167563566957151230142835249302229500240194940687278902737302261691367919471620958475125348592038228561552138432542573256879952229547043607085407075435111485794443311319266998583588376749248598468547786089191614525307703394226161267201342298308112985843398657822386001027830384879134737117651524030879213766743003142953856841467624653078786370644703976684704727825379804006059701622533042011217878637736026849863360249526121578351902642119276398960248152629993681978472528956839963323891316665518379502316815052940092823432600769154418942079508026738623510578062097565156627756449011697713894815849649176996169388634050060209238027258453070669500342602230725229825003483456300937777402692374816531292655383805885784329616328569841998525307258558238291809706103711343271162108106993194813082710277309689055047108945435117285676177295683350468913114190253195056787005231387857285035090940229305964327283572992090739762000270332251650911511109509720984626570756282037694490568447855688801379047379069199907734340321722111208583909113832230214736380304278910074767407352265328562628044736131587464174508273361145342814925154568808475780753139195149688699887652021799883468119783769134021841575458685256907383103310891322972743079808752690978715880884762454555679295518386439583228131626771984695982132669370277027225847140985037844363518596139867579189366308433675554888818880564809992627220048010260648382041066804471637885236245288566916292496884439180734943661479061709006035841668344565547847302693344340342839381531851303304411422713281863477447853503289887471833266678345000907481973415997493412207504757322068969716011257423550075204382851320633678718144910464464670131329293064069390796308659943930752544095716519497413638483454004336388161243250892469404886636206325038085096009453302783555128168593141067121001152227003542331888541081571681532759191669239956446568780304488014388956273590023257079290595183680512526438664853164382630095710297975020747225436819998449471630153714489991946576729301890473039247058897421584147905181228082661347189459529535841551024724549801518062255991838260661743378172180328726108793571037615126747950506463553333195291285739309143119437939407996051384392397501089054061891949400390200085415462309738099951267879192431778683075293878324568022956847564679938428773363525872868164585379757361141628880336227479408384275769481016035668837236668617911509771147481242347182831713611266683292082993260576759072437430535211787413246952284588818746558236201661377816078119439025587659384779550581670442494036320745945648246894930806201137019419330299622738359669218349300571504114450771115382321871045285426130675857045014038179390105747485477052513816290725162233443731252741873049640776949477719508872249949717454078599021025618414584781320796612156904893054098767201050255561075192632391178719432859761996346145802467809147676979627015446439339906279892249275590591533205634599663207657823912953741671573175670277793027138864250479503827371113766735311144991197717805051509248930772910669828090298204750007981055591404671409638868234505092717800439033929653733018159744205077884865262650366522988940239479354684373231134557775050499245178008767835249215387034057838610535014649300063337778811247199857368039718431883585802556884470681898223449458640961833045590315164909060441572455420152314287598631431592473836948993693373274703915077677921043598100625884537033979848249732135046802589983804032822528587176509036907075916139579199171619264692015155402932210884076215405353060369653059156988409316589143930047307284839996734375966234773307166587014656258423707820645176613418922416427072961789019144116542085423299758906619026647314717702886769147405627439451289122900570444400716971254565615329889932781850495374480627095883125435256131549797357809977217877217316573789547948840091134155662227303425893254625973635909125370430575066800116975076059095745769312813802207057808947623659869176256244901498563160291158663755125427236982881435352490633410099939960315340714831166775874759564900384320589317098735270156841036524867995504894643515025478369391092872154676064485475971029895457207321209840100817529786143681046365879990215188397549579183033650257844497563482921162620039088461206062273338306033113221618077320965236634345086786845476858143665752456748002072264129461361596773256998777914678054316262356914544949616250585622153147261301154303408529582239302069995018901122008773479714181200026099808544099959359355972685632312039335660059784975697459402530085490387198855923011564086258821508605357862795969383279970137913708280193903119451188137375885450553954949336026485488812379372542243400965669321999621183109279201641653268585362586654245870901562302886173445438639438281586301571576180250805673793352260850240167354242382744993181987471904751182024860736907483107264547948871805324944162239762770187817228317496729060311378184976514139560057596222679605611853814448412918224175574502273682880747792049877035083616428417908734165019987849491524761796866224848171015713489138995901403149762382281933368164297138747926791042662628075328121395612736883010620008742776860336967731025747865480094502225923837439872433849273764394389928267679445807421604735832000693406498785935411785168236386718849300983953275740272752608588693737093903604163116293689988601862048759804739500902070502483242796598893684433449006500377613788826206522756402130833907902980091275367416715450300577167110313222224381234254881520603596567671919180660245547778679224773172173345511827635966672727342661612993432233329950863770263589924701763731069351225295614952815219822374221152725457310081040791479490487987033731365389111989417169783250432409905697781632895608448395161882349768110107631465277886024000988568010667083993979773137328494174342062723882709727347364231754853133072668885893991137043083303026555427710709296251481426903004759781188111183922103132178272660336181862548119612522480959124950928097070433849823641445547528063887053385405553902469003402965811424230779918060305779913420703035478462539304342064672967054371437462595798475336687539009602469271967054371323253993951728857476297435430317877057535714849886616434721855114381937426397812647975765073661543661453186237072904600933781918083230505956637964751850425730741559969059691667502461361389200246802321102733958646422688803401371934917031938791792419285399734317323341476160188967634885407647954440283209368397267703704984560959703644223175823151111931783622474815250519100266072003135015374388976388844437707659915478180067273149675339832734843879532667710697023228585926849438077522888311827515319166062370860087844853390901546467176698065610838270057537132686058192741203786533097904512342343132354988015546836272730906842389908748719949130432370696307534411606689701670473357990742728875194394248220436497792055035014772845032546387188631643926302639665296030476567065945580527293524905699567624984011099951284921932578190526918140101904469579366488735110241210955267513769902844493356375784871291973377025703356139092133621517555271248215168422367664850772581747091749226380253854984962498669979487020558715072280735700286669654885807284614826852315244369414034643488756198778940262425293084060916142599496343752679215448318891859762177549018308921840343713992398155555023721646885636294332959352742610215420836406317977522003591483735364300038148401088757037674345073190103669760839186329794233668866971180050316746671716133091146082319810891879841128163204359768358562262517756293546423598386899873028665405581997507828013052938645150298101018543031641419135275956204569184589715737437761380196692536561428447916944157570102725371676724194586605172683618651126155172602347230296793700793758868604024033591916804359016791062733519513335575768430978395949133496133088375357735042104639476488434938786447550020375432895763139684400198633655394433434426108024851916718914208521260197881434235488135092577368871528739339434229816354891815861579896744869356449514671278230955475623599111022644370388698332022368786042870289770574940277747761216581542636020137889798213637270053636316328818339493293293464808178852475212302960738835585665141158536677973105161177990631002888063407683261973498777202764933101791100485003320216466149808907182670874550647486952591385068229278805888289133877127177453431254879463280690703577173923700155112983882886171228865298609970421093593335290997558205551963179080745945517167811734712164669445558579274638030619693318090622458026439600415700726821222279991912227363425529667780221847020051309653517738728106725970996972885496300707151141005461125971233189920131272109672339024201809204814660957741830853783285321571067299166096721012372462085178305288213250223856762252516989613392604501547749682546623730370754163867937877341986239423147394700783641110403093023054943128664493093015329561113405003948017742341062845115087414922488289813307351591057827161423117290789350614854345639110465147097117379691567628941483539340807564080130694621316840534257625578799176757645993624350532688177601484763107710442933131252184817075204719484350201265019540247150147642364193143171702297501599430004861401624158064215423665458969142295146484241032689784683348286432116412466585949661678234529185897867831374455535455872103632065141737970384357256713447509767008782480483366753815831203729580577066744922217954015885187962981189897123773109714999501756920512003965124219609647538608869373884215012232722631762365886494824033028656358979931773506146381529315177699192471467075975662863470692152124298610897528613921613523754054876602466677043719530317297352987626313469271128632187158853029927817604123630282301916664041479119520716572704876407664372928846572667377344883109037950180101010772545744412014170941728256995826095940635677208792974901050414580177746869887629925907969227925850300893607075472800088106211978706699467903083432491011600515781690249492616613558878545358579568533217734030067543325695463908257373720588504973120590762175902891100537739652855867897879443286259112511630317938965307865268578566289428686670236817054360014454827135315796859290182351247372042296333973231432908193750858359440336104257241820845381488189877769049850742875815370084418670404545199731984441584641764600811136086958396392186371908007649804599518558616389216208734596627445361400269480417296363483101389528356977475817634301931462755457658023976010018481274501320560308338566178978570849448984120780729754849333027174746385775119090538705832376388525245819611424459830177840297218457926691866649580315451306042438997504116180756653344815663498360302636752177865938738174247933806834226105053729529127369072693674246180583587107726060066137226699383151223824161965063100948632683903915222428193925421181967020232650440292570262244801070241688442228931603612445628204800040958940804154832813363587751777583519777013107310965594770181018869222162346192872056325044440994240557987974315321066090464755512684127442406566357297159541991990251622458260691530518929886418693111744721916462018910038826567914167914235649245746818145167329982447368378555682792557875006959863811454668715686848562854438331419045574087952089364867649133306299109623938624165092360429828125350000042346788007755472357472031675188760899370073666139535385803197614867497905987807819080294569761901317343082788122673681438515595103172153480400828262204775118103800280688670105327377897561111141990760745941540917753648097881425494614758790603301877686350470147214023758222155598049158734581544185212398860096309331303365301620396555131265306229792933865923469256629529958037670840234641655315681011887895203486181168162387483579726652983925909884928653486435786843804246410243098733464292121532957717224942408161529369674207886586319789097151233422583383364159535398877753412805945786621092452313421062388335923093248253605518771436564820098190054861838473822249510265295842547479107212126972980710524144973536105705156702945938718519576035972061927182123367858101528422524225144212017560595027498406691046875967073122843875176386390976270239089632987598516054767619151888561014573351164476466578213872752160162048433428490716978009861300509170466653366713045728475809456818414051041281156392485375244028314815097178015166157593813572503822598872559370927705709883689734396992753482092930965033660198181433017406950526467424103178060283233474921433691489032016848843538943649654892041624259998483434125112460274663162956525031382821399245318452905844495943797459045196997041324249569824702982556784082907762211425677698428952740290537787309702059192620261432892520357940728912481214223393017792603353377456263731890903087501208194777167566208241996113231454528853127482806044438292271227328440606011122194598925210180495959047064580633534137618872080690165227324609144414178664098292185634896105106052739583323673891311548893832357673105802093230106394844926381598822003099687154855763646864604533796218388237769922297632069653033343689995683777169609993958662249301714213088532351295952936057872100651515659126402536338350232291990112402312371541052889486535903619944517250040918924271441296469883751450273282789584863885590862931104759966793823703737506189267354574394354458862708057860587775153484702837766140633055572360671026100228147311779452037907244904023602622772467827887494534588035891714694804184790238189901761298756127214195115232514604302173347491591315174488445401163366889712405268651713112051091614389623581736807477580190090895307965230637663567953217377078107132720681114863475640959407186574136393678895094183230212919478447198249483392729311233664484912403448906634026676137964573966835907319526213297235303855386371596887622295752689087733486437282298696589626515785589040658311251994964500592447153758618983312259886979887996127721762202943421886450669118388078713137779366296780994465593797606336331332394038801539841996447888139773335182291059431171787827511653639140606207439453191731882665303797747954596302915816097180211150723282822696702038613447962051194341257705198488240076440982507837487305598363156351952902520631522686395877713274716591585424853856168866943030932836642630325329176684840929486447575215505815849719007446598277276079001099023493232194574406988890680125740763178097248975828642452592008886945893809440839605621600879578890233352986815428759032757538087374116101401649551857319722392480582662679715011642842198036192589372232906831794065343692009325532401910531141426650857092285580982137052781243429005345885319442236647597180617386906038505309187877378350596920148849829378411168105150975661653326906912367845420062702272727606747911197277401118153689079401451305952685035984561533574742230618242796423428856589835733774313591219152069559111812496013314340870167133011229403721205629492453667850021146560500922659881097500182449658946215130091073505847726349382754481599596970347961108602196247225200635761025420050266843094183458519720792549468695469752319352221690297702363137669373281575496261585737038438480152097910703572516554967920823224136452070192849963905601360487406807439622460806902367261282967854666720819001180807395273418355539988108393861210067361613997238906874551543624735396726758660823950459001961496234972528884585298620700564668532237451705039977970099001674577842345671083602086966219457872495741492964433484526290506628336694654396363536643357818395509290950751071782744541575832630648393601235952442318755912403818742595842372373318002104499795663960255198804788526223701977063442171675647887194602767945886303942456114963753988416633905140296567942055025356528664650251346152384844397460520148731322995052006263820745416053810668072702128245403640532712715195537361864210871924707374945938179773813810976465553269189138993656404841449758455251078127913483273104347816145725210486720708615921150121375784009704047373776256203841475851264028687804836232383690090700418565229582318238229019468847199073507569371246281339787222815917241148337099478717214160593117862755921691403772027522467781429766630951369638483153258616791417269292782559251253136095533009509066853047229612566949717401179432872746234838986479422425216063846315254891995015370976162021734772119294629417489550774009328212060722903536310613615645414758129631158885478112819882044240528614850707367739761980551707445467966666988206368673136071946359562101094954057410165921742479739681889824447940150719542958851449671218723187962714496137250540882353257679751265963741993295957057907826399743709321035670328136858827339648527237748586326179332940106324283223342319040667029513380077513622180364825252804877048874507591906287486392851135988041553352638810133806570158978659153279639000184483884203347698880797604921518149907608195999231776418536630193409285843460820553334326957377604923560960457063167788580585403255869972378462814544323920177543893434913111321444415946620218435346025607728260805932181619055856784534843862592716333888227003443839779409115717967033511477846084236452329113135688821187776829312595571048001661845222102447576486434280378495277877770060237899535991733356737758816303568320028426597745705499609281960680479744668782228792561940683940463272630348188838848054084623929720868722956017852950221009784272745520681054415090003595061364971829063521694245051848261509568002082159569635700770248687253861606476043552913922898175750826846816140389819517970909246165968494826331122802544214543559883151977705001027512748727260579853572272010165405848541878206525522975523519785072645956292610094842603804460414631351934491561673900846097775204987829695726483794155179175312563109864255622259424135180507084550434280056268984750210555684000480256282103858602165456515249904091604997342263771824186210056440106201386755263452043148947102503054760493784474008965670055378347755425598089050383278072832683502751549115177299917563438144220518909372268254269744087929797795024226663338053648943600236844725610834263464473288661832552920919338148833088243659291185849834301912054254024979144748348307248412027005200491961088879882575710507679471081980210841523044360486950723950737597724004236305110665802330002383623492478053667700538659668352911391609875750014516820425805013407922295442754058343025724653422399714180645882408964101520357626653849883293442784785669116807045027448031279173280725388639232726476677613028956415051476713912691538386964101894538081389878939589220519614201855608605416114299141974650347557940218690530347328014887284747577278690334795478204428496620641880597183320031350046713195943050606686967026259972876607064783941694060754615687286466487052334794846458039510322324006243736416090988307553024045172679239939884770113060828904767053341766112801169338295679455073558053718893128657218265477972468370283057093873352744281688678790774562762571112786469652902136778127964713666961207400825781357431283857398414693384721201856829428967839044527366455749848291057365304897366803941974372230098170512221447692470154519092134772693809167323117172571627729100663405397360689728997904181087911234705390929991762205226648348851619164517705998344737344372156943729775490435334685680707528296057564722576932841838303458849997604334733112554436461051266045321903928327843665309089989814780485516068013033399786923568619109232876233625489510801206197389812698211761324941575978845337867722568515120665770584675332698698893718485335488498394439891313029564067911290298863655268344989189058183001238184032831417411575090143413672592256101333454201287997963327082184555376762776900956437255624434312694949593011724479236804531000484723586277258776384812923866590998837737998258848752949819382927799951293372165879486619843313052453531560056419093609619096291123274326537926195949876030101993684650178084113429007176247027042740518121381007853151117467205799800511395673433281470287604670450933126063169356280076549883089174029704576207020974100267136996370077047897731217774794311787757914088602524093305366269179421317250126469385725866131042142390839503010270882892198800258655349721586655647324904561947362931323186472171664367185521604915846642290523688805382661327648492665327150151508584169607324717800188846159508882358508898037806381668458006286956145828881063347324559635331609239895086439451792371008268583289325284014603087152125868363065074471159265862392028900355278615730025678486770311682076126771303930479264752576186403938433715206617915968860391959361984169962308956396454454630682365609060454211757340688889844235217391930193959719636166922472268472887345574647833740816895801657081885411963384632311346105566120843207525014046425998297383445765928109476010114269166602178399539209860237467037332770259481931834214403176540464059598578743239233855671740671862270926907745821754776697407376364336953076702657687835760296292110061047516850405054261537232713903698289416722328518572421394447300218967852784628406663932787575009234094024262516878043174295363624946515922357397821860905516075002574029751347087560126564155397161051688740708319331660937894023224331965851678698339224122617277153676583803440632352852517054376297896423199750531490243793432618292248257434346805396937598478431007617153923812905974422490136562126890461554353364574569701922767570428634688746574133657610344805237136252170148025433599761150157036145293963837180047667944536264548906033851700158923970363675315115192792940703572754792316065970190452716385349349467482120974801144982033154813055549597623977941232465337886493626291100907943176507771015179542402140976597723537138936196366292955991340331805053481335413040903221618845545539192851890248751725267411067063702051377961653503353812231787539312961929039559082492426873971050426643961040865364459098441252534160628580786193860624161783738238319220305179574442333793071645410311236177053967464416705757855655572125986512254394540750016854761723825273609683736748992589249817930936773493663551897967292765486047825199945627081529806643427336144210131214448862115540350860214136619291238647422819246071181885926178740910487230859240265231422412165451423257366708038091084029393739301100164109743181097029460352492426886901010775339387495687885896341333457840186485549918983172989862736270233928625330661350441906936234073069736781838944817893062060475919020365883799019406016862007170900787645582385239312015344632653746889441274477830976501451721541682879185001579095803180924449197426206380908681214310762734783363689220493699090981744809353632292546249544903906633257544689283252689431152051973620124626472796628224863793519297409056149090567919246926485446364085091209688956808536316031077482921567678814999161409831748703973249990089836143874087252360481484567462744995712949844026929002645581824738244569207475284674566891736771570213176894136323926814444734150039492943646935536524951439893021716989456234381222855877438662689412836671466260474915585772863449678496802300379008320107550375492204353111111580969965048898955959857731739030833623633683893894079469925658145350094577108449604141615713545192584439416871523064603541212074572430874245074350082547238917584185349583403013086053525811166856210729383705594044328312841881615366994392320469637116822129600807561665394915706112122468015684189691048959113198871094057228986155440230127977664032681296215218737904251700654361609639716880929572230333875890978261662790773446983566566338245523352546136712877401047837480505213581498578789855658413554094142364882247790745854086255993137259884875161143084969004720689251169080663194858148414176285128083086522295445656401319319587114762170556860245637475784114338926597323670886456998279814498770377319657481821911976582685754024836814852881698945303240738520273199618588210689588210408327710389233522965985368644304234743895965902696935583193525640400915164691062778248289808399874386498642546603446449402889019246513796696934059765591410138322185376213720718508279746592642197496600621049509753631553722252613525396595401006321762288283161357788605594087666901380981029737222428533104706446647295532429822507940940325252525238452181419304001757394271042838235412662708966514653143105570783255033086458662790154175453385111161505496309531726858977217177566609705560697372878507645421564050495514551770384743016518328357624336735564538961660119790211617014487208206769539635729761088760845910224203014753747598233542176779289705564013828838033645313692251257272323796474858170119347842001439013809198978702984514820508121168657731956012806815304834719597379184780716497852951152036031007293199930406975294909844245195369674060622926063299367430501399670734246345169977065333941708741267730811882001138115132231793607244981059827220031078733040506489287091699152899509050195992324630665799199231062933743608486430272822585545359439859361358787562403631696078080184752130936278632328959017861247924090533786113439380942419854295481591376295319805138424872423639779427205034589554538772272054988237681453253595291233782274717302232336135027885257491332274733300475851882008921895798954529576848535496414592455284300741623556050013548641021948950109876974080716802296135387230334195123198437913811391722736491136329347695312566850758655959835548933389790916724649368106016172533613209253881161853211948181979129868255834939470421448371350959045011674755130519983714579380236600619075514312061276072140893426108566394570795283458731872554053347193312357332571430997424622775204006454016844909205462789448853052228123071581363496592285115852912192112092242827317696495365561989874199835986049096704550226651970218055101869059211861719283398179594136070553537689209519561751984052059836255738089164600323449040836881639015822222985545595595361275712380201505203465222790197293971713974021923479171351048937568151386529117145819639840508834048492685677251544207442886063514103054830803305824696990785247552218098344053950525655883352760814317785805978500706193327724753199963318610502023618929245965221175844519954831263516637972055019215895025824338234096294951417016114488695486281959789262854177123926628454247351640682296549803966256616573695544608001272328123793172618459201770849162735294593332555561428244853419361027578489916170337617697267188833666482735383502194001435809027924749208794673620011053563600011423113931827448417053488569840594120992488259989356390426578230846216758001610236539603145952499083661426657908180187916347631366070614829922565186804021305463170644502233353403807156923335219447483084824626773973681031411832530903204332621959576310692801049651277135333451239354502128863208322343473411469970357459452848362777058596869604039230779402625519015848284758900320080870200663199777953876340059535970496334328023062077349857889090001366648148141552401302625437166685536985142399127869346289035010661848212406931756796682429873235161854198597334988321243165293044688443643917561690425785494762629848347345583019343014941201141167314379227600742105493080493994231091939926273110133040461975145820768199316798233061270905177307704825141057964822656212403977274912613502320312474408180653860783518748764206562089742076622833546222419435674268326242518954428439348031632961359065966970955659254376497627332565331519285283630632873479397237186503119580991081380022106626349740601537310286626099979331077330385688398135781106086544619319572237058111450482315349436546026285917845154413220284159536575809831844463440479613109801658642626326161705704771577234515744794962175842391572399848106550384426295419223491013375003230495517659712573917273892164142524353806768689916475905976150425618602521457753561871442616618246049451342821218652522670605267124592766168460241052515092126615500959072259518593567593075588712418977502247455280095276317357530259946925669278682378926645392010973632436746755197086717122658153578854814709940435307170449860949671289801588525324635332652934584028321252266876277372966733433951291770499362870952310485296038922159929099577067348217051323813089645557658785031421131583593862129484947242598367827123423788719754217455059863536598981084899015375732014150646841163060351590843194600878011328066297376461347907789016728360243200845148633445765353919776863212178357828831942788832888337107101245080686455134469370733353296328967771160248416561711576341030853858760601800414155247400493124923747631317091509108713760713199252245258890602742793350647038007720093095540924491051948382702085647652596367193479233604365839722227804416386922579302746314007330493701803768296516055458331447974537776997381681279803129029203532292824572967607135785295790075832670441595312765007439000486632029452808768484437638895093679355531571440693705167496140459984685860821071886558131467304322675226714429888524656907868692862279067231055883288393009311088447326215032706956021904266390205957387015074777504445529293307156356056812348209260887421106576713322507315324812638268531748536806228005444377736764127148194309584762386180766392714282961344109811472347552307170980085966005578457671512572392621613956812466962488320345973445281998002920650288185180992108801535156527857223711745013110939196687219224561413485523363420541323449869719209844235816146011631289185861521187462635514808347658208304712313606455313410254326223584828826395927983735243964617020058838085482084760364546547126618011289739277235695224602311882976603889022834625509472458378021310250614309127973654348303424850420943554028072404392287128465354967740268084517579372373362148420286890292933684303148731045762757075194138911582338467556941094649149665690204486851478516030510544611631798643658069379744555044624208056096333515901625251708874934529757623837494999221591178416597684199213410300169336065627697750230904058822876840398365904683713673013418974978881176282671883699269134964884973670831360528571612662328092029777823688853547010405627914691522843665015079542060821160589892620380790984464278427805741882205861826634321838890161631757321543248866348319445030325189888671577561508885160385556147411633316760904690299188675372910175254539097732623559020970470197032391005161919023422094107241447135062281631378569271109805735257337105536801900173950966507088692644265898359056865225082832771157776276614853898232039935151697067112122710017390265054998501444321063263039516373227897792366973221479551813674717649514776254453889834373777943895137804363801161704555347737189590144313201049103983798221582261364090856357261398965022778370405192633076494111326932109866006781884839917300357405315078382594888728542232218363526668849963800856702457536127733339892284382014879031742475556175231531811819860314935592021892599877428564647497754925463308338221688766972372571129129043760035544412661304346475870787391554608710449154636585856279311205429581852297400020176596503200681996248021621252495221848473409657647296352424993556773562100767658029385257527910647834185861178036964917045886456170074887281585540078212378045268376919995053314965835044672704543230388363142771552931583504820497308731345498757427707918782123294195066480516501067652488899454977201248969264236501376718449124608654016269323055201611309371735265975178207279273135782310535990072583509637250974000893649524555175516740568043371788890013956915883545210913981163446692157556648744372527976384192287169396965319959666552855011826702774687924166672796620831931519620912912221666973221162763417501671458689780761139387678332630531586553411418092419028707986360168414857306897562040227161195488401988156146817976882961694050780724094335705968881708747895397140181319837134858706871779679077351355143507137428536784556727450882640910471641919935209587382570481321594520726213918620487919574855547501128824936859979592633742846201288939466661618161536353577037640790809354389081594635465395373671419394004011627883584027747787814662725750112031414399039136111260530475362665971262845767130696927992853282201295271946576980103481564322339271865856313786658296598641309748335560599214218156126836548195175182165433792534643166969031498967906366692316893056987399998704508276317056191657422212198785427348986293714586888751843274247285913936826496936546881141035215531193893467993748795133420527334975507979655597816509670340027061971450357287428701416770330236361643962471408045650526639315031888009420160667109964638236426541911440007127367209615242266600941470469477719870758568736098653503882195926764189935090465008680376214157024501181179903354223475186649289303374130972941402598348956815947010413949029145611885438749990507405120957669321105595967818490430845062894408647703504471230327100927128550128476105251297197593910862090205858757960658175909076653967490734454759138064287247474210906762012331834013628927201679352793141832407198026621904463675395973334518449411752987726598751758734149970818278613898386092600789109137416978688553188258963390123110674907678785476301656604145671245366196798418056382428756098611631469967296106112451757232659591949059509885196737028839350824500365471309969405861646675253318919595155624361724813965052883654998666953621124774563070780107456512693404381948179440400151192659741404020698686435659701360943233079632586892617768541982746929004314033827552477113532722326540402294450436091111258007034452111636421320314103085145091632376219951655479549382639462952855452391673969590067723506854988475908391081742044135009358789286976325637642221057840787820112574219568811573944785242836482480954689174005391598150673423577092065764050978787989854041007815125133874759358520082031711268706213160179805501786741966511313400305348633027292488207577086623257164822249869099729100871262903329675264079158303408607088607234610267677430606472114658151247407760742777695748127869638814517823576529546676113930295739301787110365122358000510683067579013511986944726962574897710030622489252984024504250033291765077708512291740313382113933259446863102783183981661895626150961867868549840430390593339190616966662917101001026849086225425210834202262720560209006800471660662992743524993653604159248439826654556384717745537159821788586025869734078354451738029009583239475730818688368206957673477618983370138930842683138609028285773305323741041870951071645283786764212054565004696619417183086719042046014453159948742700890739322859984594510939888115809494061023012955048639332186900152107024999856664835140530938297435824161332592235690044368016908593863546243726700419042920447371811070430915727720673648745507032883396717466505956222413662617236940858664944952014535460161512014977243807646237407878191112875206067123585276968602120821965262777991309903173135828913437450939105730879382881273744085373993619226030368032912023348828275784131044060479813213633323862779294877557057925578620028615533475303252683206482698864328321081404424510930125720070977284200263590326963969315619422380882487621805155757338316596363623596858498050319232803518979804884892590584439697728930053609785435803020436957066454348913864655851723206636600502440546408950178909130263824065627427771231361953001013245327989288176832093323275094207728608489460389840070599530859611938619837232166747041518605601702846336260142834935460197861376985416686529425019640537440809886673836632083812807234063894438671472536307752698458777754133221651500629524392199709988348139485217271708767195648267483090752527858008348465310245702398291543800463990955235109375218584861024731528808145183960258862879695531325737586822390067324905853525559262585783068223111855269023121673498094614802856337069979160970138903957851704337422247739485742101374136163751943240179790531984328109018479906304854938567572939290755471879284528299569524951392319850427848294723555331404017952503237140520278733263523086744408532592321640539595463728864400096873550420042867147623944472773125743964396784319963292128616630564460264776266035878340884216758056108732800214803929353803566726125800653647968738150714433067995531168498749255048248435536727886067466429940164249126582981053032587634086273635649624783883678471329504047212148115594234443501712425746818522724385598859319498471126376893985230955084430055795950802702532955165770805784713769463760925930418250749558135089353349931761732569932764691093898960647392154893698966605208393578941752613093788872824755939351763209068479546428153456212098647140257515391023816446814476857129394860196681984251274322286187149460301878288840790327758969727067423058653103613762313196113703529725559346987189622699854212643645160426832859088666953647410643843945782729722058936258050570529401487953567566732473401907173648040188962712214432857741049613081303047850076868561617773616403499397668373253746723754633627381172700566439637587836408724927930827773616249553249900121141556808096184849521347866754935440586032351742593214295485388928427911291010531786715282968133684311338620550866151822413459207437960642231260395342850954827674060739031882396213884794255655587333975677965870182529476442845588345638026350837159289239028738375469775445318512251249060083383355302933647857411813881945559760704657541365792290615794790603513161485532441688006403319451785828646494699090486200196661603106952492242059216828444307760840290602227953734671608403387736401520805793020016925354306575929421446672966142387565463001995604001220839960432846502913178956037787121227523820180199150651886683606181763097013292116553886818307897290947329980767804861873351800133174896594808654140509690797359724291788036227062109081013644882703101691611899587569785876056165436025064786483222690088479649334220968544840522978131426006020132387257530186485433396857941179176264953033897217740333202467300398882372407834551616761269082487277940682677398352278251623445271245134591654166518665647359635747354527005253242237087311675113088777204724485989048802152151569686178955521496860596185849320768985655896118936181660782537469270190911873540394403142150019828794005797307043597434219310312901604089832385492988766901493718012690468631579422458240223856800004096934283129928270848315628845756096115363645352278548357193063195113907942600591697631204437424287958718227155087587966611867076400895781569936344286695876535102831298210385825580565354131633813553337496281054813669691763992407339770347051038747239112862741474073476793103859851491867722630656916565883198056243771984679755960355856285273625397781529865043365661490007487119539722085438556387880695688930669961641426562346101960184083881597625463708235794505222122284674575850826552809528083160377743865394603183040086558539991719326959353519884334756568182933297382938312160222183695053287896094483946004116334102946608158816998103618523077721091793695374484425818111340199469021215375910392554913413818891994748407847289664578868314516323814240797324483725688283211294670256454570862250523219845964585154364630950737378712953422557058561474069848914852806618319616250140395346373622821839907573264181283840032503209417632965855542583370260718529360448663515869009127310241935591800762800320610930145832085925131613761223554876503390680092542961972746356385416557643082717636063935201372731256496689608388090170314133945882744066336504569311976412534267158624451002440146387354452106351072136412930821494283050423941039215982163508895846548082953341803559152259007899617308287373003265906174103484152554943017152082220930642720966427251893551072887044600269368941406093882806272538646991160493118438875495552198470020351719650245691134246450185894983084311509256314595791898565936289836142423885250027129822023195762004917517680906366314007045061112187513869262180819217529555734264999055072858892320488138919554298951103384498886134945586284103522598514598253522161730734375184351553509191404091749884054861221127936827939895575596727755307321983896277833403355200956329836770986045063076148563181971828751230574433548765774253871203502926036792318317607322447204971621356476429891540267585199311411099057507909647098169358977443759205637093808059966273693326764318767071115577802919820350636587183040337762540884024173128830096629337653160958270940422440769230515508144903628816326965722310672827827261561624648359487686488928985010832965606457740526353424580642021890378005861144554486821994018655287925309743812736796045717875047027229594821029267923898510302291892385566603508764563199289403998345134430390130477358882911805964142426457611605458886511431345501722112932728219790901332459245027244719721715182150231147694938580613940492803618909022856614569709865768912639706181710634874241662543985391375014046079536309827962522346323421040860681879891013366551409232253397225401344060390821592495942112137258442885936359570932366729703128739187593070578587769073312948347210935344713301008114610287081365054822815032858414229711848770944964409732933779814662739873688300996619626478411624996076600541537153939079445515145371434780886217245368819313235523906818092054119005265895062546757974101320453796408027440061403037697797054122937366565588306584808499208868098933135748765655305305214813562521314213307692399629749972757007658441609772967836369858127977806192734747630867140044589513395450732218259337444009703664792118992740796362340385748105915939798207514941893339659977762987286176572670008455975162580077598409590837365676434187573337683023562711400579939102572735289682046779217217335944925346789429283884903133414636213295720404353212971969903657976984356268685986728465064915510672172875403782399195205118207506319130302571294614953460292980812583149309612264666945193417422138078177391272555520627336994732787161450047327103969348547786922337855851965491355087940976613286121439303675892243442528819233784542125331793007635677994221521457744661680733838679993837515187861999769911687479846668530726439776017761052625673696459234929482588217981914911029818568328208122096301076440755550645330231330409075542616742877361078176265595256464601657729334989108561837934537877256865531555131224616826915223067619922862424638146415065752343337056819879028598678768803303011859144146505190739814733951357891041926987170209797326130787329397281831951249017135746960468347687600902644167969562421079406121449125613338314641221005682983370139152785441662340824904070392532622242023867758802982746713728156697869634630199109054682408129151888552882385391017353110287750474979535271837661808913182201935338314861342640014352072453090632866839950778826257924054764608325230643290468578971265529765962745089915645548836067397832719954374453808130058651786484860882258721785922456226655651742482353618590441544479139076047016000748294876497356354047350040380314264242550364234514600954157959958494781662002862126317226504754572971297033671241875651601331271353440533609831787015781943459366011283918681607652716113710179023516362875344225091468859063872297707020450695475862098140585652374904746105280141277798864148850785079514186609088601334837354472740661677498515817821390631587406488832415225755475258890437696529104661522168986632489009147775267290423999116571622939393766158007374448254651198365929622390977964820755902135044458787827281629299629823070181245932659248747690791186824432424946378290468335450108648688124432463597455972587445787484617494938537807851149230445014263401209269022970999002684208250483684745541173357561407473164209078988173626881938099353450300336569488841390533656432402890103556548605717287604607438868470153841315711384416684786008329203034478806139657294473918074737840384022693678904314252379586296886199868821496447817169817868625573910576240728731450776309209035699924288310962448138071515987330255539410615540136962708563655186862412080896754394734743020267884460957615021619821966229415629069208256740198431552495123959724316935596575063955966347544981717258924278743636306008105959597709551170682276913180976478198335833132365535739980913226426485196534432513905629503157207244304641826311127538202070592802672220816960406791460768824596741833575231887284626642546125196708165256667912506638677986665148982546584064189916747616651153515497131419432610619385392328123038593186218269920179777144123684166406138708499663782264722382841351774209273944242137964474288156301304457025795877704921061241752372116400472951468150309629342562001459797804854384596403847490018196013728661661067425840257191806393508309271054945774057801349343607987024096450362611292034896893717933050856293190547043644200343500965953953381952723986454264961042875209542086887593777311764080029361197913612610153704949999389452233980137994147190484393455184825815439464158401169144389597972047641363167083799040033173785685309056884142804889451489454901390104023888008533024595154273934176018629677701741365356119977255744007670777285479062626312235904229206971389201243038203908919456522331478105031964982336583892784149391039106132834273427208139038554262908578524984435249466327288163193435151091452247113707818640386130494286852727611227914579730497790621423297238345721377586481177581755082692992339732801286739798857972066435168129984422075474843041281230799063682466123989228646370262596117256145445151210737832813570809461885904770804324795094090835525226770044566044116454553757053638143037300490660582202652619618848438764442132246140203781376114042184246362725437310350677860432343623416065292959572662587628850744961264866613115199947115547790166626864655394875327839194467030356970878342536793441095727069102988298086073434923897542015187932039949077466250115133709750779253097288614851752146242213085227861962418049976091309657277337058530941776157970116545634439908320988453325211825643437457499575126968056756685397332406175535340742212028136659691700969287641525480242263508261547596688641664221350274153974385967024230616020567694946215097725860108441125845786592941262439788594603647432058588111723570125421694440529787795262277934641620802900262619966059940818015844983369715195111403383608596582215126121264550102401555629313527070373622704123720117850184349781570576536186779528642925425515442314786125681695271914304912543111341020256977961525997246553322887579738426771345254039640441390337062532324355032615786023460167709628048762095100011189832433396550987160780670889238020160521946234324146370419281009228165673497526747191937462063531386824381942259948854468796916664224449838329321172627631211569178123064978612381314157040325961407968282914543122388953249133741100183403406707385217612487390241013238666778305176961150289693238285393258567971678853831416488209655793569559792121668147188407997748254330416859162503064567952892747152820555421884907102435613265583779580149364155002040498343012258254490734016244559048924497083406409162131747239670928333108600366375103124432803011051468994704000728283808257055719198376698635583742193402902483447685874992488908664510530815439633499545130397729962285983098771688718913503691644771725321307736370900892862534175113626634835750932203177038617890569635255038147832228041352360614166796300258217607703186104254507646605415891197349636741052713745953618169970206423284810673399157745919393907178521179835093016067733825961012086093105448036684054243039135332538119080195179161224480065482588620858590191065996352952120655916142933016686423769573585740677743608333377012627737075701488597845796948935180468193624254479403364848095816584528800229686988654434681523856798353146026884552788019761670617066105699027601386714972436111374504241070369833737855437210174972871161229980071367494618980228468274086582217338833345807975357332557403111859426480090551127614370137734991259112187244154866709449578369831627324573470693259128339805186557944196441355557052498521637931686228665759539953196193255926155077641898921909114608732413403058376357514793342300807506244479572592717384302626419020664706707547426688725619032501832160167136246462342675751286189659681347526209234340670290137456165483238625258332875009904256726130859998119428926370592987470212232761615609089593085690179272297046154798680807219325559753684177647594072515240217712286681296084798437704605392003126556858929875379611619003710927867936390173464586051218484516244254719563513462425576412669914911076532512169373991068793880472820445008271465609676514129610406230063478207028528996235543153704480738885194096443689873018614712071956186463285001452984038284518872801402473137554399359981827946330132864822525795167821817447184420385324113714349426784633392498411516728429326071721121293778428125178665911660312236526363481042144184074678241841733057188528060536126709059284946477818732144420736177485552259605682256162015871800837557535100253316367013874159908998823680715628632395360882648203631111790853270738040687143524751670553762460825935680846241122174749749075368301148679231130225674827659625402205916282095430440157859938597631419056150175259898023130814981305087907987544298674427676290944476803678649598208090706910323180086891683928951397481658093582884215035434679911683695706094799509267065190280704922485907555300424230130723150287539901470889466133925705087319440416382157169638334598086201991676495249520721041340456636318780739467329082029457247788182945823771784557543715653104302003163767907087745992441500277388930603789888000721132301509457558331852606001836134641850484726024959402925305107856124412103067168891375692136255161279916620748652777274344750291969171006298526858287150098784493635234112469711827390140528209835154142238813653288265227366749936524237599864686484197453672205128113781599498422867582893474305775320906810041282060275592970112772624177129622158745768145800339998057248970784805890879221056046683009723754333236656167580005070419561920336663412730089757944663666759141904395560471282952255141549235855377548667707968003834487282089833994240261362610651960964194115489875905037098632921411689804354822312152685703847794175607537439417975244283889715792416190329839173492041048951771422246322460695867432584432628864243422670604618789562872395249590808160384563526158579072807273269626177041108985536335271453237475105720780893296005244250787312805516513666089184390579146226962063820669478381301840130328631304108358426436546798868641593795986180189526883917013043675827853331461881500047297911539300231882986612648847229317431871577982314783507873992730693679935185589952860615509803461243095797911776288822850741446760377634806527499886045170006011745202927024400709757741771549431922879528910786880465134973232168291770511339603144991456848899071473527202813033174351709056686034412553797932445481065772023006226267507136927149955749432458582770777050272786831629206798104926618438401766237387085638690348159489070910183237257230200900716681703071955149488414751047677343556464788296127753779610179153825685630425972740349787783368985364660416666989636945761128905286336694534993454202170693511521407480007599409066000355747782789007109959038060351043668152168803095455008759260145984132591361428084370027800611617916428980603983639518436100349163319950452876546161743332214808420097510776351642555751783116328856863581950385982368448734958806801608380812628831472691396477622258993086122678445426392939856610456237756990516270582782934585342804342952770644011170619174038640627723864281688537912479257624073455326109052853400043804376502185448639642006544069727680342639316348932950085489765256658992585911249485139497886852285294589186080680608941746376590438369004068722482264553306713064274670403718901957254451151081998270632596015905768019943025243083151254307813598906017076471434751297881254022978532232596934998880116854101230138405458983945383405962314676656109545255506690897944143237579949334029628386144352203514938894738454466622910191335081918464853212810136880195872893625289028379417712127995615544638405846320635934100384213210826510541053251192242370776992769565018094554837715096867516451379408758464033838490967079932201512782311193119130857572144876848726150282395223710455523330140115770437002767207177769758507255805474367667173800751073192501286110884783513708763003639533080073569137595497068397460528119730176240145670221529331417830399685680176271042912253523114691360364983740108250255430705900584231515907943258081945415934562913156372045417749302967631244611450510803463547208277639298391520344044117884662678817206151134622665781607553193241770249447960471163869519903228251592411329613320224901567058062346575303243055753716284700900215863214418453715085469112674821877703629267725270267202451065383035948025884673263152494274207666439510218433564495057034548669797744587987251674536550270571026199417664823989137526977872882303310494177347115832819734942740081348932857305261034859484913454115119423731722548775111170454850137024421471435866392501149211477549746476456823373423960905328742625805842492849727503542803730973081796684483948847519471718056010159735562959909197506502046155350409452886228337194870528275046061816243380466266746283746315446297209791742055058429397642737569343677997630391419755869362658912619308776691973043587645029507210209754431836773698584645668181796169842131496025777022407890770091842443619584667899382820110297015151167777245696078614075146801442107201762326258741463160651864090458933761554955530895553920104398207178647364431711556952099967679834806996500476168852084519369167592072185633554429602337546662449878141194522087011953451359198522974506331536672729779953972674012996680599982529323215289428465475337060344427440565924937310038746339084552538512341989146450775681446168172617541560994178275155695548337488366242669448130733124184436664613675503378665274526438380319557038010764688035607697560992189092703133013491816790799974131199884409163086309628090465767767703480721799941734342973403954727999237905967002680747262099735526419709181737210425234228894127181345446625836969583759459666953850694649580743794829945219667870249568025087233370177095167889478977375341250001024779765012658003203887082222371905765465075971362612439480185482356019772667816504729755275369854305278752293770816894013226087379631371895252774758319578977144464722574404059543576685596731210083186191868786554847583421256212321578529394047911440473516799811248132671811625063221634927462312146805134903697461073073559793350793692498606319681209471742909189786452787299192440634170592720215946186017160547420334312253295367749243115569219912877723896398231966522912830226037148548503359839782220451664535072277588321312402035912657254910535433694012208077483395997503035118984855309451296352690591913397227691045872479252997473651489924793734511567890351811859857978251721409154232958694480139081242241393066780148476200898781443660158725932889648917994185350288980357106547080917259046705753060115839321354541486220074130058167119648098960590607647893598697376213907512078997037172605024368915090437682686381197231355672498837454243469788055974570458124364157934405103991247638384558005821928840646526088998286307537622153194762299584731062045702783624078135372385158206933677778836114496008195872665092556122330681056498022896093451836500754223578689583837161173592445265367691319818734642160592141713231024051347342454341006632454512757192906392546822057503284849076427641919689054559189199511328483028302670604303910235749781987340911655829177989062395084648573128953455502401477761059982711224605874505131376312981211736825537466262735000306101249961677301645321426658798567243029402956487131556170744742025825762676022566079165710850134640323907465678119616686893467252441975485089462040873631175299829534641014677051594077254135568426337632654598836775436055580487198955677883546163045630735717607149721667035584029129045310263460595200131307190811398542342715880688302193444134724624141317030314006863642481049975814128509452158386860001597712308990940905000399702908912583487128821384540241156751204450777227874458703186828215785994553546683863296146797557609808245212940652017602972673933666663827329849248147676838118471005468256223750686013381960267671099661778955856720863301369689081407849804513256634215575862099092764446404606026752006165451676944979054624823804917694987754595876340437465955040462457183367402699412672256464152364117621262724220647578997555335815175533619399489786430794308257899517099169723544526502569865414811094809542300865700182847368877841169320409447471342005404141556757632753567744370378673701291545733498548410733895154519363929013064529443610482156768511719179821476484014348112273928319182272650129628312908709025644477643367787082103158696342009462010231493911090593725681189648365548371281792580246042470675676167776443075963432969961690394479574466858724012961890594395467412494205261158790800941879689015973740453405904427694833436724923578807906950010293086143163987971626097190058074146001552457749760870641189316415078653809887373549773399843047043534776490737955261997768661866100173638820329808976797025702577549700019675156670165480598247578436417928326051280978401938725016520429826727548395475218317800122277910817139403714817769215466710442996479607245083013014626581009918704375216563250464595705328317456261370785709100835886256087340710263607248229585303230300548297551770317403088742505716636011270076139122823499333398951944993409308148696268404631066668590940882435692940279608614389815126652885618185798256035076369505406038597682118467606799093085638082595618747463286970802288037532682238063899501277825772898164815918452164562238107358508202660351617445473436137762449685965813734132068437684615423545591071155659083334375294268822889102249427253986531556259878249476089271897826160564948770075241243771758420619525700517144816349785761505300696296553593866647568314847941970154138933403474137459144506066269588006224780445976362755991010222589442228831123149899652367821992931359294064594315379825301544953535776683467910445305096487309048650191681266122249396544737017901505552953778568210606351368426491981472172327912491180932085493381713996343487737568469431154028770367246555897980628982802572698147633123257548249244784776293624913533881102590160094683092426411312482866671230973629101657449684556620122147411507061407300299686296135694098850357583759648997138906414110523964872306547467679097976033186493639899369616352185275810451249849414789991250679578522348855426870153234161462488447171499285251028993648373714928628396854852497518264537289860672341635981846254621526721112842115174248641268991573699681944011341258354220942076323232797938651632459763752309843024263073754410035599315203655676867086852924791431178193928722677492558974764435503707541201184803914363015272480809905364393215296084000654016583671658005375863411270956976103614770092916827166578523755188585810398512225148060373015877053617456946175076519221706189992454461168354053686315716415293839338607354848293534614696583103904393785119660605585566429192228252804287615768481549231828722503522099181686645283641870038553248146292953503058444470177791422094388862864780090253421328387214333568052058279632740447384367723701070243595891015647894615530883648881389192264385601236345659251185753671444330533146687119041430943053039349787034992287761854782823958272504100258024573334971587421266876042012868639014677438189685317957075804931219822793069614890719506049676485487709600549494984940712880243964169484120662737862659985331178345745479299544326522658923171558835719110925854380978499922241885594789698722546993636317224310820850535110738275463836808674860822641046090699165541539710937905806575675077646215618783756994296116621726314731964086351631695880364836637572472645378090055605921200124549445322345849637434310433771280233534887320695674416148018588663068751433308740871481933888719892545093517452171897626036911483951791472318403972158386986545865892632871982619600317613407441932940392273826511369680001674298202377279861430811977763892897938872891650148324566939987100885159359317323808973779392380604443986805227511310985108967989616142880354014458356947004105230714369931449343784391966900843411887359103051817476620574677890027476531418257771517939715882200693903875679543154263834545935614078879212413297231246997004121932009764241483560561611636359236990264336376527517403843382887115439839868828988626367742893944862531983469125874917458203490409543058260308832473357444726119724366512097617152132694355858163555971904258220358683772112290722654724892167896359713945679668951426879097164690020978566817156923865871525506042712816539229401771526283198182346234792962482629816787785333669607311843649069728943374778860892097661422177769911650034734353888606036764036466058604143115396271526382173719997747204117899954980847350799536734981232151613771348342650525688928545486813058295496146059030269706126539872437030440227924104967939538811067718492255462920444935121642507480479386678010083372262284407739369828007213972640878613056813571222222130990349190698807815968266896252171161908886674536386321515108687690996390667638895928646501866328145280372177852996643771029398752002775364641989809409587928917808928487290343504347179736948322219199938751710311396242371192855657288012561209212727605615459161810758795498813875342364821711446384679884632385787396984844028832919707499706137420514590387644945522254099406876540208352995421908199334282132219694625311328124426439303891148676582041783742893423662125073962301436223957609051094253089373170713615387383039218171077503615951920621857269304239630390765235763067276045967353532604080271860493378074202664925817548695353817959690801421974206310451421405332460380579098562203566695825124738810773191902220962036317736363438333764667717536511942570174499006409051136510844970235119854524510987486380529417393933734925209902502825585233159982429303240698247342594486722045973437327972223639218027540982071647155658990445882237473377875884865882006087873739240198036570085295144212017703573252308715321593793945506053905832255416943881121276002097794343895752249139741197860859891751757854920246021429571991956908005650349700921330176851091428023582569824497784891860957131077781352888046089655960888525037282530393426269874052980219373133379524195659606461177972612732037855152419861765189102101437465749772425948415181806678487154579130746705522538563103430898114869052218677139189946243881859383627811880642657736044287053646518382815368306834020353223234212716911872717159945299321244104512251714227734060667435590067718206142128061432519961183967678848322567535457683164307483906003036080007897484349759603660432067297320866515297351990132359588281440398363454724495447466407310885823342545305646454491556873342408833283448655097172148917132251205225940988641622561730340993320187816544943112194336304362822868878399172716072889661657760115979799786349796060589592261789425223638294427563545663750098237814489770419206055062411429439959350202509316671233221737120477709326881339350921118618114683577642031087938108621128687531643598660906314013018922256240693240354792381243142905499872160200703154423174781269622315528086728465224757206059194904575805716214505368516160758164295627583695546905934556379652119366354151231992934299867060404686488383350932915290100922826073262398611718758782766547770267858597504505345114857658019465046981820818944876478674922559128921475518447661614994940987444387349272352485885404218536090218068153432030009126094384407061424759688843563217168946086370610265697426955158835929799190134612344488978057752182262728413295361362343242784348214610885741225801952615809235339314582081279647781855353138709581050318823675732232483178622754710405834681210267257060434920263223149487864873937158998317436317899999992319388240955033501587448189803464445937507875349055178272189062883529942905455707290844890921648366499762450419379945577684330449024614441981418738959096671367606585994581410850404201294389605320054137967626537432690402647142160003829930425595306159824949473542989102308586369626202796686313379476311816422314403482542507025013937400503888377898250039992723649929681313735558718540920112628075158115292523257656256286468760716553297074601986353627614925655847065496773115273026472534920688085868237414362329157487798590169815128915695783045375017450909442001922313174601538686199353467178586341420949731906378462945003485910868683603041393976990331967910962800303116353671142857454885452362565408672292166189015951814980440109149750347342540421977785547965992317476307392634201078369348973648026289698490937409249898825153480723067855251205312245500512232963319519429174532276091400559991894832895490026486174413372126085900577904938618871405397167217028685159326681444073679059831407887831185941181141679372467902368765178061864355874130075301627972526680967869506474749463607167951737489802295975778354067246296168372812419716058503326486592282479827698363292689597784408591320853126053327162486563988908633916574171457949011106241017594867865506132881076812724436965034943068762143614692095365405173574088219802107195535247920715110623451323656405215900583568543302796027688611639086923148363920016180267088328632212821364867017254755886728437031882898516670862609641620644340181170444838780289480444895091218933405626485492290512343361337869802373861428033589407022953294785384289442817416523903065811833609162794740313486914962655862809004610004822669524884729773121197381202633198780644097697965648260687841606697313453256197795081404551269627133651980052125877419653568468228889853491971093193194552798929891201181964454282607876363167525365200726260024248105148857184364709110837552584904254173200048387790427978599208137568396587271019663773046968466103419733772470867978728884499154370220212909673382386350548796534186992213744390049155941553784482560031943667348080744884447212092904897622297000846951967732544528849169763602815194790330728801581527472595564439112191641030123819634262888266195000461553051113818203841597440263733136611130026876955950124168587182901735104934514479248761363361853059837320118529924320790187831478560500523240771123476045801200368057446993202799565255828168616712944407711181916728016893543645151494903506009952842036670961253312684484804283750122543518825057198901730267978289448260962791156759205286236944450376834913549700008912299410582333179396074224828472838441666043960274381087583817569333460380867509955308333149136826043599294777142581050068486112600894408052110055517761105163900540086032094845009640903687244393680589040025264769499284894466040639535132550139778114596844798926369418627778107755614102689492029460632909483235884600619824633784793256219386496187287270977777126822642678660460503520805810304806863644608089499636023090737427926042716015107049674306202083335216820979980361801484153135050644964599933770344244642803370801878203644862767655896911944883623987833492280607510495208574457682515247327043615270895589095397041503524264612289294404337183553277495487719990022967011466581366065832466621875593003803499565488280240060596901109411507862889361688335326937468031521741259430478109762776357830222954141635423216155585157310982223280482967540614199252974187106824044328987073744591515500565528764386478278940207404811193094346432364446485631524306767188528388653300405426916904545998705290903500002838209797623614582484806514151987208476490638215860113161191125296695569501573802115817564249913595671308111619997058736184684641438981418585190627933475794228552929100620555773657073909950188434763044236966012291679348557140209975064435384134033165498408133412307725117009182445795975681646561689065587028068535209395183332483995401177149182095678571933802928950142071953703933054806661811859972499991763791690611543824762127358845903649062650488635919595322584547309605105602698003197929607408752125710556841053065925042714306083171661691283296107057867493628333153274604286871673879460114148390671197458478433507105924108932343716591787749646332740893508501918458822883867147350527502113541899543040607722523553432168036816384701296188516571382504899426032395301412381315661574890045873830149842344881945874555137423769130103106824299869167839091230075564265642103364858153557776595204337106413497988990485251387389841051688205766676866063230465259288399363575780701456141943410144760018688128902138212714958584787332320895753482539267820863732299843534405032056971513557954295509915790549715271453414946026946355073891514816692399209164294815643133394853726938344136855080626012005157528179477813368807324558467669817613720742756387589368420873564570731451634211393246523534976679948342330112372238172392745781033591878719954903799766152014991735895201678761437824760742462090234271027169088223785064176569722081378427699574914344452347186063855251254469674612020041996824286937817085170460336973937214187905894591263719064173956184184590974098704236172663802093307510710085554973798944403037189089849570965468794867005891551882291726876544112137821063357772730048188693987623171940570340348327679567326942199219232440804505982310823619114432398576339670280857713880173798727531677034533590763994608108342011955145661117826439778384034140380986389952933035922097783480686721103773324528736804131210009543427308797130664071847251420557009765002802444515946197829970595207111630509877552963652934259004310142029920112316807511220356528471047408634427149022061650146407416938131074765291104915662199880347829630689862426020841707898267838564190506459333013225015259256541386448017270888688731699617856788485014320218676731039709998286566224638306139317364802515454565828200302220403593593664815931554402918858112904138238876439140153563900871535702408716532247167471626577400084228371115245402274625254697364815972832255735659452686429143824642387166413921172530312131925182111472683195222798455313082145230583192918050274685576286775282666245092545035808888963279293814411890269197498105443827389499565346543418289727207220480875431875069538771930738172411877788242610700027910448159190249494997021782983376600055578109793944816528176544171926577362757491184278781200430761631050074979150969046745160821234568626872636411267042969692204935440891553834529528856565156668475252784386877979801655299037135717825543933305628192887404942501361565903067693493355908631490613274922754094904532741906430242058525761210320356728134883122988498096150413895128324109206035631285444648381242898239429167263655974917803772843432370633820616452131332056148070689691264946812815784031124796587563858108827409072663777826403428242245345766890748797813694469180636039729631950455391988449256726219857001160270932147512245300031588735741508331250435624585699673496102885985522028686429218335039901364254835151795003757297374468446679571581019688797828612012483891072173435750636187685359970629080382293559475309433527395111762304801347412286283097099613315422076803480319597392497127675505055951319306151171901882059691090440559544159507916255243438787432237930234619943699310856038452538973100066144125513577874373975615256801285301653157482386207638377433750810725183403880288682182295528329662632436625988503477798032363872407364681402400571745649053379725757675173100141450029133422648356202546557516271897107581287345902520188270347774446760600442609262154823701145620332160160586376898392278692633686635814174603853393273278422960503597742241953582539045561004536864532828868382843208153400675151563990639107476810468440483645365455929403092468380603194599730652809815224885260511877286279389266710623751998826825132299655192112772681297517577003218058588308197945969934013241674294167308164812921913039362867642801029632091946607762047735238361650477599482916421636686626833759632215593026922504627929584465743741849542824222175530059428278288116388301662235018710524911090241013539783720210350533802749094084969452626178675063552218667268307560127082695306853232932494313292476704094835852337933125721014586264480151993507879752301660483072261742709964270141868308028088193021224538836005053571007137889126107067970842236632993110451256177217796296826263614119075189322679588345523170125542438946713489496725100455733210799081260518560508854585223901944610924518950115165850711521788073930690510268689825028062755803785593909346768478890460252859321785328836192178449816183396268898871756548624825923919207722140790934924374303642943116015590765703687452200621247753175043160579789810292433104873874560180827665301757475100609146552584038171086751852430856510379779517201523505962567167374300171028126281514031229950899862077769644867232636560009751333543068350947417537767173344619561281901571601880580763153715252157603642242930053390022921515839931641887251813776895951172558272008220798946594318500023675950990575605543594758691316812748584995090290204540336565089370461993357129864338586974472143282919793621623096735852792162266939935398878945076822146952786462737591897671747776475995829228765912756988293861681689660954753781503473934872543379126687339839907686459274548953174901105788112263125118222789722733157452956388033353916813480121703555842047985544537623961901150375190209427030995880805439147129469430948828282442622045775257356081834891901725626915378869408792991291277173106565763488680245941924738982890644155281865995578441921672520897522056879617080555473341338961824707499286746939969229054714788366800656083636219479860580506949593687238267538576000144333467647438558195640148941475473822229123782925707876288448404287529912968782663443701880179253670760061614093075158051749414477240322370346672707736451416087641953991111825892060849668735022960183162101290948932127448449862480063125040522669099406678140244691557929894292380266033626395672147523117937437796939270199738661373603370499035212657311131949363376432426515281680832198992912841865172277523340977902772320036670572602250889301654649262766992083775671632818434268656010101784274473157691170004111058854113664656685828567719495025303930413275110437441966225963091489534288117712940318744435783363425811022139237961571060840825333117739980021238235693479748924157447362245564947181315222587245749123587510239571932945695433107172802765236375860262518174596128827834315016124032358772877350259198015167649171382047323737119485133525613044493455771070563941298175024845197401025063411340428457149002792997630459632162955149246353139989776154991202709862472223708134484122118009215257671602253699169907283179047876998239748835110029009192300885912110059163221269105887815278212401299548194496241266771127713787602730734369388189526348222013885420044301632324976340467832566190599916265050180464250233406448125973178907556413600636998169142195745826177121497258936131915993761675704857967978898858765558428975230287092011297552356156743857684407093715789371906515007270133989021762617436797734511108632164716820301154969594395622766224100275958820218044526296851089805498248574710226896772015305589590435655844156823109188488586110876088598822502379603398005654339007193138474281816293601403955765541234304092718277628567180129095662321332944943613480320820701337624096885330385156707598318415251879775985338243894500723526005732712545834747284464390733587743477718648818350527764555044215860280082142597196818963143474985808948740596406744550031064379051538650636607517840082660285860226785091037508110860784269000887386172172026225454264321855792945654516213774944461850876865736976096274019463423718092513405481057066034043826988302592102554285469502272880508713845598237016593022855667462215189472282131233113565980047941612358780002470205257170834903252359521757201487087619983350360553770133789791773265747887160113464410000970764545606961235614310462801498571014756299402982006505991008204668284703863781283175170024503679958055914911385697697316403376148185437432285212518794963367915402009461682444786387703108321930698451540795922138353701747099715261445265697730732391228761435561382118984999818734064839430658662569001792968843343871989035245851496417324336553743359844421733243210625666224997522896939970049217878408699490133992269048192932581850200725402753011630298947269715672180253821616970563793166795987940448668106806816618726181265691137390944568869955111959950419359807941434151184720236662772632022729570732493044054044285270354010133037519956644882866698315017350974011791919163174197308137091725775475048540334733140121636075376897283307580793241513093403374634732883912622744006553096562195895972601686234844203503190491543352559182036507448634239318486030384067013592210060819335852121453323680480350289454582695428510808797322632461395878967428251759201201941809878265420082388791904577282795181041880536991408295378454049793217104598951221983142380808447651595973399915404655209393638919651326434661355725518573796063872799737887234034989148399722712687489410914056608323977768365808611779881295261192063992866001581929019343101431589896291993290280509164902397552181646223837636355079837085200401966267605870845332679065885547733670217295103318506237737794932032825564601609943553825645415792788071720412126990508397757339557159014227227439075914907673382247125943829932414058386089949658397468054928426282864712697343316957993318868471386431516170493838806739319182479054228177005292349200348262274132240692314864061942895319520478836844463021674416773292685440631284965272642536443613690935368257528159099400543283840364831994804529697770219625782115957217589214421780894996122335611621597724181587682508203245186292666133478237809601132490105088893902546533487926520874651669785224775767213390583512838914201736767207228278371229162509401215306738911124191704168845358417409217815628341667973451220245411394283426620161857655577613115696673050066559118988841397202589139338379577276447667090759094129312917557232127784609611905850031300893826456957490797837181993362704925084663950232632993974983497010599192271311850694066331564878288771916166959202222986703047441502282823450870442147803794357627976354510263093601285066275304513128520009567374850464890293027306068887087322040325676649716992852291960691919532846300191827526282530557531161108460317192051221252514394386919408324459463911084079587794454773721235334966542154322816779426215796641528315841902996307505107954566730508918390851407231990111667332961375841904807870238099317002035807048618606227844437415667608250970386080848579872575970839956056725036900792898232682426368278635599255827326164459559926164240933385884112577441321512421272302627090450301047617239032405815374245803694189948114255704530650314980235290843480594174465015065513409665597358998967081856891988127487846682072613641834470221038298766108379981159627798316641386838446600517835163207824525728642221880793602223544119973381335594837387473327708409527639987305280001145579793081738245071797344951477021563210743072459488260291298588141637123382455654600599554316383256066113898327214493378912841033557360832788922304468073727722650864880539793832039566664865513158883126428961803469373818613772028391552528562557453231309423924056636747878203555028203297456506170577013499266011034381956431127435498352949187192381883975172391025578640246498992995494056478751476098231300800596481036478788146396817976497620894385150592140745638097742185964345856857538285643277276085894824595470952907950814816709067288896713561925101074163276348590943784096110641900426832113013401836829025961160433234763789689696864744661404863276102442410308526716059988272459518795600570136297682625225230512416169604334689945984874407673683291696797339759797904815001705364343922992522199256409647601665001039656819138345803121023378807882266195806186626307436151142343326539023949799152002843347503827798980449146232445564059141919720105281093124660722753104344692848677040335164600453703135108873939012758725103878488446005847147988573906316269282743794506285753157932994519459933874560156992086946464503694484173027434633548892834861023596130881220816129754006259498358718486938517946398745989679489271265680485861949597652685404364330271166210385100958741477367812462526815217557486161605177699540161157011978280550295133103798496083486731281557624444255264319683274460521429439149005214588850226576899747590007899887237108731298062474886890096842087251285610328010072733213577177475011871964487544521271906881446058321302094871189347358944522026617324095130635264303929871516955176848856742015282076412088867217700542295408934786284940673130201888813023614705870111940281744744023813535789803535286842968335335456615599293655607639963599659580458038909099084749500719527804713897640168658964698309615866149045958892069588641736085656253705818300426821629016213498598871284229112916460842384670592350128358243627449069630485410595718355707528717642974746260037136534237428619518538752129522429108170435820191297922224813942552322435700781775464734322324314829739080462254435614342351214312547681713120694607574001483248116610788105647842977197460962829547817822543180040214349836709344623405518451502456260347614314429821755357416985661037843545268899847119170582887932096891480019631003494513830724236542909115945109518015048396635970160362905213311068834372509765044536805428158173043446083708627475218582823617949910443452898332210380911243255023889028659365697047166280292757765718733083123055627658172882643798230726751580309434452399730545455955447377146285367719932456021115725688749475112273796132164320338729619720299788309451254219699985611659495977512140278308442501878211060563430667451841220373863601714489883670036122736877595224653773630549791562206065196231514381224213334799524785417193901266479700056162077931641890632907493323184872272358949523989077526609991184064063324756608525814179865440166950277245855449470453863032727287458357771204850775238441799160020519935714791934750412599957941379463922061039924498854128774696660693838905754930860693054600464320849579303188867353701296187935711867878805056514467617317714926192330130239853141884956406125716368179824252240577868921605995618042567720234351919388913419263211795971892836789074791156374056370592430925349391263850572959060856338185966507894135266701941429426947438169464583229977430302896548350395963411294274810803502994481327407548531567059779212039165506119042405882144719527946137328260078155412388113230282763613640045635637380940435297916202891456616614711271342665026477519905034651113474375738748221681441434826159190656557849522068564839598906569472123387737286596136694680316630595361380036134132551773464162916023395404210469843913306816741353850504962592511501111861052055181985053253001014138636623949553947408052596589907269867140641121926258470135923910841219973628190443119328914254638175247347941825187031010060844427359943531318881339247210350367190074176421434128992663299739667566176374559995254321234498049498974255501166790740497652938132137955216386902999201081096687803326807440220770425829310312600407941005976960364125350554334027871423682733969485339211119216816149965999348875907426154766499850728232785665279713330047443926300896105399444985405629349194643264534161117021874575275567814653196681224945467496813047892920664282689698092473813723011795834705516777969947548944901280962341941941642985386489015633889403717281605464282003340528416434539504057429239134254015108543039431634015965099613092156729127182430081487557906908358775231459839365854003524952960255528219654875073133038606791106125110641802056714948387671847041672801677671965984752675801866543261308144023716840822203259448436612967242253629507177690130225538395043500175588394459477767340230566144052823368732227977534366400407200115942340403330150471377512605330167944152384165421399889523323161332223592352288104193671745420432084868353777021706070005564284044357227814562967486905165641870080158124700394053401696625162986427589980089608301204643379776417637691086911188466569257641308367825762617109346805101112855962177121975968631264600075033583585833676338844874294985377383802074465628230102731452578689045935764405566720237773237407500673127096998759305394325998003946070621343678126842165342769764289779298717908848157172502784729916033920895473819870342807203318214348526594248746872830579348887067412881795691056484090458999580902959465296435152125543709492686713968534828055905531524996988874788933311715286709514427365939682498074877103533854718988986885397779027162225006230440796320211968864744418723176138005955863192136190305828877674862657482148792425102368279375637861607693346977745994977926337052389665913332363720381993128879771307701252504622404312893201263495575996697013933763553551154619142727806023601692145265691558728347007464374130191229823466413365157093687763979707433771897790841349152395860733449112027667841339309812694727189194660307361938075155184149904612846590554398255662862500267133887432901549248084562329851223794137617543345256764907997836541808952862775331780416160744600871903731621240017096366062426543630953357229259122129038403303087341657264015712150831088737229081828384577860985844852499162617605667042748467739302767057631056961146967925496751233322248404166127760057509157979230686965104734171841809175158917027833550103517732581727762463410890210788179176017592294347118228029534702856037766914910197168939967833778184693626736238069002040449297583676140840177245016095890768493317794656644625215347273098685104942798166856989676346535859842683623234796693760640570130815870812115149209919742756740173117830398136208775545863134260179435221603963935122772537218528708907470522737036126669229679177032651848344769245442594751867485310930066313639830597114446710625885302331523427427430480124509003423790331308812527282051459991183769366331407336460590288065389493943386524727970413714416179361469066751530916212447810111837132248904723077275217871316984161505629943050837662527590781868652737161819704221104634327281209503519297472015874532894491617468625810360096639859086173915737445367753070834439121873405975112137003177224005447699433001213183400619349603078166532745697021429544692913518072737965717284782248559475195255149571280562500308497967305173529782344775986457778813993145625859770395289222874005696858303392342017542726355885327371118149595440675427314986640575730338026685562275574803484131342656665966350207539676283036309238125839130189915524814243967918572740084962605859528395675327242767379032363437456548904365215737635117667171216733454957722711605594001006309055882891539722585182374775820163936274905710463101291890724424119007983957394024803879329696919685659141623712533661559224074208776372855257418116863274383783737084020406813414501138084814633251940172815357380013309498331723247187495745730793267377814756469392077740844063655509417840523569770672868213269958419846641921623221538190143994465666577150479821033000637099086445571748339836765008376638505701508287445580673884317904311441203860270297930774494404888584410488670679013955904013366034680161398283701387351188780675219483733661763136598834596203422039890836079300839767472046455446093677343666488435459830795516354806634137377106198744180790003835587972873192341887975777670813983717838942980155598230701401644884849955051254077815111680273329259675137268582021550026555032346577597983532717392502537149201425605346233778250509964414815952227707991774763487313809542072586248380145329282448302628248022264464136094627088366547186835881468580871870284302543723693559747885986821971559122661126189910594996016880946362491455664533549250791885513901521411454509204331367921510598581847538410081892626002407668944467536823113196730102671596728602195362333861241845503565809421901688927033817152025030388414199389380849469712993718053724463027065188441370426558707859147305020206155050747173805372920192838441273225375862108267568744331252501989553193879734607585701998239443187516856315319638613628241411434590088009119363843262577455735514365766082266307709912182869679636110543849051984063368770995887975055659273254889711038308748053107445494860901765744203925751491375551442603818719081485961831836405421998977099995842038523506404959999334776355456651661565845502108989941925841825845296021840377845450605975160016300785322603015668501372782860625675623881618114135385575713245807234155897486072659725630189871142689315335940147613313014559296973327843183902432418547075879757790357581109128393060127882963915468402399679929180539150285621021072722680481270929978762392572917567360721929787138617798084335560984899980382924709379331941559487256296041196456053342731018723575758185113829671189671379400811225937251954880377000384431799760152881436243534648408905543809461837460547708774925264278080993500694344599133198925880855601770561295658638362727128114664446304640306426167465953451292692845406679637519264358208589194217137259675956562204065274893538332814590673679753133868710592664395630735127967457231236124037021216259813355440954904402434984561700493555028118001184646561365788320827942278592951804435389807294624214302503001040759142355976443834323327142549453261877524884943191099355829685621298995276635010768246744185206695265363218136666127948966397349334634196979926204884016922226806884815626981134877058711027388549337480370747486594726939312305037233729205624057471053728938525503972370602494523763761600977616343384624507645309911209011299067053089237035292371648765491166797744909009051259995318134025693372772609419030243517460946369050207507912573334815275699285288017050396070758232915101918020301796698671080364635718940600331445940958039694151209979630704891651666096024148399589021462191876867329587468877787925273530049757656430775875589365300009804467982554616409993888760759995933235131614464106976572447408954139679908856296136028789246450690944187569392404940565818701376260498233218683345777291915606221861562686536914249639111433117775875712067504852806500979317812736834454777640080455894025398570442751970312084115697169946697564348591439861030829764560019605376919792068485047747158020834126495557565532525453432886373900371384106212154668209814470089690215438287978635021861668498614044121383326805216294680760355679274424909839763230087512316998868956689182069572156513476342063591611836588656134894237649882495187019182039445437801467133305524822491855750312796806769998473213842977637928452236089724391257726192818035882008247296029322222315137111973217776232332787079896305126872733719239015593872545893068534707938726127827456157693021329485518603597976391988697537668047279172595745370545985340007369350554843951903724101962725552868832011885330197813298845936424059274923157538030883185652476917632285171600031547187488288175685062849261373791510146766930812572128677370949543625936073908169952660216244067653404264557786658428171042951103830089903575248791708335443368778954033063979637567348335970295816710243855480046723346447328245731906866852110782160642068147116021363012562037551107004694369543144598989178078734813167857930773626413937365930383485284646872509038530369247975503737552878572515524546101133163572998431513074238494674614022563138569709575762643057146773469675876339187426837045423884374303638516475102191466646915357725002061183813228442801318602367492258617356904563901880994649704628320003115413340821880054163183290597065208612209911348004214791463268274756305561551282451822659865555731908897428535483984311938036272304224583906387716466359089015368818430685657668305469282524997092983581212058147920814877962488954570418787541791418171019216049330988008636060075744102743535113478487019374663319501006249044534040152617064465012999495161223736671608975675276795845515230794747968399913637461998112980261356101702581154259604187768261861891204810251213622205936846121158291011747743724419819608764234503978226873850474688468587384981204786763069015009468326521846479994212361056859177380658072687136734622535913223761636431408203258665203841799289071295558649478049996840365480141895229812119341810914032204665797067427453971609589378806463356384016394514534371155885966709723663680323340393201943865220618634053332672806997349119563758342742841732293263948430948287841725880341155433447282886637665807453536848491352854650810441759745035692750202083111689645376649948164312642676444816981276103780642887639320511378738003527718816403711623961227764792522058409244102869682476604557649564876665346555120123536843079002612996083724716686793745262985175352691646926018400594713066369572449558837464560675779871352877680670548328096616042112084537378669433093958016625563287596997008590232136159286677130329708226222209254806510566047800334613018562186358373546271974672592723348926754816110363383405288164738802704151246839218270696083601741864457227881107860467867391658974663909135738326714516021300252254666789672939770747450609204802141155253514970993080303427490946068426911324959899663570297662729119778306188480322879105721064728584610589609778035594523236368551103105409297073688990811892657667705741059031245885174747821244554105293879060544634615451156833707312364189182168945086693290861000418867896595541283199067551196810590071073455297215277886838015297397427311858663335745631708658234655883489990369903447902625729385433434661774682448698447699293786000447110596399842326178688257070239558539074006543095147694982504497297861364823372361665490839977865135193972442339457536923070217766343950420810709825102985286085190221601802787676499020800725606636438143582258420987716980527638311042583608783616744112419755270677526815026384489936318906224012164912373258952799846229159593192150092703542563327829349618469393173414918588640277395196860822006413797251851171441878877880534333173954218193243595338823544352152657915438496857811918335511042360677230367634968761180241444766351304815549025413730059869137168383009098630942503493781655782210134420202205135054227743749574816952257472311856414843116982103472092739443295237935442863878536931189701311627473872985959290723606725943059064478931588451961593194407998968903340894238192107685421186865983197285416617055625109198415292463305280886110582800234877630433247131720808718021757647154851945331424765481398292087066989903405334949821115057643759352794957380381223337792026130819949429557327782134789438617967143269853059755150850388241730890473060758349614992299288349331192852838046491901732231538913432750248684442301882739312354123352594301700634496252308947066222149899169316902365172169199591473174262088902724859858473503424923238051855878478129511848579607116483060249134535543561108350466974426658805428945204384670460593259580627208719793484767098409275083507038815745212790357073031762434155495583263198843057033061565018115942589420557734834369034413014940262294153214221134155243781907989303116365823736221492803568501345019129922039607844797754801946253877324755458469799089982681020662344691160327156788695344687512648795674595864830738508107018511936260580002727495973154643980545743474615655865260719581276524344660716192621518807473358893306329576349601183019806862757284342319555716261696864279350167552293149938836118401693868364043811530519559742222217986421132985708968517319841911909220035307704136113348152169547075840959104323190625005902341898450937662176588230284593250178932081616478582691681299578322951004483509873121250386748074508181449114802535956944046740939264075097682430854028821393946049012002712624222781042141159388908678251184902850384719552249811461051630470070920396882890403642420791459543557051525679130114968533837225420827386932585656492884038739751733799672805915171994015773821893661983084459509098258134488121622056443609356026783460374432533983809795758018046428530246623839807023682597400472623214893660968993174794546748120916227379288837103684473471851590588104416622873865476603742396600643013167601799220426070224366014802212211337954862788218990628992535298136255584015416023623989033581884983789571872311580024630536723585324611578832319303090403998477040816962609898586041725926839857814402597437648003190553699734919070656094481988879311077057977631424513609980195294843971996722328195376429162590017168446375853092397849605329380353100680770808745376288409707255187756494907712144576186635769720988476175326417065526042276227915051005638391662453417353253480188653939031690895311140771307800068045406136319970765469231176428763827485948178463803014782222701919103297700696650332509347260221695447649812784408488661484255316652577416202236601523609900574158794482742015107424919699505684930668974746915371409745045536848262000427286094664404477633419971628428037041469403293572695542677077279557793173248381357673191002951538361164957402898082458118271953025095252574274051862520611134036386228938757348170045548220799850827154066100589640460098147035822050622252519882820768871537896379546114176968248100763830152613243136476070114505582192170126682432446870213118260554267648160199468603142002737009882653164666964219284349158920489335892859373869236496023562990363948969979520893389462693778218141075095031502010279102914002187473043131869996728707033823981907584591557337866361823627378619772227970633652281624349053667002757870461017819302337713049596896363110299095995743624431138344678896896694946403427967349184320195875178289798301851872269584740940265678920930505916488104708029377372293337727622550344983482248289443345074466293767561867829388325887803616552535136977252770343120115040588744231207304923588594283562946027342902806813837926176281331092815215731425353173514084492778179253821027774887221535155968157506038668238425914714770596703547139468570236851597046478753600926430597032407276614594111501817325815919635256334615089658391149194183374545011714070048786011748150590901975927779201287361828388837477920409693214954545208341983510836665465068587202300240629697111197550486913277532764127482553667850882870820904016892794976088074515661873747267614300247446520938504032401682736749657842065699929175653009625537440870623912198964218182632349451675772970410777527919437082860191572245641699322633897567455840872613432405729911134022192015123714021740947596158182961691925097183659172996622536824189569499551946401417168725370404039199381810081323505798103230411794744634606127010519767383025725036730422767964123488013486096591263190441061799115568124895603187328146169319504627514024255826873141472696193016176944651994892673109279508212531826009586761187681471071317248146308885316122403954086620435641065654753504365360403587645361076979219307266457800600021614761171494749052842836864258162280104232279186984325049774807136960039805185294987112761744895094491102491775598891128502105352964722974235069738942329832050642502496507412660718832060964497122083546252358112261397542679086892083267577391197142374065131409704674322391253249542555826129743695517692083743305841806958312471615768063360054223210623047548158820890430035292559318653060861788691876538813642437716624018241262918656560333678607331535068872901131545210604993487945510768533146250114931556665559743496239111519587464467187721880817964933707934085836115579256178573332023458421286634109326422024074909691120419522186028265193206526174402306292563420916729775000737795616151282757566125595701127942587796985689925702811229802230459399826865309265745872673362757935760494937726246191496990290391118347325357032448131389533859307801235258483910510848268930396313990243446079157722971925125583619250365471771133531456725022135599982520990090801872298796506902447864698481742456722325293400465512230785086084316877432951043756115185292367388509119928852548562798370674414633483295466529249226242249267282316809974554625448815409172141973670612878581683613849343984197578430068813741829337175295448601325496985593112115171630197532323827278395197958106609795029919720665019477648381568682902831094866314252639764778414875604024487626846202286907776253082836657842439637911626810399441431900074319947092033687745289841203658035235738973918353611459190195094742470528620550009875069725005159664399874685100458467557099937761986294322788504061507084206611826461667436802515913392691475129314546563135928841151573561716438414687807859452374907343789070805542776477581894258146164825029224414243961934429632485756588737212217799071666126530266535072526447890489171612134976137864779646634314849594985565093483527436169549930029642652367173626489214668752400773608513190796103525869794389316009631639675993100694330392841249388130357473521732720102107381504740381076217295345233771585078754051038022436132118418698910467036510174035545946433734231082712166192703837970144230854384284226242453420493489921133181913468231251053586094204923249996428803867655264012026928088403387277598510018445864526933218763877377177734668230621279457511117143713103584044918466380416806890421772603716534149848234364713418232632964005516519406904528751081332623166617179872622811659691314257302291583606900510429533239863161729124185383369873071181041248849383624956802928295427370757569422962606580932548328883072599164302298196993070257831972082474516391060410454560174009928837521939973588483188559444220823433168880583203087740892862448761667792168533680098444569142461943329029637676112865442219384991751724084191976714704459331590998713153420446279714552701727081559062412702185762925991966549343740899369426741022128389758760773600141221012483532689457935132472053504609508121293915036834397232202254367557707900981693889726777438544881231107898354534863799313961411390290360877773781070141978984553374531724663494590206270860585400372164784715136759512051693748374571989170812337065068402756486753852806649401842170873438088802975224258719352187270880017778749354240834769435099268355331924778946680486868047200433195614979076017395721329137598476989096889370922174794741239252874037300734047279349679791895478820511083056047521316901650358762930360408510741738481956547677645903610737397264534815472491179157635512973968422226850861658197110801232508834922423303859269405701234823533183830491022529150519692612437551546769972858101688840397869597016303317297589739166592518021119218729491289299842933308479940092129560306804965032318450995829714764624262173007935076259928283203773266487248874622359532870689612917051880449890887825113246636758829890252589114795132514386574953807737297463527090177467438399664680447889466916941405039665373314155886306491577569685487303333789697883344443792737266136348505554391657729269872087951216008827605480233748351896059597980878318157578653957382765843474016118278358783648544111107740088740192326438992553082543273146332987554376098536783610838796326042793507703753078975590945438431050362613744992249356459029805246061344896633117034250432523452954222878854985062832554719173631027485981592615049078040029861277148154248848633040659737228933456495026481271525549050600735719135002027943452949427064697975464579073136101510461132861790951709796982970028610402457569348418933461936356491212456690259854709648376908860650728148383608766498041536897819726010786522358731695153110116069710583292269076667930395631642095216955881494532206729355847632481720945257398311348989440553607674146096517912273463512688811940745880518292117233413311773811200096786064048914681350082013442578466894240380754786277732944234777585938896688843671426308055376681678506529271240017057144149712244869717617127855290639255553124766207985031392813867012483990589075274860754797588151694637072074885685686205262332074742699783001165195350762675835089327759356954673066197726895867029155923896788635645579532954323994363710869291107073637956326727946580436400690573167933771735368454456578056803928441972086770984822895846291631645503173956616425490343530964786775272495328103653192256113636291743698880192468147431761958292136870707177467515614287053678077790899607114551347342846414719989591197889087478059677815796163064252220550380396511966497957431058524846875771048799201482986847455541152229257728104746540260826033235945948773942340762866433883071667889012655290506320720141985004503371457770886831124503696649222393384359592106614574849512379564493822418378344344213119552825587521783383920698459915455626132956958038757042413477835838780025375558773386200310918116128093816910660380421368822513994290453704063737266423709393928306997765786077894252075502121181192031550127984663043798580672120034215879053294613672303246713998591391474344054532743414392478186622832421814643648469840504702409122833544167341035414963685941845989850184728809120236557973738604784439402718572298160084299717857925922737035637538315049410186405142969152164580449102865324522377469257415818819956301089244371427006231420913176289145516703124816000618848304687825786551980073232000948084369040528497151471811094491947820946918873285981310891234802928097216089752404250085493117057850672933883246507927361385131109498762812550022952037919973112294866782181145757395692050232389579082647847023913000991551049895283455847182452678443443731272359037179988878799746346548016104678763955197923223208943546204360437459347828878928214040797199381640779747551869681388249907756516986896109199297214475758208485151783588369999893594036915867333605978200512772669037110942620677495260694566577499045018570615574573009940661298767729877988495982188448704513563367049493241295532893846292457540896702904950759331858367415551095365291146806850152863711746344505769317039734715457089116925989415000536976368073039732876748862171323966004188740452712326158311863110361317502036842105197111588903742121942938358289210451432725250767740564611421294445069772219208714874908062967214864639599133945274322451529812397718551460645287473538861594576490216378896587991216935396524595205342919050972524360291162092236941793482091504466020819634420905620479829333876902196917271071837030921125096530439734432952479887563072031644208715858193113584958084848638855431356821496132025840578965245352825813206363809413440680950374796704989659390189640604620698755077416027100941109891211974166341497550448382829344562710035147768189014740799716407654048496501456063551838759480175206478584882282595443582315562744482707114090472211011607690526716001005171131164548786854970209459003128372416453350454678143250536206856290119321762311177901947735608376429216797629297268392527089370610944458215076965590553267081844479284299126702892033630437978173707413963333453442201463668722921301171119732172671730445118977401052763384463942414356880212863971096800767146505644717987459597096021618747458562980552726467683981319660336255687556474128104242735757686390334839700947999826545046300352167505880583417901753756450232535482456679399634554024399662423368697565271557805562781778502696920058253662765554953134178448007851480607345120637670798041866273314577294537193203010177170592958956426508419227193308013500538537525664647039937510029787730141219001371036880168812969964027711901551324407658418216594931230438023244737615384207482480060501331122725255108040958906216569028833499818653305595631570913797950509171638433539985338912927918173282626194581951791425363348151835197647346057436373983613008613813734991396720926351426770230487684914564335551993036702278847081659600863459224404203143222984679856315588674394589950461851945067299847767462573997998173285108412853453857900275295673305020727028987289175140965003281687582993441234180784786654665389927146132074631622962011907778924868361951677933933339974626469596251284237385464578719411318742887422779360702940885082021907593060276768870517842981035603112989425988445711831586131311709669760868551412110095221684924338086219521271641225842498715987072787017507259110042879984081213949239906345898598844285212492603699324173647437864366558766844992471946146825679667432351672304094380862277615002427665410148624100175572643795683034698544050132832236281034634737409351780196228666048397350059971656774119357474780709278798366096064376937123201452659037030516237822477834123072006456800957719158532185152904025109804541214939283969422397373628784312845253549272418846345216355595243935322982204626121852136546697866746313794604365036758144476045454200781293501009410846773441947329108544381652922292463007672259727355365145636240813135741570420170337483361860417647867955974884274289371038371261954149511757399756308137879856744572231892386809081002949364452657631163757947908392156007410772322624701246845106785781235267899376661089164843087619377857587074604442199775023252162989018474167091559080466776691965103676888778337988441806556715452055855111896334979297347258225163502186443967131722188582679142584172017893144715713302198984138945737057453385527835216900254925910001815287931377853129164268329720071514035913665016241246790646947119079147653235928526935213809798877482601818758547528523885783796811117488866472306385654810951256671566594852301986004618937121642576372553698201150988947570126131260757929871428508241810533388691610501955653740697791392777995129066458465093859935684203424153556400399522521422547909951418827135198297870473549384804289803768592435769495540102590229217570847008771459355593629541425942461278810329946214223968324227002587825284910518379087673577559007363430542510200966546287237830056776813580048983975346984068896433284092914128137725118580505960977072423559058088981832087298259461055509138811723484389265268858880005282812553583684377749527903116658754084934479341120420373038832527592338790961572607126805543177809698280842329589649665163437846234058747942904756550618262427505303088152360730514144040455869533908016428199432245909586596353104313347119338403859882079861323908265793038235742134969454587775570803145087803897104816228938245991887910317715390717305950633225577696856390516655376253301591558880145140019259848023741950407874416976643475917077971513625287811694641306336712958367408745421265152868753482778432471640178791912341626231137702299561925504997576445086406233315012377695352400608857324230475084250852442686186003311182941270828032506093063321851262029042674170242047240038852966011903740535364085529206486831912784387233034425688495765791605894699457656650223689815243430871599020788193989260965143494673233944465581997618266387574263838920230627425827138397427707891302676733023328178696412331892216407697334680905318910988896108030378910964256326687811171441908284759385008573676587615721347397125898064073162472873294118960609491380251691653425370660404211897774772785619749654247683230868110748013665692414480154542547616983223845914149431699604137429579949584960192269737620445876009901209844575092254891830510463225540252121085453772796728572912133284989682502242488200689917053779206993108851811119986438498474222232276739433255937778440591442779665432250942799414290417117426057903307288294591952962690045235350654939201694981759491347979745803976436566494168736107066670767771549767067796488970917811944016026120516470238546444692825894490382268501181234846684989497663441099839271938553018837670988849572079084551445180034018213302728692131404831543493102096020014408194757116300314210046746277007927592713273752889714371369584102243815528329162240256005212841902001107313930337812804553340771695218228795366976190951087271901160016166985048810346862544755337180399624130082062337885950955577515230639621734761561940041580849658713617670629579540368699481618221477382927814903700018202433462497336092764210595477101875747814680846525438441618705455590874089584234453412541042316222688970203071754112805157534309989957746401047689384557081499558355242122877751959358110286750900050860991866740492640709253403610767364417054518856635254801026193293161104129196375812456955977125301443451283970899586290665871918976144613229777987399053859912417042391680686119275088265201339676451137526208848540961716661797852496865118823942586437194187533220894392301372022521648136432682844818956937285131625885625439394500859152344717017051497955411009097070170266541704680324795583989160365479245209826148278389688271082114985570957968365304031150698000872818799409336022477905316514883070290997473581787036797343028566353401214646134026749683280438063775741296031280847728400617404394505211762911849133417051349861964460714322156575822002225924126667810187078302083682106441736922925447101750136190211972188054261249719845642247684830157077551723094147747330167342547489190594306860866397164418834743882584678267503281256166557685590036113041510945736977682413046153766502733792211905305042600866106745709993419412156946322207692409641406851736715611601599533363309153889476879472241239240389290397151618263587361011653215080298980930165711138010703249121639777579700519141324685520919062598562270443314229095005648262540409596622430579582711690572825220462871667062246786128503225386741791107878938998708380184786068413789809816538168477010371356181140362250573148691607748409301016151924089892114694618528929758215965909083593639906451514098742005920458520965348034245995993147935187088241906883348960186070998589091322621067330851963314886585102539093521756258503011644659779998293361068321656208912631483915062447654711497478313414363821194876217780238588329602142287841636865861707410409037672113119958011562830062419265436613145424488092652528755121439980383962631111643554286386297967711158532700490052544100280631232763366461585074901218861685799074395248438468516363550776028497127691499582770387698555913751758048938543749127165962753805670472060029376699465710883735341868256475030486473522019138600153524762899674479475741304147952572225935059730098266012469533793973269323026565987490084174728946272797146749947616388020110985999969778693716183234559780299307646487601775202042325984121956174629869495916089420827223915181592853005664196467705931380132683136068937172108157699689852208208553349056267220803673237467337761430705088201217442317795693820220734824151440045295378037246003555747687954276578857896171755147320314149544613199697695431760515618848843592468155622970624088123985701122114373963419445689897322551181858765996317019182326456166425587906005774713158400026366271617842155649138975390582048280828508594543486323072325040607927869151870444006591014032060690907691683912488741121733371915324163425406345203381164702668728685970833917608982026722824697259263111316033600189676929574687926073888068860148669747360135609878485888657863169147734387541980552536174394734216207894187481083370822649898236395676140247880586505439172364185995523162637083650063846061775806216619843140445564251434942130416127669235578074169372370959116766154206061586201644634577141374343972663129233075179656057310351189535635946040838922835252295197539376472496024067386994192416573678260552329978689255547753738443310875039164799762051342236575757990933531412766773176195018546924070246872391659979880832916628302073343437644455888418474466585786038778524461990204309081668334767373477279487599459343889079466074842183627174605066531458674666518125082058836266976543925096371115271855732668116129530035042319583842822092853231568827223979980308010980167629290413160766955781062422844386544779697900029719738872728854923677759965068989345118265231857191332051827220542543673109314773801031185360750315430796017035029159822511042713093656409488096794345692243932704681029333002879223001362597566086198150199814998546875859987734716056708536391943577920429051326430372958509347864665319244203200951338463952020592624424000899730018226922743156241521272952263745399364675832484663521498454619297176225778567674737168327437715712917678376312939005854899513677895020187569492276939581382699471092066153257060439052314441620829968471180792029204445748870558904402384413664692476172875253937076793792536786703414335860504810528362785809264806988783800810673229671573052265264221904673733170404840940843693743478704287487996928177234703494612664804532436272577784247703441974718437215354051556786626695528815924940704768037891600972134314306695674032053890816734637140967129272424827876335963735231331762210855531318674349366700853863913510130484181515364695712957715010165142635525699595731781838929880251058570811093126592447429726454108837190349441362400689266360811740478755651394236810730808372256282401239796839142624250006051714069203067481142100151978284513180715222916097763376373606125400750529124883592363291774669185592643993917536770249422920401217906109640427037053420054637632438047978284023675713327110173809653092811693973746880930757597530593535987852560803019204028074214575262194873442122699464445963611172752013978103132206436253439838090571771008354552929184719077229550279802439292411943001655078930040210578101483521066102537131287337009701120658713604214011299669869297807026401500636415405156308800871826521791404959301945724235048519385997441691178837470683193701393690066091658378612653199959251781295611226882440716874127831630369468510413112518964955195289889714621795720806370308452577793556003970990253463027715454056596352800396518781353060840672370157039529793321608216098004138859453984668130486407529691524789893257448168151302867939321384434178411332560190176084871271441319329294485526438730483163164475070010058943339823742493413238876575652328257625830465919208272824167748480044250538579818342376740884276676365950095772122618499636533829850144065409093145766895919709865841119865494064978828682209891116903419646199297359519996046937566221190768684075492811106464827202888853475516661445284716604975574916901326427477527798114903049351219618100674588858600317047347530542066009277262940814159541563244486322202439585248295496339518014230302042392973531747158506455385104112287072282520754874379767148449843966967826108555350409368336405547349605131585462010970721395825406549994127105870485921682427477265593792279561668734790097079530165745139098163563669089894859921334166642642569747868325479914994315628041531093366013995263703490585679280912862389834639551636048897721701040349151891406870965037394073271151279706092115730413451406816146062797627762017047262125556460269983147111896517569412718987618882994779510220520670650854955270527191419596570618192490809538017474821166153332236253910590439254176893742071066218900130432047185662062501336169472222954817003445699459025082179128917558104156905777602882102904334475748982441739627935101452581327128443171175053996013159991469033779876510030730415417440677973388300553828820552056265784813619132257631648754192029668364956007680525177072618287965166277804279265242526410060794186121026526585545390158285328197444647092563060077116270589884401653016511188028510819381448072518144258850972553118720940942391229550650288965412584767568648964987251072765552487057545190654981023275135790882116897602559312179641541295336160224819763323615319436781992324220963397677429953185286882585610709459894624502193798528115663772131577885154857311271434049563276131820924429498117896986468806467141543347470607013279323271243781244554053018353697272884059419775020947705117083066133495988573800004174342975074147110018567696359894838341923930668285738374363094662430953122168519648428368662081113812479425834280525749073088742788574867070846599524113559232070414591528951012886609769445206967492710320253760178650172179617165707258568186386553868052874372546920498718382797894443245897988854336573018665791006342387388024544646396392622646925806679691831978199847369233323020920535120688017032988253010219447102339714251397622713807702879570169757473413403530546040558794068533947653214398362472872775797466942471524718879293087099947966963109290319096693105388761031783580202853276007063161756991396735157371917142181426152615512204723160365612872933194840637321726552889189318578337665340040687001243588692671507644933858099139571501407123388499447164926655432265029311841856979973743388965821124270743375635451168737468483274046987612200192500495484389791279737216153737964147632924042768281413080979674436410981100995507409595567915854705949299757370749331197818183995355923596198979367916986002184394683612773935757434793529718628745334516582876890087415749270383044827287786457545738461043834113868011727781228313110926268889582594654187950530669577463826705493055822863582098159069872669119561606083353380947877932689097521398533789780816726691026252373132915043041811666933489455799257163187762712093971661179726153996747136726537850523222411990413362961985154903252427243291619399052151283775301255592153431525077765319158310371309199611209554640924280120494737550078620694309653212334271865535836380460381177229944183794921869178502131577480050045231405977954533675929534443671463942437360610942193880378572506566279693061469704092724982233373958546640356638645921069944219521384126377198222382601742836427693840860642761291568158534947877396422940088956658298699074826572561816084990612918334233215178884122809399719155232920920432990939928093725698010682923386784992136998461540190563465414730527883113813968985315771473218890550182121211044906296897066383313065614599337541205185430490515776380149704196828319597275242140791319609920629961431243562057446917476025484193279548781178505736404780974891956284046110769715284182333601826718025705937498268226955763924343267545268001312373059730845221857488629339548607031513200615511268848125543818564705213858308866700365696908895323000522736401821553969008366263019109465748653115923533584166871743447667981669892141542530501279728389474097046850405258387378731821760337365719372477407397380630612239825546683523339255718813997800956969073085642153654646388255340805953216915503011224609297961388584803355429997564106306762418021822184726809902308273424371227928009853528831857477374346456621815456974712631171707087012704579512638855060339886500550039864505304326442821386652651873165522612304187533813765668340052297973150073936510729815293198206027652692514657783568205164980308185385813283638355104829433388265408353726680093061212402958420879157971243545334380141664763752992194756366189893706148626644466750520396046212624938450397914973338937985550015465790687386432453810312627786196777344645869823371190498745489219985489422735405564397789439463177324392386152296191604038913058191577236476802291070110568734428262648565962765767321461503390380736477673846024141538086886850415307873237024258088483954545687704303515237470885011953553824014371138711131325601080086191294297816177753927352461068688503566079165266236064345186007600931490207673483628788774486986983021639795353406583332975021915355230572507411069561129831474425727614451735888708237429690893038114047239732073530328439317033062886781838056321179139906666532931262035779605225033457398203047907021735553838204084732039596157909999474109039720338810487298233718523528906978918048990644326352323088765939346558959868639409964835030771433744112945407925423337421151513379609143333332957397126810890757925360218818922895071919981533358319206338959852426864083176784973106838375083920609959856468873268087480390239419680407728031549959762333718043102430238456750295474992197952454136283223993388020870032983236312073324573364154044856183048793835164511878203119668703983454499032592113109840542527194597968294104789097464179670366713974091223190282138681863094925188729865366462734704378838311922591282527459903587340604265977767822458916960857474262654184532399210870657427723749717885562226874461518706749131787055792478787667249204943863343974720148475909111548948860086095498347038826708725107412066613321775042795858981086500133686689902479885309292753086023615157802036212797329138293938951014160815782139415239802335139757600134150565048862536021407091751091690644033620661026708580470278433277585870686634747206326474540063597109450929816497901078637200631536965839313095340222225704953516733311287924459938165636429426085715882566115376672149830904949644724734213485357041631034273757621434055323311154660418815111973422927180815181745546857172242526381618360230482388615467902261357510026999036661921091326221699244823610310346749082860304182282504453581839445633056879796053170402723119870680266192468760131378860343969030971220393660414125827173064736621973390984813538453695746992134386680493596881231125924510457604280461528359925911038073322994803377155000341049539407204556361848198838398706123676875357404513075169551992997512220402728735153020464150379889332342937314842240996464961985128044458697808789808821944049941770203542951102005126435137582210635797019489473935163398710881608878377192957479442706659017458863883913372797961038105142585837362144763154180425554069846061201834516979359768942659393555445388337291698106711637775600767360944297420989862198597940985372252577385165154636726671378306855789061842782525741302237152156899066716294354814893302727370849250613938163401920669790851994259985071283145354602050267371442899807589080606125883926501673299686863912668035926324679617419212054044476067497664940930636147845110875447194652747968132851864851747595434626171342632835697633665428875923776949923933728483586843257479389249659797374746572534656084525875861064762982365717818256128024292701227686774137873675052124897960801295815416934048788040130681367798767967986162608917625371072807308601196543053829290329715313263517842160363234755164729590795041992545390879045066168049703294962609106797228694024520652341906257760308242228820840196719051444697127685640422320630162568320384088118222495300173145872739744528505202808582606083802940209870033556487954694982065373634896335204424364004595225431270425795491680249694474480562202838177414653856282568131906530376885397534391584252545889206413927488047019079311439186869359206551602220395971460900390899606091316838905874946091681951940512247715005214553483647909104565037330747466007998898142872701532527114301798723894641497598532846632061241367028818509923683322878765688997845052270664937368776909428170335965414741732574440401156554118669678844503375054883711686824544775737795325038230718102914088385783780774505643189864431253896032587339136701882802198319266955108256064560709826408784716650764511288819978191075260139201405187543240042867725629072391862945007747574005388626522053679652537970812000877362816503694494287573786929116262705839574015653682489682456916109381999149934876832414580269235235210617630319269697942995567813114969998122643957327484239341356733557629141981764341927223085229992226997022160310408400722942116373614689156908347843724164055560663533695994052828802022172552113105063472553083779715874557500483317363991397991548864400542968378402741835068196023069891689954119396710351385415576590138800267765511768601108343415546114860940932201361929188196699634967060156096751844353581511039793419289180030924663857410206826606261400263366198719839013578061832505767136755061531994717376906014814646289242383045791894069518624952109362505960347667655912875072249552677471302985397901374728502633289284506179908026521264983775093274634727905948006126061159769939069311053419458107630211838413643755128095481220275870204438799744678778220991911849437384524426455417840538497865283651093420885562313463670734302472213382932065543316214059638964563241815535912118844884252346878585499639969801992746060161796112851571736987111101115488656408923860056802626682624458129149128107777117174120313981016329573122784496351406745945026684802400444729385067697627814752511888465878607952416885961833714523427864624809617731709403144646962625618028706068898984356128100382924923841163645880261620023347637220025050976672321927325356863639915851400745041915110882007082818809519073649345760384155492040612249917665027940285597700153955507888635993428437648176377137644173231298396559469500253121293499772171666211589050986361364042193051966632372203523052464502681429524498076105568588917631385719102374684512335138353083319618024046645853933687555992346047372653998559608667472431142920646949131303343303230269954259229982876362195131401219519679674333588352394004673845573061797284268765594388165231637899205291023603576598345771585192066606788518509927551658256150594500954307863252574123838391424673401865000916815166792556253782980072281241967013294980696073883888806616117541904309414843598482417277960425317574360704249051467801999504052249059116202302163780229537028164148382266727828826543855388869351139225610506587638578415342188092787287826953682527298203994925493090118788214271523544393715576128536307821780908977227096158326647311654492175923333032249458640530619932419960280383440380869544857562617679069473664886740029123581598604829749387027615983072758891658272868819313394924853052369322150909019949685097336270878097309482181640863264182230852897279983324112704958354518597001546401600385745760479651914343961490064099963809632653155091528080193733852213520736404698670621983385219443757836539631978506175399593579093690754249777229985644341941238008406350101356120356682445088199724129820343973538316104732203793619324814007667713431540403156319823023395794387703678599491621900920164362519984024403150293072659191715763838100452787617749222065258386293639746200324969886880800543474073782371938148373201119334234671774190767614389182159843571024811086647743019964164629849840978381361327954344850615047033063718098651892303497004904646273016751549097807678776584551306233221315033148000153703199281699488605414060438060944178683857007706082019025682283731677698739920187448253678073415934956003094625752945393408112088076273031810185109548181099328493172911140863475794633633960600430528645704827621015158441206508928244723971354141402891183062490970207790620254398362559707307253736339079185581325677380976991803293023298243240117416599644978253733517161212571849693170197880901764152636386600228754711747063565909338267882300507578138559067079788476358052519544201607316007239917418417693885008295091004402956605405746494582216262260398500835127977663943670112498910971239821858375316965286749971799914464120677841977819693060201375962306819630160870932503172116566642339595074523781308518167514201251855741000574481736266612902338776013090327288306462616057173090086194327709352841339477390242633749466840140560097077544872544043948148700905723052836287917009220459031669949749672197334465116377777394330346309134598922271355737916516680880108200894580506775443570386165246859728050385360684167547438381439604593176095569139976690737345761969068598892366881183152246064081278056207335167582656334988173537778063393700453839616531187502305797925843288823825024244166016053398440909033531473966660940823525287063650024973975838230112020204489471534937089375341995547285813518564025836959053534718213659211218353719810603815213371370253445550128066908148965794690791648256502273133288324769561667224667701182229065507223637508660270897624766740192609218088568620160461025527484560680326952650235812825937426934933804276155658506222623061159814958121833680567298549806248076365792629134474477765538990931437851755694997864003522798191725479219420957382641080664200204462451001783920726000164115707758722537077099980710017932720993683854789221721223410205052684617232346419047135625365537033884737178210088162525292092634929143170650104992429450714806402228738877366920691493089801749166676394826752185933459285799412444742492830311102057931670079605405912622912898814716177139917627313038223634988571306456283003497859599665062643250626313883511215911823313459511281148702886796200458242245243520844178383690151930151424502544230013374734883370742236238403313785148916068087330245097933034936510745157688248783839153788757514609814166449056233251773421494102210894957355398110033035187493530213679374678835440394690171130986499132052642742987566696314748123084134023906063710018290885689945757578610942038345423979191049526271292883978953305682682762827053295281042717858708771394545200390046785536598871646859300913890233233102781846721692484573060169031442045299024857833128613772139529904851303570185422803600192767275935706978962772171690844476584561154317653132985485431008539711002546167944756257091243255219664402509333490091216934374400894094098219436795261463821063066360144874359492296395919543947899002186429106004238372695261735744961262731045729731125014787259891699482714253320842553139220738600036017939873071542998727114721529712129720920994650484098395129092055132803905039756885265484930171643254094952678326502667381264598122068095969670399842715522760092464792311852844135622144792566262149010520913778546535507192576150936391759494721147090889173976415247390971720700973902583645112601596298737516335619052911939824312466335830715802061029474926982385605905135842800288556673459131986512221557740347949232893078939511153011487652150177683219768477493504169508395236260889649478100893451678527063304699820062377020234398050942556955186561433562737039599848226876625828438022869651395833469852141543865824768753738781765514655221939391582154009612864628372830234103665873622857277522261656947712200537866240206385367358950793862975642938813874185584497604174044197588174766027914459669404188602059259102018799575858017939229921106824120555128349292680751676047901171898991263559872645154847214652638425647997124163814853564946242507604725154158197243527268108498123475074909056721967893575217772088602939896018595159995588070986323147479354861901815539179224251209235491515457480098324301551645131827279964853008978140809651236256129689560872172136981005245922160432090710169780934116641319325009838478117404423143395398743886887140305040251224347885035780639683400917230257794989106278352813465125763032140047151623936283687456194926472565261206523179544585163170014128251373963167525922785153233787774710281983797899899360611980431638760511434709831487509076489688615056077132256836794513419334305239609258771279319502839276262885089637457851439809222490373159395912331842080201889226494347062026039858328465485746207780378994379384160669920791244348932922199559525969515105307374411464896977352486587404309690693346725509803812605203322489583720943779626284883621285743120231779157971182993542776718969778983516061068664454236314289275151145854897177318518928609551761365037819359870843097047850555838068908122941588005910604527544590409821368676787855812313961043214543517468184646291056474124726917722199934142516970027221200670314614638138021491304723937847776414558654128243525505666403864285284054321381242724126725304428176155828290110376920837285291123845305417005077465046201095127927709493480832588147923707510571162340804071513098722143929331449366373994944759377903116316997731818101918797850925565353917045323679456234484805542939781101526228394945464140937208133539442604205045806262988337459657691880717680246624077437571533305137218126903038336773853578624868099576431901717294622248685489076826006421042590842866520692128406321411641149431557062377546112105312781177543034791416927829351619092726489142951674571892133645762303673727110785486833812919067925777499197640279974336266456231799261551029236283753824535299493883689044153947015295014960872296555068548956810784800875615708452702769384647124859280406006854730700134677231316416860239626365934072360470742543677259313542484916454143636134609337235005904571204740177367877306164424730107362540937839836650638229103498311997384632838797145509045770471053120900851574559700425800883405914050588518290652285607998880448725336953372929649651320934734176584833100274407047976783351620319211299003768831496323271651224758371413398847312685578251816451127182830481126543716869248531342959976956050464713607939919985012677698987316416060018261491649631849497210246538024397539020693811213783407812169760421206406508238067615889726908110392126629468997544728820519543030582133670790198642645275819787823815323043674827237097523405507109843187507134602336253412714076558435491856273423985013888013623485776866861443849564164302284072944936356598731544592272422054943616034736686037696455569128698448704185321506034317617288683025956145003259469090380853234759674067329842927076360578641363454118359363058605629682836084902588463383550711950161557368364808277852503527822588008906102906305555294019023714201063183834521370012044354324564083054166377076959806695833256508619118548144306707636532319585769237881084886673624908144121388317902537770478852989839386681735821942294055786595351514750691986200845317684623855640806199674436823683534300258580839094540705970242687556348995330198635653030395060261679902420013428359797181678807610714112760634265032727822812735380729473097204715595724975703275029171277733016554571510067345461115816354842524239420884395828996342983690926169531836067031152618835789259487208422442090885408389383702634095921403902410512892874142814634539147599205410321353992779720788018974626979304041333002007229057086550584713510856698754331869297849032237188305933569616611065430109792299479634682910533782153553229909233564692757829761208980594768329952148019795184509520978282916386794953381702580548250670964825516918808241603251377769049595197465123353668839847043251078157800011911946775731133420735531735166736264227716037884064244597417921642965871639691773158884829737154619316108470091990812054774800767193938580046566865691460591254747560192973665537340159136834097851102439516380940096046034580361109308044820339033508048961926777773912949915446774352225198039197940436263293653218288386432717878223081577332516566374340488835465456601603168055175280586052393171718444896865738469058309438989394827693372907004818640341353929954732673547580258751474374786105102871250157406765569686845085703325482052067866356864206336983846237736595105623827960997792233645988041630576676701738591765896116647985859057671721926495115716405840767860392092630627567045702492029328499630035332647124252731465424074339796067452674056522379724915934998561091684223115481476055067132939007307680863973710647174942757856915083672030171667694685959280338917422124810191600124059466998194478621178450653356618790716392337868850320400254734994127791524849984783669315023155323908609454664982494791072291685087375662972930609251439945772747407455264447690971371607768334021387375804749472015961634686592056898533169304698067317760693360396784127711885844946677192064805264742338602132405420350728356286171310499239136490415389088974255582370604854228621961421268695368450631109958783131012807801083657542282592043639467277191399594186616383898162282816552259021544575090272524980647317234912684327341888311597774839470600015148691896198687504051986493717482629348675479438304866609096098574815839494396641757064659784771271479239410054632610961236373259565054016686672408496552033394036768246112569862999504741768081786827451205129991563896711778186124515284243408473000823238274951038850863209505954162433974225885601814881469276264695373655756166430403800203517788133895545452407454371775622210627140724257667760926822197890503293374820890131467730225612567770944477409161927355403768209959245333158218220181784954747747322504765837238705849093788810328121613508370395910094912163565657845498910367460009966500420335415874860538192946385928394583343713950635391391702696360217214935752949615024511306897897802886589003372223085300795142856116062970135338922304375161143166966679673440071902107332694815005559695378777398481916480599157676620735072299229398207742914549851422667343500731819288084295570502619910809753174522183001421143664423977743694449274666819712450584461305754410233033723403579720773203952305232861748181576211617966233306010715734556824560428364401251269338028438457361104829041256078819852054313016353714362284134745195702407402336953734782052295751629163049799821149203715202675697227714228498268976267410863458937362747543396740373417938528802229459615602196446461029266049881550255053089323623005160578850965752959802886871948187600606343631620974767457992570056394892603884328352175963668030234327673533992168560882802739429549628281401538683557960171017831471295516826080323911270878272599163800513812250618919293842814837711686182916734582366012129713579293882812543313444643687797499917154459777979353596257596974344874660357075731149694061958645025298772284751154133435492189465352677725222131131700099610315937142340766645560651678915971505663009519377937074939000335892085023527102235985052254217882429629176991231326588671821419362903179585104662316932141293892925119655475612580897041908543414372413764739431294847147611828040210459819019533912309418389528182270955618089374879369225649807848215017530603731668264551580381877764015790678426518239726352498236618601682587405644587306418416903319787399376560961734430136035230867405372423044994369899573278573999882947184702188938208305942547562775533235071097531147584825716739756658725217716545843995491976783598862324857798204905866623566327303581224061679837014146425212634528119464245590351787388953964721966774074225662064794624601382940279908376907885795957611082180017563266251713030188635618479549890855779603854709335938816547524753556064761666040980846312897581672922773640912282315425538647803233731778402070745333342920592688294970369191161714510448555481172493408290208655698029900869338963979513644333446713285256265315269111083174278065882041003018927635559419385386467327639215624258229087213692075701054194290312358442475647110380658522170644082839802335620766025752739112833044984840272733698185965013438079130238271733132693860232135153332187092163238954933189947660560427453122105980859651872748114250033574329986890624510221175905673735876633974727923375954437208841719992713042193598911032006432631786562072898122587499450828807655577832720161476220214094556442106125917639192757956722148194976579795175583240608241941602588334283763186314174488110466977190096744833532174670048410571442884759309982766897826421351699766102925047684178147744116719693722723853825857296330431785080745531094029874613228062085972036157726807561181578458068165512559552674395683038950575258747714626355716431698697141500631680042128749877125493023806774724234139059662632150258191944152974608122341410853677436056454912261611113400286068484512152374493356263524902664256429692124203583435437685030994550243341123400685559793657284325198020593062967310301072442023729529472360507011826689630713215915271507218486149406390511327945362090140248848607318809621254633687102481759941254241746305521365178216673196404239121402870379901667685859070046601083486846261894116284990886018781255974164633892543773894917197332899434858752070354004053263236713104939390440229108072059127221752978715086314008398173000395965708541192786375290045300537707782330371909319183777705672573343771200704249825715877491120610881863075565932307749873324126885605338103320030567100218507629748193808561372585927095430433072652169808095676228588077147057555683978213936694103866416504051339355436175237237401787613717072200518515693856761377609332930482623994771039749790206848032672721855338592981517876946712376448367337358651186824523713064352965805644168439911996639175649761757203279384200347834730598548139723695977126618302989446330621154661086878420659583517145285527506233192018796281005651403471226689588673348517222967420390013679230229511643962945263480683512214091162717812326293415386200517952894149218822147076148335898849237196593836197398889433130600384263574196632730299417610367828226240888724979203176298067877607981894057418810667903854556919223487599029893663846374304369203365495515578056394503394834602509129596305395083644083006993908949308083478380841333388224032288526168040955082334001785930123067480551865329916737240521374535189401998480849809832623109941661581966201302379710979478634099957801525053637532157194435340737866810684553920713430143565825236937518753634410600929571138336330061877344658056889155546915447820239190869338990113135203235040414889026225893699867142507809206380859155599715073632117785510639201514516814974134138802086402174415452098598379079662239675794770032235415775932322593809041583003037190852871774069917125421237116230272653102479207374651863599339402781157432430917129456400909199898768209331974591885222244576803771456762488073679053744035645712173146885516869374363585066264747999622423259459159726023226208972833145371101674007757133838965639311112389731815409608328853687696485324147203687023515450700558262544913779773621532689986962291333139379155385855962015933753842286488833008816290477559378518016590184151108170084516296967514104426963548923962770685295781158334696453238431801916234791018486462451693592146206037086258925700851128731855944471199921683314478980931173479679875949218004110971212226913967768557837722813879369306161755570593491122000910578422860006574945533995355259783273601332050318042986377318616117672962543623154597218662315739040933412492378049794202599554567049173547661202893322195052840528572731753919211948174589895227685489026650560074098895531721729567962246220022635426790942392891530943345546654091908349151835730653186892743538051992267483036880800644759156637326859684534938322561469954752229646075544758500566813273672965120330489444763300396307117360191704777505194593341125010429703764305020721716334815625914392885255082129710757128410648731581711325156453499924496501329393140923667144228878576466646542823055321277128444233794268986837874534881128429678770866025897204836309074266931923264150761637883851222991616985988972776056624419408451730983125235752014158161018602325963728660225670128205478419020990445781337777537847064270129351926949618720163989021868605194074646719927390270744936924005056741372492373189151035037321335697648193633716154471387928849591070273751305825658761569966832113778234414691163414397587027211469130987422464833630460518339138042559148519255291467267957713202132572176277520063209900188794943605505285384639729547939646700344088964661742825974784524874444384737571662919364287380859559649804780622381728578775930210501912271285065552857910942296709849523465485413674747022335769602588016957995666376900946659527716904264758510717616664610843770457556938885715588143127134803880601649824922800651057142089547178907838263822719294090417708283639493856856663082948935575569706981020805340296012919469970162470911182338073582940897035414937252334367368947738647412697973876979154841324184419112845819762887950369330672181548603538187356340070589210176057838204174926955006740919956978997025757788880555344504234678501687110245511927343819695537469547080952569492883977301355660827147262019835683492400116065266499901199904355145198417467912031639022535652669723978979558488102449022092690641471998278750481754521867955505925190546230772946018043112525616491069688390588555301211583472438462309066336741073051714980892587067126569684664555847640912692447449499704848109378754535549337628238235803866237972389140787287961347122614771325194026437126365503524090702150536836407002803480557854779649760325898953946183611690925950380592449085541772307162604845224253087628698328349196479512606581702988475209669978756025190641552974166688111745128631995239396938642446364461706717875042341520360022103219233872263270918990429402563208346368997971476064378431900871537405147434060598537915429485300392981643609930358231564823347591031884385902978954213581019999020347885377607392731064047745961895415776345083009502325279444612852223846979991234556619602613855239890756677951171278804795887070783121199838520202956189305165552352244955864610074230993393273891946645621240090055420558075207815583116444788945124949875270462449951121884747357678663391901269406192601103540836034292491267161857060995198905228075104625501391818185598347838591289166528276109138271053889569934175581426142929813553597128119238080633516992833472125806446639778601110015197767426213559038720569440745253322104916141778689474901296890603734242469916767573818138211447015261475433648121172607117080225027170040697675475979099946055933956418566417135472253012552951257581729871722237031520486552912168108291118441252817132485089119093608303484527742350984273902689092251415998021541705966956104037688000457916892491216831508221012719166815841051009210633722292094183679360612424104526870500904518207067235574344411626198545001120306090922297475575463329699857671460829408323492379606116867087096953376644942710400954999804722934368008946023077228533859995261867198650808705533252387413641978638450614529012993830682823729151860914759158551127156348860481509735201142130018925600059037887337648944287483234071881428435493301246220866601025659424692939399601266104960416258494749527116418017374457097250468854683046394832139642048155148402467561921044331275317585591892427070898125612715247280630824065596581424739869990651262834100566750520267999017778278285934622587913238368547836646988704660304906816662460096314310574565882639304180310389143879628236813245005723947283465137780166454862566838759963376260714106733865126990771998907541325913532564013109068891286463254517133547606981264794640349887316322962486687488453743201646855714939661225254479905402829462671678816915853348589123087685796575588549470438470008356943979666891028008994774141603333132472388239286317164482173878601818041889795092860158840092960842221260511902275194719013877626448153459130002951213695109937606062633776513710307635991572271241501070539138202827606422184220552006539272973222760851947134900997586969159602630889515909119549727919360416694461515565497208362787723855696209644560555096538019653778294822077254106042010798040998470105796836374379124741359019666611978516667620263428707938531314526914513202929815455810509894558754475815420257327450248033264697155808489764505911978748320077328107593611104363726470083207235176905763466950203395145658603077427052629462790417512040692419671587989130770929725713696680546663622682128085409034159486954684160195580678444084329342340572217313747738127916469342238199418637606067295671481632772936895763205845755259189639388263423479836724587761849839967845383228002272821431271015393171241453512421991692115311515818599805298381466715509232710127946103772445261811717036838736235183897309050895930434844755526086747041923203309003723914552557662640136348266706199802641608433610166290201534666685726664095972698167123446689207433437384592803218782452244783020096359494859447406335187277617224304493165926824593262933965133487999710989842236647508223303779031832799045850495607337126237574893360562306727597449897752825296216215793240261243512661119906270933621703194272183542165942965600005481298646169207507814502162622087555929317247034146211587303346932919574823912866031177277639487950791034535156589510291858705090408720794007756477481534064624307770137753642380836265956163879897215198972555873753508010542633688160093159680497089909739785201118752906513251175090226874330925019173099868939672439445947400787542126626385847509514078110228485999113812958295859471670766272184272941600764270271361003189284687757669213048112120076141228599682275292828832293209390080321436598263191211575892275807414055525789597724212313612713323678085690812128014895267455918487510866912990670714399452667089374320675201756572139664041384669642706676867384716700268227279339499529090595429725569351992557612047376185024348333997254423064568227748922851483580396583342699856294836419595192922056400643942519721997695391709401263043086459406965224498686780604358062284854339885146666812503910541875203106049254368149394442373973867473642078728417234518971109990864433860602058190029155523003045671253936826801460970897725255143603768291110128708389557509446203357389785646913621088589159636841240692990324536791371737502575669050895902086017848901974964265576136912037249502338999137866050003547440185303404479219576185024505756238000977458443306949901440162486181432773214900342015856604030228788960621504520216774294958360526657664862042774004160993025640211733908475064870315661870198851476591644194299395901388322538413580079739666909151466041254894906694999284482949440926079328165768400301301161576385384268675716986866852766273061981016065281543872004128995393161082696398861945989147115255172047426612934519488500223258140073025489660204010384766075691117839587463185559859341195477069418993772408289381863571346280877034131412461681083669096436125327730965836180754356502747534670877652121932663506095962774448989376875136621318866498001370206768818688687504517234951310478734797049337859336547089882655531761351723124399204899091403900742521659201668259507056900532655794789178571137788202661286003251741589263069046880386014907713092649932452517551111753970565357947235090193714443559846892434825925134134576768474050802244106526657756937858613056269031746053432358336786720755261564265930078704396369167026364870513065636743781041458709174844983774607278169570296982162384116052582159191882616327431678573558296282552079029340358511534447280964061392378657336864663501321331954057893834255591488789082954842088275417686071688627749859776680120814530702221291960337173461930945480745244797192388281270985778120720927710618509826355259954794225881013195862339501493852055107621076370664920377145207041766581014925134421631832638764568071015320020121301612902252544749417523556069569777354772120103811669121903077888589218473392045989371625330449419806118451336494396899799019778689122857378996359563843641174082996646002471221166577279664745296562773115139866283145011014161510691084337641352471954745655856808962761870443252632964315115305539119396771716121854727397515486139188758595534071022924415151684673295110156180773329495874221843803043857264058361483190369351107830278854212146766093375569426709765395968244111308330040614292518362961379183807335362299277924343347145799878789790314276058406872029986589858751368414345016142088864960759526214914778409310552820780098406488991850822743961982161739160388439480426465015339447214126839093507661116804722192022866632517491385646438835704568317012179867659109599760844593238107981634294091905705775168166630727170854077384747472749537403876663869960364826395301772598731312683253709643735639979462017393724868320316774178301517690028580760446583169468129493895521469761363170098297699959813554097113332396478041714367827044671424500057953341380683466360293854824027273969392464029217226065331797650050221927414095548217833290830271695304975865680024810141078136804543890385526876721353755284414734498310968012484955486643590159092421703338120725195372638957228807018254843448046227109113568267435665772057083933898137948471344049361025748104577323933072519237990033350349509090036592433659191782379189782654840553704310360671815176127040176553820107948831659976742759202334170465918194153334747259973333212508499330990417015142022518598818196868897261860047412622741633520197529710906655973036803663127084770518154786087285392715154449806231877075198434404808704860822471478486223007582991044945357730200708924598122684119156239397966883406650498060498884207220077691354786904398138757985076684859553277107929797815452699182375034995011237955031681788927832728282667497996239653129338209041423529617759993267855028885059237774125390893132996965951028573423552141482633685847711812640799623671978546149388303012254179174885919647278093448905624808214827668591442976222574831128576833431665297099949730144860871873499561132761435808780647745162280916387216728310735877788043466810131210248191557780267139591523302440606423538425147279958690132089205537864207392532982351417555962015987817991067103218286185511752990708383614985572718421979578556994424378465588883165686310970739691713857809604669633074024879234320746978079909128630971770737350796141786201986467935460769549476400509487320916550262226443913574404970309967585389141336434978828171857705855863415944411628495420932329709575821001224902619666058059558956710834736665617927602265220841995810729378080666232297685639212844554617104586361883195884185976715867996312802362987536780478954283516304847158934771210656506688924075910906320736392858399774974267701935404871812388815556123142676220189174391413018863590113172415792695906258587718877968590912987688567557305164876760126888330135001894429072487014586131226212891703165312323460571242424195368155304894832550067337387415890205759173799513315175989710471845112492185748264735312269125973378616375061439185538930349554514881181264522876703809439035064812467934165868361369058792757137172557905281075731772483318732002740415279306308465613846695754567623496419852125957777583770839315282034339808941976145923127608905455614111045199548179438547727448461064168400363757134210549635497158647570438856445235500843734622267027502421330712689574273133416955616999107631901384126928617993523458213458322729693790119459125485317803234225139396355843112321043421405407362420684883750936073096698899146147569880450739980399674933726545060876802676739656116065502118413648502995860746756004495000372383264048302893790988300402657411598280454809158927815878272638236312407896112815423632477481238193573060136699342377696683639827971248922731754728197378661370551419672108545851796802402615908391148849069449634641738289758403677651037714042768809292910810210402938994691601115239580218660171105635807690129747718136302315736148561965271363465400374991069099917358209585155022920494498073411556337153720855677819177804684670464423315493593649540183259113262375812406630358114291776562999722190060450288102506181270483771152169612573439020405734707006379727221935935679589254505910903056131101038867912572606971287926659998913450546133355098176208578438347571000016151140702527242422989056607734412194301279501330779335293294564836112057079842024126457148738600800426476600688409678749244489959078097156726132507704506564962155837655975707042412513044162324590324142120967519289424188297686604784419886051219251065076138935255782992907733749231423933385341337964546059873135038739565759766937944770713623890255424680994538235672829407960695253455810863540455819972467486768490387367765671641816763018743963777304020532160197513830689428871026361192084085686287203403922538661163750411204440057338847840780442475428507399196356554729900568362114273011838093528138825224654326582080982388803175995021312259152430644636677887234994603974985088625820942319011346805411764128008854227954449086472586960382757352143960263175314129878967502480198613108582968611117928754056399406535762484502958317619189047590814260800406918153437414194705985375555349547903140627482200630661862464256925963003668622207312266979577097572050350932721838070726137096193623980515844286240466019112125417064859942052556553673511989864035504026836648730166755437642636914587314795087742771778939054818821739475342009808538875020576123678675537710855828441432861798888064415142293680115301297038026239702298487489541536229224225266044047684816006275602667147161068534067616333439848335366658717820473686952808510773769318827116729125791006679501172860833014963155827481042224486357824047197030954926931108600761005909990094965327749507409257144748710181353193447606291354528796220788308646646007727923812955050857143896301489701780388987497315061317194716031432476881937809535663805546512061547590266908402005549627539823275570074204294448616796026230560590377356132883575393153508295659569772148307458958088323032852431356182120383648247292955088935028789761203868900263155277804055679386709005655962665257999493805083357590133508127750055733477459778851307207856728963897350934455789068320794072109910234049112859697262055629211705042098038582928095761601341550434068339414557755925680243417944222413219118412898567449976912760531388165282305999712579885176444177150649914113588436683870487972837722569020194667540144314575208413097157024716891588352115522597995104970171010195379300949816839213618736213069485787486650390023776775623950835095119532394281670582134064846640976825830836701575305931305357642699607501146385395565869248976117329480486929826391816227602533622788727226345367583377298629375267562128662324789746877806479988727331060391595674739433282809830723739658876021915580970940174196936028765598508324319346148503387287190847165149591510933737141004558553053558361120323737246737246577430802364325871112903560534117935685223228731299948361613973952126221561497852068846564314157586962908710982937447117843996078191325610150651672965890328899641889170473451430277273767416596179269522979533490526111422144381291280833536523006903301726702176632972610829493936793522191315836411852198657989930784195388765796262482008820975244686299156333996095396545192410047124334649446961367042758785000238853880710101604643955048972542310561906348371783984454024403280508348683677542531909495884598712460341977524779847448858094990722940029686565492010039538409099569777481416065781601025765777452263446158082168697513289814471847170121116349539805832792713034015699755460838187149203603005613108510593265847906681986075414323415913709882456928915309152460316045633457021959128751061851416552646898743293682123646470717341633654088792546352325317342854095233646804928736276122981408568552501524602048393551048062123319780845284734990334801522428586095258785092710300157952929484405953836282279226305484348438213949846560765088251372396085868829657625266214267438641400871939164260700111796001547877712348653753942896558715366536956725112421159905412463522779333723368838169173196410328955508039017501739558268611521318193691006960506292519873514197784913328842716227405000440580708479399013201334823006511276868501488992462301461390753933831565227926181489565977178420652355174004916666338358912514909534943983596315204631519719467953968401821227352575265047097306956268425672823914870252116128589267502030368822581103998287603392280261277261308441063958672160016198331326210511110307122773186120489507957261282786972273858895719670475052573734588311140376600188297217336964071256368705908126757795642586813458212939089479005483301683942246552273449028169032704761341920627321930081452868337697743392632179586556437444935780952273354909892790413527776546754372802776247739998395673615605053911787569598617424799440460015791700492300553594975768678281031594615674825937734818204367004018924172411932417170028987005306595773945414548111576113221565721156498575406243861903301495005133556360542173834857954215299773900459738384307600852984536851070776663663916353099892817771482561099845884534801453484135415498174044574988922099717649730545734502367690269001627736863058385222591413178778211353061630463950071571839780953393457659604491895179161371624290883964508539647858857027228694885187644352058971552853990820112994991692758743983228639209180240874901624971899186222211044023806380699792047621065263928029011408379740991164116304182878896130752789293939189494771743389176519633343730674251769502563071348412021105564535964158473556029945190394086870092606684007278971931923889603762289728697988371671158413986686268304674160433326055128358716296385206524849328254191025759901704698174400703446469991806194739633790594713702028246227415722249832256716938971467632795662032802668076397066192931465188245527455699618575391694439865666232031340923907594799896864447489931146271167184387689427201811515260152615090598259618046149853177541034504297638766417091971787829325957162143838026314437899559418082297055648304504298803515071097375597898663888421700690121446136834212050498354777558990218212202105872225704773441791042112840198352817956752663048134062228742204067456230606573341832174311678664182130452812308011370811484796739522734616683469702000388740544982348176150681101159452490571970443292431069384608215405528439552404573051242255169307632904513096152775524979010764956391228755973709892773728969156483040089895796687967643572558304692344050445246319160797610484849544512493541656250279214758781015678193567828579495478267958752369664228968442102444655746546189466946765081246367353864236096226989828402115684454199970670006976407183029628703483425869584836615136768722662047283630906824019946456997432937853792652087472582599836782488970104163344458039420357687653280529448692867604220556069617987728713296951378790745057858684734956193395863420181667304215027755999995226041652726316289293150253078421800121813362767048036695435340095823875175576281807761985669324898462279936652843495698092817769527338246933866227607085522174058717491606069895226734292893232279609167913468873717190945767599327294622061243642595688478634862530497768200884405181207313049620544829877328454969874357678132536261998170764664769882676511821622395614931594267354948953088087642155370051343955295955146716839782837161035202899137038780062517961671524719763696736114945862107788987999714818424622374492336762876697452328181285928525578744987662007833169885473748682921405081784600769425442191687516305889730230476220124435471738144706802246275273058228970053589044057657220554868182645929837807477982283019504678201372275193789939747201060090986492394868521943852772973383941777708511891810884026253293955028176848900207079083693622627212449496116089290575373767621997371330253074286626698630780267343554013173684832247900539234180724563887298408305011535358606913069662779942084932815802632819681573532977705668321165103244244898147709935279127254664251497046965590254546519291440446072824048910757493783361942036395446164222337216278015561077174209910339027081871396029779303428063431888345389695043789780482463368951911569557372295380324484391860412774621501590580729792576534768941999526170719309993547638935402242342373663092657295327512363199690278707530056180995929167588712483685562761776787884510200771397702355436637076285350598685847700702321047516647946724435978139828182907310606254374167959369943201302447599794962781753755654588874315034910703034606963334899526592039640708940268784680471178436390994873313349540131537405023124086337358076260616365610235832920594882500350703681424383270579170163510811557681362291783771898144779513277776943000523880623378226809529697626371048689864892971147955917615359571306989487505589042228333777096703337580990545227154192098238223898431769183723943608482363426099475660733301948543994575380866271479620170655482148853487369962397529910873428517416166333391064167035333986454517872218806789423556525262709014387547819630618599755788492835991544355737035326045850196194540834059631004813552901559618702443795807104164580480559401533512938157171714268516745254561684761483232583181193983827673959513107877956471391945886572845732536768421367739858376163125272612089208550883268208328088578657139704308849538500272536725191764303066239594928031480270554058248606375995969992901726975582508608241974335716576018908128801918371681731702938784403402864874653506481361321658080277097994460864760222790147193563680805581586280551043254807952851037919630666138347014353621242346523103262642060491073862554492399617512521818078734276426874683534913309147261939857130541275319443432107394924477316808273608496085056371259424023317115433972545547461577901839442378380756363710197098502731669498499971577383911029775524379418054569120166137428540788864215402289766924758573492197022629566393710269102406316799926145304238182165645134651537245299223479410068119315174278552635646838758108071829592253486278966198507334422167632655714030571161556000273691253374601145888588686064094209117431411907043431079878503460266495398963044927821829589747448162372123332865351356319391521189465803299362554239022272558029793852047851498712300666010423958005288645492634929096736127749846998779353727699645585553129319951210818844904551957803398311436157961749273948285726923464226810319091952974531879822020389537446623307078164923136076246894719396689379954283028933593056943954770999711344605735688859120419553717214099504602918257769925948090171896466637596527729294080137413860856564575421114352208296551670890702054656722243308270766985060040671131645573117325910735110030389805967319485281080965466090894638330839061231413920393555081023008804924024483310241969434756610317184699644409265923003969381953871201131769905298558806770588967975152469366845193629055018556098941321064358526881737424291812165245277240042382741042278336431882009175063527199445012780153936820717628238309954483504076463505389929254773631263368877311263004990851009201946739126755061235080827123567881324908977461867411159236621729405366098513083034797764351372107624819040898386167476844696630927794324348792838622317171166713570618174712619827536134377644682194025302529940227397659965701255061333479803606303614307378016270361653859118899245425703231228025312866647789570995005065089543469104441174059226210641214839347969789080398124390720768663911949030969590283987232671011250366233480478516865123269378608560613694023688884006806004242521568464106799863557535656310183445309191316685249310949840727178170703995601920731978189480552374036180833076005406313830847471158726028401642295216983799761792618734237064859452488799150088334109809457485294407091945098612170003177062781722198790809795024625194100420244117011499850749139395271829879075230518487456835527626848388904248205621647378383461668961027263857575874252643459297182693799771076955121215277394179159648869541409910776074229261477035856054023195657391523667205570372096923685891101534115476618284409049611706372832127933136484746208329617721627719653684817412450862395557324555709122670891222040415120237515949475381132767846923697352884170639001146569669221842175183633704947129457725837397139683093733533465114239939980560863356435120986685350876753476370364740922376566066053375166557684808914213853619605063973947245838791570150925451678689638923435636102699580656760802239163990564405331378306945051856131510142482979162297000544895149740591965253994605295823978229536495020467601567013195521406524317042230723129888454187709343585145623801765944638752336071956124204462263343501977421132736810680161933767797876204155640377850663526842074580671060236323765419611528633740231858496543411856425899487362132712138508279347776022098552190200278913812017585099364833221863844011791841084324274338859120983496283809518400110871290555385616574229037505419557432029229045758751842116172547023227413876091316201887747692850701124814990510088492200621076812534301954242214667800240366995619731649376827349978275063380958755484911026789767128145096769559189594124241440814146370989076570400319484334816687245056346454364994032399584394928460405103178525040779947578845129384053564408414938382588852297299370869890740955058334723747902416454205542408575285112451054667787744634405814622738292602741295749497034614206506980073998330909379472410362268012216437813265760870590819494379751153934456665524704228201349215433191671996242710091796903338303484867875197306636206215456420016275504859469900908627479843799567029005252513632799980351518141671162688090997529951360193433540222179116435432935173221327544162387721523408203582608746333084167576304811153362326310744117635533989301933414120060543343373060683285222283098174511472311744458848412295040053128314641199371774026659836166372101709058686202381741657145354097945328173234379703561530260451763325326668866667907582176504690087223098423699357636192673732374013867465844327210315281889424927251070446238908891776244894933156128288870126651767909419521390322770962773846675196365686026684790862055361569185908563127173851279660203279694456838150713476081292951862600207893627251402364776766740089711477899677204983112536857655032350347367641445160714741362020317269288368026258588709775672310431406597788048743640475840353078019383435206922640348441595743134052474921065310249448747206112204259886579533980452809309054969906426508539710489185539527096455127366276718749819961607211335105732438323716071267778757193828419668204680610033338043417410686972750409055729625410130654818106095855779166879619465033752083659216693567332126717585893418250385065711339024625207077487077794529085082203599212294955250080307196503811845529176412594038680406134322885123046698788639290729472385863568496337758978980944472127415669586877365558221178768638998498216829665589940662698998873109924536633078348028563080339640569095959403912397310658289021964060712779249878018799337143140158066671710593441555721682084607307881929405099771501003133273269892633232984138251182148511456552131349256200613345324011291885931759973159368068570023005460641174477655281915018294983731660109626109229800373352978306443960607906570033974343012468641422445876042313698005264841788549680407998097613107694314971808085231571971628514712222072730545856085498828351555513636201985732848947813589918667285747563963080996079291644446642934687868472067991577990662670079954631368725542544086747032199828047837355947738271477616780161143463714694846107296379348225937127187441599652788285314858540137650793155280574325363099475505543860068202384563633214967256216822703617534903496882634494978066997131953115646755090489789677204403216237941359921227960629457461012187616614968542387953941712223602330018860028059827058765193394315236523388113637066135798950318319548556171902126119682081780682053801672700827117481860655466590843166268589255109659530205846844961958040553243294053267686424001856442517467698143219173842709985400137782079291730598201511452469159746033915017065344703775159564593253776336294061458233479388606227688396914362978345787779223080944063230452316465173101213271830703923910658282436738869357213464367939906462974623140438173149993179739625066678080968168839315641246351432422885504171914395942932928206390166299950658886262101476284145577384497774155407529001410720252365586289353451980935086096848449400356428877729566900253733277214239128306287807003100266409270473149794565772995977826397349626365366623590506673680714067150431431382326940256535484681273643740788450985701961150633983377746565894946969485570331071527866481922105240628618367971704788891106811522332811136981723716014058993758854612433550815501384229967724389755948672870465556436454167971896780856175012182223171351638535672725060374831628103220949655050662854685944254553322944602409471982445927821780569017885305838308487473845021384325337555916815535824326008191928687480690212900258494505298693884011401491826237456229766136504492251679053110175598329172759138688311474256563276728691015697353192310995284021493884085912166449127267751017801535535387582486519322330363630484755750569842208361129547668826511003308330326987994375382495743357460202570879337835958722862204617752405409337187154120892419616797990357304790254631790317461122612114495795203028721597734280903107968180048117697316067604214423789725399523092627974214264613739348711165015369194925276014393444910149955931772539351815019676808833831628470941808753358398006748915390084885806278994579288783346288178425046893961535491082358161465877316907089940058799356068493607245644983627679932057779282191568483503149618541607787304716475019175483614283075106713492891074886523808169014078593934758164537205379641337868908350403684283384911977183212451993907844332852474478646653299636577719061663800111796112182251534984670724670712841290576112099153767509409755952110885318390366637350812411605258370485958428039343288571055178393079269871635508515912449917070583992931723065128608016269724203893204553573491626793449552877120537056956201335392154582525640049514643531226613319962282675508087739260185922423725246699644932480686031566254951191819178940711549956266276238476793156973860779298482559234002324658587478232711761685111035082669453388638366047433380834731901819044260493393245741637427297139761505635149800902762300842685226980924786048159271252102743046393077135725289911153288578863235986758843079365131437405015183128423850048410910836192055496150559358613869588121208231128799674167938029903725226869209894297759774609082982367032097387745268964030643747377487383300774953060794790571092864116341642452212453524343230868879242069131366692053783780472843338534642224116244444382062707874504273837694541402658757412320791072274922458733654689302807240956623177803456844343599990478980106473400542920657838668224825015350290983953517334310827570071963181377955048448343661555267327031757472277258151007013494451850168575997892357893458291950612333588733021925876510237525801858779866305511602811829863667077752316126939899682914575519904711393644424462557510267165455551357396265253535670716243600286015839449982305930164890696676094605152964116314370999816637741660472574784170098168798844184626081982594330668575607570579622453186770445768594947356333316866642445222039202766058453756328608217209173731520224417878769149371967850412402563443428935951435844676901553483960478188551509895617966010452349494223400884548492406794776848582509714781696338123570963315720614585666533341042409804391083050221343029654329009864348826193831802708422525744166036976029895128750911050714230566747317915346384400870587291253693880107918737678984020547154081575863962288864625766678607083826626075212629154661323377853575763682746414531758376490347951095074229540593026099865115209305498225020075072383513198651200292870706171275321581056873741766267550051515041080653348480388840525840844681250627841343408833443228676628778727577068207820663040595912988197622778617177056938759453696495481322155264613965242641734906000845706284049943629896791156109201226343324804390497248121685917576002656312580059084636361492423709301974849352773241281371673616349299589314644429342373120896563836825388838275586920718437185256011084998936806306808869046714610842995715353682537327742659852542256079454787880584996633118857101936159466198636556718750524956854423119606854912282919098024312061238320739305340907290693459971417915250780504918149554335415939447958664716222600644096605937457777125571833675796948905783843300747538937788328133916698385959794402348029184756687968936717731075953082481965371743246743901378548409955017919267698389409191625541535058023353372477137769102689310578998354483614109621787166192609606669613084582485933837552426323948100356107502935478467908694813780532640190747346404170764870207647906619412139815010192524459261853746590431855887048137448465399745382726162709255679091414647445259483476838620870512375808355445509397125633768959118043010001124127706018602427610017378946764722286770825609667161765466131434904349176085207528657039806649127616494903052732875428199161446461061489444538020181095013940592079946054272719895880194489931362244162038517278401785553234082845506563265473619417653510003424662608074504232495485808967393654828528535781919378912474651599447994922724352618096275787278943193066755353076663276405953225069150918379687737538081587504705608800179476451781266426511485006500963291876746796433973184176567088856567869554514888277142533582442465077647063771861617013987827210938436100291858693387091985982798713004454678545052153779344777291825312146117677957581652939256575862352856691912523565156127647733292314411504519586301364317034406055837544463666802695139113154160142974272991916200935902544129826239368365036790237038103122679520223861755298617555764804829850200693422761291575937750245620617433692981879855147769215969907654782164083060608167734280647589866004556905269007338637916865080695574893876636148268601361756724398727787778946377872080439794915199099751930660584471173857534820332342175396333716519418642746716378087423809072529749247231758235844033765056943150931507535173065931203711108416336179401260971054196101647066198560401136319663255899221115590833239704901149954428810799333743218285691664965666336542616995145238912810438018766674083540367069299025924785068641240942996447000984057201328773202575073404651451777343846986708057547280707946116585890500216063096522802246474972387598600581710693318414247794921947259682061544660913080376680134146670382982139105752217089870526813139627409247104727015204775042881433902382529870697667334210751214568680575777413542631049846752489432013741752546474103003287322097827780818789562990159949275157696004123205573964834020955976424756097199846015777532942697934149444055681024492417960584047271931340939828933542907735060449411559721753265637185515471399724594471509157303939089022381530017605345956581176889311945457580556887636953904639788337334486506234647308096608176889108180928494021348467137391334967461878636434564252371883884649141371597958508787358426467884654325938438021881812050538728018654941772951979291551032063276615524297827822416792738393100537951091518452974166810707260307027476437594906866209612273445425146605702214304487051093292443832487874393269249451877852331174982768893657309639010622463207348505751284298676896303093601211966012927180341694223555275162628761348551376377965299035585535020431643666586128550214212390797039966700027644137959925840547878595488851083187803282934160373564114092682608539223339085731663415483418512452406119941466007973014426418396141336810534871316877142117581329396806798321547071727554775694588726813107495507700551908334924745730639117903420055677374220192278255449966377933452192039904116675163698188049285989017715190748583979893986358877288657113904224164321995552663994576862237930036607095513714645703063687519124842214108632399607937289061622435355661385093250518578925416642264830157345145501165176975507785171599595098410301325004996942690143228383064487737370298029157838291551003645547854088816511885316532924277416476712898024585863972615077166729057357769283016637302884388570922553436547121206893869213217265166451463136674602151737689859342482108469378523098456162109204657715512205687912855864499451692110025174829764934577309094597405811189996968483987935670123295788319508044319756906611711021587923507098513743233937330859661771028837413963618960958871822937671880202263371598381432793482496617431213422602853556249467064998001224096439691502722012029952427498344113128832556535583600264169134888894160652488862936403721246002394043415890023981870848553460353150413085431589939813539864524854951433784313959747327497851677675734559009391059482960532526479110890001356659614907796232901951820294062634399263622901357049876126087958103421693803234920154758958776790784784855811717090153132019927995352411290501201674095144831617856423245906530610817566562050501599323263437004236364803389513778719442974654037984560446085910258080417054009431116063357979838201311378836830460473597235190343003272329194498972391115165430955758022790471390700760751396689032136948658952128369868369866696534670631636539667030041336557760749098924923534756297008380647682712221650371563384312480430512277741216051327694496910678897567814041122047825621528335261563846771915259115539573970861981411875036229858652948057562770968504042852051466802082102362702803692305886345599064092676720235966677119207684178851366408249091702243608184068134655886068656898008632175229275745336780966529567472525380349631868262001669183686557827595264599233040253146065232188913953250593794875458308128363870448626718585096626680096761394388387387728792285962966144778402445417113312930842727880850219026293539650487870398136983028102909822452861217233232759859585398430251150754512354382267297299595477461816297210640168613076590819697142807593995351653483653660644958709867353617393389758599316010107630027330443514398469069377243837364916330904343809911526622647945817804448144642866437302035118097799852335825724824294986936440988221660741461976691893728752857663061265106022182358355205882949012671928772694852228317247343737183292124280586714542249987297825287465305498452340583064223355784206930920107529113761754543097253110868091961215546004340258522400552854899487954437882673640697108675302209216086390969318924956986629634768442055119177133160527971591540371253217889442329427434303629149031916686775587156889989830213184109010843486812057824163261506165494779087139831388040520544047013625800123907509687791069192801413866513639590866289404581726526850064486459601396812043334007158248875053084893779598971945464389121030384399289303393040257835628890744859871071560957379322837719120978260112826943808616276206511600447086491248495811804242892726863925773364679491152692352380455750080734695318778833955984982950392485590707489271329359772575148095595866554847331124087852608324757472421132281564939792293073797692812989709289939282229081743447883577565655514210878528157255414731166826965269037508220179131395333452733912199121810601858302174960474333424073097768574600537032946296628770913797474093825057311840623994958018185128163381939922981342291977809616239301938113680957853449102658987015340142256526318607338732762419989478341393892428009278454922459983794771057845614556448541931603476637590841408976449605615518280399941718197838908523121507731852949429189488925159586476980418799821692271192692435579246341772431156826959090508409764438659200309944354897035772054133141681138143137209598552917187201390238425452262646675691632521231682710818194299699805261362566179369226352958645777351031006175262920211570373102372390454767345885415790493669880353645061222304527524318162525452927292791738185126328401062756265277025364025759825270871458050876699467220757723582385989529170163550698068592882495554495145247672746905349673967544302971933824314410097074955954648968206975102565394929241270570002849333485715316708676147277036812204513963769168151003569518315189486464102871968467706144901907444529750969667687902079132107954036179038337262421701315760798042614246435068041381388720678744044692918538436330599982903723713115154029433080407276955194190533944456667814344132226266774634192684213576272363105788327462185169743346483206834173917732264301234774353404192636244994070027890507493250285656978881711050186598876506871021027551191960788926106006252371398981198029977950025742283743904107172657035915774254215783840313416766305350679161847214124123794449428346179622309084171500381816236385927987908421303853331743342979043736959709872759787542770829159743022648169391776234929693087205933853925790206873242283224969520330127137605011208762359351712225101790023360345950488189635501593953868299993161639395021495355123673836476680539186433788566092135583277179871416774025190677846743167755649886564769169294555071765873408147166547646477258682155435959212786943140666802694513072474107058111882741584661322305424303723726153615076653732450139072966715495483011638488783661792637277141639513348408868521348096631610783359576922705420413436448248348372582412035462481204587836046404674610738619071292419605592379403891612746381202333893859681829892008049201682765443698960028982326395334116228870565523561272677986382054085898529406820955544084076360349290124332670112837267138194984106617940545306911422036766463110066795421647554005144396751572391449034205259414398196376204519784280360773898568407516910137072007409647004349833566064962023965340911511274291810863446993356495614647579758476427067392429916116949550689050062224702634655494739647990957829504773051119986619167026710970987719551429882542117444464240579744673981713677886241505259865898080808836100978808700208699074661648231426264541764793520494600478548012536934954823428781398132901937684453911322044667365081471250173149779351945441376891288277500664554883358812188903888400137285150108481603195957948158477508506158652928107471870245165176164208200457987558854664646349538698525020605505827055578079385492353825352171013100666517641784926291450064943059471195609776608055193397580197185174650609163373301468724144274198741396087247365487746676439131415355427815500639349263645938424259323134690047704299764957049644677347709771326221897155733488552360090125360296348168437760844126270989105730400251183772532177078256540711738332343806673224655978512254452609117818497026758262420214794123964432955732157660347421568749199301474526524272901871227644786591484026106518862420473037621291449991028264004054832820697748114128075149446513179444148741340909400883140335030896899589959787488031484243671529988607262035263663903763204775744793292221619784498745285274578999668777449466072210635719539563120392190170565288245013973793002356276950849283697958878232554803754884340071391174900885362706751979294653707986784190257831476545576167233199760552256513612860742007934671973105609531846463752908140177150364665249631982277827593378967752579760717048037251129250382447578669511084535142821698302417563578931039095861645225559408905654909874349164848957689013933009675245956107863818681759907918746072697038883293816994664138481987427245563193692258948819125612382446996494437889201836046671820969180673900126164914074182263740523871328322603905879455952973055897364547570819239528689503366468450161737721126226006498358953030508705867547232801641278801746418504373217635175019535333201808107256722659700815876457799989893973664821607329997288966822815136452558687358449019988005837683805083729777835789106775727375390962684387504099929621107796655106698178014985808503661024314723045380340532168459813990859136633279192951806521487361097078090993616551219279347731554459863718887914129592794838894824214236863708945052145383139771886309253315076498942236339450106213421394827172756652815922428847780609951971081088825683020692662043552603551439956347414524645943852240049245571201408040077101130302050287505832128434021032104227788049459855682036040830320427757705615779325439358897234649430074543851468868136898507136819251811030320217468028297549783730507535684246992986001843759306694521289655061504509377780744928900778787623411841618086671857815586640992670353739241778295456575994943558021658775105967657236777154435927586925138735479344770101771069558294719099579933853931506867700678502150988353471823218621457208309726192048346824645386544762545803989594431607319993856261754924243604413202129612505318571444955816027771514088493180282882890886713025854712258599973114667960606596163743328796009890954206125488627346272331898443248305636635829833233525154395616463029571385841189875270778922093110390797717959455893551191291953400982201375799730461693670377937095710883769910203462378812196464129780880771726795320651561175582456190164937113510957287268513928565525270759286580961545615334961622211382384627850760808242569480463987608530654647297245306175214226566998305197600034455813551459707661124664465464179653777581399114473107287517602651775355604169628571208207053629215706458592590353881406980106505326115465041568736006483486293612017207134522092141622130921717828553903461353627636989497878690867826857979462051644821333341869939853357670519932167081780617465334875425844555088654788989436145622557265730332727636559061531858490278234255921389644601467936121526189662143228858286356671496325161377761320553017195613923616772505997517414256335758084272751278100081068577119306266712856841770126903174387190979094048599575840839380720558374874786074626820975110495204595950419015910497555680122312155726262565397731106901258757832071917916592070480592035619226469708462409473111923062033651113661182122766609567495635499422106185665887932862688774823849458201210961155931297006604470805689090551974795039632855613113329029546682424296075518874297996973525222682900759608081318476825015715763562464499778574041970597078081634340258707681086761969052727229172575902375120996817085644730808349227185602943070662876011850709076183795187891095304790991071945582044605785571004782182036761216991085764757910672072321769359162515187311504420854258577189906898670918894976309875416261983693349286935467720156262535012072431031294112989709512441245907903894710497867540165562057428760762500560843809911872327936295774082735989450468875763173357413509344358224017254458682774145167163084199338949622506205831335967541116159853105047296398624732144079163658569424435214857281486391898360235806432253033867882762080790491129902433369979112903487324314122174125147629624405149911778659590098792432544631970603966527957246807576182045109733079126982035610303711446985845993438639576917208972604399594577341541251859245149635709973608688584092550303796992897798073257493209620571868108466256827363594751995239208879427113902849268354425606808580707207975751127608775431302696632892855335356787787959883391153215810671467201191278176257695888392861575171773444089538517582281667395399794109135125141118659305484963959238796007939520875619713036236330673571620685151893903607851433892304524311374303796505539207154008462575128723461122473480875887307726390866766246798654325847448193913480651071706504756982989732207020545767878080876789607254686862405298998365899950240359116636377614019130863475693119636182853575260432619152410212655836329534873734169147712331242934542366567360300331845658854960709859374734912860086213408495734273689278817888344749856358528659141504428139111255029083861637891108912187219053803904502713389474023188621170781293225921193657896027635566363472407507745140170706250706424262392665239139614729387509272012944357170082034144069474398895853202703666684830112421618064651828880866046106393798040301964599460244180495681673855710886990678634652849972045981376937817418183937623073826844263959015680395372170502379782623043289580554616383051934862728843217512240875543926596311871761301910067464276199263383528859352959824802927257075468175165360399249507465052442757554670116873519450884066992756729431327106536225608420847187600047550825268905421401048715522846348955089464300051304472014152315721273968429603367280002504695171616695227987870784458934156419498869755573295540784711252041997142452043366263199811651624151423757379409452727587976816931329477094051074718311690877346189554078229963344834718825844763809718578832351589265249996344147724954640998534957833202086047573457829406306901111013849594282168907774315754084300904911024486041738346890822841467237317821609479467951623502554253023149120367869342867483324507336772826684325332512593723830213957197563353953284852231642801655238221795314006417727893658113896536170496000619118624996330875886778505428753090218698044913033515954043061049932684500951413690703886649559739772644695050802732774881247933034455601722788679049685690221797110672485097748358297676188398417430449666994271264013677760160532887802924194516982892554660868458318621475171314816223304270353314162614577349001328740726317772408964312100041435772128261098301447954599145692231697668995465974932534195295216008307428839106427756183263975047348908036092495358007436837780177168066924134980287039350206364528702531729687251426132597734197337967217900277557321394358380720059375547341216528371471507530055171707067323162129067036010085841573946604393950887225412832063295918418011841820770752058539994358367282219485138518386992665906999263398076540385662887153177572924791522850680286792256365551082062157421787396027729331191007659066377043672523009752810246318878063363279082762863238560125768472830709813008599225702561659311852159361605240807440124051167863238158569718726467243747518493685906482877108369482611110037240203596707368571868130991805730882566009326081975988015393724316010302017009956965212967215847970632977786646023062481870879583281646517520278666827219976910404384944833933706994412155105358772217981663680757540819613714730203249294098588740541722028913752875576152002869511599159275597718279780475737192558505275510149549969595301598472313814562176039083541122413219998266931584128229046701233682475194458993037067310338273221299167609069453960444894479846409477893959376451066677324677260603046933305619569928415516837389067446604250609527809509247953925304624222122151104152989569128403727014975082025507177092312403851702917891960747205387960668624478973615382729008275947722019383868260131622260634166576232422830191708558293611064531336845134363186119950343958949086718905529665279234856115927235086697754880049733092624087728400014439831320777253188133307435288833371509228674953269284032967166055816893173197059658641600797800427782626953325431769490471571194436662652737323893488670630695172825051223659177825919810510198900288452634358816064884711774604572411337227156919718344613873640608020738406836585932304633517274755167894935130597633292738082353034750982256398526894830539249053897689935304309623794805446809053847157779578466839813886471564678218280962021049303565841048126828427899939405371703070312684515646899707821052722794157688298873485546298233279579626087442862677278881998322306531807806498467758505728655487663209016797357375903249659182142687457651695387952222950059331409025088276099867912593606662868824483567762464617377028331501995418728327042289610936496330306034061221648014881280133035728339675761044649689998606992798680481598734634184442991707035756044665888885077006978167886710905019355566043853418988220919948057221634256043079926853030302043997239645659243379043293062927449321881780209012256088920097861478162057911896300209379254416406751671262374304036936212404357116974778844088517713233390742164326481843869531182433062475428393669234676302830617755323219197224811532807573565350878881640683442850932110670680213340324724490350874693318457106749548237686885122201900829166099646572633133808355631050579320912393602419950378196084759000258443809810867771697196881233598859700160297430783973745905869304634264287745010045274315187357473118871811657419178717852774852158808466000542047924343288085913962778886207381626684294922028085092162068838891840471297045592042638588882517371738008897241622051460333808716294285526581207719973811049016657849359271325958755552613556014221829179755578815552542271498246517196105739021556373568266790591655341303625023078138109291496836919216711367826508727298307423289367003432817667503537855000969886079541573728385449826808505949322779672596254303582782107968815298983577138698692321165283917614892046854870835176299965056393880395577604541053647396166202815421978945376915107043103118727437752434546912533047530583482633291902305471135048079720104647747934128386843788252843642527040747519798946980410880946995222967276141716866693400174042541539393330735041800002853444598262919365834779038500035012210482020428774703408370164508308196661101195019687331319471468657563823259652859679346255490529208558752871447309086812317341377417569362021378577570610865208562677891649876620697006212876239599868302343039954511872929571003469750850767945973152124184212001913782939370305392966331981838365059709282331399291983428797847986580315532270166182363842118526885651863731260008714689725602744480829793567861493317439811696071287126148450810574916469181266613824713916456574554051197094304484995339979684061340298583650241534203129234384401035820477961690556430370956061363610070700104065850343247632254203660520853452594712562252721307750164230669647280683829663471844547902171141522973652337549379429836149838528995378350526852270374005616441916181366862657603745557215255585344897629658437572094852878372098419531882221541656738462470284052639826643571373649909236836020911963221750316288104185733718040366669780920744787411823913657401444586518489043431335103995942712026975953545386294766857092184732250338924728071381168892195203160463187667548212333458322172700467946934305113658391944275608281541586949763734386108692402033793258945257925241118910540683769615844410042387801015674697529489617390431247849654910576411637191793300516176181835469169562324613106851176747922051396754735202823649853049031859695742283015291984503431780777167743648856627750053798242802816086283667824008719788453477552930052374679514535716819010383902640967501503028154842983680024889524362900446627705479773558905346057105334847759620056498190216544377531039793441634542581383889337298658141309977853838054552418281993669550504745377622521417380816281648511258093904779493251258820685694247910779318190378387456422363583082127138723003512346707888337797063600635303960110304773444805495690401509226231278725459034409074758226573346834781018797002351764058169342435647995764631895853735105637856615667459504132678834336557472156136329403491774483333682458886010641745539405522236106192902867911548740375149158108412351756711537519578829859997546837549176782700046882059664496466048720808714264633541088628879956111569033972503405620894169154055763394650860214309174442859451682923822429019305967602443141664482535103259366586442201177958564125197429894328942157758502742416721704038840593569053165952776319727375540861439956806956668052979978835431061524474264622106888735493028823465319764441564488205736223645926662684461944451293476999635684541497544369960405876161317476354694294333695516169481684898762080206367097493941335468028255622668649208364034875488108528544964881080782699319775792303771230590160445632589958167467484889366540537468881188162512393135803902286606015205296959407604719899748122939754238184767857919004962743079887022320916902870677463887164434405097400584147859268251016001979036305914873621174872342020358722675492035936222554890226416991146046325466882726916504045474733586446918805917599874914226419310800216963077629171259740292538248511758161475180063958821986409283859822623101756431018550138910206306163753638801065088193241735191009292829980308976571941686795423421956208842673386454024898923749796064407950383980490007358552095129961609978645114112484828841896316744768897653447087495187937179773772481547025928710693807476542878230441427243110027960373332686383588133416969686341708839835248631341619530786565389559194125346691638284732026180512722622294121487795569134409288406885664994887427247370882559129997862185805889218332640155065609195274485009908379292906370123789701704342566191903973791059811422433606231391036539830225814377507977699909486270159158731621178409582664125220864012264179126431140532807964048896745297789411550779168055772739275405363832982452158340827874001039235566292737126388172065834508585644947954059837860438427968044843237502623630008500666497818667250825774947141508635454644821250112255409188065480232666853525759808477596078405922134814571322942617890017743389274556415822803685606206017669927150123123224597267612143884079965792033570911001125072023851033427235479870091792037527611874241450456959103929013142711080787410777547618629659138974450540314754871214929669604557604726734465967509217242284292194261566859159627543700257276542678734877456213685106526124189372425850437044062067350982438611651418641620115359575472902031283984486128497543387764105772547645821603553671619012929191446016777866823961169696157863685123764600160073208200947450132437985527317140039911631688713075977308458366566673977681912327809762084357777078279816774105466044163103972393396369745788506321715817559247394110076017849735513938422247993330758249594490541310229661299278187977502188918612748951847105569208265963116873018743196371363309265006628214973717917301184985367760747557250881193697009737114605601030212914923494285023378896308398974396103620460169418533877916082969118456888121642340076220769445464841997971677632295542832465348056779317605675568747004809840958790698458549084223951177703245939225274782071410801413922771374184428766779429139823792047359969261745350515436979355835224179133074525124517567287107437329130858876887866238344222853170637934376586649188201254140214524226054372988131779590246139516782776142250748549911485831744659126497317334364159591067409847303868530272425599265204618600353644015458529191875948499582163613921560217236960083838337491210908444164810159957832011635344462540250021996214874134710514054639966580475256356336990012720139769994197957143604720437397375877654295393153446726960923774513121282384918597155139079528420328907088979252481915182793314066709475223946348578442689014974353960340650136213979971895085247212211775564148652400614423564176971666526927361909582953095700229123910548246430684397160167644143292426528577842473871692901411474866554202753054225201013259886303397734659662701418160570075249447352360873697292371072601041176666974909413157417306305856479248845248481637217128199703273062298801423611726889180719459114647543556504002973775738734965068184025970551858408420588972083212735562742109633546940684477301693413153877632831671825391295911378173778575889943012674493537266129783855279818711638776532262576148087103215502739048155018815081759449823156913172714002904856229604947582150228526251302035042070197532364170165866627827477433307272300417618458284308441894590612612469518912563937969975031560822726756079528540664269867450918838451863850374285364264384037798529966761766107362730933050339564437532864458699622169078086971009854483521808947746095910844863339993936423103507034792226693590280049702357300213087420968915661699756675517859346023217731429521607021014599024689498855181535695341370810488343727339180765330074454670577764844746104248927711496092495788521730646527133210841973945236966905612180729206476139331667418042463532631513779643943424052162013958357693134823032041057213993184413224107976179243846377094950288479148648974095459358699853879066578097682903319674848173390250406764579577106271681438730932231658715243648843478988646777428391909792977878879151645582060946660888163114090252112287561647309796784716073565670685070287979680442540544984325231204915413294673785267805685745946292064602556339254998003187821470963087473739157644728515351421440183719719766604607054481075559964543408121843773404864322269754846764710347028922741704371784247843430107716709675887264419284005169741755456062981577554132094285704346722381386685108413702730439743084842868551122566154613196771557604072981810110092652256420907288189962065864971347803410656229100112400541924165791632479558533340589094167855805698022424830145631481773659470772522883319411702861330028840349315489874915699864416974265434478013164207795533372956779138115627052492628545771678068347682124316081415211920278449060294284887074842999583016347071550957679766278637589617343990968104610449854033604553240354845948043178460954182421782818148901649047661639520627087211449479235644795750561863240953728237522369905209443855075973073817091424022567028417398066187144581968839849043141269587211694348743781293348494268932580980636989953753771077301276689327436535886808633935487667278826831012170277032319087185867810540428307178688059927403238466153660079534673736387850608593059491406208207933648323378133822472757506933140881993825458723795773210112733734870298317375274159242608585317279322653093403553030254298659315967690639677539666350959853227980337692488055918742454460230776981251663759312723812030812719875673397937656852128773756355999875963716541655076650275090164146728032783670293307196726931989762296347468423711459868229141049155683738062644237413757107414591776869053690697482444058569703175604890726367714100321714015783054021398165302243660196678696919539016694820883258335044245008287819096825339740381954248705901004965224779127323198260916562783580268128383364670836122432806317888406748632992145863588343567720744727234276767172626232849502971709395839473815803656073661020369935526354873456790861965615600072063032094057449392089272307145242209727975158744550260566308663283461760255010030686146718956724463146620659243793212310325348273780797295318415220902469248256329198240345497762218946678107747712645252282763217668737134134721676998513679025689369851794896172560916858310580379758519961024001313654685647627274461310926618818959798892095280409804139785866199221702834747940943878091523643198434785069578417161053804961461599518829353352185451212047318244158132831857666019220624551242326967243432590682662950117482602731196903830978560068235149675585309096388172531748236955085677148941291843046951104718134807040349947769877210099261975790008239356507694431351115781773932931191646826018185463114692717664583537196720434055462888920991317203213530800032981895438417420713447536603648212545664688519285294003987720868588833556443705108926417943991909973997583413947475366630649688392123194347912878520286566706618086778532243699861904377290237298809987256971629928300008404802651030755822690333840386008164158123208591884126310820000188381841623899238516252291239891325139199742966413140717687251298470804011007728662842015372770441484840809451655788194060152554574675871590287324417758216026328246071617534218092724116314361845208736271434580931923462318060245200355055149042279656901632880068497102874171605925953324850732378065346344586978510182970812239637007794351574716493895656958205013839864140227042808127077556949243641972614658440133680545282142361705122672732159911853036838557823924496214769236050272241588193795206192764232097741562682396678357717569631518095867502455236431951569288982093491544528277009549140159035990722409687175644539645640997662671830596845816651063075974484103733286448340890619628126191784581132008166098959247613717844718325919434719871839480360608083039912794717057702221868630319484274669185827119402768050076882370810109808675440158047922141324901452238803666517617437422258934561781585479105027557225238559303191071809062781205231368264775896417668228369841891953645639375813543413275893958530646169753582868746339179122325796198925284987687489577461196735646228927662206112836563582301014361550875159689623146580725732612469587367570154214373127564708533478925807505783679585302345111788665252677192410333023443778642837626853747502701637510779699872651238013273246409674049642079720605276773684989270857358175526723592938344023304445219179317760878660629194435759142509329353132344201563239121339130384669539226496159575632657459488555350377797623143212745662200479760663638638954733090752455208978993244361316656809710450371739046596872339360722868973945956502911916728225487912564506673838123489643133354275724568258163685819641005104708101072460230232493190215292443557262006798759046005733168305498158466574234511527554300690463328563138396299666827431176658081676716625740340070636951797725078594902994327897924234096887938570445687370334297097479420274728852106859610905836183553529391641904476686617133866728084980295857082446419717264754306214404417297032443527586443956550989969045060230521470288271560991451697922700628751597162556094438368133033866831555604602959231754807611389167264556167741003395197403106053865924833059465726167814789529025058691113817520288870801740635978657872967604294413790595721822911556652973014459957851927314414882294340543131133353712589409103047274892392729733681867311987527336827286745994172078065801176315516269150409833121403393978926161667159862635620224185959199597365193145978345842898521407721634251018614767345980540733455116645739904026465574753028981342763655571939623427776096366059882381817350319181343571174756854116590022365603829828185714866388336740543090140251742236803405939261295416474506757930798446553469928906802845849188241137811316649071214705836289524843251011570755517334625151858866733872370357908995647788337404331497377161384467561274884334819980618563517875590142561850462342762110112475509537230602246011213302358642403406611725914502732069867829203215387125372037006205064632105510707159375172073699931000291237293507168920715951858537123133285513490564634208881138342491062176722732288383855246015465541627308757589070894492060241551866942611271959232626502541506573598168944680253836772074512723007361048002696763754178757162239515922398958922379709446998911687436940403209657004995941357269740831567430360530117805119174512854487826013888720415535025732159014154667787879488785260760968535621459582973939796662179602660978031470989995307429075486238237576543364833441613324782294223976433881813054275401553995099670335942862922917909891418591116202002855066788674670210974689402110815115428660919266609414777579119105526695710498499235773073071199499597464528215590743267245836565745742633388527905267681066322756579542029916298331478333412711162718583036980923402354423645017104506550344864660734912731357216895684575230987392461091601617571600686355476791451181274289031689246041889416484246760193421776932746558502325575791957141103734822552302042779627295143428191991518554179395051475195085236187160685042736157476683831623313999529224298540365412470795231157926607252190227225972624599748988706508482263805538973858613015532256404920655282444397517603971613164250634737577317704216554157049917848159634226905920619029973177212246576373158373602712660294617235976577428891276691039988856569403700631977176873037135256133498776583331795740215342521209915325120548262618961520371946158139647036316697917605422092578807487052750843818921383403199480005019329321408781396064049282503722730942057538477446449482746382629520547840246468427699938605351885278527517909235556885952279400910037329495994946324268074080954648188212153921536763176406346660853504415868392362298501611687975556181613811879869640368568480544097230437518217557888964668310565200704975580022274876841684805364065768367969019599023203567346339707829965283444103018099521232582066357026681765838066003879125409994397045907708598507782054980102139510105930441005355123882638614001628328746169905178175808036455823213217181070094787237110503118765628362441854844452068633500964744051709457388708625091781579254938590066161757266111173633724983186191600211716968087246658239877657750986827840163394603431605756659334702616788975815133489701175522179152417822517447262638829352627588337071118793108177915653688957162081543321755444012328078071327356529284264088563094680515520921321420717790047470434736365089225455992636007860509971602604650257420562389457149836240759107671574815072810631814892147283869235033365909496622359737656727623571578462291412191751752445702974801961738587330157076328251052053547020112401205867260739151611073457433222842014855534729338059093263560720438911398109486480793435591219179900413626551519912403807945661876070462867836160738570666735738083229883378204116134757148439480140971217515262136793984328173174639585693864852907288673149024012757258513411951697998480716694237050326824563751989055696561020540545007220443747195690666509034241309194651040803769825882668638718487758677410424595588115375541292113943910786950725612071964143243175024406069151215946365211546389494271448618240228855077708866619270007008170532321551150156947033700032329349201773769071684912149615380239256257868318914185175457988696679020657038043926752255134895773269019455274543135032640381364310814721014402328056849964075966048644910527968806094379068507194818695515759928137887771273911090150017110391910019439978615491331226127529111420365993573654626776223529227918730879017626078168259283686572509378586310471008462778718438590504035244503062545181024172298938006627384156611652865784682011973006861681274673550819806927628789140464721698681176722759566881789282622773397138170772313985521797786155886315614133102343387510369925263490192515446360449915685657562716028649518754434306356388851433668756181639572546815862684087411163252100196848122900826020530832721467084094319269594393299730686827750471532678726764760011663993031477232336392391804654107295635499443836750723748492650977255747305095240742342255489286560033565007382256490892414698552427099995630724800410460193122678960979323631556117581451620315825055323148206183074154704518896721812521606032072874910239539758898924466254639456441022382365176911526975384844104615978349749205846483346263912460258042025331441211340269832029472401886673052107561645960608783831429716781451257771854009533420340603020381121386969060752589591086781100367799014948639612501538305384039400764486303695209314557530802185637586456343384024911652556071526409877103330193068143686635420515419296601994624902824902942821650257755941133671017781238493590285679068700670635370180015497432075406713332115530173720848188692433823714468256828019343944364117317199641230114000348943723296655338445347001658026797292552228320177820709659728821688926595843966011507478741819309916450017449059778895777359372597924423248011322697138070178272960025627328594372086847930467684458249604932003936823581761872876971276785969083977694147002819402872359899338692605488464428723934547860239153124222851855414772632619501207934420016583619053965491984028806162896654357242774666706926253106159004492809006045803517410603202840245987290943892991041358232940137120856770311484573357972459692740838161742055925035692856909266803300650811320807145595510933823748831913428356940599636812860413464496750215965563617029768169088518128761498860806273896105350537143638915907271526019896464398852915049772622109260762583292546021207386166522020303697137333712273316297167162487548088100494339989834474723627555379239501568847738554692351254704012938786401238192759808588287076314888543224414854534832548547354784432048217057152681820661293315671620241148917169435153502393752866225031367216924297370081427001832488670681513311188048996804614914609524392859672012812193046944451623745484170037151038446279551536108413192631196453511091651091139524748327004281330239221646580021006767302602512001486450323123062916555005213255720137705912355755328029457945545963021832536064239374411950294298542989620370683686955495825612905305216645198523498721828006718241185389473770424319821075965708515517772494969475096650761052308494614670102432164248428173227092143999021805488473249078681333833087637943832325659283847458495899889699351899672466392291301835744678302943460757571459893166784956099719331438842872588741008877680793709687430587833707865363579616263227150043717550762851972518108415368255105963809187291322874505686471017887038295067481765972954769292673102235835223930797947486123805502275830368871777365235435446451035742884028156598253561981389069080184139857877161937766662444523398558119810046404493131100167293539409167541120901557228586403074221340535678616516736617748789614279467770172458362526473555827574312360600659954686254125743786014708311191938381108296551747712242953963599984305586162056791687703946416841246543946444958336301030237331596013643409747738675556850669993765770773990034833095075891927376286056950807187619937015328152269406869498869578884792354501047012272624826002810190929032542493797275442080458530690859151302438035431784000705562255443888571991740012001009050226119771896670675496201929427498434397464978393415245288743111791197380983960691811726643803045589501090906917551129996724783375776073741981085910506856027614831054026872411521363854502828332104800161169538680533300542530135777491713843805945649240421444412385250474874359002400430259956265256439689271456194144910762655329163989696188100387298097727316807750505822609906834372877422256228615858162712284620476921062407425273903775283637816246097675133095692223514971875906234881575472043429079627904042037386048689375706568284292194777463111718560086380015755234909816239348056809026224379044872352875655092879984306090023203545543321886610273304992552001814801413347449192404307337195071858518091169726762776467766085910512193825270372678440678268774785360253178733167188961097706894604052418139821748522905728503449902164379551427694565026149889886846561102214621297102623910188079610553977344702249656242570555841759094578284491658769169692641522621367587988084870853500962215244844925692303910151332013489767071795240940500060036709441632331482595298941281969170071801892293929187956401876167726229883083865160708898054253811952337204367625507537013411898355586452868919788351964581699201538494721363719118917306425625258877772858313035947443215298066535013575881666706256703286006999903744194400538019774283024299400014280911496323761961452901883740775296053216379358555994881344022076706039729124576018140859768191994866341277579791373531872614198322645366437258013663578154513194241745513334771629885752926008441244565692718571490782318089195485748025672401645942236676034621853835941329276518864575191871350816861222563193673386856894700534671793862221602560072220553962239095418152811760241767052307374455338954949800799286136763462164826848279303546307571402010733522432153696439482783818399050834241471288533255536185347455455042726818655085728513262802558267071069810669327198883197172076828922890912507986857253498265859921895225913468963210113104995074580329036351503661359451090394834453815401289467486951482930679923813422561338525966013377778184955889829090589435177312909030698871217176481107076368356583181979394344284492633098547358350050929532853520091622881533366517203391658298131306765185705233996306325693755660285382887593290190488502975697373476075191439729903008864997063951011221302479188518623055975478630859391395134978003401955818490857993639449678945740001241876183794289915223406262434849008916688875453109949551930862182429643083824452077873531733217877213851133270053322406092238989011845074784053138269518856280334312480286549997413872448640987209383825151993674960938540847693024823818680518356344519167688733455636186719245582325510201171542800317678816717214634760963625154817499274831508467375276688806058528351469041958501631439944155482438242454411812691283860568842192051019098586229260396287671658973517449944275110582543682709144061783127306730760772286567273228235376075062287892959782610622942812050667097032024397348763592510334178524769299285952937706519824417808331531326109622029093459635214447437254310522966612161457999093069167231932792884185006241245473528982391725831506920699880474277126759264437315662819758260538032294176974036534387755457753188276730209839297903803326460950075414642500703715612902527643596724782378042113960799207228153683542585877380382228879737622867381414140363844430191242124113509895645606176313739718498772013112891061608972966288488933066590510074934821511632313025126183579512616251505994856049128782159653253274508653021536149121523320129476204140224526698052337947529641365636083879783764865012151624650287375601577867263032234222076229689123224333379921213464132403638958545010062136361164725991745691906605166583789944750193341308502321473995720405725858805187904306191234370885304854727938306413013279536939883471725600466178685269502969728139091641645936059973535308458090237972090047319733691990917241462907585215024770248322222831806630373674674887615188726408741074228324770694696864852901064328180027244978764662851835779977048649012476272083609800905734419784906449971347057417318126778945800656108928260673686780428547273062304252309143976022524627941497787308648137912877889384196027257270104790621889340880544027236628640308665746563905427729841671620395167060127647088756760282563943284810464341448501086896943046376257121441745738951829793654966912704332790721407621731976250392558513909126246248296161607540846941954447929984299208982948432572553502348291318069684002213233761617277410423133643614805290667887468071572500383715361379561819886103421469369202675917293522072114341174287529944008842829325671037949744104001433053752362905815535282510953755296505419312454399519899890969171694558915999046279547175567725319041184481161182203507486012251481255914423622266900490989473610290473462963691761358296382688491400530408220407693956217771036951830055817951998632589071699330892509776747587233153033584405623194916382150182076778581690373708144187394613935992787733328099413547499685414947542055746361301934480134333745831151363596044737319352855579570597303362308623290269863322788945152922612721586858980266518588430751087959074949019730704009350881843033804102596884366691635035991707825572893349353956756192122549914943813347248320881260484920672957232367272431605075311022540186998655739856812724256041568771354314405178158620608015174493053532640589572722523620124595401406137417006881136153440860554231772950086835997422389429707147204539919663187647995676272199539275120741826778038434466856057396917714806196456051413251721192674226564608743315606265123652490287095536198936359268423645997775538488719354922444721252145737832885969336838774484616480886204584862032286877343955104980476995987508426838596347412604293875570702723302426038711535285628980940945450343772875446286741457912203445108456991391608640191854367187853250757583890270070399689703057550028390932594144289637518693039555588446326356055580688899768516529725357417544387086212238619221139594467670554684787926735347965959431192297297591927881974201291954943404756498029893239658877293741261745185601883867044843970056670486599209186107055897297508358234864729436125377097137400099193191076153400045426294366183321184355260949837314464854108248427824735151162467280811017980510459065668489626690224848350994343694306682840060857168083456334846494525412384207402422700010590510445012446860879772440762508308311459536394069568849830967728595378753379213754028024858195916070321574087506102236516622107328800906511461351131338983679084941093267636649767701818416801748732752428611076244016722441823511274750484496961289695819589756958238088906533885236131088968628234465342242568990590173010797655081767420704501210233412524677021003327661360892018973998564731935522237713074664533943819733835561384762891178568245310208990871693974904429403122840433331719155338061148035120234963997712202750165324777368876336814873919831093752964860476897349432414257920489151509849555506084498369727249687641341741060889314863476298523406440425072496005668178991775950455471366732979009013099222524064887009398266871412715593451354410081208972675167557231624110002885585362355436122648208089858568669429408735017988762584197669549937224310065694690019220052797870498290830274393895964050531049650960317774409893808014387525204771995859215343208165087705218383716670446491931697567223619785891622133771309072820614534390341995847484284115813688214474084069135687018669889876482367228280326028276231347144148734197767005706961589832392571455975968094671945800039752786404375899175053593532793727550949635111117819778400542244682408147092446839114432233673216997990987138471841656473838401087336708750112689544888385173649332310525375882983766543178742892939434189595328091740639654748779995668627909203352710395490439786159388511626291282315736491318675200925855128953240921135163044679354833003120262704309847089203447011831477138001543736828798300799625801257113222336438412545751963614396714040536617429755158864984861886600254506864887761417940686030945603594320204068003610761889057829939891586265793728738909533264422094583046611653167100937021592347183729840096093160452597336152929180952149820926409072095164118966109606073007662729857824951420344230846770573886128734200816333432757500103657902235737883917439065983471193541400535486966173336019907389075083808810174050346566840646222830536038988948518764153497211410336402295682574659212974056256621115903316899479618671979629426657185866155057638529579895690824380619260010009535538037520647173539224247393644427259050390762875174488613509001644052375809774677949769836430174128353658434216500186876099758960629240826266420580968050641027658861701376363752378220885926164345707733769427579795607149602429540467231959347772729834606206022954613608447877911532791154914625211201503706082584327900673665623523608293206973835417204860543170112764790842606348990860890150565978938208609547144717085784175398140563390039732487811204346755809679729357317896819498630273547574208414715996493956781830228434109268111009554114190078964954289761467389702386588548090632686659545186268689136095011600333020351843804975161641128791341188513599501807671643205827803896662289391933024548596307288398116772723388415573681877671115931146259071505811498443130784570812445702298211731765830439191954719410596653881275220026200615246485095746457136885983044212088367829043723276393119542603266801620219826305271478526392416850069322796670130564166608367783587849370902990876251054485556910104286336989599579970099174587126059461421084448857554366946726298030435638196001588945183889947295804828039175512336431510038475945156131724198483980084457219277832623034346326231365178489393244803460334711045341342573972256094480465768089600300908299322984969769277222754592471209974970159437902940534687825837341418120424355940929971135779514909095453736211870777992679799768266724684094671791162183459469249009162996153836695138448948950608193430871318024723404889734193388712635621164116442420341886004060928173828113666577604981479109889014051724514933655907042133785206035951033100428357533814531843129212270312013982965368487620577471362558113218253793084993535594966866186994414035634877002481703464935362018677035640872118611947719424886184937305858987049986543489124327274705170556931278911610511892541648582333247617645933274069631104075789699078702219732728862598757296472261559022175466506453389182475849907575825308203083024814569074478657959698358851791787499998222859515318306584270542792472337585531439260561246586243931857901397992319316557921579015576452396747754245985394614901363391894718571106098962856737073297603480725063411577076606058032620049070964132307355472831872556697377498060702764331820790871370174700810261381761536751770977691642793810421263911033014763318686814101919376483749020460608234003571924132411506587957186287368974015058295338227802133760419499285880050703792514841751168303363689899107029590074971671517132436432921305422936440467425909251258643236388603891264247605166981498423166740717914120816884449777231937043768801025116549893877023939305097961083429926840651813369444348347647551186760022974284754314214707560120791465667498435126091113398757117733866766055098829883637612797209361140397214764083481336094879881296747959184224476605586855102046010521795431475073855258504338101914479245480844453813761761983722417431369814346356705871804918231130870278248404000296248551746470196385623415535373190771473813456683167506644288984451437967083481797596331043453398389767478661222563671809203442039407476160049751143915480352870789005911487943390030167310197491471220046651377780344280729030440113854456446452159322358516905360165521816070506330355205008297261586869588344497753701942004131571705354096264335646780703368374528398772861044205953554453453074049307903676342625041759560318844744470468855617347845618495554852430966334032547708803814637437254583804231336107518963548669398679939599719520309421505667809775461203505312377575726247861689845772914960010798561059808762747678583920257771255649165757293102364180730114007934321885507155491461811555796195433896349683779633915908093803067509880889319155308941926845624391821151190767951767863166197229629952474853862838862104922589478319672227299904196205856251960542470109587452799416924742868154158405733560037301793740080311677095161060077016146097269286596824465567752975217294524476040130993249512462672996866014658728516891826345166062958123575602235511933123114856601451375842844007556779232798780645325770665512285155694057094607701472121801645206997339246625801974210941190621496385884643138862356546807466066414957458313024869731427454546831699516263172150608469069331366743988528293606639416548162330163138971289603112394628267225704665935343464915829458576951198305928723788285799410711237684592462276244989204822775821118440551483448542368629491011072489038838686597187299336178406696062430555851910319423045123138506989144918443322936526810261134336800192187169923527057695514668924362206263601364955157615291918740617678846152876855557247419481297206428383049050845728455839221712744549672685467857474597665389526934371547670470673295030870732470810847938410711958683557520212848351480628350493348016910265193657087169351746435510163374080325884029048900549665364535342913950156344561565524206054488146775401791118875147952307555973753693530065556266872773289197674692080827803111569140657631445355169722510400166578426446019605797904902499519078379581217394376363533474802935416116404718493044532585233874364038993931645657670740752270778665505783650469323936619845795886075865994558336786582338930447478438328389626377327396079636804896787182947701194931724840097522071497934998633620631628890249278889721988630832523495820903831412180530441358970657803086967203792184334692149612475939770740090707842606065125974295930339632348288670893717720992204003932952997780831835269122138897038736271806294892413421646906888191828694617771239736867338108892063814638264296582708500822732787218112266619288498869222115708412740300461690955248819501164959977645131395595292666801703794418779693658557431413159172375003702270355151589606049379158708330661385065488585344207602177269619847223971296071113716675422226352694768381738025476571668527552714367145043305387742921116803989751642310832884048504087611804910234605441482047352288569008494184734861936490244275620043224836120779135794702546814462287097584597856851116780308582873206060031038449413529954905341041922669892974806684010539631477451826838674970557358599916669364153866042234560074712026058001894555060491824999322016715533966094726260206928172626642338872265349168516399166529147140806457839401244217355024365893201281892049136199344283120299029735839748834637362627779951043256261567103802200414154640789958010572886288463452501901822544009336342741395717132289392127680944731806496147406528249811024456076894446996115571181674162259566161291581392209388021917064924998954782278618342800431889717627754428996986355171876680801996603582643966163478574398940035848664059940655292071837616559167870333914285696109819084356990674011150899212363356848080597152321936658896981382709177207137245222662027165210236282103028701675844285330807695464952297185587910810246933814651777867729456485945461524198374894724233239797416838750179309857402462768963858820938231997127357699056337430438533352206131087852051577190528157533911341771815421434934964088878398289445034319201352978880837137659751912245740946475693924019231521404431321968046307032521952920446006201177146288628319581864059513568393527388539255198126333932040065619790112315641426407851013725080809044877024270364054675840847722470411197149713058210521735528183948703643053839573252975979988749289971201916699325569258847535325303699331623441415476446678868308151653160562268241780198068193436199239602401046583319584217613568474911226689690084359215216245545217010268662388123908198521804553328181811506108016283596072730576535065013910352342387597925548872668258695384889421122338668219860880634869255687587265639455907710929821409385993419051477612702451086342126259933170791479820781008076149544417299550940752260897556813930097544177848923797748398262814664349272219558259550026594280273081648427060720969713571873534657407594960864926436019090234598645582282068884940161425266323703449715578380028515780450055814104122547735065729046786043189374782307793866088716627492047134519483499655039497038788210254273296656279466343634099616106816907852977231740749148362016332698314842060715732900854153829740073606192480407283209678803912016377637619878447962800509307921474326305534339322136728934482008579565268256326700354718840290474283967184090179791822668404521750010658112031572389652044576333958522765693171305660316475599345440877747879419368273510433903887227708336710766881383824256753717683941793590877806458363041216132648973778616102688001223774072137724055914177861478321434308186357739969203480181267318468254472679811715933682170413006271971722973083226079953187778615678662565404851778901346015342659966040639466048073482473590833050681439812036256552359217776583501878887734908536920263283264668419704835204979683654838582075611159422980573857394898820348106080367981727168590294401998556315299623442764377451180539631784052418845189382527906982375013157994655723204261455576802246649804783555813325632919018837224004798574897721653844647827236716740125925524237521426425084995643123912658691465537802065670174407057323145901140622881453772335831291592753042957638504106990276155671594665648279037358191251515850286664317376459556466141045403756638394949310807461805707349032778749367941962326998846051836012313540488122513612566054181026947119345640762203431855798312234086650683591538360890181053383636901888876471288209045123829403042557438816876203840680485810965374502326922587307680164396785607050629579346906490651215195016659252759969109778249159600439968781926769385864768978395386565264208200880422583870908990032378491643230021103688988928804638218484796474655910215256709251365711219249148138516379168355227249000308460992970230099042033782079093446090834143523355463342389637123967711621119748686585437879655073520778115308725670433006549710460120875542292204475898622392483253273200074952687487027105757634233965062640597692673231229322421993871643392003827781275874721856852696886730804890641415681947418172726706418240458485398589747771574354331215031613362729979653768450614544627063203119947872713640365676496285425232864917920507127461116920695081219448845419444771207400348304364522979683440167756031898486864489901796575648177525414378852984661743239898163800612353333455824547118756207043317290647746313149872045602690104700764044879172766804433302217116026080282468293817715898178459813599413595350288378097297874783192674421314142522738320452726893488661367742161716730998700869364394102228097356635941701951536917432812811502662537185512428154994672407837143952312931576535601510250640191846343635772300982613907343127278683538305230469198668463926124457446734950195300855400251515979111825607724463695471562785767925186145245053224945808651153514406532504748078545245905159119533194197000255037642192294303097775950657207508725899456347111714464313471010624048226970443691389522933400221218338090233417007920578783269727436863043529214182997922571339748383927830882016977273237651823003433566640263971255324626830655594522522666762736144063627619629676088757859938856174281177654263626477512668618668806376809009768057488403505028010351197208051478120422785414979711616673352218648356089973845099453778204884834534446225142657384785759495733304751506855409784919504861180825328809060473572508275509580813820743392025648064461774733119232142417527112795509310373881954305258427582671647126462137120297738874132074340445685333423257790561094021143486898178597035027994764335175419092278206502565503281625145598769480099459782830047106941071458898985226122530819764029412649851440126221362304989883285871139479306396757364222161194887170723560695884480352125039663949606423942146017402447083770580388932668245374302290134597805464079286100344073734365017509993787976953222501159704892755614681148414408152542770215375839324725410122310163735379486268532866011151439303215128953291748599809495742830895660133762551976449386367206013619345989868892390678604310667565821512426052317090488020115989917977931631388031047892015438784595396483534465226284999230732387672978945683719909680661403202817205980608490039597332526735347613890186831182303899366776813044921366248374599841413553542287185436875232385075307285510510283020453125245724542690006702874717240525244937218034379080355903972717494105713864583051802421089901143679159986347665820891191894943168439531412143093756496143786106207556953616780358222391518758323071916257112142225574106739393371267728024655044713473461273628092728973909597125421253697546958575137849887865903013385281212271494367481975415872240850570140491861327365345172819387572363283559679384979356319890167988874905929806430950516211670449879916879075514170570714872283045989728835309686258614285744956614270501045792618073982496647898472458075994429883917851565224416602614733296151560516695808218627185188590906338003093337829673147279923563945840805848018097477275774362758213357756799804320581469382025760859412133695801069008308905316649628669059777938038554058377892152707708596204260188473629283153224471457515344047924339655006382400161810799997261339218133088526873141022142547234371369400094313758896684170419138305156064977729024054186358390608205500318272547082307186491895652322697858993336546987097220492967501067353080915619912368611621810227532585741943934444181451866890257288785178414632684375062004757672243790610108166374796407431059314310454080140330333739458443179322459497394441723482197953589429459266575945737900043615402666431733433125944372281364408277061104121817916853019911955056838383394836330098521370590946123065672703900960701174498325809471568603389793297026102273631792878068668910374086822808111874651372148551150929834878930962837174607993025676707714819431610541311407846342335019246446998407672271205426278209195706834448861385176758456731526308287125661061290535884444411267647750239612367036156245936987563514574429241046256508030853663004268810700570340514569078426582108372105103635910003276232449563394974488483204768151817401767388084893832009703368846861479054254869657574404433658049041568048105343557346310526588423406109287894605323641149485681917369814288529498858738662671401524467563349169899099262433071528948991989248690813099839213759842216741965822438401803892653730067182722316229591145801278384934975001521104331265367916308941102073966899138809565014610794111263918981016724938294514518116798191920910788462037074081911399935883827792099244910033382740621341731289111967671549716343272408583714355727709848973581153570684849886009368147743773457933672769236393494741696948917944684911090003739585908190844715745458493199011257092132812785457893272148058874081799093472708418418159655038161235085858735478722087175665682736714229267493989557460403750863531696038437385933937148538741695739723408580160159049562573705231592705017138558542974068874714695613518221989515428992938277079306202066634071803121527258073135271789109844439964578937768830210696373148563163500404732201096052165180635387774662870365984769551141950938983558170205558006592265934844732895088235648757182294872105598367912663716462660899023821902957571723477384543395914776878209101543712366384045288324958791890293187548117550904479717557296022182011831153314848890871613089429705932375814434423234755589550036937175476288464010568511348096254176057410935536222842109216213258510933598296301583785169100666217033142086622271565319104375639363505239335137845084600819005775003067857972859283807495756943512355641582504164650731832900120104373121333101296145859456521494587997741739549879701353824384792395632255462746559644048862378880887251095320290187971676093406290826622821741415609873941330679727411398461780921514106558312558067270784370431752248604968608688466286431984318545403584887928099488793799745604746658636420138422825123222392762119524528425614326600855889242951466499651617691670292201608807341197940604431618852561105001911271051643424357731269208726760161182952401001294892102763749406893265874183629241965095866358140395773625817614711920270581558557888867351228578483214844764567500460841693414446002973496414707061022287515403356578968208702681902088153737948773379458113916040968852483707448484508535994867542743481083196634922858621037417877287171841293800285574793052584340256130863518700078957956582009426795731353917046886974352631012213039338218676044429194132510983311597963752600856503805988241705640762146813248074584449416095899403245463926335640143175942152772645185184106873624140155650165007938298720842819992632424076941927972219989744470830211299387821350074725622504768460026753410591473790042078073790247469237694549694944356155565061910590608446523702388263464482455725284142395455364874290709068324394727857423147580308014951536726248004319326582299789288456684632488431951716032965778643388623622152249185641106159314344573745802029698486301942031690077076944543976894162194668161409476496791906274747556638905769511673639764767004483618858644444611269842984685564773673251666117232682860880060852902555013603322210456044208976066417324636587886873645347104917015126594907403436543988631880665457107875083325278595909876708459666941527943346709447899698252409683309193957222865439985043254617021675553431537908510535588760852614611919384150704701207206768399839228167219842279544056017096369300077575595717332837367592681972128115087716440597439885603082102996500366906015824121079162768740657767506269199279645567887058788285340513468774254042358680297674457167674309744016849046227762149179611159447595230303370168951702474203313654335569504356384276788807110697833784206531417946272464278066342660694411512843257011869893770640128274461600017391967523162135401446218244946587605394632695046679054817299917309705078825055878462414208773063247088858949339172311822049604049051677953062257077152240737618976010461176354415251655521191401839686449016196073272089261400439547646721922454931104854142377856318097356707147457849367767765028132849577360589572923080974284450208148066907623519384587204721424427983218476695713588352254984821794429619909183208050854754692959300686595685320856866078519085414933862229887114287414458445000961716223565769665790358786612925238982186977494275156838326853768020591983924493968714650088736757626161281755758536803953297025426942872304416795962321608134227815639978470698525098634602033769317263570558929216517356948238717775379156395703705208290893588630127991813291887127689892718473671457044057107185870420611761192722396601184088793670713939914408556469181078993423446669761568695682184426264387708032869800729368755616685697089038330849889680283064613043728811162293593392254507538929249215454060112775009894891149749942924012124067076081059864001773757499502459024728247545099608038032493332115938847385247091867586301041802155199758386900796592287473198347305216052873036637803709771106552166613581085669790345387306210145454344619549944376796674490888994993756599288982980212273663293729095248508288197492867353053369129718442716382500710756930644816081118527708588879234361732024081231040304879286900571282708575175628097087547460093658561220779767294037613488888328903920180815728200522452522396810302943801315143864243982195093752888192023741652780109352174605632958000411869990736508427930611246822990883919396827313356137560199943802895868513834210967718664452339400615342847068987747083074463272098937494394046903408081715059534276024647128250756622215132906801709763294959363618483840699059754947301930903172384921714433102429504082588945110313701126893085760835260844553977557975570437554716492546321204438956795659237592133297637070675902255788731713624067239562443448941212479865783091869077591436571785447205216997187697341364023125383324148044975990775416319535647953288635675528344600966700979453667534386557565974630233758580919198227371115992289455517450872017223615278459039290203777817666217658176734924460641229173477085948313372570128281364725757055672269093059871564233486337130955010035777248431787329494094123756003983992814023142921966819976535772077954231962380644475784069886337258443975009773058578490439045745023931472971713507198223682488768061938997767928451529496237950355481604523161863263418129458465474680065542976359877008754566661852508185678375196308293643666632717789864988885937549667371070959165078493875627684074771386360579074134630979712718895801268594970014500425411765804132000515034750903862162276845222714424738095966055397444091797171421592199422454763870207973533928550381268902761890185434192926697427095913396589665463212273858436470691168846169710872043262190545155640979955348502281522804737564492218520143839499905622648965481869384587213168242917933594389064180500295602404374095754878259251639670756598467193336532587352253862104960059212605058841299323010658929084711544472983683825781911837275537722903107283417421534547173386601826970478052293815330252825018228608520689229649896369258129843347438423817295280330819040140379847685554786774460182737396322269736221958891255136447047468714961178792192717751227459307089846435578711513064463498126877484429615554524773661321576402346256215206674986187326433907084276592071452439916770262223056440088284665427779020320288768317991040892037683948262148149015186553609231380690276611521334085035218354160797944287158879720092053530310406580576268559142716739405580275737793734065888101631517083823183381524775605718619188436448999918797575774209460912044921591841364906048768920198694772681404203424999510660556787105398855702812981384882965573874140046088539545306970327066770337633658703178902367947337097375055271383419476799854748519627628390228460401457111420413609952457800729110245808095412536073009044313138895519606015769753169745221565632392546540938939588452221802891879427163241861309948641480106303434841872492558906846777363469429138164990233234468741002734381744675431000650438533931894161932903904288688719988880639276619378302275057728106775957087193224213458297336320800144875680905180662404758526632748165037429650499149204058308726236125517771839426109735869457424198888508637481215754105807629196067905997675562466278569395079478386027481691437231367917988904896214557968401513528128988691418512211816080852746886540375215179875889746021218632620829800260708797598068977317665890587547049010691908520644989549883162300636594229697975741234123695679930727814419802173920769354371250217669173583490767774586752241047137101640746325655481879103456629249576928322142848065398406126000136420604883944635126536638351037002405157074034380217493782760469643229444356187385424142465456245911357692980613183016725496041020330598849052180241197378027626438451529454138333122086694561043723248755656218422816373505456579516248754654994349359847075346461145872811070304489684946023448651082096616981255946961934441022564716488996693725863277857192270021888661769018054302728521148705661394349808402411424210290578698627366269277098670308102847016624485244716528422585256522097749219381055394405291099065497393760769853466546987908416993332740153590493951339255115602932112810981127016917938831293737609150520484474990561042338554503950974367812486950539415038265867405305670920084391882187398637133987692670056302050520098052461601346440331132511158540999402664492639103880191641154396860743466292625819391865709902872015523340268359369164359300703876546567640361447136615620050366087640870215652638726517660287502132236500333330436741617311473058038668429096548566226890816332354179221064252230364287400671275119815104699226613393805981019327549800040925240395724307730447207224496945857690630723134206440005385517198244487248746739565764855847004354917580403281755093781949843720177599640102200157024235775343933059568701672151909048741637995167789841665527536200905242028388088458280868451092501626488847358893563927290025639155864234510683236903243948405657478433866535644937233058307242840954999747051934112184285932647819921921156853295771153687301275591773464233421035275600491567301104520819620841288448302754765553768892958070459657011781223474537951688212604311942194504974338021080838879826449296415395584635329642830023691760534151254829893067890946674011756194157035523044209188478610060542975110250015688662683833821331042556947264011542282598128458077785704571167187607676462354579514175222083596910812530845875895408413648622001621206863775779268391235896421233743790142661934096238461126341648565304011756897699206268376209497139830279388422514061343200902333776409888762281144807972390806094156182130691092483957057310311142746986608059000333877920925995495250698371117611308064173039928753758055053690391885407852733318941918109035225732941964046248913398136651131382180539264035863133357832336112917264369846737312047373471326399671752808861687318575868721919085344445872050527297624850337266453697398237783400920340448436023685659150756123690875253603502032074064497884757293092698892992815555852498715466910141310029913835711172129123827217588193308148238612102142592345410029050638529955735310201480392948827658263075944952546764744841117376924040018075081623742878580023097179434089647909725042548929332723083959641854157965008521490363833632566425886118297146465026742952736358931016245397066726104261438445130557999677162294982138144237809094893438954333777486281555960447886024469807125766687623651209400291242513484320783209104091932229816574507490417228898403440573473981654650196714905497559290443885281633841546208196042912310058976316159441879187603095420175833838256533741641921357679562816947729397855036666193433270934681305004675950675363983492863076683260494318066841802197554857466753922395719085317570130331298446131571008432329059523804754670640744807890996256430150178306161917941234631186632600138883488815855158798504185642729855698868054683129205932321126690471917921544131093622946443061307114401764560202543879723779793155735486619707012895445461081702055047237290811998851107477533081338692052849094253094129336078318284606984977998668761367970824456581058098011231282706904017437817531677043415059513405342274370094925972722449317568822628087383652353973742354207356704235812292448446432258423133579263590497940230033336845621675437601352963424211271286041552403807944629020376292177868531769456703396875427714338403203201296613383492504033889460007883323279436559365884335662884282243101206740073968322117574027107292699544679391267830860454206829951844084291688970305073218685038028824603515026176243368649860460366808134710248623151029528852461228929647297857822851163543571579215944559610360984043977453780678874939413244702111999952006658934544664297392302451353620862330968136586810241912506556835505133542347767002469348848628917255348677514507195449544220418552173879810404027701277298933243945751020825240479901417402761283331078116210736157388067153800278250214616066901737186101370802591688271602113195935315154873324974768719300385255022299815396725499141408249658520668963447578862695887248136109851548430134245494262128248364924069071350626398624377539000018553350460072687686215980118044316821689855835574775084040118561822390935998052989647986497138491073129755604968103646144207341925204306870580893927520316407290413154641076132732912037115753564043588052111205853403296590294402977798896037081354884711411970627554930852251356069649897297923713486235491473293440332592914010542502789190764688653259036955215618489709891416092083794647165497666284743489400863532412477608339553571877106441129762550961453707235021803765520860285080810579838305676042000892489161012995406502834309512584976709018120700849025563903263494997877007501595556008400591025142053300126358879029695385894442508384789243205107920606407181048010107656613126823757110109701655983929676464967465861052648050536806561457444394920000917905735528930258897964111910114756331605005170023962895959691653907536399568314634823147756866344755462960428424737540492107148597470885413483069690291213826124198090396961907920842191813080025602260843856291740232565100840524564302163626587415975584153038379873277290381188682256682518434015421703941035163757618499506853508608120345512511594090121214952892205837793821782007207558047171308278379850337484503527606695512810716877319816834258126048971957842979403907006958101965068168644504499977497248414537918825728132366578873587507263359447720947872610792408483912141953533493665697853767901448716194096209677864965971143528682247348404928591086933026067019234338191348434218661246559022733915410013111193406854153424431461627639170420783157399192988562108987480568121716114768652787407326465639117976044059137516092033763420604820011766559253456334396027766722266623432541086730028837986181364876122184555406978646416032695641297024646493706729724304815263403514640990803538168865449929672311341115402674283767972939864012081537920603427296103670628843910443396439802819013649243706902303910634242874609595107622078722281972428658382540404018179498156936086124039396247776880615850980050992781969985030602059234006831232333481825402222132949383854479275811342362493234700199309972248869340420694814167987525819660848291906231675343870309348794557361208408861326396598969734098019244362822338237575507493840424618149776076629869854774401384165362049355113329847121529899102188788060919954725693503797914160503537112380666754695612924774028188565712301001608636086479881662312388875248483643447155691787503301660148529602159021368958906943553895687700980852919262716707345849224580398886894488931096327139149113617322777795493702418398073985563992561613775362998298811736308956038413768073931387147789568567879790652040160088095234829705322853416374217141166664304264076311472230887253142179440608298841867866031215586119770950436597420374209789263351819037465980190594788360307185373601135939031305078749652537225062940146878233790098460631617123866846044362718804217622865102465133663314593688574440604529960210050816845391350480370277218065450291040200760281731275214636177700059497778464916629041179946233929109433310065460288763308289779512845588019588205207324357291052302784860169606131622094709220591274973154812027283561459524999670017741106394842596029740609271626616202407933112207480705439853941355627093534475403669531412148847181152662945259171788155546471568264885945619615093794556610484126204211621665885661204699908068845222693453073475227677787666656556814973301790000112070000330872952648672759213027042502296052461687769167250738384554577173579559906203094239350164063720474492071586606237453829523718529624068648586874633126822325446802621693229886276299909335085016736695865700340454692359754412182494314403696588054604947566123092801252681642499394887158981337463608495584956245289840585721828277150750980353306658661292863969644050523590062707748088278432844602583346742874455598092287621637096585632566525993466546406643955919506267277649957667996071426769422459973979170208504495589539828202702175700714200718129312965124639966169553458108639264617953939866430334702250585118727256623768893755574295493178351895624464904002546631903438907797383063275785744364971238856144641680400458149672806232411571057984631201235202089029350708082507346946355025452468341966751399948054490581898028229147662080181899103455242487808894229265514524424816576224275107003580526158708460511693337209158967531398711022947129718062411504986803004451025916881112743682339334665364358944030139148666776923881000623052914297899437286773283938957566481766773287754169435817557253815669485876531119515187438560208340373578330515005284669280248058567300984474011420297305326447501917741142140227450402400706517043400035238862734353855358782149590853408932983777149139189354998514039204789356847978715699352194830571148317836755869548791359240890261904004504552587739986964052419905802339943886857700350790437950819011138405491163440409465207551679822352516014959137674537228279543565122197933469363210151172457561711343628201876794000811450504816677853674949529002538898422335480014343673503596963587497951108564782811532893645329907198134692301764157167010635749066845216430612035820514660591581819575944319312316738685438235512811709242381705750894161626794895900891994851406537799492889926537065299768627771515016944246593331352517663889674602600703798929666560511049488992532396897446630636998830722429201694099455960221660428598588845894507988628310422475702915016082205655228554798139638841397048807154053953898777054074158735408001498776587356064318665986208715711286623612297569298994213594421919844906324711610629681895844706559619596136839606524758856957267811720314961052121110944247940070044744857095106628243208624289133357547203169722596811287911085963755000124325103592574941852386111055984216061316443121158421440285270989242938739720219719028184039301841772630330249108780211568645359676858438376205784861245116810422883550441429296963513125429522077994087506263270541688914771928789799183902272949919445489155630112396548254249092817243446471769368744943042122142442860627832178534115721438008537783041695988657971733770751738925716507081589625063169827477158005509428495522361946892256479651257888955461459883981712850639092323673874736355860892812030018716264805924838132128768505633970296238678006233077711033175953290083032412191662430250703063541444976623554650723717272286618926443645410251456210294248686423632878076716179507196912969817130162383682295830686666073826753781118793171913308317233679514225265333272774669698648505912543254858151110209395392728642097469897065075671525613507492927687050352507953299412365703532635997199318894713645664085616196413876543719901250869724676919420433181274935215776717903544409160511107298030704076035087961011398444039431794813797221933987627984071432499858984328560081837359107441762576617264327256098340864154687172521311370791412508755471197023945349088872109398423058786224916951888161879652715802171635204588312111503406440814157674771937511476002540847857376764705271258142379278307272794511489452805213702180310520491660024096863728006141268271990495612500230732582012521452125305933291609130436015653385917209060764945236875228171016091709734498759417068923776882640683295112892151645336911956718509947105022438863678697974756940046561157828571161095863157861421763361071128609415564799979803268285868273049019160237910385655446593881691896641709172551723831179264041527305714171758855600401489684076910793932281566799786456471020521098972288591992875281644398012717736317614588605817938016554174071742322045671338773142380103614640719218214920712316918720032420804145213397190312947296869540473925765496466186989607037640419712634042014805797501597853334671073408844428258526828045779085879101200060480060365724852999699070632634845186799899349838628578900718128918372587169272060697729440161715386804250192788153443774557416497859643766808626072571151376788586319800102637681890104003984615269214911006199883687815195199102144718765568469080683142648919464222683596625574468015907593963039261280331053189555087396526926571330409701331535794410171650201933341051305627557988196350232948305672683932869713287259230369330730912924467464247512534276451667309120737386338754990660040776484137101235786258370198398945562884092703009865032395395723913031632230517536900684644943863217879151105817868311179327316274233587754180892648772951414267789525033050761448471463996943136579418836506123429865573046740885815996113583547243038569763352845131839328204435121286572309793834605738656597007971114793764873440364716878587592725438175987005026789809828416068533852536485462734301666845905751680670166811972256882218481169395973803286828967984799026463077602617719816021345271309646991375678878735037579870110159543673142084280501975627879714184350600143937957953878395788966188766208587242411564571353161055717564920701658999218978807387754058691196068384145584569326366438533967671303547788324510886847938582005762628598975904209189000331754844002277262744586407902537728565626987239840110094300947792572455445318364511451942509569098126809798834709053615831755115369992307693552567596596276367917061651480590385414370693597020818022214834580226932926153757836405901229733809654315408279727353237541035450704906732752606840761077205322982161511854154597639465260534646788380854101937625295934733924350035232513635445043761420268609719966494067950767169642543553820398104897057888388423576331227112490419240170000526347962968402535834226588676528907042430528831278348711889774389773163606662473054864544126663588264734804351377877586158716725935355360993134533526340964550893831553356208542578081417081189202923511592129845152219575766225873094787081161485978421395454591781098336191160431343623596747840244251931286888931248522842140117002241924811482161498034830739266189654043902151432984712700008650455242301084736903009313953129136164744144986066774496572665678833187845446704722440819910829057438760565651842028734528929292787380430795078723610968836727031591788097978464226742608871365441913920080880870359035406943782577918178809065839855441655548088884810674567729293187550718222045305714526242611749407391259443881170638454006175783498173133047407839739619803860411157377718407442154387336856916826415693316431029655515273005067327337888410962318398026898747438962758577313501634329478579764327186724091337904387218959544725575703960668431759779092337927338133832438182833508072162641132933582542781106434956026227445742786262153033867205651517936821231513151066636212466149425123801274821468762054739183160063398483035688398719301089278323064072193935994570509086949482797933956576366723439779096443140621065077619372261965212684711929090603697798199458778873258101610289998789562705661396441033226961144947215399891145164551229034678340304507833245644699394754458828768412136982827591525507334754991570029207813067432093963776098557456627584461871937940734633709888943600516856505411648060120455222095945653856342410925859019932240067921593349342551499390516077959938468224039295940635425450821744578094669395530923382241098674782401552588927389082311169670667860999819798956051166804883233438502566402991135294176206504277697285415650582442405758430959102864168229527528756169244127237426597650073424061112999101614422672848788330323544764887567396027319983472106318940578217872732759186245998766304023489736963045919316485453534439208327638286500713191487664402601231655772016327324440969170092205728378898656072274364863130659409446695043559323910033141157822522561936441183463254790762509788778136993839538771671740408888579367661352909595781673534234097429933292390640155570452215929877886881080927920491963749633902685621345536390218041540011165016534195807251699338984816505672794011949376090722534390301485803311633021166946590655488264841829724090748533078677860447138475169376542491160835976078297204376767990698428711602571994173347011765633088493391170225091877921002301081954647631246427016928534158727337786354183855940185761254196693373288496940631704166545025801857989653546893478352339472689097562635318829867952565902395671619781541759321770371223881795776679773311712569909274618115935307754953881579919802511647566663611152589740132947057984158771152159244677939986825361025787703162667539185451107528394432206089900545694343772284359758816080965627780201017675625117477773827240557482523587720647658829623267540693716702343398835235272498744965341133349416018247238556707799018877947155385136443928963343425904148115907022080405134488925977250198186870568021712505837661527456409276331929198739591074363381073139417928271812308274753345557544966888860281623840748404055949793489032417938307051979689638862408788348522181705179271366837020453675718658511558678659309910026019786691842930543678848294025880237586500362988154499556796969333618439509251473006870533137359709206701658968934795114279024242788774374351823530787142697065748169077649465436701264295089489011776935266865058145363960099762564006676163547950221939085205308527748591109590475899037868099955615406997973380417353747417260239913653099925598480143232508941598664545404619851163252229327741128347919180930842648096591565668802291134929152261829559014433398529719503575410821086587063558858311022053290644974529426660024888072097163939291481234589959280669616129422575613994124857425128297487467092859311150352332552806343261494977541061893665405120997986344300850757447981886205434486919106578096819955191934020872439796143756226499216998109777701849474215096567519018635501503099338700996226923057118137272228553911967236612831654800414218800982948152897747481029550199026356177345919901234972415853653056819120553466138087999326155725364688100544949465684237550656442229602432149662810737239516819056567391273288649057164466933086526831688699002660408992307750035442536812187465291741714129544108959016840642922336851400559034797414454315153495297822052721768292585641967029558528959554436812440234449228929784288199363965912839535519682538671838906163499466545885561567742435342702779701541141849708662864665077613434869347559292993918142937373310401955429210136848077967771460939413096619034928686707942762066011334351478172705700591824238608736140036478142605005618704630265170544128193520275687273538080437384120397521346976739067654623494285458571954345070000563146814412031364186741002561180027920292533967874719940725150123608702480054225086258810936277014832381999323714634667813973292631063980238754311893967185221818464839963707402006986248229358573090108960147080016875559920123737660435392233787522405071454348806163520735318679978350222399014026076440178575532283879234230361608138746652252287459083072882771201416977909457875249167671137169489322449579396809871454360119092926865979121007542045655413745722420668881091172129397026027693217779347599554296060601577177517699872610391062630831019705044073151832166066417664612406662938375938817909087117035182231007076413949516098487103174560850377283121582088752774456641574139991236165040141125950575279516510980508347888473497538568731766370294753144108841710890035504929713700096345985186219233816683141461598644774449892165530212714780161497273321838436712511538506514591386281633514782433426998599467342926950327664491287975260190793589183455690038739343796100198463091542853587916313477013536052824656611053795577736367255967612304943619585056079223699977002626449647428247818232652844552730962409528147432447339851624930379880927585609065022059642944107201911190335721192279558658430556261408390950352794741304564500260167375146299155592920107147413670321130521200147978258399677528836919813740500941335930564598912852821892193401088497644143279048899459922881838107232357552285236633781355262494431799619311135884982643612443955625687583765703312768533933355993172973998313743299115893212325459385208079405377378147375790204209980014910158738964797297023531988418054523931870857487060775070383634077014137089870226406032716010637118144564580724485423721159665999949015685509706581087673090450246081684901395591138455642274656743200361674503284721889464796429056685796820586639601515681807521466950892482493543239654500730481326405992655214036946923145872466928425587475968040403851801275203167404327760817015650131462225361467576125283011444110966719578185970635900080110482554017973513647003159766272889129513464140941767390485875759452075825259562416908561307895269612190725915384728823348507399256310528992936414144196979862849601222008416828208077546884400927070562980409534492883826157411987170860632130436838301907703994967994418097203812534351354872982495140355976798896002704416374915300002691089545911096722824785084144825111657896996497433799484324595443988494533287931420424614345970308812637656782378892473667816690531253482728326320101759129903154671771078332666124627987860601134837970260274734114782907662354595779139509884741146771524702504292873928388046139720097527044250263447207983854453177674590716425427029943925986953083726940222272232851604099968188777213217909005807967646997452426916822170200875015883910585617124744504154938259615667083603453968255017350692428651615869778147936133318589201965025825715793642213707722255102364487902406273466857052969042529048183417810872883831033011246728521897632303630234500371313859883670246608905104989302311690510412760363927381514313492499150648036604202855488751195710400583409080070577023660357812580608610370346327550719411009286534105415184491538638673531217604259852750747257420501454219708343216235690175509270635577206976886113820840288028671132164671486268902149269724861046313733941990271610342186676947409082631951127871170768874827276361385286014586678551673034879874711222275245457735137982602801246310461640135668057760753034424560410673124446774699379970112030125978073742239873850316247354737828935727611321471812878576038936576383137155887565671660673033979877928598479592391317127693425587120592555845488357745704059630346937886980906026896630987263712785074609383476642024597211215180851824034157321228287687753128039473509135338921540215474758039089952283852784203930946820580734108897624058568880432383406025624613370333620148824875444361032983465914735059762010950511083004530797394999887833011778513005727224555012552932215868296597296337583377437870128121727953781234300417369858567233147739638929554631494583603417464132555137729573169267367623382265089758510207386310857470274794267300177422427545459533615579046865882987004172130391546172100313929115789526597344223998255758265449694541032563263224642707868902153703122804423469279318328588497350167968735913003177568604652765311754324606599321000559974909992864911392707976765117675436566696248531032824776839427833119441241459110980704498210185549003772260074709209673462825161386341021436155870657485853772013514645606015418151837299021967404122142952658767669731264520143173150374437906944279333157040419799246508400654601726272559294482619861082813223781579130663148997248727253772218962781947905580348110420490345999486439001496119590763137795937902662105839490638918907987869910802763052355783660634422152447054006359805634722493443187458969100365560629516750912657730261236821394563768822937440460322982473365588295010497119796878120604434619139865168383604269916830228130622429902764716882690334778212163107630926704436138053963644667802142473086522761309011060870601698950139599756733310051776671924511525186383318923677889747283069286526395460995340849196408227123020980431320556850771581373953895427327568474370986184754732639150837405245981828099833021842355678496903699848179961624386571449217348193669856043648872066275166888759086274322068898506419752779318227844982348817490351431506537766611903117673099470952436393491951830058599236052447075187355391926957852520856968678960960563166326677182291013801031001320481773588554349707172048640564978297000588897058977733322948529142516320814587857356226124771750483364955196295679506155624492695567416083267401068387869017584205753306916431385250712805623862317669729566634297763206679133471077178346261917425270384276856429432505788714546595645907405834778119599314961828627627799147762702271576806853957158464402485026864051751177972804036519872724418971219143850702190371117457257829106964427727148522202954418960288101320512898714962039595244272799407484611750683315458270734664081211991041438489933011002181604165061019426853097340408904967661873043086981920465484791872344495486235265596038139189667338718978699748817073760373858372539466610926373358115819881456142871741957308839146377006094729837063511394539419512900331209670158918911713098840826488479372716751531087704309984388132510414226552676277031502068087284308828223354102283178439093499296850469600654353565804519907956582764325126235805086369811267383766793806796431989563652388765720385642939886936365092051501650151502472376851846302083037784337443441017210013734636971962855147273811713291206375173917080675757720576127930526365831514962496431482422955612824111021884104344227693614431213868294343759375111056867630289358785248044334281178185338362195338522411991314308890320526578609673888229118128396509716041481926884949216484435505309056008294839565776583667495706449350498090386827591316463125595699356518712386561642933987123352025225075510665337504394857470186582758114680040090691475846497613918918322141727292308543249539035086249483218580664256955397667471135481941001193034707355825973123153474137052068454278341765859341919412037861427920114016001352929255649648703252804878115368151182883380981338594951112562308914695969123991267289604728001899495115307129457150603798071474086040056660184900155022840737263639208224024770352713546550989244351686452320406440843991989437910839846819899631655078347500005707811130847085926406628250806754595334726344979599478002860862862247155992999803528406606859375205920310820860512959689758752235831824220931244641503672255369897062814629089775475471571738779298039417167945844792442662221920099018491913147140123673361330229671108908262586119446852603026315380935307729960475907294619412522310380579317667266896464147196361495002099444505171000631341931849771359906172872620475187774966938588103077565886700061237344565162052337922033720525541568226762592335910635894956436222201791718782577845976509341177706033948161391285542923961106259305138612768783457337366974179677000635095961806032052914056822821009250236758151324801309058412517383760886589727282958650378366691904401114687583896395689382588434839258453909704851224068164803813527289924314297816714412199385780334817124123008182556026066710008967188981600044470663713207635853049777889562030542023750923185435332802035411997327205244106215982251155829083508839164400676577865428774791687934103792009587861018803282683520448835848052073608677140473442319003794110970264761698535799142152852797049884048057174958038963307828025818509788457432463353848402686277611282489440805862684976160624788657330316846274105012619151259796227508962739649322935048139956540475281126914321833156418439293430411612476005723188726204008490162692073556016050719429408795486851518759081828841038910206458568066593860243044642425079648586390229403738783662037981425711642646276169991398565559590989168909664030929468906209434017435212330498440059828327587813815537039965784502064395271737769293290145046000342240112172555773408191920317133622244308300362699010669142977061511400468876503531027842523140474975822223164874750661876603136936538037340722756401141688556868729248076317177837743963711761616979180135390679492059574935294314104260102946020730163403313241839592737265076090087914580401278083344903832191151674376812854400822439841853086014217465987416421235085612327767027983550398718329605320943021400328661785738647275200102781002307953363130213149732482058858153261090134968074080508596409658519157612090454878996115590586798183593383610035338801158710301261088575390616758575316142184592494627732697175489933207261302145733812753989835227335022769924940673922150646377588591464660664623337672803696792421486428991619897594541300201838201104639804734153486784473352313336726128595794854003416250492267849748790766037340764343942332943887560933771181206004717230379432546449359528228561131377684714459485317436476131975906145335570752985236819380368953696659630906122182177197258718984588763520403705294006645346040582634225645824421735002119466638260387936873284342387505990111921185975931990062196137452307427134003246037541321548237834876637652956427202635764382941000419610730831297963341768084439476776006050464343489644507004709522807860619147012182919010880323516759185469884636516154631340742676216888142116024826275288197956637077224418224208312032524063857650318860831469077092032547058030581346401492994824069328128713761162133874179289483584710510851010083353673652664358846729516352418269965991876043742802510038744677616086355637082610400648390032993433598506228790822119847565626331705857071278269949593687449323917079957184657253968848642486954337787991908620951886958792048485234158508417390102885484255529162774079927232001226523315160995499367537909756770040000229661589202576194356333881311643304155851045929091109386741909044374019034332686857923714595061485894711739493156246024032341533603710676469259722161370583015550480223975442414775285399929227607726121046847570715236425243366375359063679849557458500660496457786591927931786880854505388447869263229497876379082638563548297610762222155954722067640077599100326325316920637749243565602420897128967648673343210001598929260039234087651392937412612889514259183051343499678518873734715189170343209640316819886985676633168456641692827530512614391600355916719593321530787407486018348489658117373956970428388611308188020401452428133801645156133464396989699555444139992297976189586238383845448100414625563413776559654080527911675925973271033158922908929799270996442883709949738677666980811630621533582668703863504782039221019396904530703704184019009413171879677409895945590463429204301357613233309551205263351140505869352346603523549825798998984227578823765118484941210988222546580072580683067320013819677323915784931691026200679818915186921214360460968363733288904392132141634210982654369952929010381138927045445915749010250363079063756766650461906898841846663476443813317329941416615101264044202090035180240032470558944288229551392377184651385805617072516771224030546732134511373303940757439332487225121100935861637641234366317041301045719079011569573596053252448723180071807047315461914416275967577792227026085294259779664623187640306115762509218118486513412784229616530690623641114023546320004326114665377896249620405562159946591966174032338877062107097365900383856477437355009331589125108376988486289796229171743319314630624666450800528047688231705432220557810242164221423566395895138670775604892966731549301169255108977142177369202834732936460461239653374315550772318814739881558678094193869600738463809211546652124897562545384023703398042244264806774131409007394323956042043007719254371844896149519340556344554521471446002163149311188194589997649455884911927431393636459765868073097736407088035303891300099265491329656586831598290536271318756037315906801728981226140612401550777497332700557128740132192946320022622180588735574009426021185407345360551702095715317126932010711803898969721804593934544059168824721382183707550196945515544227349353416770685854039883454220784953638690619133773634018449648791170112260904739830228109969152371678664808473288260272022535932850741806855752728052003348233418957807948304219770386768593113018582957627953953699331392218004871647853312590504505212893732192702564240468926227108135148918607125355896093000315949350304203592413443588701794083303076796491533901786238381582260246993324634982338970225816432543128839238970295797259012018736556435712463972593659947742254717659713059249798704158158098714053982237359079866592639994401482533651694649655442445460545752523023925661091581968624529064718954508791427451125730218426626986402897580292993745192864126012072501374600884850726161015471687809819560293310196162109504243436602519446040748312345370516937740412333780278968802815619295144162867367578582740045020929302041613253584699650789645363466809889930769218014205470709175509435602469261213368629555256814516533056369412346325885591682377607795496443004992360460634359360397228875417656809124094957541511404500009442972249747297573749608991040301352734219254030405385729675325782257244115368300944475566052828315036480791557978669453758409526327778374922392939502200047574112302002275642078267542611997792772915091983718720592175140269549370064090678862139781640236728189534428921131155729625795870544263143955428896204291402408703696307583564322458927048100410328453297932385998417245734032945346396215064111400547378087046218533409228941160974887099366829675174518397391266040690203156893138915379616015652201643919423105320188025400730524712543462814293429179755919034804594313923800859384531385113745319939578992296632508118567717749892678043241082966832156177879294687128430208124272699443772496913791861697613290797385823958626801622182467118242240082715944364048883409589516552915576956172850015862512214008769488812895682643005561194730096214490702836380010888807498157897320778081922924837294266265641841480445116449897848400134332251634094870504543152433485345523143357555033758438916269891327210511406104550713668088122598554043704213995317198821667521030547659609811565979303253555447743484029603238307737391959979094726128727474509207673767531595352209892215991541340731331112570505494637159591109491885321518340688600193768819717403139627629329053124853165353331768777223344513042950933981688286690537854054983398703610821257539494144778602170389737321464499295452840064820980830237479819382053013161733278741244667156454860899029989034372775631891251206804123270494948573274645354034392954395048227128190412001629990608262626008073778505164896671866660999170321151761480644860385296233195231190618358410061186924255853049910737216774904777253004021966441978072301659108041787309520402752172400416164438560790511021405937824464545628303439929823482500701528909564297140196193718930692542901175251868706409226262880752483743671513226300097417148713422963342265458185446498178927337049327516526623689193410595754802903807311260716937285730585099489554337222818189889896545526469492802666540280351708781076884679673476161170563378128424206934528057189975183610729420833614200420523084721425484452843503143368787375578142312561793528759279462669131142432249993850434147531439226382706887540364546242922534650555029414678858977333334456538745984388731163690655160331471990686311396101226845849461500098230148466280423978559379414759037001881714388356594192964319963972236505601684887748381590029207616302170721955205111467965432384415161592364919250544069830774185586452434666900314316248177707510935991132487998342516767500803936213056673131960956047396635878928868832532167668741093629053959733100536292873373560210259237530161734074282203735880659847571256439475264855590181182907473307741697687362548575018655207516009982619248252975375512980485381940862065663807517822116243417107899052952047470409209260643522282669948390043754944195448297816977466123056718794020657066436241057275875032964434868071048267683930247107358660188276682794970269972849433092946891255602496646936809475961236005676273870083482882866190291273859026700947665362644641852787877332904092992880291519774068220908323073537011562456034249149870467400970040638062225602475385690559543076030594154047862301369708129489505302130838210411733902130386497703494622924693333324318141146811667124656969364210199155250551620695132885019268230973555225127115946569139288603819027710976948096542682793890976628438559280459312670201016915007877567214226481107453062249096799089062358862514040536334632524271365226243902095424546996708590241926262871454457036066020044667349061755150240069578678329003640583048832115343958383698227513504765478836484666898062131927094855567383834170528821678607727004014489340596753355462018629717851988454257322610666026246174484196499121384065525819831930545738875606549408369431673759568126425608615119863120110588472224843416882695821070362952249192664467546377387386865364256996587955337114010934587358254947216161692360881366704577094896260976777745165030918867631196375672253476296900901084186101744648277140262916241879549006224743434949424816569002914302988868589560144164764825479203094660394977719237866982335379879725457134904833050755163531577860870728517426128628063485746059624911644383819291942519750176181833699004588788006326824860533037403206341519578185033986671159972406919017047750583174726646594744939985038266097120552153817852874187015315063810700576122688766132773678130703021064801194474531499263358627110400035595396682346047774771756510934411002968248062882666537277902295711456278178260067033161139459677673033314641505486247272066927809128822415956806550854993661223900419314996811931743334514322796425344601866609816752001127953369004669374184127299421260473490091412086781452805892740716554691176670661575822014299218521014139828387253267922466594850169376687987600024560577490024713592051800983120372216256816450248275311198039352191008639736991692685694118145994499328705142901514636165740176492930601265061390614645840710040780131444114092066030561031137178321249572799843139726462186396876747431266578860886802117671761453928241740544117709643784880812289011624215342191067852476558107532472963661463806343657458727728455582413365137449284670926578302945410221364441252472330619077150761293366380872466277215572473656465348793847367584828805337453223803666697997147113971249383604014661188651629808891732291851971028694121035493560218118866823985253736417530559564651650151571764358394175080535891080119178298515015802476797177216070121673136883879375855077077634968387380969660659736988261872026349693882646539882166244448987204518384053570501803971614133659839743483904919132240436688764065588619728993444136635976014076319826689962135333250764687057570696249244194971401334613374974963225637441717519260771837528882592942714706923433340356289881568996825121719572494264909351057529438069984714076955429740241258128095535279791147665949762616057619233782127517573090155483175789143856356650412382903617827099197011142168240733867391820630233548771350002558002544010113111584383819597257049278630830818360658315187219117497269859702454916420113713077449546408291771876237058762900567440070086401793093932066309262653255109670570038981755326750560177344760650907195526841349681212046730366916683912717001808041705561547614063195421859673943774641785826196563814533759133159880324402900299477521171636773178119229133350670213533870164442347072003481376216450641563020100336695488668797119925673886720929984425972231113570018470764658499622365859863675398954352991600046743440839529257859731351745924141493954388159260878275400888765671390337576349625609769583946306719439378293272303233927213621295189984292669707676063419870620782354878110929140951263182765352588270102153933119637075594187534680909018557938292897871888042086021712293721063949376513424175125105457228631449344643978836392352456476076042599534372249944527424222773923012043795316332385874204521757277748698030961379978914425342450760006398270783722172968623000614194752168375857803609267980549437407998456207563025077459025696474289595961091916822884724512661903112782077947598034508299256613666784280211197194482453428769811348033332401954789966750886941286207483060269569139322955997120171143423178031821018047152636979521671067781993215721636522544046942968555444033231810397433972771961880697605291296382287893558124771319974431699404137516129052407064316699300682991186356315538440460893828809396743668563211759040760107366821053353691029185051606080696014750522999096518411603425493491377923088773140661003428190613416905180961043857953767035723255325903942809269830057758568019363718804369474948969933075394683696900447053906950685798203257504331545983476422564570610276111961105767906750931330215576799465852197085704210871461329343920967233107451190658795136228661478044983054539351799560063853760513020013127147448387633205134984254009019468050225155173871457533219920720310353219125192236560660555033231948987187707485770096161636483303073817889054273982451645511488861288193989563521975163547344074773383792749150752510897928937403811909739318303615581185292147284767110068635145840969542312490135166324766632391088622672533581944338062724450683344387182962865766556114244018174348065221341154328271398348308404376859215830737164652204357279276255747869610952951699751900762994676816843848257132806996527605667106949740909962848044050207506134822306218799019967443825098646685646906751273699151369594955445013505895477340453938799473049148631106965711922576920124661713394793948766389220932844157967003389345708927126131205996073340609179562995138902707872760501300843778695890351358359625573023790527420123802782232960644283972018121560504187829149394493590962751586876455056203024546082931971786460902474621363122538614536503572359183271968332973987104054031989858700707947521477383799067950102417741999044083256932294824927968773281782601979795484219570765442815370102890605956453965068350821303023281378888157335342584132173523396920398253807258478744871441739984020951603618471361802734886875606507739539335794605166458259657959901795756548663385532620325286808854083799338464777305947516169020492004319503040123526626736762993232964418523774295126572923791977629862536628576465777028172358534043482170518191507977656779621173713523746417375876563695623928163051556598614862396206181558425567376484647525576345350971010095677539565650418023305909243177018288763087100781706292623855892506483132377901076911510333961533930119641521994784125340131370383245609658220255886770529365647890273667941196069508708219235754684176471067507946981304557615316207075125441239013806473144020049775067007293412118888855274747406339937210464677202446725697333511289732610281290264613331773788127714205104635473103122562623143070812370762902736174269679345912629415541323982860960752621226248954015888597234168781391055846516036132335244354159834226057401904594571452000945135170278329173079670974288352683797998069204852791990371655393901593478500420382478097907712260178704648660250948918415456987042244498477874329589791548711129363234998652351670316730430863676422722305368421466616577341968216917351663932900369970991376742930120674851664302553044137428765460671479032622266983094296568370552777120656069506756537654478131979223232130121847344854143625814053202684200059882646643599378317795481904085014406080684308303575513206158482435866016090810259580677668165242979090896192739802463887466867532772238104354792172477743770061861643276321723605982067174723778272666830380526288703438072797118361695428794749918747749011086420772276345859070081264971994797073899424441124012812722059882771065932527348380486459542211506450901156032644729318608220431995110936033407934660102843398234944180279131983350969058233956747013211503849914510252101400774499928788241147894088301499793362677423848961639000902446070802097189523337102456918340790755023679869635853777036883917486366942965079648313549112309075773941192553613323749317039063619400961931393702838437164382536752727313860279508602284050096935917809341423256261495758914505801319334708720143288534392998006020257134307214207024093478744492519555233196706677412466984681687518529187679886326230280628909879223019003639603791922587599775805758226037003610103512956187305077094700726022973223919393519707598112052494598614140607496735071466949758742289078964872236269969216722492840242329689324801430110744404638257039261125325347682742754229695993406871193578630143851512301568720708859503053479453781912334724729426360398214197910505692775750309875636889383806700311878442277224147772837006739557631293699501253370057489580820482058174346113935694605493110338097048278708209689381421241315568829469322407360076784646689511723458491358274555121941258197964979301371997748863277280780683132266639268112817827792440939764961397632706502195255954316135572537182052736034522656823169880268182653643116901090572746942337521805150148685208278785042086577881355271593808717792739920306340163526620385046634487216030287648082832212947426984533213803390996054900724883452038499963030368587360104430503395573528193841579835172554006761692488796904241341312309809817414609959032560417146713607559217579170284230151140363377243540360014360883903826749423140297929664519464474864664890565972397275582300917508551587448288474542487585227432124325646680794953621496257387768164530151608898226917412765436024903342750256419525305973487365811911275304664628508445187131049730666801432076101715382341607847141435549145336181488846619110987338181340338412141240226769818606476056782243938321678023784083456249268062453090427930111514753601316002183147710246301550525875067928656501033893683182528385384511015042093742826198995509685807972882118691672515044034852514347022957003579703486260616164460873926780435898781916442317086987387670140349173175873482086660016315495622346937391914270802172229834721692193034760360163937471889161986026546544344987392519418247902320337963024605982192568393609103285481788050378682446088398426451216447403282888038719327559317072683081017439116843259861950705886774646772205375223583609398544548578921511094250460124316151775669346681855295617030148242780109119005892050984119787471095293241984163181554851810908928166204572342111695114493580326452661901019913844016238672176311769658048687091844963595989380028482509542107974418682764858681989929445961194571323829059636668795236542615951389126147402981456569253588536756160842746381896342190360461706185966910989790996143351497306034707496922154663573237402955184981687246032431339087001087107931263089341359411655818175098809213305851281934863834265479476967705184586661917294527592142751258488890400048702594193394564627103502654858233686262967044245726852871694482799157633410790213101460155445386016940198530183920738050706433667507906112041943666002473824696276376520610822634845583293861412702647824613889770122442130383943358004167009512041761743909712349254599775899039900663403616898411734580736782812088932186022977245343258418390842759907780517825070845075670816261057458108189439907503516808005433228239022748885473919155255809871308279798272057386596605987587758653152319462812555771222808120291907778286522039183167944290069542818269086730993712700942533084807802157134303046937498770642735039904492851373335511619309734524380563847214712769396558321432501393372193271249717313056119158444394613593026557812364699292747933132450092805972573227827476886338944602719259227986060291468183533474941890690698044096795766045294120380217354358863651927919569079053665709057692791622788744804993698547064787691575605282326036530252257232626282972640527452660851341758215701889435276408220166310394322535733332872976174065656552435639721818850918641749656742843855858336194158073286217240935465820658882808619474486629357983298644160890078001236453109012057625577793435290285126422902818752348665675357547825741285331297147208189644010987877378717503161828178012621345991724428186804237917191442994167396563190226641124649043524112009713966381405059953754901157991136675372104184213289404968603249718665171158655053282696641633961586197000340241194712866184060480839077406998315119642998428872049961078397891852431089735231854741491921101794596689534085647170772231541331672314899885520921771187718128176066189813413215632359136619823027361917300735263261700915195859521043161630005307508528370809970835382444143726861328709629478993650438634792653637846376292448509033817489169564067133576409889813140463499372118227746538192679691108171110910778985357245077359251611155650111730489407993105393751686510088404291011146943977901785985756723344640821534273772618906919574278551131663383874212795696437216081249392176389013432365665658463119086229886615360235487417525607468522380662328427475801384275144714568531464489040744826310795699505585916954450867771050026687725417572792810584347904190815823167788449649894555474301786544774271736887010151515951170212781992213129325910691178493923179403414983636944321312196936201327263356818438531526731002525893250145471601798521601121812128987673912050281557649199364971913554002126241491447019352669791209009234834259710010493948011262110332907124608913092425037320482538907562297304810295457696180271549851256768503682021405229555616673468414438308963264318749147684635464237692980907153188042063219623424885284839677037634954040286762093680490792814725534929399896458360248658306093073467271433596237628503103945511554751032902311937591213643287314628781363800486649374547170305457349251648800990277234644474563878087980478064957879923001258132393405242342123404299583162948019846248750675388391409648678071363145666799007149277566207087078233018061752453543253381226310888324419787808615009219946862890081598425971570376071702907260021275232801750044320907383379884004093942629414238962887658572254184443617031308486222067876107872150304459206283606237132454549011049101724076902528054215721387168683490429009924284979535605116152730943642104224963113219519360263245545943709648247481954567325437466240764409874496619614173045357995649876137491510790625032774613478865306925811436775234648195168170800728332175566035721637368686788054715295169443638089373962875094719648062407201344141134889726367670526517321209712847686640446367290036542091030671279621319957295105900114161123126638890102685138245965139905156621671044340267720893788411910653388244000290228948015030120148927485937651135498260942397329387334388564475151803831239500680078022161531774948175576184227303805342731113226279487476882942573337227310502387890327801972043601053737743205423553649034098121130323651904765282453331973144308149474357996854832785850372631091783626900742613266762240630044899081839668949608555600224335534375059455408889193821224191550496627512943903322168799418882747687945040641684091855942356647414246242035520514831289709775149099209773250960317384309259983520625418888381118006791927010260324305735355644785313388166942127353513035524323769338541906285989241265916224158621281612632124909665040746374309852296272476397548649239342532977473647768599588088565970951206129318656811777861266508995085532342186888119879293248347878407220588727877791897390807277497153150843640420922929457997294196848840668733422146344456327021903411061736133696699861964399082175987607984821077592121897616475736696297441813277048735823861907620563419394012947795546743947686393562956067164467704697621887364605049752766747885472129409370500910388927146533360155830039496724611381747329157438029426541807203993778618620403186693418706989959268133553842857114281388371392426588645671584647552170329558724367345086049310679623050082532082741474004834817470896514704453203491063120165234214775238087680913587551656325577943299123906821000441090005305522305479915335279142462994934029377853072380270242641757286569661064829874306734963455872614805445120795004680677768084107454064337339739462217696801572670477378914902261379867915324459515822778157686157585344160273613500280836107796254976960958035160855748272061242745057079215812149620628101593114382177978371748131017155502489969913441376196704305567503030847185313736280852135192891996206984050138461849059320218380017935815472983639114619884705888062131937849293207758446421425365898511191866118684571963419422549368419900780233518191310784910567109119680755040254344094365038084347646730534496406921375551211005121641734870679680403920884716869970123358237518784923488095450996619532899012533820126234721727885535477756347223103443239186558286794850466184599481512135794625007915322754374198092594481724011533635049366473201345682427071842191924314430283002960551476400669511617523249880494619980056833614083874031856042517927596790754308068825526327914785169982146531858217514581941519539098980557474466562478232606004151327685108564037245649854144844604565857614189705313838072270580678797350263739826796270434643117165969404536830201760764019397511355385757133032847254925534435563373446006453895621912159159603428505486158674163857170662954770147879634203007489413548820107085168447633729237953245850374010660802510877328986749571684924999280054564672864221205145084841218798724380341204458920737091530331355586986061114507325850768173670008291692883118786029185294630625487979937959032299286742414928840200801808080531867059166121593944053417489897235291397541604125920601015135442418333421841176789948329586803128015981029357667404044427154171387441415886039158182492604569935598668190393731848258563340205022937520500023926421097079521807395636019581515411373468384931727539244147423138574963624788993750792424721892939525243299250833719240239477686822950142323821252247133588611611254904628389447773476664562384353760582075597039703094019500681097193852157413424386427401224417767898682787344505563129629695031896714794338897273986636652866979015244041850474927837670569371908171596243221577946504707808874029001957489774313456094202575585067871024223049993650832431952642328416170812679710736491764417694866462509607789124263834150490709054299730915361219835066323203059276748731316838952555939600390920097771614009774970326396766153598791895866077112428772904240436719215032400626746750979774233842697801999719017413516560241165284965572210007164385925493762724167666395413025103841115124207076526289815064987769437389088450981619105532801009055229394385859866823383149109490477571671849874839907285665663557666901941798703713082241054479393570164351379213967273949126658913301625756701521434556260746929682641370799183511215376309171206059368056252009251575733179053685545862900693438438654922133434574124105555732585404414816630536912288938402825930819871928064602569718696545348739358522482026799680341012336315152233465484125164990149927512251132679949086486635286488650237280869222738531886665464494415625910995114075410241096215298550159184070371940605115237937843679508000786901742842495612785020004302577889355528813240293687756125835603279415089706613340419788355082950000750364584317712387373466417500877073693745258401029211114781106218125883573805875707584916045704921748423165477511134297551834919626458992889454672249228376083541951707171678400281384292906004371303876928098109638735637531710578497057737299377208563434804070253414370814450390505950366099744831549641063307517748844456481049045359211395813273444637835834877386053168341255886477494338936260365943493244574424036300397841153621849171982311015866330503780578964162600158784155781474736756274330396301026057217886708713008234547478928241481933693254106831021890802199255403198504717725336674293440334200661002047424700431467232669533217810681164910949682302795348739888298324971589270208051966405785025370874605793427249662471408891452063371917515024587659889566499859763027913533877994050688799870255311273115417463317039676562564916243425843511074352259478236556180335120430917257447737187115987789564634437666119053347623365512449202180313057048569191355707746169795632232948063229019971177888808554786298206604201295100121193823886674323325247910648100646046063106924960878485068586029344055876690225375616066330891160725045477757985540396808683620518418215146546519031242300433890416909463346632440140058538253101008387429516975247443846447081718186404438576029675550370873784489920760104634801379822936502925141991957652186851725705341763841935429059654607773776613639956071147774946463262920213018916286548478289269969152642755356024689211477767480866178266128341438523400148301213872928206502339641509596395465818040187142545430249224857052657447248895540111874534343870423453198435216922234535684850951452007745901578123961662587767185279732991152907735091129497988299423130436025206247141596059394098849240298784901065859257686925428229319903200247294066381230989799193863022974794271983120594078930142116671258099411561543705616460654442194402122552109772351863577199245672475036230682476189666076096055791024045376607825778029551629742238851973857684795721331515783877346109737048638788272926424192881942936268116376207044821555808664288202595708180600812255196534915185519991556853814204061769335896611850721482398469884440079946310796363313880288804141718041853159483426817069708767345678243632837925558495065912419068383785592988179819764397603422937410408380206232763899099137690640020034833833448165457790295911311180379116717253106909293113004801107516570969455368518100607081635131161539239125011497809928617806661786899875527924589932007823132207730754950324898671204987082939942363315474403589260569889100126444222127703028942875783389343267866382509036734406581646892472556375835816043153974316332246941115933134901817123456951790781924616231554848433146670438113559051362292671710616423783622492777300152477607878218345350785683549820915329154675357271857569766315670956370149532845222247839350125326758729894522798355400866020146561627371885923989454163156904000858117692861115931912834076277233031187386779786315330085680290388650636955967843517666701694657796437780661993030152361634472636259678468924212130972439851674386043928659964297010251599145058426555702949034786394687907506395930847107166911742056848798033281983230903134896276303765340506524882876532013911839922412511892755122306251749317743104274941264549087209856148741212527560406923390410357277025575994931787504068079120378772349505683972229813349573033979344366733320889825001709131492520886556010913247900402650180613516310762817401404322759095005186397523945996808919116218498624049577735830919516877099591842184492755224258804946522602386081425692176421666459145871737043373721869037116357713584748586525654788179062665193524449571639581694336230877918036226030788460947974562447929044541863694130699784903831899980717155686040080295031863881264365062940907301057465044203136188511908408003341260674526161725827755158170237642159676391890019933923751758834301691445383124242714237793816360739537607038739391703759734479006907582277567623243447213061825838693541160899432810763341005338742811823165272783903991144770612020471850974752217759976830362952113059902207483038695703550573980677421420726637257923298324974262819953858422143413222179344056747339235836980103117927200957221713916662320654580989518185376332094303908365028576206745084994665598198103946438703572566883121251070920087208754327154746514639516485899138329757829977410249802849042099732890277620941861168876692824485448341399916281150678339547890848139189101526